Sergei Frolov (sfrolov) wrote,
Sergei Frolov
sfrolov

Борьба с навязчивой идеей, или добываем секунды у микросхемы К145ИК1901



У вас бывают навязчивые идеи? У меня случается иногда.
Как можно побороть навязчивую идею? Тут есть несколько вариантов: можно убедить себя, что она неправильна. Это сделать очень сложно: идея-то навязчивая. Можно загнать ее внутрь себя и постараться о ней забыть. Время лечит. Но, как известно, психологическая травма не излечивается до конца, если не устранен ее источник. Стоит только этому источнику появиться, так и эта идея вновь прорастет, как не бывало. Остается только ее реализовать.


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

Вот типовая схема этой микросхемы:


Чем отличается просто идея от навязчивой идеи? Навязчивостью. Просто идея - это посмотреть на микросхему, найти, где на ней выводятся секунды, собрать устройство, и готово. А навязчивая идея - это когда то же самое, но в лоб сделать не удастся, и вообще это раньше никто не делал, и неизвестно, можно ли вообще такое сделать. А все из-за того, что в этой микросхеме есть несколько загадочных контактов под названием РгR и РгМ.

Стал читать литературу. Нашел. http://www.leningrad.su/jj/2016/k145ik1901.pdf



Микросхема К145ИК1901 представляет из себя микроконтроллер с зашитым на фабрике ПЗУ. Причем микроконтроллер последовательного типа. А это означает, что его память не параллельного типа (8, 16 и т. д. битов), а последовательного в один бит, и ходит по кольцу, как колесо обозрения.
Если вам нужна ячейка памяти, то вы ждете, пока колесо прокрутится, и ячейка памяти придет на место. Дальше вы ее обрабатываете, и она отправляется опять по кругу.
Эти регистры РгR и РгР - выведенные наружу мозги (ОЗУ) этого микроконтроллера. Наружу их вывели для возможности расширить. В ИК1901 расширение не используется, и выводы замыкаются между собой - вход с выходом.
И тут мне пришла в голову идея - а прочитаю-ка я это ОЗУ, найду секунды, и ага.

Подключил осциллограф. Читал, читал, читал. А данные все разные и разные. Они где-то одинаковые, но бац - и другие. Проходит ячейка по колесу, читаешь ее, а там другие люди. Еще раз приходит, и то, что надо. А куда они уходят, кто вместо них приходит, и почему, и на сколько времени, непонятно. Читал до тех пор, пока идея из обычной не превратилась в навязчивую. В лоб не решилась. В литературе ничего конкретного не написано - все-таки, внутренняя информация. Кому она нужна...

Подключил свою, уже ставшую любимой, отладочную плату. Я на ней почти все делаю. Там есть 16-разрядный индикатор. Стал выводить на него. Все равно не понял.
Стал писать во внутренний EEPROM - его уже до 2-х килобайт логов. Потом его считывал и смотрел в 16-битном просмотрщике и распечатывать на принтере. Все равно не понимал закономерности.
И только когда подключил еще одну любимую плату (http://sfrolov.livejournal.com/167101.html) и пустил все логи в файл, смог понять, как привязаться к данным и выцепить-таки оттуда секунды.
Желающие могут посмотреть на дамп: http://www.leningrad.su/jj/2016/ik1901.rar

Вот результат работы:


Вместе с секундами удалось получить и все остальное: часы, минуты, секунды и два будильника.
А поскольку есть все это, то можно и вывести одновременно с часами от чипа.

По сложности это примерно сопоставимо с тем, как я разбирался с часами "Воронеж" http://sfrolov.livejournal.com/164443.html.
Тоже сложная задачка получилась, но и удовольствие от нее сопоставимо. Осталось вывести секунды на индикаторы, а это уже совсем просто.

Так что с одной навязчивой стало меньше. Что там у меня дальше...
  • Post a new comment

    Error

    Anonymous comments are disabled in this journal

    default userpic

    Your IP address will be recorded 

  • 23 comments