Контроллер дисплея МК85 на ATMega8

Контроллер дисплея МК85.

       Задача состояла в том, чтобы для своих нужд разработать что-то замещающее стандартный контроллер КН1515ХМ1-014 и дисплей ИЖВ1-12/5х7 от МК85, например, если штатный дисплей "потёк". В ходе разработки учитывалось, что в узле должны быть использованы наиболее доступные и дешёвые радиодетали. Самой подходящей оказалась связка из микроконтроллера ATMega8 и дисплея 16х2 со стандартным параллельным интерфейсом и поддержкой кириллицы (на контроллере HD44780), современные аналоги таких дисплеев также выпускаются в COG-исполнении (стекляшка), которые больше подходят для замены штатного дисплея МК85.
       Особенности: контроллер поддерживает несколько режимов (в зависимости от прошивки) - последовательный (как в МК85, последовательный режим было бы неплохо ещё проверить на процессоре Т36ВМ1-2 от МК85, если у вас такой завалялся, пишите) и параллельный (в основном использовался для отладки ПО, и может использоваться при создании клонов МК85). Для экономии ножек ATMega8, дисплей подключен по 4х-проводной схеме.
       Так как геометрия видимой зоны дисплея 16х2 не совсем похожа на геометрию  ИЖВ1-12/5х7 (где некоторые надписи уже заложены), то видимая область подразделяется на на несколько зон:
                 ExSRunTr 0000 St
                 Deg|"Эл-ка МК85"
       Видно, что аргументы тригонометрических функций (Deg, Rad, Gra) удобно разместились в свободных левых 3-х ячейках нижней строки экрана, 4-ю занял разделитель (пока пробел, но удобнее будет поставить вертикальную линию), остальные 12 как и в МК85 занимает строка символов. На верхней строчке высвечиваются Ex (EXT), S (F или M в одной позиции), Run (Wrt), Tr. Далее, пробел, потом идут четыре 7-ми сегментных цифры количества строк программы, пробел и St (STOP).

       Вот как это выглядит в протеусе:

       Как видно на картинке, в данный момент высвечиваются EXT, F, RUN, TR цифры 1188, Deg и символ Я. Черта между цифрами 1 и 1 - это глюк протеуса, она появилась после установки LCDALPHA (русификатор экрана). Кстати, в процессе работы было обнаружено множество глюков модели LM016L в протеусе (которые вылазят только при высшем пилотаже, а для начинающих вполне её рекомендую).

Продолжение.
Полностью совместимый с МК85 контроллер на графическом дисплее WG12232.

       Копаясь в интернете, случайно вышел на эту страничку. Из всего увиденного стало ясно: дисплей МК85 не является по существу символьным (вернее умельцами он применяется по-всякому) - это набор из 12 графических матриц 7х5, поэтому индикатор дисплея 16х2 (на контроллере HD44780) не совсем подходит (в принципе он будет работать с символами, но графику не сможет отображать), так как позволяет вывести только стандартные символы из знакогенератора, а ячеек CGRAM в нём только 8 (из которых на многих дисплеях реально работает только 4), а требуется хотя бы 12 (а лучше 16, впрочем, поиск такого индикатора будет мною продолжаться, возможно производители тоже задумывались об улучшении функциональности широко распространённых дисплеев 16х2 - собственно, такой индикатор уже найден, правда с интерфейсом I2C - TIC240).
       Итак, было принято решение о замене индикатора на графический. Из всех самым подходящим, недорогим и доступным оказался WG12232C-TFH-N#A. Сам микроконтроллер остался прежним - ATMega8. Так как в протеусе не оказалось модели WG12232, то использовал для отладки программы аналог - AGM1232G. 

Тестовая прошивка заполняет буфер символами (Я$#$#$#$#$#$), флагами (Run, Wrt, F, Rad, Stop), а числовой сектор - числом 1981 для проверки функционирования дисплея. 
     
      После некоторых мучений (с режимом 80/68, полярностью E1,E2, дополнительным таймером, задержками и т.п.) отладил программу на реальном дисплее.

Мигающий курсор "подчёркивание" на первом символе ("Я").

Макет целиком.

      Теперь настало время проверить экран в реальных условиях, в комплексе с настоящим МК85. При подключении экрана к МК85 возникла масса проблем:
- совместимость по входам и выходам (хоть и там и там КМОП, но в МК85 корпус отнесён благодаря ключам массы в процессоре, в МК85 "слабые" выходы, которые можно очень просто выжечь;
- протокол несколько отличается от указанного производителями;
- скорость работы протокола довольно высока для обработки обычными средствами (в таких случаях неоходим ассемблер);
Все проблемы были успешно решены.




На дисплее МК85 не все символы, т.к. токопроводящая резинка старая и не контачит (приходится прижимать рукой). К сожалению, на фото не видно мигания курсора, которое полностью соответствует оригинальному.









Комментариев нет:

Отправить комментарий