Начало » Микроконтроллеры » Библиотеки кодов » Визуализация для микроконтроллера. Часть 6. LCD дисплей 1.6" (130×130) на SSD1283A

 
 
 

Визуализация для микроконтроллера. Часть 6. LCD дисплей 1.6" (130×130) на SSD1283A

📆06.11.19 🙋erbol 👀569 💬8

Всем привет! hello
Недавно возникла необходимость замены TFT-дисплея на базе контроллера st7735, описанного мною в одной из предыдущих статей серии, на LCD-дисплей под управлением контроллера ssd1283a.

Львиная доля времени ушла не на программирование, а на поиск информации об этом дисплее в сети. Чтобы избавить вас, уважаемые датагорцы, от неоправданных потерь времени, решил поделиться накопленной информацией и библиотекой, написанной на языке Си.

Общая информация о дисплейном модуле на SSD1283A

• Размеры модуля: 54 мм × 36 мм × 7 мм.
• Разрешение: 130×130 пикселей.
• Цветность: 256 тысяч цветов в формате RGB 5-6-5.
• Напряжение питания: 5 В.
• Протокол обмена данными: SPI.

Назначение выводов дисплейного модуля на SSD1283A

• SCK, MOSI — линии протокола SPI. Альтернативные названия — DO/DI, SCL/SDA.
• CS — выбор чипа. Активный уровень низкий. Для экономии можно соединить этот вывод с землёй.
• A0/DC — выбор типа записываемого в модуль слова — данные или команда.
• RESET — аппаратный сброс. Этот вывод можно соединить с выводом VCC.
• VCC, GND — линии питания контроллера.
• LED — подсветка дисплея.
Поскольку на оборотной стороне модуля присутствует преобразователь 5В → 3.3 В, можно соединить между собой выводы LED и VCC, если нет необходимости в программном управлении подсветкой.

Управление модулем на SSD1283A

Обмен информацией с модулем производится посредством протокола SPI. Для удобства я выбрал программный вариант интерфейса.
Управление дисплеем осуществляется посредством четырёх функций:

Функция записи команды

void lcdWriteCommand (uint8_t command)
{
   DC_LOW;
   spiWriteByte (command);
}


Функция записи данных в 8-битном формате

void lcdWriteData (uint8_t data)
{
   DC_HIGH;
   spiWriteByte (data);
}


Функция записи данных в 16-битном формате

void lcdWriteData16(uint16_t data)
{
   DC_HIGH;
   spiWriteByte (data ≫ 8);
   spiWriteByte (data);
}


Функция записи в определённый регистр данных в 16-битном формате

void lcdWriteReg (uint16_t command, uint16_t data)
{
   DC_LOW;
   spiWriteByte (command);
   DC_HIGH;
   spiWriteByte (data ≫ 8);
   spiWriteByte (data);
}


На базе этих основных функций написаны дополнительные функции.

Функция установки ориентации дисплея

lcdSetRotation (uint8_t rotation) — функция установки ориентации дисплея, где параметр rotation может принимать значения от 0 до 3, включительно.

Функция определения рабочей области дисплея

lcdSetWindowAddress (int16_t x1, int16_t y1, int16_t x2, int16_t y2) — функция определения рабочей области дисплея, где параметры задают начало и конец области по соответствующим координатам. В частности эта функция используется для прорисовки точки и закрашивания дисплея.

Функция закрашивания дисплея

lcdClearDisplay (int16_t color) — функция закрашивания дисплея заданным цветом.

Функция прорисовки точки

drawPixel (int16_t x, int16_t y, int16_t color) — функция прорисовки точки с заданными координатами и цветом.

Функция инициализации дисплея

lcdInit (void) — функция инициализации дисплея.

Графическая библиотека

Далее подключается графическая библиотека, о которой я писал в статье «Визуализация для микроконтроллера. Часть 5. Графика».

В заключение привожу короткое видео с демонстрацией работы дисплея ssd1283a.


Файлы

Исходный код и даташит контроллера ssd1283a выложены в архив.
datagor_ru-ssd1283-project.7z 🕗 06/11/19 ⚖️ 380,94 Kb ⇣ 11
ssd1283a-datasheet.7z 🕗 06/11/19 ⚖️ 645,9 Kb ⇣ 7
Всем удачи! smile

Полезняхи

