1 Отредактировано garnizon (28-01-2022 20:25)

Тема: Communication Extension for AGAT 7/9

Вот она у нас на сайте: http://agatcomp.ru/agat/Hardware/IO/CE79.shtml

Зарисовал соединения микросхем. Пока не причесывал и решил положить на ваш суд.

С резисторами вообще непонятки могут быть, некоторые выцвели и красный и коричневый не отличить...

1) Для микросхем мс1488 мс1489 не нашел наших аналогов и поэтому не знал как зарисовать, взял из
даташита.

2) Про резисторную сборку вспомнил в последний момент, пока просто пририсовал.

3) СОМ2 не распаян на плате, но ноги 12 и 13 микросхемы ла1 намеренно соединены с питанием. Прям аккуратной соплей.

4) Желтая область, эта микросхема не распаяна на плате, и я не знаю что там должно быть. Просто посмотрел куда дорожки идут.

5) 6 контакт разъема компорта имеет дорожки, которые ведут на отдельную площадку, куда заходит и 1 контакт. Т.е. сейчас 6 нога висит в воздухе, но что-то видно на будущее предполагалось.

2 Отредактировано Voldemar0 (18-01-2022 20:42)

Re: Communication Extension for AGAT 7/9

rs232:

Пин 6 - Data Set Ready. Могли либо объединить его с какой-то другой готовностью или полноценно завести на вв51 через отдельный преобразователь уровней.
Пин 9 - Ring Indicator - скорее всего не планировали использовать вообще.

155ре3 - вроде это ROM, а не RAM.

512ви1:
  - WR точно никуда не идёт??
  - кондёры вокруг кварца типично 10-20 пф. Буква "м" там явно не в тему.
  - RD - прямой или инверсный ?
  - резистор между второй и третьей ногами прям реально 39 МОм ? Там обычно 22 МОм ставились.
  - Кажись, все диоды наоборот нарисованы. Около батарейки и на линию SR.
  - кт315 запаян суперстранно. Надо всё вокруг него проверять. Может это какое-то стабилитронное включение (встречались схемы, где похожие транзюки включались за два вывода как стабилитрон вольт на 7).... не уверен.

На сайте эта плата "содержит CMOS-часы", но плата, где только часы, названа вроде "CMOS-память" ?
Так всё таки CMOS-часы или CMOS-память?
Потому что микруха эта содержит и память и часы.

3 Отредактировано avivanov76 (19-01-2022 01:42)

Re: Communication Extension for AGAT 7/9

Наш аналог для MC1488 - это К559ИП19, для MC1489 - К559ИП20.

Ноги 12 и 13 К555ЛА1 соединены с питанием, потому что свободные выводы плохо оставлять неподключенными. В данном конкретном месте свободные выводы могут случайно сгенерировать запрос прерывания.

В желтой области явно должна стоять еще одна ПЗУ К155РЕ3 - цоколевка совпадает с первой РЕ3.

Кварц не может быть на 32768 КГц. Во-первых, К512ВИ1 больше 4 МГц не поддерживает, а во-вторых, при частоте в мегагерцы она жрет почти в 100 раз больше и батарейку за два дня посадит. Думаю, там стандартный часовой кварц 32768 Гц.

В обозначении кондеров вокруг кварца 1м - это видимо группа ТКЕ. Емкость, похоже 15 пФ (по даташиту от 10 до 22 пФ).
Резистор параллельно кварцу должен быть 22 МОм, но возможно запаяли тот, при котором кварц лучше запускается.

Насчет выводов 15 и 16 К512ВИ1. В даташите на MC146818, аналогом которой является К512ВИ1, эти выводы обозначены иначе. 15 вывод это RD/!WR, а 16 вывод - NC (не подключать). Надо бы перепроверить и уточнить.

Диоды все перевернуты по сравнению с даташитом и здравым смыслом :)

Странный номинал резистора, включенного параллельно диоду, который формирует сигнал сброса на 18 ноге К512ВИ1. Если там действительно 10R (10 Ом), то в диоде смысла нет. Считай, что он перемычкой замкнут. В даташите номинал этого резистора 1 КОм.

Насчет транзистора два предположения: либо это КТ361, но тогда получается, что он всегда закрыт (резистор от базы к эмиттеру). Либо эмиттер и коллектор на схеме перепутаны.

Да, еще общий вывод резисторной сборки должен идти на +5В. И похоже в желтой области на плате должна быть еще одна резисторная сборка на выходах К155РЕ3.

4 Отредактировано Voldemar0 (19-01-2022 17:57)

Re: Communication Extension for AGAT 7/9

