IPS displays on ST7789 and ST7735 controllers
Vložit
- čas přidán 15. 10. 2018
- Become a sponsor: / @rnadyrshin
VK group: electronics_in_camera
Instagram: / electronics_in_focus
Display links:
1) 240x240 (with board): ali.ski/v-Y-dz
2) 240x240 (without board): ali.ski/gBQ-p
3) 160x80 (with board): ali.ski/JA4FI
4) 160x80 (without board): ali.ski/AYSoAo
Demo sourse code for STM32 (for both screens, see readme.txt): bitbucket.org/nadyrshin_ryu/s... - Věda a technologie
ОООЧЕНЬ КРУТО )) Очень понравилось )) Спасибо ) Прикольно было бы сделать с таким дисплейчиком часики )
Спасибо. Как всегда, качественный обзор.
good and useful video. Please, i need to know if the control pins of the square display (240 x 240) works with 3.3v or 5v. Thanks
Круто! Новый обзор! :)
шикарно, давно их видел но не было информации насколько они ips
Спасибо. Качественный контент, дисплеи действительно неплохи. Но перевод 240x240 дисплея на алиэкспрессе конечно замечательный - "1,3 дюймов ips OLED..."
Огромное спасибо за обзор.
Спасибо за труд!
спасибо за обзор.
цена действительно приятная, будем иметь ввиду.
За свою цену дисплей просто супер 12/10.
молодец!!! хороший и полезный обзор!!!!!
заверните мне каждого по два, лайк
Руслан, спасибо за информацию. В своих поделках использовал OLED. Оказывается примерно за ту же цену есть полноцветные IPS. Спасибо.
Отлично!
Интересно, а есть ли в продаже разъёмы для таких экранчиков? Чтобы не запаивать на плату экран, а подключать шлейф в разъём.
В каком IDE Вы компилировали проект демки? Подойдет ли для этого EmBitz? Буду признателен, если выложите hex или bin демки. Спасибо!
я тебе лайк ставлю, через день захожу - нет лайка, и так уже пару месяцев )))
You are the best comrade! Thanks!
В библиотеке при выводе строк поверх друг друга (чтобы не очищать весь экран, а только то что меняется) с шрифтом более 6х8 не корректно затираются предыдущие символы. При использовании функции с закраской фона он оставляет часть символа, если он был больше по размерам, чем новый, записываемый поверх.
а есть точно такие же, только с touch ?
Подскажите, как сделать на основе этих дисплеев обычную переключалку картинок с Флеши (фоторамку). Понимаю что тут это уже сделано но в архиве куча файлов, что куда?))) Закупитm и спаять для мне не проблема, но вот программно согласовать все это сложно.
Добрый день.
1. Какой ток потребления большого дисплея в режимах : стандартном и энергосберегающем?
2. Хорошо ли видно в солнечный день?
Вот это видео подробнее, с подробным подключение экранов.Собираем робота на двух дисплеях.Ваша помощь была бы кстати.
а можно ли подключить флешку и просматривать фотографии или большие текста?
Очень хорошие видео!, Самое интересное и исчерпывающе, и без воды... Уже раз 5! вы мне попадались, всегда ЛАЙК!. Подписался!
Не портите свой стиль!, добавляйте хорошее и взвешенное в форму подачи, Отличный канал! :)
Спасибо!
Хотелось бы так же краткий обзор кода использовавшийся в обзоре.
К каким пинам ардуино подключить дисплей 240 *240?
где и как их можно использовать ?
а можно ли на фоне картинки выводить текст?
Спасибо за видео
Отличный обзор и проделанная работа! Только один вопрос, почему не HAL?
Просто исторически сложилось так, что пишу свой HAL
У меня на дисплее 80*160 справа и внизу цветные полосы! Изображение смещено влево (срезается часть символов). Библиотеки от Adafruit самые последние. Подскажите как исправить!?
существует ли какой-то сервис подбора дисплеев по физическим размерам?
есть корпус на DIN рейку, с нестандартным окном под индикацию 70x30mm, не один из ходовых символьных LCD не подходит, закрывать или пилить не хочется
Ну хоть где то я услышал описание протокола, вместо бестолковых скечеи. 👍
А можно ли как нибудь запустить так дисплей от того же айфона к примеру или от гэлэкси 8го?
Супер обзор
Этот день настал))) нормальные матрицы доступны самодельщикам))
Еще бы габарит больше.
@@user-ot5js1gy5j согласен) очень полезная штука)) значит в будущем и крупные матрицы будут))
а мне как раз для одного проекта нужно было замутить кнопки-дисплейчики)) и размер как раз)) пару десятков заказать надо будет))
Вообще уже есть. Например у меня на столе лежит 3.5" 320x480 TFT IPS на контроллере ILI9488, с ёмкостным мультитач сенсором. На али стоит порядка $20.
Такой? - www.ebay.com/itm/3-5-TFT-LCD-for-LG-IPS-ILI9488-Screen-Module-480x320-with-touch-/122642489236
Что нормального то? Через SPI прорисовка как черепаха, да и через параллельный с ардуино не сильно быстрее. Нормальный это на ltdc или lvds , что на атмеге бессмысленно вообще программировать
Спасибо!
How can I learn to use this method using the cubmx
Дмитрий, запили видео с DMA, с большим дисплеем.
И по цене норм. Заказал, попробую.
Подскажите пожалуйста как подключить st7789 к esp32 wroom32d и какой нибудь простой рабочий пример
Really informative video. You should add English title as well
Доброго дня! STM это хорошо, а ESP как с ними работает? Если будет время снимите ролик :)
а в каком документе расписана пошаговая процедура инициализации ST7789?
Здравствуйте! Подскажите, пожалуйста, где можно взять описание библиотеки к ST7789, весь интернет перерыл - понять не могу, как управлять этим экраном. А реализовать "Змейку" на Arduino хочется...
Нет описания, есть только исходники, из которых, в принципе, логика работы читается
Заказал не глядя....
Вопрос , а если использовать режимы с меньшей битностью и соответственно меньшим количеством цветов , то будет ли картинка обновляться быстрее ?
Да, можно попробовать 12-битный режим (по 4 бита на цветовую составляющую). Это даст 1.5-кратный прирост частоты обновления, но увеличится сложность подготовки буфера к передаче.
@@rnadyrshin было бы интересно увидеть как это работает. + сравнение
i want to use this 0.96 inch one on my pic project. but couldnt find any documentation or library for PIC MCU. can anyone help me please ? thanks
А существуют ли под дисплеи панели сенсорные панели? Конкретно под 0.96 интересует
Из-за частоты обновления невозможно использовать в регулируемых схемах - крутишь ручку - а инфо чуть позже на экране. Для статичного отображения давно использую модули для фоторамки - уже готовое решение с отличной картинкой и обзором.
Hello my friend! This 240x240 display seems like a good fit for one of my projects. I see from the date of your video that it has been in production for a long time. I wonder if you know of similar newer versions? Thank you
1.47 tft ips rounded corner with resolution 320x172 looks like the most interesting solution, but the resolution is very high, MCU will need support for a high-frequency spi interface of 80 MHz or more.
сам удивился когда нашел на алиэкспрессе такие IPS, но мне для ардуины надо или подобного из дешевого. Другой вопрос возник, по USB подключить к компу можно и какой контроллер тогда нужен?
Приветствую, если нашли как подключить подскажите?
@@denispancov7125, дешёвого не нашел а дорогое не интересно. Лучший вариант - подключать через контроллеры: arduino, esp и т.д. по скорости разницы не будет, т.к. сама шина spi медленнее даже чем wifi. Поэтому новые модули лучше покупать где на борту и esp32 и этот экран, стоимость рублей 500-700.
Сколько гц максимально может выдать 2й дисплей?)
*Классный дисплей.Еще б с стм подружится и цена вкусная 2 и 4$*
@@dekus80 я готов заморочиться с тао, можно ссылку?
Я с STM так и не подружился. А нашёл замену, работает как ардуинка, прям IDE скетчи грузит и теже библиотеки что и на ардуино идут, только название пинов меняешь. до 160 Mhz, память флеш 1 мегабайт и 4 мегабайта, оперативная память 80 килобайт. ну и вафля на борту. ru.aliexpress.com/item/1pcs-NodeMCU-V3-Lua-WIFI-module-integration-of-ESP8266-extra-memory-32M-Flash-USB-serial-CH340G/32813713134.html?spm=2114.13010708.0.0.723833edSfGbV2
У Вас печалька с SPI, ону у вас работает в 8 бит, хотя и дисплей и стмка могут 16 бит, потом Вы зачем то управляете пином CS хотя это должен делать сам SPI, и у него это выходит быстрее, ну или если много устройств на линии, но в начале обращения к устройству и в конце, а не каждые 8бит. Управлять пином DC надо только в функции SendCmd, в начале ставить в лоу, в конце в хай, тогда SendData будет слать данные без запинок на управление пинами. Такое количество пикселей должно заливать мгновенно даже без дма
Спасибо. Всё верно, нужно было больше внимания уделить обмену
на сколько можно увеличить скорость обновления квадратного дисплейчика с ардуио ? хочу его на свой мини осциллограф поставить в место 1.8" display 128x160 . )
Сложно что то сказать, не видя кода, но чисто теоретически ардуине будет тяжелее с дисплеем 240х240 чем с 128х160.
@@CadmiumUA
ну вот 0.96" OLED Display 128X64 в сравнении 128х160,с ардуино просто летает самый быстрый который мне попадался, отлично динамические графики выводит. Думаю даже если бы был в разрешении 128х160 был бы намного быстрее от TFT.
0.96" OLED Display 128X64 это черно белый, тут 1 пиксель 1 бит, конечно будет быстро, чтобы закрасить весь экран надо отправить 128*64= 8192 бита = 1024 байта, а в видео они цветные и 1пиксель это 16 бит, и чтоб его закрасить надо 240*240*16=921600 бит=115200 байт.
hello, can you please tell me which library did you use for the screens?
my own (not for arduino). link in the video description
@@rnadyrshin oh thank you. i bought 240x240 without the pcb so i can use the chip select pin i believe its number 8. im planning to use it with arduino zero which has atsamd21g18 MCU. can i use your library for it or i should use some other?
Как даный дисплей подключить к ардуино? Хочу проверить дисплей на работоспособность.
St 7789 подскажите как подключить к каррадио 32. Не хватает пина.
Здравствуйте сделайте пожалуйста обзор на дисплей st7789v 1.14 inch 135x240 подключение к stm32 в ide arduino и keil
135x240 ips lcd st7789v GND VCC SCL SCL SCDA RES DC CS BLK and esp32 dev 38pins, sd card slot I have these. Do you have a connection line diagram? I don't know how to connect.
Вот китайцы молодцы!
Доброго здравия !!! Вопрос, как вывести аналоговый видео сигнал на такой мониторчик ??? С Уважением !!!
Китайцы придумали куда продать миллионые запасы мониторов с старых телефонов которые теперь ни кому не нужны))))
Совершенно верно!
Ну, это скорее шутка про "старые запасы"? Тогда все экранчики для телефонов были по недорогой TFT-технологии. IPS была дорогостоящей и применялась только на больших мониторах. Речь о 2007-2012 гг.
@@alexanderyuvensky4913 IPS это тоже TFT)
Как и OLED)
TFT это не тип матрицы
@Мирослав Матвійчук, спасибо, что поправили про IPS и TFT.
Я думаю, вы все равно поняли, что я имел ввиду - "старая" TFT (TN+film) и "новая" TFT (IPS).
@@alexanderyuvensky4913 да)
Да так все говорят почему-то)
У меня на таком дисплее буквы перевернуты вертикально (не сам экран дисплея). Я перепробовал много библиотек, но результата нет. Посоветуйте мне, где копать ?????
Вариант вывода изображения из памяти на дисплей определяет команда контроллера дисплея MADCTL, параметр которой (6 управляющих бит) конфигурирует контроллер: зеркальность, обмен цветов, обмен x c y. Попробуйте мою библиотеку: гитхаб vadrov либо из видео на моем канале (здесь ссылки не проходят).
отсутствие CS - проблема, по нему синхронизируется clock SPI, прилетает помеха и едет синхронизация
awesome brother.
SPI-ные линии обозвали как I2C-шные - чтобы никто не догадался?
Добрый день! пин BLK на дисплее куда подключать?
Спасибо.
какую частоту кадров можно по spi выжать? Там вроде 15 МГц тянет контроллер 7735, и почему нельзя 18-битный цвет использовать на 160*80?
В библиотеке uTFT работал с настройками шины 20МГц и 27МГц стабильно.
use it and build a watch?
Подскажите пжл, а этот дисплей может показывать русские буквы?
От чего это зависит, от самого дисплея или от программы на ардуино, где хранятся знаки, символы которые выводятся?
Сам дисплей может вывести все что угодно, хоть иероглифы. Здесь вы сами управляете цветом каждого пикселя. Все зависит только от вашей программы, от того, как вы реализуете отрисовку текста. Тут стоит добавить, что не обязательно все писать самому, в интернете есть достаточное количество примеров или даже целых библиотек для управления такими дисплеями с микроконтроллера, например, lvgl, в которую можно добавить любой свой шрифт. Конкретно по Arduino не могу сказать, хватит ли ресурсов, но думаю и для нее есть что-то подобное.
Спустя год тыкания данных дисплеев. Для вывода инфы в небольших портативных устройствах самое то, без анимации и картинок, чисто буквы/цифры и графики. Для всего остального ili9341 лучше подойдёт
How can i use 240x240 with sd card module
Расскажи что нибудь про моржей
Видеопейджер = основа интернет двигателя электромобиля!!)
видео пазл!!)
Скиньте пожалуйста библиотеку на этот дисплей
пытаюсь адаптировать примеры под platformio (gcc), уже мозг дымит. сначала в самом platformio не было поддержки SPL для младших процев (l1, f1) - добавил.
перевел проект в нужный формат и чуток отрихтовал код, там мелочь была. и вот остается вроде бы последняя ошибка, уже на этапе связывания:
_
.pio/build/bluepill_f103c8_128k/src/test240x240.o: In function `Test240x240_Images':
test240x240.c:(.text.Test240x240_Images+0x14): undefined reference to `f_chdir'
.pio/build/bluepill_f103c8_128k/lib9f4/libfatfs.a(ff.o): In function `f_open':
ff.c:(.text.f_open+0x72): undefined reference to `get_fattime'
.pio/build/bluepill_f103c8_128k/lib9f4/libfatfs.a(ff.o): In function `f_sync':
ff.c:(.text.f_sync+0x34): undefined reference to `get_fattime'
.pio/build/bluepill_f103c8_128k/lib9f4/libfatfs.a(diskio.o): In function `disk_status':
diskio.c:(.text.disk_status+0x10): undefined reference to `RAM_disk_status'
diskio.c:(.text.disk_status+0x16): undefined reference to `MMC_disk_status'
diskio.c:(.text.disk_status+0x1c): undefined reference to `USB_disk_status'
_
/home/r0mik/.platformio/packages/toolchain-gccarmnoneeabi@1.70201.0/bin/../lib/gcc/arm-none-eabi/7.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/libc.a(lib_a-sbrkr.o): In function `_sbrk_r':
sbrkr.c:(.text._sbrk_r+0xc): undefined reference to `_sbrk'
_
и вот что с ней делать я откровенно не знаю. не находит совершенно непонятных каких-то процедур, которые даже не гуглятся никак (MMC_disk_status), а в коде просто вызов этого чуда и все.
это что-то специфичное для кейла что ли? кто-то знает? хоть мне и не нужна на этом этапе карточка и этот код можно просто выбросить, но я хочу понять как в дальнейшем быть (иногда приходится из всяких кейло/иаро и прочего недоразумения адаптировать проекты..)..
это кусок кода, инициализирующий интерфейс SD-карты. Наверняка в platformio уже есть подобная реализация работы с флешками с файловой системой FAT. Её и следует использовать
Руслан, приветствую.
дело в том, что platformio, - это своеобразный сборник всех современных тулчейнов, фреймворков, библиотек и т.п. в одном месте. с хорошей организацией, с менеджером пакетов, библиотек и т.д.
и хотя в русскоязычном интернете, благодаря некоторым бездарям из ютюба, его знают лишь как замену ардуины, на деле он поддерживает просто огромное количество как аппаратных платформ (37шт), так и программых фреймворков (22шт), включая всякие mbed-о-ардуины... плюс менеджер библиотек с автоматическим поиском, докачкой и включением в проект. так что весьма рекомендую. работает где угодно и поддерживает что угодно..))
то есть, изначально я рассчитывал на адаптацию ваших примеров за 1-2минуты, просто раскинув по нужным подкаталогам и написать один файл конфигурации.
но не тут-то было - с кейло/иарами и прочим закрытыми средами там не совсем все хорошо. в частности с т.н. Standart Peripheral Libraries (SPL) изначально беда, поскольку поддержку ее давно дропнули в ST. но это легко решаемо.. а вот все другие библиотеки перетащить из того же кейла можно разве что руками, банально нагуглить у меня их не получилось.
так что да, вы правы - эту часть кода нужно переписать и не мучиться.
но я это уже решил. мне нужна была по-сути только графическая библиотека, а она и без того работает великоепно "как есть". кстати, спасибо за библиотеку!
А в ответ, тишина. В общем, в основном я разобрался. Откомпилил исходники и загрузил в контроллер в среде IAR Embedded Workbench. Все тесты работают, но пока нет чтения с micro SD карты.
Вот и замечательно)
Я не могу ни на что отвлекаться когда доделываю очередное видео
SALUDOS.... CUAL ES EL CÓDIGO PARA HACERLO CON LECTOR DE MICRO SD ???
анимацию на него можно выводить?
Приветствую! не подскажите в кратце как подключить веб камеру к этому дисплею или ссылку можно?
Простые способы мне не известны, надо разрабатывать
А будут ли в будущем ips экраны с большим разрешением? И что по стоимости?
По стоимости большие IPS рентабельнее брать из сотовых телефонов, не поддающихся ремонту, но имеющих исправные экраны.
А как подключить дисплеи от сотовых?
@@user-gt5ih3sx3q Для примера: arduino.ru/forum/apparatnye-voprosy/arduino-i-displei-ot-sotikov-mobilnykh-telefonov и czcams.com/video/ShnyOOcfbhc/video.html
ru.aliexpress.com/item/EYEWINK-New-4-inch-TFT-LCD-screen-touch-screen-module-IPS-full-view-Ultra-HD-800X480/32807629460.html?spm=a2g0v.10010108.1000013.4.458d496aX9YE51&pvid=41775a5d-2734-4130-976b-7d4082b8acff&gps-id=pcDetailBottomMoreThisSeller&scm=1007.13339.90158.0&scm-url=1007.13339.90158.0&scm_id=1007.13339.90158.0
Чубайс насмотрится таких видео и выпустит бабушкофон.
IPS это конечно хорошо, а как дела с E-INK? Чего такие дорогие? Каковы перспективы дешевения?
Патенты , Китай придумал как обойти .
Ау, как его подключить, почему даже в видео все прячут, как подключено?
Как обычно через шину SPI но если у тебя ардуина на 5 вольт, то придется уровни преобразовывать. Например резисторами. Так как этот экран 3.3 вольта, о 5 он сгорит.
А возможно заливать картинку, а потом поверху писать текст?* В идеале, чтоб фон оставался без изменений?
Насчет DMA не уверен. Ведь ядро и DMA общаются с памятью через общую шину. Если будет работать DMA и одновременно ядро будет выполнять какой-то код, то по шине будет затык, и, скорее всего, будет медленнее, чем передача байт программно.
А вообще да, с такими экранами нужен двойной фреймбуфер и закольцованный DMA, чтобы получить красивые эффекты. ESP32 с таким должен справиться, как говорится, одной левой, ну, то есть, одним левым ядром.
Будет быстрее. DMA в STM32 работает хорошо. Навскидку не помню: то ли по спаду SYSCLK, то ли во время фазы декодирования команды. Поэтому на скорость работы ядра не влияет.
По логике влиять может только одновременная работа нескольких каналов DMA, квждый из которых хочет что-то переслать. Но я не проверял.
embedds.com/using-direct-memory-access-dma-in-stm23-projects/
Вот тут пишут: As you can see memcpy beats simple loop several times and also DMA. This is because DMA cannot occupy 100% of buss speed.
А вообще, я так подумал, что тут, скорее всего, основные тупняки из-за скорости SPI. Посмотрел код, там вся работа идет в блокирующем режиме, даже не по прерываниям, поэтому, думаю, что разгон SPI решил бы проблему.
Не увидел там такой фразы.
Но уивдел следующее:
So using 800 32-bit word transfer using DMA took 214μs:
While using CPU memory copy algorithm it took 544μs:
This shows significant increase of data transfer speed (more than two times). And with DMA biggest benefit is that CPU is totally unoccupied during transfer and may do other intense tasks or simply go in to sleep mode.
И надо смотреть, что используется в memcpy в конкретном дизайне с конкретным компилятором. Вплоть до асссемблерного кода.
Например в DSP у TI есть команда для организации цикла и пересыока из памяти с одного указателя по адресу в другом указателе. При этом цикл обеспечитвается одним тактом, копираование и автоинкремент обоих указателей - ещё одним тактом. В таком случае не удивлюсь если скорость memcpy будет быстрее любого DMA :-)
Ну, если используется блокирующий режим пересылки, то о какой сокрости мы можем говорить....
А вообще, я бы сделал пару буферов, исходя из высоты текстовой строки и отправлял бы их по очереди черех SPI. Думаю, скорость заполнения при этом должна получиться весьма приличная, а занимаемой внутренней памяти надо меньше.
Если выводить текст, то да. А если графику?
Тогда уж лучше просто буфер, в который класть весь поток команд и данных, а потом запускать по нему DMA чтобы он передал всё это в экран.
Ну так и графику аналогичными полосками :-)
Чтобы не использовать слишком много RAM
Благодарность автору за труд. Я сильно увеличил скорость, внеся кое какие коррективы.
Функция SendData:
{SPI1->DR = Data;
while ( (SPI1->SR & SPI_I2S_FLAG_TXE) == RESET )
;}
Функция SendCmd:
{GPIOB->BRR = GPIO_Pin_0; //DC_LOW
SPI1->DR = Cmd;
while ( (SPI1->SR & SPI_I2S_FLAG_TXE) == RESET )
GPIOB->BSRR = GPIO_Pin_0; //DC_HIGH}
CS убрал, притянув его к земле на дисплее.
Подскажите возможно ли подружить данные экраны с аналоговым источником композитного видео, как с камеры например?
Нет, эти дисплеи с чисто цифровым интерфейсом
@@rnadyrshin тогда еще вопросик. Есть ли дисплей который это может или только монитор узнает этот сигнал?
Да, я думаю, что только мониторы и ТВ имеют такие входы
Автор похож на Алексея Фомкина из фильма Гостья из будущего(1984)
в каком году появился первый в мире цветной жк дисплей с пикселями все как положено
Сейчас есть дисплеи на этом же контроллере, но разрешением 240х280... Хочется сказать что кино на него вывести не получится, сам контроллер дисплея медленно обновляет картинку. Я запустил на самом шустром SPI для STM32F722, непрерывно закрашивать весь дисплей разными цветами. Видно что STM успевает отправить данные на обновление ~1/5 дисплея, в то время как ST7789 еще заканчивает закрашивать дисплей предыдущим цветом... Вообщем можно сказать, что 15Гц комфортных этот дисплей обеспечить может, но не более...
подскажите что за шрифт использовался в качестве моноширинного шрифта?
6х8, английские символы были перенесены из аналогичного шрифта библиотеки uGUI и дополнены мной кириллицей
@@rnadyrshin Руслан, не подскажите как можно сгенерировать более крупные шрифты, основанные на вашей библиотеке? FONTID_16F очень маленький для дисплея 240х240.
Привет !!! А к такому дисплею есь преобразователь сигнала AV видео, и можно как то это решить ?
Нет, такого преобразователя для них нет
Добрый день. Не подскажете, что может неправильно работать - на экране все смазано. Вертикальные полосы. Подключал различные библиотеки и смотрел на примерах. Плата Arduino Nano 3
Если есть полосы, отображение которых ты не писал, и флюс отмыт то разбили контроллер дисплея он очень хрупкий. Только выкидывать
мотооролла 10 лет назад вот это от чего экран
А более человеческие размеры, а не почтовые марки?
А что-то аналогичное но только с видео входом есть?
Есть - телевизор =)
Sir How can I connect 0.96 LCD with arduino I can't find any info. I dont know where should ı connect BLK pin on the arduino.
I don't know about arduino libs. You should connect BLK to +3.3V or to GPIO pin to control display backlight
You can leave it floating as the transistor on the display module has a pull-up resistor on it's base to turn it on