👍 Модуль 1.6" SPI LCD Display Module на SSD1283A
👍 Паяльники на любой вкус
👍 Отличные платы для прототипирования конструкций
Ербол (erbol)
Актобе, Казахстан
Профиль erbol
Мне 50 лет. Родился и вырос в г. Актюбинск (ныне - Актобе), Казахстан. Женат, воспитываю четверых прекрасных детей.

С программированием и электроникой имею может и не отдаленные, но весьма эпизодические отношения: в далекие и бурные 90-е годы аж прошлого века посчастливилось участвовать в автоматизации экспериментальной установки с использованием микропроцессорного комплекта КР580.

А пару лет назад мои сорванцы вдруг заинтересовались микроконтроллерами. Пришлось из дальних уголков памяти вытаскивать свои старые познания и стряхивать с них пыль.
 

Читательское голосование

Нравится

Статью одобрили 23 читателя.

Для участия в голосовании зарегистрируйтесь и войдите на сайт с вашими логином и паролем.
 

Поделись с друзьями!

 

 

Связанные материалы

 

Схема на Датагоре. Новая статья Визуализация для микроконтроллера. Часть 4. Android... Вообще то я планировал рассказать сегодня про дисплей на базе ILI9481. Однако, он настолько похож...
Схема на Датагоре. Новая статья Метеостанция на Arduino и ИВЛ1-48/5×7Л из дисплейного модуля Системы Автоматического Ведения Поезда (САВП, САВПЭ)... Во время «великого переселения» нашей бригады из большого кабинета в кабинет более скромных...
Схема на Датагоре. Новая статья Визуализация для микроконтроллера. Часть 3. TFT дисплей 2.8" (240х320) на ILI9341... Битва за урожай закончена, можно продолжить повествование. Полноцветный TFT-дисплей 240×320 ILI9341...
Схема на Датагоре. Новая статья Программная реализация протокола SPI на AVR в CodeVisionAVR... Всем коллегам и согражданам привет! Увлёкся я изучением протоколов. Про реализацию протокола I2C у...
Схема на Датагоре. Новая статья Визуализация для микроконтроллера. Часть 2. TFT дисплей 1.8" (128х160) на ST7735... Следующий из рассматриваемых нами модулей обладает полноцветным дисплеем под управлением...
Схема на Датагоре. Новая статья Визуализация для микроконтроллера. Часть 1. OLED дисплей 0.96" (128х64) на SSD1306... Добрый день, друзья! Эта статья открывает цикл, посвящённый средствам визуального отображения...
Схема на Датагоре. Новая статья Беспроводной канал связи 2,4 ГГц на базе трансивера nRF24L01+ от Nordic Semiconductor. Часть 2... Продолжаем разговор. Как-то раз мы с пацанами решили соединить радио-модуль «nRF24L01+» вот с таким...
Схема на Датагоре. Новая статья Беспроводной канал связи 2,4 ГГц на базе трансивера nRF24L01+ от Nordic Semiconductor. Часть 1... Доброго вам дня, уважаемые граждане и гости Датагор.ру - этого замечательного сообщества увлечённых...
Схема на Датагоре. Новая статья Предварительный усилитель на аудиопроцессоре TDA7318 (TDA7313) и Arduino. Часть 2... Проект в сборе. Сборка займет у вас примерно 15 минут. В первой части статьи мы подробно...
Схема на Датагоре. Новая статья Вторая жизнь лампового радиоприемника Philips 592LN (Голландия, 1947). Часть 5... В этой части статьи речь пойдет: — о предварительном усилителе и его питании, — о питании модуля ФМ...
Схема на Датагоре. Новая статья Умный дом. Концепция... Что мы имеем в виду, называя дом «умным»? На самом деле, у каждого свое представление об этой...
Схема на Датагоре. Новая статья Часы с GPS-синхронизацией времени и винтажными индикаторами ИН-12. Наш вариант Nixie Tube Clock... Не думал, что спустя много лет я вернусь к часам на газоразрядных индикаторах. В конце 70-х я...
 

Общаемся по статье 💬

«Визуализация для микроконтроллера. Часть 6. LCD дисплей 1.6" (130×130) на SSD1283A»

Комментарии, вопросы, ответы, дополнения, отзывы

 

<

Datagor

Игорь Котов Читатель Датагора
  • Главный редактор