> Странный номинал резистора, включенного параллельно диоду, который формирует сигнал сброса на 18 ноге К512ВИ1. Если там действительно 10R (10 Ом), то в диоде смысла нет. Считай, что он перемычкой замкнут. В даташите номинал этого резистора 1 КОм.

Может и так, но там цепочка подключена к слотовому Reset, а не Vcc, как привычно.
Если диод тоже наоборот нарисован, то, возможно, тут что-то вроде мгновенной реакции на fall, но затянут raise (не хватило стандартного агатовского ?).

5 Отредактировано garnizon (24-01-2022 19:52)

Re: Communication Extension for AGAT 7/9

Попробую потихоньку разгрести:

Post's attachments

Резистор параллельно кварцу.jpg, 18.03 kb, 516 x 293
Резистор параллельно кварцу.jpg 18.03 kb, 107 downloads since 2022-01-24 

кондёры вокруг кварца.jpg, 18.1 kb, 630 x 229
кондёры вокруг кварца.jpg 18.1 kb, 109 downloads since 2022-01-24 

транзистор.jpg, 46.71 kb, 744 x 483
транзистор.jpg 46.71 kb, 107 downloads since 2022-01-24 

6 Отредактировано garnizon (24-01-2022 19:52)

Re: Communication Extension for AGAT 7/9

18 нога

Post's attachments

Attachment icon нога18.jpg 131.38 kb, 57 downloads since 2022-01-24 

7 Отредактировано garnizon (25-01-2022 14:32)

Re: Communication Extension for AGAT 7/9

> WR точно никуда не идёт??

Перепроверил, 16 нога никуда не подключена, а 15 идет на б19 слоты. Я их местами перепутал.

8

Re: Communication Extension for AGAT 7/9

avivanov76 пишет:

В желтой области явно должна стоять еще одна ПЗУ К155РЕ3 - цоколевка совпадает с первой РЕ3.

Понять бы назначение, ведь слишком мала.

9 Отредактировано avivanov76 (27-01-2022 00:54)

Re: Communication Extension for AGAT 7/9

garnizon пишет:

кондёры вокруг кварца

Ну, тут просто из здравого смысла. Емкость 1мкф все зашунтирует и кварц не запустится, так что емкость точно 15 пФ. 1М - это либо рабочее напряжение, либо ТКЕ.

garnizon пишет:

транзистор

Транзистор КТ315, все верно. Но мне по фоткам показалось, что у него эмиттер на землю идет (к 7 выводу ТМ2).

garnizon пишет:

18 нога

Да, диод на схеме нарисован правильно. Довольно странное включение. Обычно этот диод нужен для быстрой разрядки конденсатора, но тогда его включают в обратном направлении. А тут, похоже, пытались сделать так, чтобы сигнал "Сброс" на К512ВИ1 приходил позже, чем на процессор, но снимался одновременно с процессором.
Либо это монтажники на данной конкретной плате ошиблись :)

Кстати, на резисторе параллельно диоду явно написано 10К, а не 10R.

garnizon пишет:

Понять бы назначение, ведь слишком мала.

Да, для загрузочного ПЗУ маловата. Но возможно, цель была сделать плату программно определяемой. То есть, там мог быть просто какой-то идентификатор, чтобы было легко из операционки определить: это мультикарта, а не часы от Nippel.

10

Re: Communication Extension for AGAT 7/9

Вроде все перемерил, причесал, подписал. Картинки теперь вот тут:
http://agatcomp.ru/agat/Hardware/IO/CE79.shtml

Хотелось бы услышать о замеченных ошибках и неточностях, в том числе по тексту. Может надо что дополнить или переделать.

Ну и вообще как-то подвести резюме по плате. Например интересно, как высчитаете: она разрабатывалась исключительно для работы с модемами или можно например подключать и другие СОМ-устройства, мыша например...

11 Отредактировано avivanov76 (28-01-2022 02:14)

Re: Communication Extension for AGAT 7/9

Замеченные ошибки и неточности:
1) написано

Мультикарта, объединеняет в одном устройсте:

CMOS-часы/память (совместимые с Nippel Clock Card);
Универсальный таймер;
PC-совместимый COM-порт.

Универсальный таймер нет смысла указывать как отдельное устройство. Он используется только для программирования скорости передачи данных по COM-портам. То есть, этот таймер просто часть COM-портов.

2) написано

Часть2. Прошивка. Таймер. Таймер этой платы, можно использовать для всяких фантазий программистов (например счёт игрового времени, или счёт времени между кадрами). В данном случае у него уже есть одно применение: генерация тактовой частоты COM портов.

