Поставки электронных компонентов ведущих мировых производителей
на главнуюнаписать письмокарта сайта ENG
О Корпорации «ТОЧКА ОПОРЫ»
МОСКВА,
Балаклавский проспект, 28 Б, строение 1
(495) 956 3942  (495) 956 3943 (факс)
(800) 200 3942  (бесплатные звонки)
скайп:  fulcrum.office
контакты и схема проезда
поиск по сайту:  ИСКАТЬ
 
 

Технические статьи

Работа микроконтроллера AVR с алфавитно-цифровым ЖКИ на базе
контроллера HD44780 и совместимых  (KS0066U,  ST7066,  SPLC780  и  т. п.)

В этом примере мы рассмотрим драйвер для  микроконтроллеров семейства AVR  фирмы Atmel, обеспечивающий работу с символьными ЖКИ на базе контроллера  HD44780  и совместимых с ним.  В настоящее время такие ЖКИ производит большое число фирм, например – EASTTOPElectronic Assembly Fordata,  Winstar,  Raystar  и др.
 

Электрические характеристики ЖКИ
(кратко)

Контроллер ЖКИ имеет встроенный тактовый генератор и не требует никаких внешних компонентов.

  Стандартная разводка выводов
1 GND Общий провод
2 Vcc Питание, +5 В
3 Vo Питание драйверов ЖК-панели
4 RS Выбор регистра
5 R/W' Чтение/запись'
6 E Строб записи, в модулях 40*4 – строб первого контроллера
7 .. 14 DB0 .. DB7 Данные  0 .. 7
15   Анод подсветки/E  (не всегда имеется и не всегда подключен, в модулях 40*4 – строб второго контроллера)