Комментарий # 1 от 06-11-19, 10:48.
Ответить
  • С нами с 26.02.2006
  • 2 243 комментария
  • 273 публикации
 
Ув. Ербол! hello
Благодарю за очередное пополнение нашей Библиотеки кодов и продолжение вашей серии!

<

erbol

Ербол Читатель Датагора
  • Гражданин
Комментарий # 2 от 06-11-19, 15:15.
Ответить
  • С нами с 11.12.2014
  • 84 комментария
  • 10 публикаций
 
Спасибо, Игорь! smile

<

dedmazay

Алексей Ермаков Читатель Датагора
  • Гражданин
Комментарий # 3 от 07-11-19, 23:17.
Ответить
  • С нами с 8.10.2009
  • 42 комментария
  • 5 публикаций
 
Круто, молодец 👍

<

erbol

Ербол Читатель Датагора
  • Гражданин
Комментарий # 4 от 08-11-19, 4:51.
Ответить
  • С нами с 11.12.2014
  • 84 комментария
  • 10 публикаций
 
Спасибо! smile

<

Sergiy_83

Сергей Читатель Датагора
  • Гражданин
Комментарий # 5 от 08-11-19, 20:27.
Ответить
  • С нами с 16.10.2012
  • 75 комментариев
  • 7 публикаций
 
Спосибо erbol. Рабочая функция инициализации дисплея всегда бесценна.
А что такое случилось что дисплей пришлось поменять?

Небольшие рекомендации по повышению быстродействия:
drawVerticalLine, drawVerticalLine, fillRectangle, printChar рисовать по пикселям, это очень медленно. Или, как говорят, дорого. Так как каждый пиксель это задание рабочей области: вызов lcdSetWindowAddress.

Более быстрый подход, это как в функции lcdClearDisplay:
lcdSetWindowAddress //Один раз установили рабочую область
for...
lcdWriteData16...// заполнили ее данными

Этот подход применим к любым прямоугольным фигурам в том числе и картинкам: буковка (если не важен фон) или картинка. Попиксельная прорисовка это: косые линии, окружности и т.д.

<

erbol

Ербол Читатель Датагора
  • Гражданин
Комментарий # 6 от 09-11-19, 4:03.
Ответить
  • С нами с 11.12.2014
  • 84 комментария
  • 10 публикаций
 
Спасибо, Сергей, за рекомендации: очень разумно и полезно! smile
Решение о замене дисплея принимал заказчик: его не устраивало качество картинки st7735 при попадании солнечного света.

<

galrad

Радик Читатель Датагора
  • Гражданин
Комментарий # 7 от 11-11-19, 20:47.
Ответить
  • С нами с 23.08.2011
  • 96 комментариев
  • 12 публикаций
 
Erbol, Спасибо! Уже давненько "валяется" дисплей с контроллером SSD1283A, ни как не мог найти полноценную библиотеку, а "курить" даташит - просто нет времени... И готовая библиотека - это просто подарок, наконец-то "затолкаю" его в разработанный цифровой pH-метр, и будет законченная разработка для экспресс диагностики... Спасибо! thumbup

<

erbol

Ербол Читатель Датагора
  • Гражданин
Комментарий # 8 от 12-11-19, 2:48.
Ответить
  • С нами с 11.12.2014
  • 84 комментария
  • 10 публикаций
 
Цитата galrad
  Erbol, Спасибо! Уже давненько "валяется" дисплей с контроллером SSD1283A, ни как не мог найти полноценную библиотеку, а "курить" даташит - просто нет времени... Спасибо! thumbup

Спасибо, Радик!
Рад, что работа принесла кому-то пользуsmile

Добавить комментарий, вопрос, отзыв 💬

Камрады, будьте корректны и вежливы, соблюдайте правила!


Налетай! Паяльники, станции, жала с доставкой

Офигенная миниатюрная рация на литии BaoFeng UV-5R, 5W, 5-15 км!

Тестер универсальный LCR-TC1 для транзисторов, конденсаторов, ESR, MOSFET и т.д.
  • smilelolhellowinkscepticthumbupbored
    crazybadcryingsadirefulsickstraight
    ballooncakegooddrinksmailbombsun
    nightrainstarscolddashpartyhandshake
    musicnegativenowordspardonshoksleepunknown
    wackoyawnsainthelmethashsmokingwhew


Скопируйте текст вашего комментария на случай неверного ответа на контрольный вопрос.