У таймера на этой плате нет других применений, кроме генерации частоты для COM-портов. Считать им игровое время или время между кадрами не получится. Внутри ВИ53 3 отдельных таймера. На данной плате 2 таймера используются COM-портами, а использование третьего не предусмотрено никак, поскольку его выход никуда не подключен. Поэтому, хотя запрограммировать его можно, но никакой информации о том, что этот таймер сработал, со стороны Агата получить нельзя.

Но кстати, для подсчета игрового времени можно использовать часы.

3) написано

Часть 3. СОМ порт. Таких блоков в схеме два (СОМ2 не распаян). Да, у некоторых Агатов была последовательный порт, но в стоке он имел неудачный ряд скоростей. У него совпадение с PC (и модемами) было более-менее живое только на 4800 и ниже.

Я так понимаю, речь идет про плату ППИ. Ряд скоростей-то у нее нормальный: 4800, 2400, 1200, 600, 300. Не хватает только 9600. А основная ее проблема - невозможность менять скорость программно. У ППИ скорости меняются только с помощью паяльника и это основное неудобство.

Кстати, было бы неплохо указать, что при работе с COM-портами можно использовать прерывания.

4) с транзистором все равно получилось что-то странное. В текущем варианте схемы он просто все время закрыт. Да еще получилось странное соединение питания с землей через резистор 160 Ом. Типа, нагреватель такой. Просто пропускает через себя ток и больше ничего не делает.

5) зачем писать термин ТКЕ рядом с конденсаторами кварца? ТКЕ означает "Температурный коэффициент емкости". Это такой параметр, который говорит, насколько емкость конденсатора уплывает при изменении температуры. На схемах он никогда не указывается.

6) надо как-то унифицировать обозначения. В первой части схемы вижу резистор с номиналом 560R и конденсаторы с номиналом μ10. В четвертой части - у резисторов номиналы в Омах (как положено), а конденсаторы обозначены u10. Хотелось бы видеть емкость конденсаторов в мкФ, нФ или пФ.

7) ничего не написано про то, что микросхема часов содержит 50 байт памяти, которые сохраняются при выключении питания (резервируются батарейкой).

8) еще упущен момент, что часы тоже умеют генерировать прерывания. Есть два типа прерываний - по срабатыванию будильника и периодические. У периодических можно программно настроить частоту из ряда 2, 4, 8, 16, 32, 64, 128, 256, 1024, 2048, 4096 и 8192 Гц.

garnizon пишет:

Например интересно, как высчитаете: она разрабатывалась исключительно для работы с модемами или можно например подключать и другие СОМ-устройства, мыша например...

Посмотрел цоколевку мыши - ничего не мешает подключить к этой плате мышь. Или принтер с последовательным интерфейсом.

12 Отредактировано Voldemar0 (28-01-2022 04:37)

Re: Communication Extension for AGAT 7/9

> Поэтому, хотя запрограммировать его можно, но никакой информации о том, что этот таймер сработал, со стороны Агата получить нельзя.

А разве его значение нельзя программно прочитать ?


> А основная ее проблема - невозможность менять скорость программно.

Там вроде бы 2 или 3 варианта программно выбираемых скоростей есть. Тактовая 1:1, 1:16 и 1:64.
И 4800 бод получалось не в режиме 1:1.

Я бы второй проблемой назвал отсутствие всех служебных сигналов.
Как минимум CTS/RTS.
Не знаю, поддерживали ли модемы тех лет программное управление потоком.

И ещё одна проблема ППИ, наверное, более актуальной ставшая уже в 90-х - нестандартный разъём.

13

Re: Communication Extension for AGAT 7/9

Voldemar0 пишет:

А разве его значение нельзя программно прочитать ?

Конечно можно. Но только это значение нужно читать регулярно. И тут цена вопроса сильно зависит от того, какие интервалы времени нужно измерять и насколько точно. Если интервалы короткие, либо их нужно мерять точно, то программа должна постоянно крутиться в цикле и опрашивать таймер, вместо того, чтобы делать что-то полезное.

Если таких строгостей нет, то можно совместить выполнение программы и опрос таймера. Но тогда точность отсчета времени будет зависеть от того, сколько времени выполняется программа между опросами. И если опрос выполняется редко, то точность получится плюс-минус полсапога.

Вообще, вся фишка аппаратного таймера, генерирующего прерывания, в том, что получается распараллеливание работы. Мы программируем таймер и он себе тикает, а в это время процессор делает что-то полезное. Потом бам - приходит прерывание и мы такие: "О! Прошло 100500 микросекунд, надо сделать какое-то важное дело". А если опрашивать таймер программно, то мы по факту дублируем его работу и тратим на это такты ЦП.

