@@ВладимирМ-е6ь согласен) очень полезная штука)) значит в будущем и крупные матрицы будут)) а мне как раз для одного проекта нужно было замутить кнопки-дисплейчики)) и размер как раз)) пару десятков заказать надо будет))
Что нормального то? Через SPI прорисовка как черепаха, да и через параллельный с ардуино не сильно быстрее. Нормальный это на ltdc или lvds , что на атмеге бессмысленно вообще программировать
У Вас печалька с SPI, ону у вас работает в 8 бит, хотя и дисплей и стмка могут 16 бит, потом Вы зачем то управляете пином CS хотя это должен делать сам SPI, и у него это выходит быстрее, ну или если много устройств на линии, но в начале обращения к устройству и в конце, а не каждые 8бит. Управлять пином DC надо только в функции SendCmd, в начале ставить в лоу, в конце в хай, тогда SendData будет слать данные без запинок на управление пинами. Такое количество пикселей должно заливать мгновенно даже без дма
на сколько можно увеличить скорость обновления квадратного дисплейчика с ардуио ? хочу его на свой мини осциллограф поставить в место 1.8" display 128x160 . )
@@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 байт.
Спасибо. Качественный контент, дисплеи действительно неплохи. Но перевод 240x240 дисплея на алиэкспрессе конечно замечательный - "1,3 дюймов ips OLED..."
Очень хорошие видео!, Самое интересное и исчерпывающе, и без воды... Уже раз 5! вы мне попадались, всегда ЛАЙК!. Подписался! Не портите свой стиль!, добавляйте хорошее и взвешенное в форму подачи, Отличный канал! :)
Ну, это скорее шутка про "старые запасы"? Тогда все экранчики для телефонов были по недорогой TFT-технологии. IPS была дорогостоящей и применялась только на больших мониторах. Речь о 2007-2012 гг.
@Мирослав Матвійчук, спасибо, что поправили про IPS и TFT. Я думаю, вы все равно поняли, что я имел ввиду - "старая" TFT (TN+film) и "новая" TFT (IPS).
Я с 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
В библиотеке при выводе строк поверх друг друга (чтобы не очищать весь экран, а только то что меняется) с шрифтом более 6х8 не корректно затираются предыдущие символы. При использовании функции с закраской фона он оставляет часть символа, если он был больше по размерам, чем новый, записываемый поверх.
Благодарность автору за труд. Я сильно увеличил скорость, внеся кое какие коррективы. Функция 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 убрал, притянув его к земле на дисплее.
Сейчас есть дисплеи на этом же контроллере, но разрешением 240х280... Хочется сказать что кино на него вывести не получится, сам контроллер дисплея медленно обновляет картинку. Я запустил на самом шустром SPI для STM32F722, непрерывно закрашивать весь дисплей разными цветами. Видно что STM успевает отправить данные на обновление ~1/5 дисплея, в то время как ST7789 еще заканчивает закрашивать дисплей предыдущим цветом... Вообщем можно сказать, что 15Гц комфортных этот дисплей обеспечить может, но не более...
Спустя год тыкания данных дисплеев. Для вывода инфы в небольших портативных устройствах самое то, без анимации и картинок, чисто буквы/цифры и графики. Для всего остального ili9341 лучше подойдёт
Насчет 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 чтобы он передал всё это в экран.
Подскажите, как сделать на основе этих дисплеев обычную переключалку картинок с Флеши (фоторамку). Понимаю что тут это уже сделано но в архиве куча файлов, что куда?))) Закупитm и спаять для мне не проблема, но вот программно согласовать все это сложно.
Я, кажется, чего-то недопонял. Дисплей 240х240 пикселей с 16 бит глубиной цвета - таким образом один кадр должен весить 240*240*16=921600 бит. У SPI устройств, как правило, ограничение по частоте тактирования порядка 80МГц. В теории STM32F103 может работать с SPI на 72МГц. Но даже если взять 1/4 от частоты ядра 72000000Гц/4/921600бит=19,5...fps и при этом мы получаем 4*16=64 машинных цикла на формирование и отправку каждого 16-битного слова. Откуда такие тормоза на видео??? Или же используется программная эмуляция SPI аля ногодрыг? Или при этом отправляется ещё и адрес перед отправкой данных для каждого пикселя?
Сразу много причин: - использование в демке программного управления CS, - использование в демке 8-битного режима SPI, - накладные расходы на выбору очередного байта на передачу с помощью CPU, - ограничение максимальной частоты контроллера дисплея и STM32F103, которое далеко не 72 МГц. + наверное ещё что-то, я уже забыл. Народ в комментах после оптимизации обмена получал 10-11 FPS
медленный он невероятно, я разогнал обмен до 11ФПС, а обновления выше 6ФПС не поднимаются никак. Есть похожий, чуть крупнее и с параллельным 8080 интерфесом, надеюсь и обновления хотя бы 20ФПС item.taobao.com/item.htm?spm=a230r.1.14.220.474853d5MMSvZy&id=580042381030&ns=1&abbucket=19#detail А вообще, из тысяч предложений, ни один не упоминает скорость отображения, будто это ничего не значит ))
и вот я уже тестирую указанный выше 1.5" скрин на STM32F030 с 8080 интерфейсом, скорость заполнения всех 56700шт пикселей 46.3мС т.е. 23фпс и скорость обновления скрина очень похожа на 23фпс, по крайней мере скрин заполняется за 3 и менее кадра 60фпс записи на камеру смартфона. Что ещё замечу, углы обзора данного дисплея лучше, чем у 1.3" на видосе, но и цена повыше, я брал 1.5" за 15 юаней, против 11 юаней за 1.3". В инициализации 1.5" дисплея, что дали мне его производители, есть незадокументированные команды для 7789, в комментах к которым есть упоминание 60Hz, так что есть сильное подозрение, что данный скрин имеет 60 кадров/сек физического обновления, что годно даже для кручения видео. Не знаю, войдёт ли инит в этот комент, попробую скопировать: HW_Reset(); SW_Reset(); Delay(120); Write(Command ,0x11); Delay(120); Write(Command ,0x36); Write(Parameter ,0x00); Write(Command ,0x3A); Write(Parameter ,0x55); Write(Command ,0xB2); Write(Parameter ,0x0C); Write(Parameter ,0x0C); Write(Parameter ,0x00); Write(Parameter ,0x33); Write(Parameter ,0x33); Write(Command ,0xB7); Write(Parameter ,0x35); Write(Command ,0xBB); Write(Parameter ,0x32); //Vcom=1.35V
@@dekus80, я в китае(SHZ), там и взял другой на 1.5" и реально быстрый, по крайней мере достаточно для VU meter ua-cam.com/video/hdL3nKfYzlk/v-deo.html
@@dekus80 не думаю, если смогу вам помочь в этом, если бы сотню таких отправить, но пару штук, увы.. Попробуйте поспрашивать алиэкспресс по партнамберу этого скрина, я дал его под вчерашним видео.
Из-за частоты обновления невозможно использовать в регулируемых схемах - крутишь ручку - а инфо чуть позже на экране. Для статичного отображения давно использую модули для фоторамки - уже готовое решение с отличной картинкой и обзором.
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.
Да, можно попробовать 12-битный режим (по 4 бита на цветовую составляющую). Это даст 1.5-кратный прирост частоты обновления, но увеличится сложность подготовки буфера к передаче.
И ещё одно, при делителе на 2 CubeMX будет ругаться на частоту SPI1 (шина APB2) в 36 Mbps предлагая 18, то-есть делитель на 4. Ничего с этим не исправляем, генерируем проект, будет работать. Кстати важное замечание, фотошоп умеет уменьшать цветность настолько хорошо, что для этих дисплеев даже перевод вашей картинки в 4-4-4 для глаза будет почти не заметен. SPI умеет 16 бит режим, то есть это три посылки (48 бит) уходит на четыре пикселя, на 76к дисплейных пикселей очень даже неплохая экономия. DMA прикручивать нужно стопудово. Для тех, кто не в курсе, насколько быстр DMA, простой blink на порту через запись в GPIO->ODR даёт максимум 3.5 МГц, а через ДМА уже 7 МГц.
существует ли какой-то сервис подбора дисплеев по физическим размерам? есть корпус на DIN рейку, с нестандартным окном под индикацию 70x30mm, не один из ходовых символьных LCD не подходит, закрывать или пилить не хочется
сам удивился когда нашел на алиэкспрессе такие IPS, но мне для ардуины надо или подобного из дешевого. Другой вопрос возник, по USB подключить к компу можно и какой контроллер тогда нужен?
@@denispancov7125, дешёвого не нашел а дорогое не интересно. Лучший вариант - подключать через контроллеры: arduino, esp и т.д. по скорости разницы не будет, т.к. сама шина spi медленнее даже чем wifi. Поэтому новые модули лучше покупать где на борту и esp32 и этот экран, стоимость рублей 500-700.
А в ответ, тишина. В общем, в основном я разобрался. Откомпилил исходники и загрузил в контроллер в среде IAR Embedded Workbench. Все тесты работают, но пока нет чтения с micro SD карты.
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.
Вот это здорово, классные дисплеи. Я правильно понимаю, что fps у них около 3 кадров в сек? Какая частота spi была? Какой максимум частоты spi поддерживает дисплей?
3 FPS для 240x240 в случае использования моей демки (SPI на 18 МГц). В ней можно провести оптимизацию, которую рекомендовали в комментах чуть выше, это ускорит обновление раза в 1,5-2. И ещё раза в 2 может ускорить использование DMA, но нужен МК с достаточным для буфера кадра объёмом ОЗУ.
@@rnadyrshin так в итоге сколько фпс может выдать этот дисплей? Спортивный интерес и видео бы было интересное в плане обучения. (Как оптимизировать код, как заливать кадры одним обновлением, как увеличить частоту и работать на ней итп) Название нового видео: Выжать все) Инетесно, возможно ли видео на нем посмотреть)
Sitronix обозвал линии именно так. Видимо потому что эти линии не только как линии SPI могут использоваться. Ну а китайцы просто срисовали обозначения из документации
Еще и I²C, а не SPI, то он совсем бесполезен! При таком разрешении о какой красивой картинки можно говорить? С учетом медленности интерфейса вообще не представляю куда такое втулить можно и зачем.
Пришел мне с али дисплей 240х240. Загрузив в esp8266 5 фоток с разного ракурса и воспроизводя через 100 мс получилась что то вроде анимации. Качество мне понравилось, за такие то деньги, короче судите сами : yadi.sk/i/vaWl60k8uZ_F0A
Добрый день. Не подскажете, что может неправильно работать - на экране все смазано. Вертикальные полосы. Подключал различные библиотеки и смотрел на примерах. Плата Arduino Nano 3
Экран TFT 1.8 дюйма, подключение и вывод текста с NodeMCU, в данном видео вывод данных о UA-cam канале. Спасибо за просмотр, критика принимается )) ua-cam.com/video/TBv75Q-Iw70/v-deo.html
У меня на дисплее 80*160 справа и внизу цветные полосы! Изображение смещено влево (срезается часть символов). Библиотеки от Adafruit самые последние. Подскажите как исправить!?
Как обычно через шину SPI но если у тебя ардуина на 5 вольт, то придется уровни преобразовывать. Например резисторами. Так как этот экран 3.3 вольта, о 5 он сгорит.
ОООЧЕНЬ КРУТО )) Очень понравилось )) Спасибо ) Прикольно было бы сделать с таким дисплейчиком часики )
Этот день настал))) нормальные матрицы доступны самодельщикам))
Еще бы габарит больше.
@@ВладимирМ-е6ь согласен) очень полезная штука)) значит в будущем и крупные матрицы будут))
а мне как раз для одного проекта нужно было замутить кнопки-дисплейчики)) и размер как раз)) пару десятков заказать надо будет))
Вообще уже есть. Например у меня на столе лежит 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 , что на атмеге бессмысленно вообще программировать
За свою цену дисплей просто супер 12/10.
Спасибо. Как всегда, качественный обзор.
У Вас печалька с 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 байт.
Спасибо. Качественный контент, дисплеи действительно неплохи. Но перевод 240x240 дисплея на алиэкспрессе конечно замечательный - "1,3 дюймов ips OLED..."
шикарно, давно их видел но не было информации насколько они ips
Хотелось бы так же краткий обзор кода использовавшийся в обзоре.
К каким пинам ардуино подключить дисплей 240 *240?
молодец!!! хороший и полезный обзор!!!!!
Руслан, спасибо за информацию. В своих поделках использовал OLED. Оказывается примерно за ту же цену есть полноцветные IPS. Спасибо.
Вот это видео подробнее, с подробным подключение экранов.Собираем робота на двух дисплеях.Ваша помощь была бы кстати.
я тебе лайк ставлю, через день захожу - нет лайка, и так уже пару месяцев )))
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
Отличный обзор, спасибо.
Чубайс насмотрится таких видео и выпустит бабушкофон.
заверните мне каждого по два, лайк
Очень хорошие видео!, Самое интересное и исчерпывающе, и без воды... Уже раз 5! вы мне попадались, всегда ЛАЙК!. Подписался!
Не портите свой стиль!, добавляйте хорошее и взвешенное в форму подачи, Отличный канал! :)
Спасибо!
Китайцы придумали куда продать миллионые запасы мониторов с старых телефонов которые теперь ни кому не нужны))))
Совершенно верно!
Ну, это скорее шутка про "старые запасы"? Тогда все экранчики для телефонов были по недорогой TFT-технологии. IPS была дорогостоящей и применялась только на больших мониторах. Речь о 2007-2012 гг.
@@alexanderyuvensky4913 IPS это тоже TFT)
Как и OLED)
TFT это не тип матрицы
@Мирослав Матвійчук, спасибо, что поправили про IPS и TFT.
Я думаю, вы все равно поняли, что я имел ввиду - "старая" TFT (TN+film) и "новая" TFT (IPS).
@@alexanderyuvensky4913 да)
Да так все говорят почему-то)
Круто! Новый обзор! :)
SPI-ные линии обозвали как I2C-шные - чтобы никто не догадался?
спасибо за обзор.
цена действительно приятная, будем иметь ввиду.
Отлично!
*Классный дисплей.Еще б с стм подружится и цена вкусная 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
Ну хоть где то я услышал описание протокола, вместо бестолковых скечеи. 👍
Огромное спасибо за обзор.
В библиотеке при выводе строк поверх друг друга (чтобы не очищать весь экран, а только то что меняется) с шрифтом более 6х8 не корректно затираются предыдущие символы. При использовании функции с закраской фона он оставляет часть символа, если он был больше по размерам, чем новый, записываемый поверх.
Спасибо за труд!
Благодарность автору за труд. Я сильно увеличил скорость, внеся кое какие коррективы.
Функция 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 убрал, притянув его к земле на дисплее.
IPS это конечно хорошо, а как дела с E-INK? Чего такие дорогие? Каковы перспективы дешевения?
Патенты , Китай придумал как обойти .
отсутствие CS - проблема, по нему синхронизируется clock SPI, прилетает помеха и едет синхронизация
Отличный обзор и проделанная работа! Только один вопрос, почему не HAL?
Просто исторически сложилось так, что пишу свой HAL
Сейчас есть дисплеи на этом же контроллере, но разрешением 240х280... Хочется сказать что кино на него вывести не получится, сам контроллер дисплея медленно обновляет картинку. Я запустил на самом шустром SPI для STM32F722, непрерывно закрашивать весь дисплей разными цветами. Видно что STM успевает отправить данные на обновление ~1/5 дисплея, в то время как ST7789 еще заканчивает закрашивать дисплей предыдущим цветом... Вообщем можно сказать, что 15Гц комфортных этот дисплей обеспечить может, но не более...
Интересно, а есть ли в продаже разъёмы для таких экранчиков? Чтобы не запаивать на плату экран, а подключать шлейф в разъём.
Спустя год тыкания данных дисплеев. Для вывода инфы в небольших портативных устройствах самое то, без анимации и картинок, чисто буквы/цифры и графики. Для всего остального ili9341 лучше подойдёт
Насчет 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
You are the best comrade! Thanks!
Доброго дня! STM это хорошо, а ESP как с ними работает? Если будет время снимите ролик :)
Дмитрий, запили видео с DMA, с большим дисплеем.
Добрый день.
1. Какой ток потребления большого дисплея в режимах : стандартном и энергосберегающем?
2. Хорошо ли видно в солнечный день?
где и как их можно использовать ?
Really informative video. You should add English title as well
Подскажите, как сделать на основе этих дисплеев обычную переключалку картинок с Флеши (фоторамку). Понимаю что тут это уже сделано но в архиве куча файлов, что куда?))) Закупитm и спаять для мне не проблема, но вот программно согласовать все это сложно.
Я, кажется, чего-то недопонял. Дисплей 240х240 пикселей с 16 бит глубиной цвета - таким образом один кадр должен весить 240*240*16=921600 бит. У SPI устройств, как правило, ограничение по частоте тактирования порядка 80МГц. В теории STM32F103 может работать с SPI на 72МГц. Но даже если взять 1/4 от частоты ядра 72000000Гц/4/921600бит=19,5...fps и при этом мы получаем 4*16=64 машинных цикла на формирование и отправку каждого 16-битного слова. Откуда такие тормоза на видео??? Или же используется программная эмуляция SPI аля ногодрыг? Или при этом отправляется ещё и адрес перед отправкой данных для каждого пикселя?
Сразу много причин:
- использование в демке программного управления CS,
- использование в демке 8-битного режима SPI,
- накладные расходы на выбору очередного байта на передачу с помощью CPU,
- ограничение максимальной частоты контроллера дисплея и STM32F103, которое далеко не 72 МГц.
+ наверное ещё что-то, я уже забыл.
Народ в комментах после оптимизации обмена получал 10-11 FPS
И по цене норм. Заказал, попробую.
Расскажи что нибудь про моржей
медленный он невероятно, я разогнал обмен до 11ФПС, а обновления выше 6ФПС не поднимаются никак. Есть похожий, чуть крупнее и с параллельным 8080 интерфесом, надеюсь и обновления хотя бы 20ФПС item.taobao.com/item.htm?spm=a230r.1.14.220.474853d5MMSvZy&id=580042381030&ns=1&abbucket=19#detail А вообще, из тысяч предложений, ни один не упоминает скорость отображения, будто это ничего не значит ))
и вот я уже тестирую указанный выше 1.5" скрин на STM32F030 с 8080 интерфейсом, скорость заполнения всех 56700шт пикселей 46.3мС т.е. 23фпс и скорость обновления скрина очень похожа на 23фпс, по крайней мере скрин заполняется за 3 и менее кадра 60фпс записи на камеру смартфона. Что ещё замечу, углы обзора данного дисплея лучше, чем у 1.3" на видосе, но и цена повыше, я брал 1.5" за 15 юаней, против 11 юаней за 1.3". В инициализации 1.5" дисплея, что дали мне его производители, есть незадокументированные команды для 7789, в комментах к которым есть упоминание 60Hz, так что есть сильное подозрение, что данный скрин имеет 60 кадров/сек физического обновления, что годно даже для кручения видео. Не знаю, войдёт ли инит в этот комент, попробую скопировать:
HW_Reset();
SW_Reset();
Delay(120);
Write(Command ,0x11);
Delay(120);
Write(Command ,0x36);
Write(Parameter ,0x00);
Write(Command ,0x3A);
Write(Parameter ,0x55);
Write(Command ,0xB2);
Write(Parameter ,0x0C);
Write(Parameter ,0x0C);
Write(Parameter ,0x00);
Write(Parameter ,0x33);
Write(Parameter ,0x33);
Write(Command ,0xB7);
Write(Parameter ,0x35);
Write(Command ,0xBB);
Write(Parameter ,0x32); //Vcom=1.35V
Write(Command ,0xC2);
Write(Parameter ,0x01);
Write(Command ,0xC3);
Write(Parameter ,0x19); //GVDD=4.8V
Write(Command ,0xC4);
Write(Parameter ,0x20); //VDV, 0x20:0v
Write(Command ,0xC6);
Write(Parameter ,0x0F); //0x0F:60Hz
Write(Command ,0xD0);
Write(Parameter ,0xA4);
Write(Parameter ,0xA1);
Write(Command , 0xE0);
Write(Parameter , 0xD0);
Write(Parameter , 0x08);
Write(Parameter , 0x0E);
Write(Parameter , 0x09);
Write(Parameter , 0x09);
Write(Parameter , 0x05);
Write(Parameter , 0x31);
Write(Parameter , 0x33);
Write(Parameter , 0x48);
Write(Parameter , 0x17);
Write(Parameter , 0x14);
Write(Parameter , 0x15);
Write(Parameter , 0x31);
Write(Parameter , 0x34);
Write(Command , 0xE1);
Write(Parameter , 0xD0);
Write(Parameter , 0x08);
Write(Parameter , 0x0E);
Write(Parameter , 0x09);
Write(Parameter , 0x09);
Write(Parameter , 0x15);
Write(Parameter , 0x31);
Write(Parameter , 0x33);
Write(Parameter , 0x48);
Write(Parameter , 0x17);
Write(Parameter , 0x14);
Write(Parameter , 0x15);
Write(Parameter , 0x31);
Write(Parameter , 0x34);
Write(Command ,0x21);
Write(Command ,0x2A); //Column Address Set
Write(Parameter ,0x00);
Write(Parameter ,0x00); //0
Write(Parameter ,0x00);
Write(Parameter ,0xEF); //239
Write(Command ,0x2B); //Row Address Set
Write(Parameter ,0x00);
Write(Parameter ,0x00); //0
Write(Parameter ,0x00);
Write(Parameter ,0xEF); //239
Write(Command ,0x29);
Write(Command ,0x2C);
@@dekus80, я в китае(SHZ), там и взял другой на 1.5" и реально быстрый, по крайней мере достаточно для VU meter ua-cam.com/video/hdL3nKfYzlk/v-deo.html
@@dekus80 не думаю, если смогу вам помочь в этом, если бы сотню таких отправить, но пару штук, увы.. Попробуйте поспрашивать алиэкспресс по партнамберу этого скрина, я дал его под вчерашним видео.
@@dekus80 WA54HC032I spec.pdf yadi.sk/d/h9h7evbbTrQwVg Какие исходники? Они ничего мне не дали, кроме того, что уже показал.
@@dekus80 никакой "библиотеки" там нет, инит я уже выложил, больше ничего не нужно.
а можно ли на фоне картинки выводить текст?
А возможно заливать картинку, а потом поверху писать текст?* В идеале, чтоб фон оставался без изменений?
а есть точно такие же, только с touch ?
Из-за частоты обновления невозможно использовать в регулируемых схемах - крутишь ручку - а инфо чуть позже на экране. Для статичного отображения давно использую модули для фоторамки - уже готовое решение с отличной картинкой и обзором.
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.
Когда купил пк но забыл посчитать монитор Будет самое то
Видеопейджер = основа интернет двигателя электромобиля!!)
видео пазл!!)
Вопрос , а если использовать режимы с меньшей битностью и соответственно меньшим количеством цветов , то будет ли картинка обновляться быстрее ?
Да, можно попробовать 12-битный режим (по 4 бита на цветовую составляющую). Это даст 1.5-кратный прирост частоты обновления, но увеличится сложность подготовки буфера к передаче.
@@rnadyrshin было бы интересно увидеть как это работает. + сравнение
В каком IDE Вы компилировали проект демки? Подойдет ли для этого EmBitz? Буду признателен, если выложите hex или bin демки. Спасибо!
в каком году появился первый в мире цветной жк дисплей с пикселями все как положено
А более человеческие размеры, а не почтовые марки?
дисплеи классные , а какой у них адекватный ценник ?
И ещё одно, при делителе на 2 CubeMX будет ругаться на частоту SPI1 (шина APB2) в 36 Mbps предлагая 18, то-есть делитель на 4. Ничего с этим не исправляем, генерируем проект, будет работать.
Кстати важное замечание, фотошоп умеет уменьшать цветность настолько хорошо, что для этих дисплеев даже перевод вашей картинки в 4-4-4 для глаза будет почти не заметен. SPI умеет 16 бит режим, то есть это три посылки (48 бит) уходит на четыре пикселя, на 76к дисплейных пикселей очень даже неплохая экономия.
DMA прикручивать нужно стопудово. Для тех, кто не в курсе, насколько быстр DMA, простой blink на порту через запись в GPIO->ODR даёт максимум 3.5 МГц, а через ДМА уже 7 МГц.
а у авр при тактовой 20 -- блинк 10 мгц))
жаль линию авр прибили вместо того чтобы расширить до 32 бит....
@@toshibamaster2210 , почему прибили? 32-битные Атмелы на АРМ давно уже есть.
существует ли какой-то сервис подбора дисплеев по физическим размерам?
есть корпус на DIN рейку, с нестандартным окном под индикацию 70x30mm, не один из ходовых символьных LCD не подходит, закрывать или пилить не хочется
Хоть бы кто-нибудь показал, как его подключить к ардуине, какая библиотека и какие команды. Даже китаец игнорирует
Библиотека Arduino-ST7789 для квадратного, для прямоугольного подойдет Adafruit_ST7735.
сам удивился когда нашел на алиэкспрессе такие IPS, но мне для ардуины надо или подобного из дешевого. Другой вопрос возник, по USB подключить к компу можно и какой контроллер тогда нужен?
Приветствую, если нашли как подключить подскажите?
@@denispancov7125, дешёвого не нашел а дорогое не интересно. Лучший вариант - подключать через контроллеры: arduino, esp и т.д. по скорости разницы не будет, т.к. сама шина spi медленнее даже чем wifi. Поэтому новые модули лучше покупать где на борту и esp32 и этот экран, стоимость рублей 500-700.
Здравствуйте сделайте пожалуйста обзор на дисплей st7789v 1.14 inch 135x240 подключение к stm32 в ide arduino и keil
Спасибо!
А в ответ, тишина. В общем, в основном я разобрался. Откомпилил исходники и загрузил в контроллер в среде IAR Embedded Workbench. Все тесты работают, но пока нет чтения с micro SD карты.
Вот и замечательно)
Я не могу ни на что отвлекаться когда доделываю очередное видео
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.
Заказал не глядя....
Вот это здорово, классные дисплеи. Я правильно понимаю, что fps у них около 3 кадров в сек? Какая частота spi была? Какой максимум частоты spi поддерживает дисплей?
3 FPS для 240x240 в случае использования моей демки (SPI на 18 МГц).
В ней можно провести оптимизацию, которую рекомендовали в комментах чуть выше, это ускорит обновление раза в 1,5-2.
И ещё раза в 2 может ускорить использование DMA, но нужен МК с достаточным для буфера кадра объёмом ОЗУ.
Максимальная частота SPI для ST7789 - около 32 МГц
Верно. Частота была 18 МГц (72/4). В видео оговорка
@@rnadyrshin так в итоге сколько фпс может выдать этот дисплей? Спортивный интерес и видео бы было интересное в плане обучения. (Как оптимизировать код, как заливать кадры одним обновлением, как увеличить частоту и работать на ней итп)
Название нового видео: Выжать все)
Инетесно, возможно ли видео на нем посмотреть)
а можно ли подключить флешку и просматривать фотографии или большие текста?
А можно ли как нибудь запустить так дисплей от того же айфона к примеру или от гэлэкси 8го?
Побежал заказывать:) скоро из Китая можно будет атомные расщипители заказывать, молодцы 😁
Да нихрена там нет. Оледы из прошлого века только и дико дорогие.
Скоро границу закроют и все запретят, и будем покупать то же самое, но в наших магазинах в три раза дороже.
Скиньте пожалуйста библиотеку на этот дисплей
Вот китайцы молодцы!
St 7789 подскажите как подключить к каррадио 32. Не хватает пина.
Как даный дисплей подключить к ардуино? Хочу проверить дисплей на работоспособность.
How can I learn to use this method using the cubmx
Где вы там SPI нашли, понять не могу. SDA и SCL это i2c. За обзор спасибо.
Sitronix обозвал линии именно так. Видимо потому что эти линии не только как линии SPI могут использоваться.
Ну а китайцы просто срисовали обозначения из документации
Еще и I²C, а не SPI, то он совсем бесполезен! При таком разрешении о какой красивой картинки можно говорить? С учетом медленности интерфейса вообще не представляю куда такое втулить можно и зачем.
Спасибо за видео
Доброго здравия !!! Вопрос, как вывести аналоговый видео сигнал на такой мониторчик ??? С Уважением !!!
Подскажите пожалуйста как подключить st7789 к esp32 wroom32d и какой нибудь простой рабочий пример
Пришел мне с али дисплей 240х240. Загрузив в esp8266 5 фоток с разного ракурса и воспроизводя через 100 мс получилась что то вроде анимации. Качество мне понравилось, за такие то деньги, короче судите сами : yadi.sk/i/vaWl60k8uZ_F0A
Сколько гц максимально может выдать 2й дисплей?)
А существуют ли под дисплеи панели сенсорные панели? Конкретно под 0.96 интересует
мотооролла 10 лет назад вот это от чего экран
Добрый день. Не подскажете, что может неправильно работать - на экране все смазано. Вертикальные полосы. Подключал различные библиотеки и смотрел на примерах. Плата Arduino Nano 3
Если есть полосы, отображение которых ты не писал, и флюс отмыт то разбили контроллер дисплея он очень хрупкий. Только выкидывать
SALUDOS.... CUAL ES EL CÓDIGO PARA HACERLO CON LECTOR DE MICRO SD ???
Экран TFT 1.8 дюйма, подключение и вывод текста с NodeMCU, в данном видео вывод данных о UA-cam канале. Спасибо за просмотр, критика принимается ))
ua-cam.com/video/TBv75Q-Iw70/v-deo.html
а в каком документе расписана пошаговая процедура инициализации ST7789?
Я так понял, там нет ОЗУ для дополнительной страницы, кроме отображаемой, это сильно мешает при необходимости быстро обновлять данные.
верно
Добрый день! пин BLK на дисплее куда подключать?
У меня на дисплее 80*160 справа и внизу цветные полосы! Изображение смещено влево (срезается часть символов). Библиотеки от Adafruit самые последние. Подскажите как исправить!?
Почему могут инвертироваться цвета? Ставлю фон (255, 0, 0) - должен быть красный, а он голубой. И так далее.
Здраствуйте можете пожалуйчта прикрепить сюда схему подключения дисплеев и карты и тд
Супер обзор
Спасибо!
Пожалуйста выложите исходный код для Ардуино.
У меня его нет
Автор похож на Алексея Фомкина из фильма Гостья из будущего(1984)
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
Ау, как его подключить, почему даже в видео все прячут, как подключено?
Как обычно через шину SPI но если у тебя ардуина на 5 вольт, то придется уровни преобразовывать. Например резисторами. Так как этот экран 3.3 вольта, о 5 он сгорит.
А в чём смысл, просто картинку загрузить, а мультики или фильм можно смотреть, или как монитор
Использовать от внешнего устройства
Смысл в том, чтобы применять в разрабатываемых девайсах для вывода интерфейса пользователя