В начало | Зарегистрироваться | Заказать наши киты почтой
 
 
 
 

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

📆6 ноября 2019   ✒️erbol   🔎7.779   💬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  380.94 Kb ⇣ 87
🎁ssd1283a-datasheet.7z  645.9 Kb ⇣ 74
Всем удачи! smile

Полезняхи

? Модуль 1.6" SPI LCD Display Module на SSD1283A
? Паяльники на любой вкус
? Отличные платы для прототипирования конструкций

Камрад, рассмотри датагорские рекомендации

🌼 Полезные и проверенные железяки, можно брать

Опробовано в лаборатории редакции или читателями.




 

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

Нравится

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

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

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

 

 

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

 

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

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

 

<
Читатель Датагора

Datagor

<
Читатель Датагора

erbol

<
Читатель Датагора

dedmazay

<
Читатель Датагора

Sergiy_83

<
Читатель Датагора

erbol

<
Читатель Датагора

galrad

<
Читатель Датагора

erbol

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

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

  • Смайлы и люди
    Животные и природа
    Еда и напитки
    Активность
    Путешествия и места
    Предметы
    Символы
    Флаги
 
 
В начало | Зарегистрироваться | Заказать наши киты почтой