Voldemar0 пишет:

Там вроде бы 2 или 3 варианта программно выбираемых скоростей есть. Тактовая 1:1, 1:16 и 1:64.
И 4800 бод получалось не в режиме 1:1.

Да, у ВВ51 есть три делителя. Но делитель 1:1 на мой взгляд бесполезен. Потому что он расчитан только на синхронный прием, когда между передатчиком и приемником есть проводок (возможно, виртуальный), по которому тактовые импульсы передаются. А в асинхронном режиме даже при небольшом отклонении частот передатчика и приемника прием станет неустойчивым.

То есть, программно на ППИ можно выбирать между скоростями 4800 и 1200. Как говорится, ни в чем себе не отказывай :)

14 Отредактировано avivanov76 (28-01-2022 16:53)

Re: Communication Extension for AGAT 7/9

Решил уточнить схему вокруг транзистора. Вроде, получается так.
Во всяком случае, в этом есть смысл: вывод 13 (CE) должен быть в нуле, когда подается сетевое питание, и в единице, когда его нет - это блокирует микросхему часов от случайного изменения данных.
По схеме транзистор открывается напряжением с делителя R1, R2 когда поступает напряжение +Vcc от блока питания. Когда сетевого питания нет, транзистор закрыт и через резистор R3 напряжение от батарейки утягивает вывод 13 в высокий уровень.

http://forum.agatcomp.ru//misc.php?action=pun_attachment&item=1129&download=1

Post's attachments

Attachment icon SpriteCE.jpg 59.94 kb, 271 downloads since 2022-01-28 

15 Отредактировано Voldemar0 (28-01-2022 18:41)

Re: Communication Extension for AGAT 7/9

> Конечно можно. Но только это значение нужно читать регулярно. И тут цена вопроса сильно зависит от того, какие интервалы времени нужно измерять и насколько точно. Если интервалы короткие, либо их нужно мерять точно, то программа должна постоянно крутиться в цикле и опрашивать таймер, вместо того, чтобы делать что-то полезное.

1) Измеряем большие интервалы. Какой нибудь опрос (интерактивная прога), к примеру и нужен счётчик секунд. Счётчик считает секунды, а прога иногда обращается к нему и проверяет, что насчиталось не больше 20 секунд. Да, можно легко то же самое накрутить через прерывания, но может быть они заняты (например, драйвером совмещения экранов), либо просто сложно разобраться как добраться до векторов NMI/IRQ (снять защиту ОЗУ , сменить вектор, вернуть защиту). В бейсик-проге, к примеру. Ну а с таймером играть безопаснее, можно обойтись PEEK/POKE.

2) Измеряем малые интервалы. Игрушка, обновляет экран отдельными спрайтами. В зависимости от ситуации спрайтов может быть больше или меньше. Т.е. время отрисовки кадра сложно заранее предсказать.
Настраиваем таймер на счёт 1 мс интервалов, перед рисованием кадра сбрасываем счётчик, после отрисовки кадра крутим цикл чтения счётчика, пока счётчик не превысит 100. После этого рисуем следующий кадр. Получаем строго 10 кадров/секунду. Это может быть важно, если, скорость движения спрайтов между кадрами фиксирована. Т.е. добиваемся того, чтобы, вне зависимости от сложности картинки, скорость игры оставалась фиксированной (а не как в BOLONEY и KNIGHT LORE).

Можно тоже вывернуться с NMI, но это если только нам нужна скорость, кратная NMI.

==

У Игоря вопрос был о назначении этого таймера, мы тут гадаем, конечно, а кто знает о чём думали авторы платы ?
Но у Агата железа было не так уж много и ещё один таймер (аналога которому в агате не было) никак не ухудшил бы ситуацию.
Другое дело, что, возможно, авторы платы всё таки не планировали использовать таймер отдельно, но это можно предположить из того, что с него не вывели IRQ или NMI... Хотя, вроде бы, не было проблемы объединить прерывание от часов с прерыванием от OUT3 таймера (а заодно и прерывание от COM-порта) через диодное ИЛИ.

16 Отредактировано avivanov76 (28-01-2022 21:49)

Re: Communication Extension for AGAT 7/9

Voldemar0 пишет:

1) Измеряем большие интервалы. Какой нибудь опрос (интерактивная прога), к примеру и нужен счётчик секунд. Счётчик считает секунды, а прога иногда обращается к нему и проверяет, что насчиталось не больше 20 секунд.

