Здравствуйте, дорогая редакция. Наверное письмо мое вы не опубликуете... Но я все равно напишу.
Один мальчик на радиокоте нашел табло THK-2, разобрался с устройством, написал прошивку, но не опубликовал результатов своих изысканий и исходников... Можно почитать что с ним случилось - он потерял и компьютер и исходники прошивки
https://radiokot.ru/forum/viewtopic.php?f=2&t=144085, а вместе с ним потеряли и мы все.
Итак, связи увлечением историей старины, в частности, процессором 8051, срисована схема электронных часов Сбербанк (THK-1).
Красоту наводить не стал, думаю и так убил на них слишком много времени.
Судя по описанию на сайте
https://anado.ru/products/item/tablo-tnk-1.html часы стоят больших денег так как сработаны британскими мастерами. Поскольку ПО от часов утрачено, разбираться с голым хексом прошивки нет желания, а также опасаясь британских закладок, хочу написать свою прошивку, чтоб показывали время, а в свободное время цитировали Вильяма Блейка и играли в змейку.
Схема управления представляет собой классическую комбинацию из процессора, ПЗУ 64К и ОЗУ 32К, компактно размещенных на плате размером 84х94 мм. В качестве изюминки имеем ПЛМ ATF1502, которая служит для сериализации бит в сдвиговый регистр табла. Из интернета узнаём, что ATF1502=EPM7032. Вход EA процессора соединен с землей, поэтому программа выполняется из внешнего ПЗУ и нет нужды программировать процессор. Что интересно, программа находится в верхних адресах. Она довольно большая, думаю разбираться в ней сложнее чем свою написать, да это и интереснее.
Плата не признает японские УФ-стираемые флешки TMS что на 64 что на 32 K, а только лишь ST M27256, M27C512 или есть у меня одна EEPROM Winbond, с ней работать удобнее, но нет ощущения полета по волнам времени и памяти. Насколько понимаю, на шине данных нужны резисторы подтяжки, а их нигде нет. Может быть дело в этом.
Вместо родного проца AT89S52 который единственный из тех что у меня есть шьется с помощью TL866, и таким образом, пригодится в другом месте, воткнул реликвию SAB8751, который надо сказать, в отличие от атмела, греется прилично, вот что значит теплая и душевная ламповая техника. P89C52X2BN, свежекупленный на Али, якобы умеющий выполнять пятилетку в три года, не заводится, может мешают навороты...
Плата собственно табло состоит из тринадцати светодиодных модулей 8х5, девяти сдвиговых регистров 74HC595, дешифратора восьми анодов и четырех пар p-канальных транзисторов AF4954 для включения анодов. Регистры включены последовательно в один большой мегарегистр. Аноды включаются дешифратором 74HC138, используя порты (P1.0-P1.3 - адрес и P1.4 - инверсный енабль), через P-канальные транзисторы. Итого для зажигания 13 знакомест 8x5 имеется 8 анодов и 5x13=65 катодов, а выходов у 595 9x8=72. Куда идут еще 7 бит мы вряд ли узнаем.
На ПЛМ заходит шина данных, линия адреса A15, сигналы чтения и записи ОЗУ -RD, -WR и ALE. Выходят отфильтрованные сигналы RAMWE, RAMOE, сигналы управления сдвиговыми регистрами SI, SCK, RCK, два последних приходят параллельно на все регистры, а первый - входит в первый регистр. Также на одну сторону ПЛМ идут 8 сигналов от дип-переключателей. Казалось бы запись в любой адрес внешней памяти с A15=1 должна вызывать вывод этих данных в сдвиговый регистр с финальным выводом импульса RSK. Синхронизация берется видимо от сигнала ALE и делится на 2, т.*к. SCK выходящий из ПЛМ именно таков.
Чтение из старших адресов, казалось бы, должно позволять узнать состояние дип-свичей, расположенных на плате.
Но не таков он сумрачный и туманный британский ум, ибо что бы я не делал, из ПЛМ выходит только синхросигнал и финальный импульс записи, а сигнала данных нет (=1). Причем, в зависимости от задержек, вывод синхросигнала может начинаться и по сигналу -RD, и по сигналу -WR, а может и вообще не начинаться. Пробовал исполнять свою программу из старших адресов - картина не меняется. Но фильтрует сигналы ПЛМ железно - при A15=1 сигналы RD, WR в ОЗУ не проходят. Читается из нескольких опробованных старших адресов всегда 0.
Родная прошивка пишет по старшим адресам (вообще с ней A15 почти все время = 1) "двойным ударом", причем вывод начинается после второго импульса -WR. Вообще странно, она должна внешнее ОЗУ активно использовать, а оно расположено в младшей половине адресного пространства. Шрифты лежат также в нижних адресах ПЗУ,
Вглядевшись пристальней в схему понимаем, что ПЛМ может еще захватывать младшую часть адреса по ALE, параллельно регистру 573. Проведя сканирование адресов, обнаруживаем следующее. Читаем свичи по адресу 0x8030. Выводим информацию, записав ее по адресу 0x8010-801F, но сам вывод начнется только после последующего чтения или записи из/в адрес/а 0x8000. Ну не странная ли загогулина получается? Ничего не зная о ПЛМ, впрочем, допускаю что и это является прекрасным результатом.
В больших часах имеются маленькие часы ricoh 372A, подключенные на ножки P3.5 и P3.4. Часы и оперативка имеют резервное питание от литиевой батарейки, причем оперативка имеет схему формирования сигнала отключения, работающую от монитора питания, такая же схема вырабатывает сигнал сброса. У схем разное питание - от батареи и так, поэтому нельзя было обойтись одним транзистором. Даташит на монитор не удалось найти.
Предусмотрено место для MAX232 и разъем последовательного порта. Разьем есть и провод к нему есть, а макс с конденсаторами не впаян, к тому же имеется какая то странная история что его выход при подключении хидера JP2 оказывается закорочен на землю. Наверное он должен идти на рядом стоящий P1.7, и отвечать за CTS, но немножко промахнулись. Что же, бывает, как говорил Вито Корлеоне.
Пищалка, подключенная к P1.5 пищит сама - не надо создавать меандр, но и эффекта лазерной пушки не получить. Впрочем, лечится легко. Приемник ИК, через единственную дырочку которого заполнялось могучее ОЗУ этого девайса, и задействовались работа по расписанию и прочие функции, включен на INT0.
Делаю очередной заход на MAX+plus II tutorial, дабы перепрошить "под себя" и ПЛМ. Не нравится мне логика (с позволения) ее работы. Но сложность массовой утилизации этих часов народными умельцами, на которых в основном рассчитан данный пост, возрастет. Классическая трамвайная дилемма Филиппы Фут.