Журнал практической электроники Datagor.ru

 

Начало » Микроконтроллеры » Библиотеки кодов

 
Нет подразделов
 
 
Назад Вперед

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


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

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

Визуализация для микроконтроллера. Часть 5. Графика


В предыдущих частях статьи нами более или менее подробно были рассмотрены основные принципы работы четырёх модулей:
1. OLED дисплей на 0.96 дюйма (128×64 пикселей), контроллер SSD1306.
2. TFT дисплей на 1.8 дюйма (128×160 пикселей), контроллер ST7735.
3. TFT дисплей на 2.8 дюйма (240×320 пикселей), контроллер ILI9341.
4. TFT дисплей на 3.5 дюйма (320×480 пикселей), контроллер ILI9481.

Мы выяснили, как их запустить и активизировать один пиксель или, говоря иначе, вывести на дисплей точку.
Осталось сделать завершающий шаг – научится прорисовывать на экране базовые графические элементы (геометрические фигуры, иконки, текстовые символы), чем мы сегодня и займёмся.
 

Визуализация для микроконтроллера. Часть 4. Android

Вообще то я планировал рассказать сегодня про дисплей на базе ILI9481. Однако, он настолько похож на своего собрата из предыдущей части статьи, что, если вы сравните даташиты ILI9341 и ILI9481, то обнаружите совпадение даже числовых значений всех основных команд. Кстати, то же самое можно сказать и о контроллере ILI9488.

Поэтому я решил не утомлять читателя практически полным дублированием информации и лишь выложить в архив код: с помощью упомянутой статьи вы легко запустите оба дисплея.

Освободившееся же время можно потратить с большей пользой и рассмотреть ещё один вариант визуализации для микроконтроллера – Android.
 

Визуализация для микроконтроллера. Часть 3. TFT дисплей 2.8" (240х320) на ILI9341

Битва за урожай закончена, можно продолжить повествование.



Модуль, который мы рассмотрим сегодня, сочетает в себе свойства двух линеек подобных устройств. С одной стороны, размеры его дисплея всё ещё позволяют использовать протокол SPI без существенного ущерба для картинки на экране. В этом он похож на модули с небольшим дисплеем (к примеру, на базе контроллера ILI9163 или рассмотренного в предыдущей части статьи ST7735). Кстати, из предлагаемых на AliExpress и eBay модулей на базе ILI9341 с протоколом SPI – значительное большинство.

С другой стороны, не редки реализации этого модуля на протоколе 8080, как 8-ми так и 16-битном, что роднит его со второй группой, в которую входит и модуль на базе контроллера ILI9481, о котором мы поговорим в следующей части статьи.
Помимо этого, принцип работы и система команд ILI9341 и контроллеров из вышеуказанных групп настолько схожи (иногда – вплоть до совпадения кодов команд), что, разобравшись, как работает этот модуль, вы без особых усилий сможете запустить и многие другие.
 

Программная реализация протокола SPI на AVR в CodeVisionAVR

Всем коллегам и согражданам привет!
Увлёкся я изучением протоколов. Про реализацию протокола I2C у меня уже была статья на Датагоре. Сегодня поговорим о протоколе SPI. Сразу к делу. Заглянем в Wiki за ёмким определением.
SPI (англ. Serial Peripheral Interface, SPI bus — последовательный периферийный интерфейс, шина SPI) — последовательный синхронный стандарт передачи данных в режиме полного дуплекса, предназначенный для обеспечения простого и недорогого высокоскоростного сопряжения микроконтроллеров и периферии. SPI также иногда называют четырёхпроводным (англ. four-wire) интерфейсом.

В отличие от стандартного последовательного порта (англ. standard serial port), SPI является синхронным интерфейсом, в котором любая передача синхронизирована с общим тактовым сигналом, генерируемым ведущим устройством (процессором). Принимающая (ведомая) периферия синхронизирует получение битовой последовательности с тактовым сигналом. К одному последовательному периферийному интерфейсу ведущего устройства-микросхемы может присоединяться несколько микросхем. Ведущее устройство выбирает ведомое для передачи, активируя сигнал «выбор кристалла» (англ. chip select) на ведомой микросхеме. Периферия, не выбранная процессором, не принимает участия в передаче по SPI.
В реализации протокола SPI используют четыре цифровых линии для передачи сигналов (в скобках даны вариации обозначений):