Не, этот пример точно не про ВИ53. Там тактовая 2 МГц и максимальный делитель 65536. Максимальный интервал, который можно измерить - 31 миллисекунда.

Но зато большие интервалы удобно считать часами. Там все по регистрам разложено: отдельно минуты, отдельно секунды.

Voldemar0 пишет:

2) Измеряем малые интервалы. Игрушка, обновляет экран отдельными спрайтами. В зависимости от ситуации спрайтов может быть больше или меньше. Т.е. время отрисовки кадра сложно заранее предсказать.
Настраиваем таймер на счёт 1 мс интервалов, перед рисованием кадра сбрасываем счётчик, после отрисовки кадра крутим цикл чтения счётчика, пока счётчик не превысит 100. После этого рисуем следующий кадр. Получаем строго 10 кадров/секунду.

Да, это возможный вариант (хотя конкретно 10 кадров/секунду не получится, таймер втрое быстрее считает). Но обычно рисование одного спрайта - довольно предсказуемая процедура, время выполнения которой легко подсчитать. Число отрисованных спрайтов - тоже. Дальше берем разность максимально допустимого числа спрайтов на экране и количества отрисованных в кадре спрайтов. Обозначим ее N. И в конце кадра просто крутим пустой цикл с задержкой на время отрисовки спрайта N раз. Безо всякого таймера.

К тому же, будь я разработчик игры, я бы не захотел, чтобы возможность запустить эту игру зависела от наличия не самой часто встречающейся платы.

В общем, я не спорю, что можно найти нестандартный способ задействовать третий канал ВИ53, но мне кажется, разработчики платы про такое его использование не думали. Тем более, что есть возможность пользоваться прерываниями от часов.

17

Re: Communication Extension for AGAT 7/9

Так как все же правильно фразу сформулировать про таймер? Подкиньте вариант. Я пока на простом остановился:
http://agatcomp.ru/agat/Hardware/IO/CE79.shtml

Так же внес все другие рекомендации и дополнения по тексту и рисункам, вроде ничего не пропустил.

18 Отредактировано avivanov76 (28-01-2022 22:14)

Re: Communication Extension for AGAT 7/9

Я не совсем точно написал, что информацию о срабатывании таймера получить нельзя. Думаю, эту фразу

Поэтому, хотя запрограммировать его можно, но никакой информации о том, что этот таймер сработал, со стороны Агата получить нельзя. Если только читать значения программным путем, что менее эффективно.

лучше сформулировать так:

Поэтому, хотя запрограммировать его можно, узнать о срабатывании таймера можно будет только читая значение его счетчика программным путем, что не слишком эффективно.

garnizon пишет:

Так же внес все другие рекомендации и дополнения по тексту и рисункам, вроде ничего не пропустил.

Да, так гораздо лучше. Единственное, что выглядит подозрительно - это номинал резистора от питания к базе транзистора.
160 Ом - это же ток базы 25 мА! Многовато. Может, хоть омметром его померить?

19 Отредактировано garnizon (28-01-2022 22:46)

Re: Communication Extension for AGAT 7/9

Если прям на плате его замерить, мультиметр на 20к - показывает 5.64

Post's attachments

photo_2022-01-28_21-43-49.jpg, 10.38 kb, 391 x 206
photo_2022-01-28_21-43-49.jpg 10.38 kb, 109 downloads since 2022-01-28 

photo_2022-01-28_21-43-58.jpg, 7.6 kb, 205 x 215
photo_2022-01-28_21-43-58.jpg 7.6 kb, 106 downloads since 2022-01-28 

20

Re: Communication Extension for AGAT 7/9

А, видел резисторы с такой маркировкой.
Тут первая строчка "9,1" - это номинал.
Вторая строчка "КI6" - это единица измерения (К - килоомы), потом класс точности (I - 5%) и еще какая-то неведомая фигня.

Так что это резистор на 9,1 кОм. Если его мерять прямо на плате, он через микросхемы шунтируется резистором на 10К и получается как раз что-то около 5 кОм.

Ну вот, такой номинал уже нормально выглядит. Транзистору ничего не угрожает :)

21 Отредактировано Voldemar0 (29-01-2022 12:00)

Re: Communication Extension for AGAT 7/9

Можно пробовать измерить в двух разных направлениях (местами провода мульта поменять).
Для резисторов правильной будет бОльшая из двух величин.

22

Re: Communication Extension for AGAT 7/9

А я так и сделал.

Вот еще что беспокоит, в инструкции к ниппель клок http://agatcomp.ru/agat/Hardware/NCC.shtml
Везде подчеркивается что это для Агат-9

А тут даже в самом названии "7/9"  ....