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).
Фотографии
Ревизии
Rev.4
Изменена схема включения регулятора контрастности.
Rev. 3
Исправлен номинал подтягивающих резисторов R3 и R4.
Rev. 2
Исправлена схема включения IC4.
См. также
Автор: Андрей Шаройко <vanyamboe@gmail.com>