Подключение графических дисплеев 122х32
на основе кристалла SED1520
к
микроконтроллерам AVR
В
представленной ниже статье представлен вариант подключения графических дисплеев
(в том числе производства российской фирмы МЭЛТ) к микроконтроллерам Atmel AVR.
Схема подключения представлена на рис.1
Рис.1. Схема подключения дисплея
В качестве управляющего МК (микроконтроллера) может быть применен любой МК AVR, имеющий один свободный 8-и разрядный порт для шины данных между МК и ЖКИ(графическим дисплеем) и пять свободных линий портов для формирования линий управления ЖКИ. Схема подразумевает как запись данных в ЖКИ, так и чтение данных из ЖКИ в МК.
На инверторе DD2:2 собран дешифратор выборки кристалла ЖКИ. При лог.0 на выводе ADC4/PA4 выбирается левая половина дисплея ЖКИ, при лог.1 – правая. Если в Вашей схеме нет свободного инвертора, то возможно применить инвертор на транзисторе, или вообще отказаться от инвертора, задействовав для CS2 свободную линию ввода-вывода МК.
На инверторе DD2:1, диодах VD1, VD2 и конденсаторах С3, С6 собран преобразователь отрицательного напряжения, для питания драйвера ЖКИ. Схема тактируется от вывода сравнения внутреннего счетчика МК – ТС2 , который так же вырабатывает тактовые импульсы для ЖКИ. Записывая в регистр совпадения счетчика произвольное число, можно менять длительность положительного импульса тактового сигнала. Тем самым изменяется напряжение на конденсаторе С6, что приводит к изменению контрастности дисплея ЖКИ.
Если драйвер ЖКИ питается от внешнего источника, то данную схему можно исключить.
Если ЖКИ имеет встроенную схему тактирования, а в качестве регулятора контрастности Вы хотите использовать данную схему, то можно исключить инвертор DD2:1.
Автором был написан драйвер ЖКИ на языке С, который может выполнять следующие функции:
1. Начальная инициализация дисплея;
2. Очистка произвольной области экрана;
3. Закраска произвольной области экрана;
4. Инвертирование произвольной области экрана;
5. Вывод картинки в произвольную область экрана;
6. Скроллинг произвольной области экрана (вверх, вниз, влево, вправо) с очисткой(закраской) освобождающейся области;
7. Скроллинг произвольной области экрана (вверх, вниз, влево, вправо) с заполнением рисунком освобождающейся области;
8. Циклический скроллинг произвольной области экрана (вверх, вниз, влево, вправо);
9. Вывод текста в произвольную область экрана;
10. Эффект бегущей строки в произвольной области экрана;
11. Рисование линий по алгоритму Брезенхема;
12. Закраска (очистка) пикселя в произвольном месте экрана.
Драйвер может быть адаптирован под любое сочетание управляющих линий и порта данных для ЖКИ, так как все линии определены через директивы #define. Размер занимаемой памяти программ драйвера – чуть менее 2,8 килобайт (не слов!!!), необходимый размер оперативной памяти МК – 600 байт. Т.е драйвер можно применять в МК со встроенной SRAM не менее 1024 байт. Возможно и применение в МК с меньшим объемом памяти. При работе функций 1 – 4, 10 – 11, драйвер практически не использует SRAM, за исключением нескольких глобальных переменных для своей работы. В остальных функциях драйвер использует статический буфер для чтения данных из ЖКИ, размер буфера зависит от области, с которой работает основная программа и его не сложно подсчитать самому. Буфер используется только на время отработки функций драйвера, в остальное время работы МК буфер может быть использован под нужды основной программы.
Некоторые данные по скорости работы (для частоты 16 МГц):
1. Очистка всего экрана – 1,7 мс;
2. Закраска всего экрана – 1,86 мс;
3. Инвертирование всего экрана – 1,89 мс
4. Скроллинг всего экрана по горизонтали на один шаг – 2,68 мс (шаг – произвольное количество пикселей);
5. Скроллинг всего экрана по вертикали на один шаг – 3,92 мс;
6. Рисование линии от верхнего левого угла до правого нижнего – 1,8 мс.
Драйвер написан на компиляторe IAR Embedded Workbench for AVR v.4.10B, при этом его можно настроить под вариант, где константы (таблицы знакогенераторов, рисунки и т.п.) будут хранятся в памяти программ AVR, или вариант где константы хранятся во внешнем SPI EEPROM типа 25ххх, стандартно подключенным через SPI интерфейс AVR.
Файлы для скачивания:
Схема на рис.1 в формате PCAD2001
Архив с драйвером запаролен. Архив выложен только для того, что бы Вы могли убедиться что скачиваете не кота в мешке. Для получения пароля пишите на мыло. Пароль стоит 100WMR в валюте Web Money.