При работе на прием порт данных контроллера представляет собой КМОП вход с Р-МОП «подвеской» к  Vcc,  при передаче – КМОП выход,  при  Enable = 0 переходит в Z-состояние.  Линии управления  RS  (выбор регистра – данные/команды')  и  R/W'  (чтение/запись')  представляют собой КМОП входы с Р-МОП «подвеской» к  Vcc Линия управления  Enable (разрешение)  представляют собой КМОП вход.  Входные уровни сигналов – ТТЛ, нагрузочная способность порта данных – 2 ТТЛШ входа.

Потребление по цепи питания контроллера (+5В) – около 0.6 мА (макс.).  ЖКИ, рассчитанные на работу в расширенном температурном диапазоне (от -20 до +70 °С) требуют отрицательного напряжения питания для драйверов индикатора  (вывод  N3).  При его отсутствии  (вывод  N3  соединен с  N1)  либо будет отсутствовать изображение, либо оно будет недостаточно контрастным.

Для формирования отрицательного напряжения питания можно использовать микросхему конвертера, например, типа  7660,  и 2 навесных конденсатора.  Этой же микросхемой можно воспользоваться для совмещения ЖКИ с устройствами, работающими при напряжении питания  3.3 В.  Пользователи устройств  AT STK200/300  могут получить отрицательное напряжение после небольшой доработки своей платы.  Для этого необходимо выпаять потенциометр регулировки контрастности; перерезать печатный проводник, соединяющий с «общим» проводом ближний левый вывод потенциометра, если смотреть на  STK200  (схема со стороны разъема для ЖКИ; запаять потенциометр на место и соединить освободивщийся вывод с 6-м выводом микросхемы формирователя  RS232 (MAX202CPE).  В результате напряжение на выводе  Vo  будет меняться от  +5  до -8 В.

Потребление по цепи питания драйверов  (при  -2 В)  –  0.5 мА  (измерено на одном образце  PC1602LRS-LEH-H).
Дальнейшие подробности смотрите в  фирменной технической документации  на контроллеры  (Hitachi,  HD44780  и др.).

В пределе, монопольного управления требует только линия  Enable.  Это видно, например, из фирменной документации на модули размером  40*4,  где выводы  RSR/W' и  DB0..DB7  двух контроллеров (каждому контроллеру по 2 строки в 20 символов) соединены параллельно на разъеме модуля.  То есть, при низком уровне на линии  E можно производить обмен с другими устройствами, имеющими вход разрешения (перевода выводов в Z-состояние) и подключенными параллельно  DB R/W' и  RS Например, к портам  А  и  С  микроконтроллера  ATmega128ATmega162  или  AT90USB128x  можно параллельно подключить  ЖКИ  и  NAND-Flash  и отобразить их на адресное пространство внешнего ОЗУ.
 

Некоторые программные особенности
контроллеров ЖКИ

С точки зрения программиста контроллер представляет собой:
Регистр управления:  при чтении – содержит флаг готовности контроллера к выполнению новой команды и значение счетчика адреса, при записи – принимает команды;
Регистр данных:  для чтения/записи ОЗУ знакогенератора и видеопамяти.

Информация, записанная в регистр команд, определяет режимы работы контроллера, записанная в регистр данных, перемещается в ОЗУ знакогенератора или видеопамять в соответствии с текущим режимом работы контроллера.

Видеопамять организована как 2 строки по 40 символов, причем адрес начала 2-й строки не  $27,  а  $40  (при последовательном заполнении видеопамяти с автоинкрементом счетчика адреса правильный перевод производится автоматически).

В «окне» дисплея отображается часть видеопамяти соответствующего размера, поэтому, на мой взгляд, есть несколько наиболее удобных в обращении размеров модулей.  Имеется ввиду возможность заполнить видеопамять несколькими сообщениями и показывать требуемое с помощью прокрутки дисплея относительно видеопамяти.  Эти размеры  8*2  и  16*1  (5 сообщений по 16 символов),  20*1  (4 сообщения по 20 символов),  20*2  и  40*1  (2 сообщения по 40 символов).  При этом нобходимо учитывать, что в модулях размера  16*1  первые 8 отображаемых символов принадлежат первой строке видеопамяти, а следующие 8 – второй. Дальнейшие подробности смотрите в фирменной технической документации на контроллеры.
 

Возможные способы связи
микроконтроллеров с ЖКИ

ОТОБРАЖЕНИЕ НА АДРЕСНОЕ ПРОСТРАНСТВО ОЗУ

Данный способ связи микроконтроллеров с ЖКИ, примененный в устройствах  ATSTK 200/300  (схема),  имеет одно достоинство – простоту программной реализации обмена данными (с точки зрения объема исполняемого кода).

Его недостатки:

  • Работа с невысокой тактовой частотой контроллера
    (при использовании цикла доступа к ОЗУ с 1-м тактом ожидания – около 4 МГц макс.,  при уменьшении длительности строба ЖКИ до минимально возможного – около 5.5 МГц макс. с 1-м тактом ожидания и около 2 МГц – без него);
  • Уменьшение скорости обмена с внешним ОЗУ  (при использовании тактов ожидания);
  • Часть адресного пространства внешнего ОЗУ перекрывается внутренним
    (в практической конструкции для предотвращения этого может быть использован инвертор на линии  ADR15);
  • Возможность работы только с микроконтроллерами, допускающими использование внешнего ОЗУ.

Карта ОЗУ в данном случае  (ATSTK 200/300)  имеет вид  (шестнадцатеричные адреса):

В диапазоне адресов от  0000  до  RAMEND  расположено внутреннее ОЗУ, включающее в себя:

  • Регистры общего назначения  (0000001F),
  • Регистры портов ввода/вывода  (0020005F),
  • Собственно внутреннее ОЗУ  (0060RAMEND).

В диапазоне адресов от  RAMEND+1  до  7FFF  расположено внешнее ОЗУ  32К*8  (диапазон адресов внешнего ОЗУ от  0000  до  RAMEND  перекрыт внутренним ОЗУ);

В диапазоне адресов от  8000  до  ВFFF  расположен регистр команд контроллера ЖКИ  (для записи – регистр команд, для чтения – регистр состояния);

В диапазоне адресов от  С000  до  FFFF  расположен регистр данных контроллера ЖКИ.

Временные диаграммы обмена данными имеют следующий вид:

                        _____       _____       _____       _____
СLK                   _/     \_____/     \_____/     \_____/     \_____/
                       T1          T2          T3          T4
ADR15                 __________________________________________________
(выбор ОЗУ'/ЖКИ)      _______________/                              \___

ADR14 (выбор          _______________ _______________________________ __
команды'/данные)      _______________Х_______________________________Х__
                                           _____________
Enable                ____________________/             \_______________
(строб ЖКИ)                               |             |
                                          |______t______|
WR'                   ___________________                   ____________
(строб записи ОЗУ)                       \_________________/
                             _________ ______________________
PORTA                 ------<_________Х______________________>----------
(записываемые данные)        мл. адрес         запись

RD'                   _________________                   ______________
(строб чтения ОЗУ)                     \_________________/

PORTA                        _________       ____________
(считываемые данные)  ------<_________>-----<____________>--------------
                             мл. адрес          чтение

В устройствах  ATSTK 200/300  длительность сигнала  Enable (t)  составляет около  360 нС  (минимально допустимая длительность – 230 нС).
 

ПОДКЛЮЧЕНИЕ К ПОРТАМ ВВОДА/ВЫВОДА МИКРОКОНТРОЛЛЕРА

Данный способ связи микроконтроллеров с ЖКИ имеет следующие достоинства:

Возможность работы с любыми микроконтроллерами на произвольной тактовой частоте.  Для работы постоянно используются только 3 линии порта ввода/вывода  (порт данных контроллера ЖКИ при отсутствии обмена с ЖКИ находится в Z-состоянии и порт управляющего микроконтроллера, через который осуществляется обмен данными, в это время может быть использован по вашему усмотрению).

Его недостатки:

Больший объем исполняемого кода  (может быть уменьшен при использовании внешней схемы, формирующей необходимые временные диаграммы обмена).
 

Описание тестовой программы

Программы (драйверы) служат примерами работы с ЖКИ, подключенными к портам ввода/вывода  DIS.ASM  (листинг)  и отображенными на адресное пространство внешнего ОЗУ  RAM_DIS.ASM  (листинги написаны на ассемблере.

Программы осуществляют инициализацию контроллера ЖКИ, вывод сообщений и прокрутку экрана.  Для продвижения по программам (только для демонстрации) используется внешнее прерывание  N1  (вывод 3 порта D),  для завершения работы – внешнее прерывание  N0  (вывод 2 порта D).  Подпрограммы и блоки данных, расположенные во включаемых файлах  DISPLAY.INC  (листинг)  и  RAM_DIS.INC  (листинг),  рассчитаны на 2-х строчные ЖКИ (на них обеспечивается наилучшая связность выводимой информации).
 

P. S.  Данный пример написан с оглядкой на структуру языков высокого уровня и получился несколько усложненным.  Если разбить код на несколько подпрограмм, то он может быть более компактным (особенно, если не использовать чтение из ЖКИ и работать по тайм-аутам вместо вызова  «bf»).
Следите за изменениями.
 

Литература:

 
 
Автор:  Станислав Лещинский  aka «Точка Опоры»
ООО «МФК Точка Опоры», Москва,  www.fulcrum.ru
04.02.2002

о компании
контакты и схемы проезда
партнерство
    главная        программа поставок    поиск по складу    поддержка    услуги
новости    конференции    рассылки    запросы товаров
 
карта сайта
добавить в избранное
сделать стартовой
 © 1999–2017  FulCrum Corp.
          обратная связь: ic@fulcrum.ru Rambler's Top100 ServiceTop100