На контроллере ILI9325 выпускаются дисплеи размером2,4 и 2,8 дюйма, разрешение 240х320.
Интерфейс параллельный, 8- и 16-бит, что позволяет довольно быстро отображать информацию.
Для управления будем использовать выводы
WR (строб записи данных)
RS (D/C- выбор команда/данные).
Чтение из дисплея не используем, поэтому вывод RDподключаем к плюсу.
Вывод CS (выбор кристалла) также не
используем, поэтому его заземляем.
При желании использовать шину данных для обмена еще и с другими
периферийными устройствами (например клавиатурой, дополнительным дисплеем), то
можно выводом CSосуществлять
выбор дисплея.
Разъем стандартный большой, рассчитан на подключение к платам Arduino.
Библиотека написана с применение режима Config Submode = New, что упростило подключение библиотеки.
Кроме
того, в этом случае неиспользуемые подпрограммы не компилируются, нет
необходимости в указании "Call"
для вызова подпрограмм и скобок для параметров.
Подробнее в тестовых примерах.
Для 8-битного интерфейса применяем вариант ILI9325 library.inc.
Для 16-битного - вариант ILI9325 16bitlibrary.inc.
Для конвертирования картинок в 16-битный
BIN-файл можно воспользоваться утилитами Image2Lcd или Pic2Bin (в архиве). В SPI-Flash картинки можно записать программатором BlackCat.
При написании библиотеки особое внимание уделялось скорости ее работы (с
некоторым ущербом для ее размера), т.к. разрешение 240х320 довольно великодля 8-разрядного МК.
На видео тестовый пример
из архива, работающий на частоте 8МГц. При 16МГц или 32МГц (для AtXmega) скорость будет
соответственно в 2 и 4 раза выше.
Видео с 8-битным интерфейсом:
Видео с 16-битным интерфейсом:
Библиотека работает только с самим дисплеем.
Для Тачскрина и Кардридера потребуются отдельные библиотеки.
MrShilov, 2014.
Категория: Мои статьи | Добавил: bascom (01.02.2014)
| Автор: Radan
Доброе время суток! У меня проблемы с этим дисплеем: Чтобы дисплей завелся приходится несколько раз дергать питание, после запуска успешно работает некоторое время (3-20 секунд) и отрубается- экран очищается, приобретает сероватый оттенок. Чтобы запустить его по новой опять же надо передернуть несколько раз питание. Контроллер Atmega1284 с внешним кварцем на 14Мц. Дисплей и контроллер запитаны от 4 вольт (знаю что много) конденсаторы по питанию дисплея и контроллера установлены, длина проводов между дисплеем и контроллером примерно 7см.. Подскажите- в какую сторону копать? Вот видео этого глюка:
Всем привет! Подскажите пожалуйста где найти библиотеку для ILI9327. Китайцы делают симпатичный дисплей 3.5 дюйма но не могу пока найти как его в Баскоме заставить работать. http://ru.aliexpress.com/item/3-5-inch-TFT-Touch-LCD-Screen-Display-Module-For-Arduino-UNO-R3-HIGH-QUALITY-Free /1786048346.html
Уважаемый 7kestrel! Если пройдете по ссылке http://avrproject.ru/publ/chasy_budilnik_po_motivam_quot_neobychnykh_chasov_quot/1-1-0-156 то сможете обнаружить подпрограммы для дисплея с контроллером S6D1121, правда, там они не не оформлены отдельной библиотекой
Все - таки вопрос с инициализацией SSD1289 остался. В вашем коде совсем немного команд инициализации, все остальные установки контроллера дисплея остаются по умолчанию?
Первый дисплей 8-битный, второй - 16-битный. Переключение не поддерживается. Для тачскрина по прерыванию выставляем флаг: Touch_int: Touch_flag = 1 Return В основном цикле проверяем его и по результату опрашиваем. Здесь установки и подпрограмма: http://rusfolder.com/39807016
Ну вот у Вас приведены два видео. Одно показывает работу в 8 - и битном режиме, второе в 16 - и битном режиме. Разрядность шины выбирается контроллером дисплея. Отсюда вопрос - что на плате дисплея надо соединить (или разомкнуть), чтобы работать с дисплеем в 8 или 16 битном режиме? И еще вопрос (пока сам не проверил) - при инициализации дисплея с контроллером SSD1289 Вы используете ну очень уж укороченную процедуру этой самой инициализации. Достаточно этих 7 или (сейчас не помню) 10 команд? Ну, и напоследок, для тачскрина для такой ориентации дисплея как у Вас, не разрабатывали программу? Вдруг - да! В таком случае, может быть, поделитесь кодом?