LCD модуль WG12232E с TWI интерфейсом

Схема проекта

Проект выполнен на основе LCD-модуля WG12232E и микроконтроллера ATmega32P. Назначение проекта - использование LCD модуля для вывода отладочных сообщений при разработке программ для микроконтроллеров.

Микроконтроллер работает на частоте 16 МГц. В память EEPROM микроконтроллера записан ASCII-знакогенератор с кодами символов в диапазоне 32..127.

На выводе OC1B микроконтроллер генерирует импульсы с частотой 2 КГц, подаваемые на пин CL модуля LCD.

Для программирования микроконтроллера в схеме предусмотрен ICSP-интерфейс, не совместимый с Arduino, поскольку включает в себя токоограничительные резисторы из схемы кабеля parallel programmer.

Так как LCD-модуль разделяет порт B микроконтроллера с интерфейсом программирования ICSP, то для того, чтобы микроконтроллер можно было перепрограммировать, не отключая каждый раз при этом LCD, в схеме применена микросхема CD4066BE, отключающая выводы LCD от микроконтроллера при низком уровне сигнала nRESET.

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

Схема проекта выполнена в программе Eagle PCB.

Программа микроконтроллера

Управляющая программа написана на языке программирования С для компилятора AVR-GCC.

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

После приёма очередного сообщения, основный цикл программы выводит сообщение на экран LCD-модуля. Рендеринг информации для повышения быстродействия алгоритмов осуществляется в памяти RAM микроконтроллера, затем содержимое видеобуфера передаётся в LCD-модуль.

Программа разработана в IDE KDevelop3. Makefile содержит цели для программирования микроконтроллера при помощи утилиты AVRDUDE посредством кабеля parallel programmer.

Скомпилированные прошивки в формате Intel HEX также включены в архив с кодом программы.

При программировании микроконтроллера с помощью AVRDUDE, сначала следует запрограммировать Fuse-биты таким образом, чтобы при программировании Flash не стиралась память EEPROM. После этого запрограммировать память EEPROM (make install-data), затем память Flash (make install).

Файлы

Принципиальная схема в формате EaglePCB, в формате PDF.

Код программы и прошивки для flash и EEPROM.

Фотографии

Ревизии

Rev.4

Изменена схема включения регулятора контрастности.

Rev. 3

Исправлен номинал подтягивающих резисторов R3 и R4.

Rev. 2

Исправлена схема включения IC4.

Автор: Андрей Шаройко <vanyamboe@gmail.com>