CLK (CLOCK, SCLK) — по этой линии передаются тактовые импульсы для ведомых устройств.
DO (MISO, SDO, DO, DOUT, SO) — вход данных МК, эта линия нужна для приема данных от периферии.
DI (MOSI, SDI, DI, DIN, SI) — выход данных МК, передаём данные к ведомому устройству.
CS (SS, nCS, CS, CSB, CSN) — выбор микросхемы, выбор ведомого, в народе «чипселект».
 

Визуализация для микроконтроллера. Часть 2. TFT дисплей 1.8" (128х160) на ST7735

Следующий из рассматриваемых нами модулей обладает полноцветным дисплеем под управлением контроллера ST7735.

• Размеры модуля: 35 мм х 57 мм х 7 мм.
• Разрешение: 128×160 пикселей.
• Цветность: 65 тысяч цветов в формате RGB 5-6-5.
• Напряжение питания: 3.3В – 5В.
• Протокол обмена данными: SPI.
• Встроенный разъём для SD-карты.

Рассмотрим модуль на ST7735 поближе и разберемся с программированием под него.
 

Программная реализация протокола I2C на AVR в CodeVisionAVR

Программная реализация протокола I2C на AVR в CodeVisionAVR Пару лет назад, изучая Atmega8, я захотел программно реализовать работу с устройствами на шине i2c, но как-то не задалось. С аппаратным i2c, напротив, не было никаких проблем и затея как-то забылась.

Но недавно я прочитал статью на Датагоре «Несколько функций для програмной реализации протокола I2C на AVR», в которой автор выложил свой пример программной реализации протокола под IAR. Я в тот же миг переписал всё в CodeVision, но, к сожалению, у меня опять не заработало как надо.
Решил набраться терпения и разобраться сам.
 

Визуализация для микроконтроллера. Часть 1. OLED дисплей 0.96" (128х64) на SSD1306

Добрый день, друзья!
Эта статья открывает цикл, посвящённый средствам визуального отображения информации.
Нами будут рассмотрены модули, в состав которых входят следующие дисплеи и управляющие контроллеры:
1. OLED дисплей на 0.96 дюйма (128×64 пикселей), контроллер SSD1306.
2. TFT дисплей на 1.8 дюйма (128×160 пикселей), контроллер ST7735.
3. TFT дисплей на 2.8 дюйма (240×320 пикселей), контроллер ILI9341.
4. TFT дисплей на 3.5 дюйма (320×480 пикселей), контроллер ILI9481.

Весь материал разбит на пять частей, в четырёх из которых изложена информация по модулям (технические параметры, подключение и инициализация, вывод на дисплей базового графического элемента — точки), а пятая содержит единую графическую библиотеку для описанных дисплеев.

Сама идея единой библиотеки и большинство приёмов её реализации позаимствованы из библиотеки Adafruit_GFX, а также отдельных работ её авторов — Лимор Фрид (Limor Fried) и Кевина Таунсенда (Kevin Townsend).
Моя скромная заслуга заключается в переносе кода с С++ на С, написании отдельных функций и выборочном переводе даташитов с целью более детального освещения особенностей работы модулей.

OLED дисплей на 0.96 дюйма (128×64 пикселей), контроллер SSD1306

Тема сегодняшней нашей беседы – вот такой модуль:

13.09.16 изменил Datagor. Добавлен архив с переводом таблиц команд.

 

Трансивер 2,4 ГГц Nordic Semiconductor nRF24L01. Перевод таблиц даташита, пояснения и коды для организации сети



Привет, датагорцы!
Выкладываю перевод таблиц из спецификации nRF24L01+, файл с пояснениями и исходники кодов, необходимые для организации радиосвязи между двумя трансиверами nRF24L01+.
 

Машинка с пропорциональным управлением по Bluetooth из-под Android

Не будем покупать плохие игрушки у Китайцев, а купим у них дешевый конструктор-шасси, несколько модулей и приложим руки!


Вот что у меня получилось в итоге: проходимое шасси, управляемое — ТА-ДА!!! — с моего смартфона на Андроиде.

«Я и прямо, я и боком,
     С поворотом, и с прискоком,
         И с разбега, и на месте,
               И двумя ногами вместе…»

Сегодня мы соберём забавную машинку с дистанционным управлением по Bluetooth. Исходники программы управления под Android в комплекте.
 
Назад Вперед