Миниатюрный IPS экран 240 х 240 на контроллере ST7789 - качественно новый уровень графики


Хочу поделиться с Вами обзором маленького, но очень перспективного экрана для поделок на Arduino и прочих микроконтроллерах.

После повседневного использования мониторов ПК, экранов телефонов c IPS матрицей, изображения на TFT экранах для Arduino кажутся достаточно убогими. И тут дело не только в цветопередаче, но еще и в разрешении. Недавно у китайцев на Aliexpress появились миниатюрные экраны диагональю всего 1.3", но при этом с разрешением аж 240х240 пикселей, и мало того, матрицей IPS. Я, в свою очередь, понадеялся, что китайцы не обманут и заказал один из таких экранов.

Доставка

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

Внешний вид и характеристики




Матрица: ZJY130-IPS
Разрешение: 240 x 240
Размер видимой области: 23,4 x 23,4 мм
Размер платы: 28 x 39 мм
Интерфейс подключения: SPI
Контроллер: ST7789
Напряжение питания: 3.3 В
Уровни сигналов: 3.3 В
Углы обзора: великолепные!

Проблемы

Получив экран конечно же я принялся его тестировать. Нашел и скачал библиотеку Adafruit-ST7735-library (которая подходит и для ST7789) и стал подключать экран к Arduino. Входы экрана рассчитаны на уровни 3.3 В, поэтому обязательно подключайте через резисторы или преобразователь уровней. Я использовал преобразователь TXS0108E. Подключив все выводы, как указано в библиотеке, обнаружилось, что у экрана отсутствует вывод CS. То ли китайцы что-то намудрили, то ли так и надо.
Что такое CS
Для тех, кто не знаком с электроникой: Интерфейс SPI предполагает параллельное подключение всех устройств к шине данных и тактирования. Для того, чтобы общаться с одним из устройств, подключенным к SPI, это устройство необходимо «активировать», подав на вывод CS конкретного устройства низкий уровень сигнала. Вывод CS (Chip Select) переводится как «выбор кристалла». Помимо выбора устройства, без вывода CS проблематично определить начало передачи по интерфейсу SPI.
Стал писать продавцу и узнавать, есть ли примеры кода для этого экрана, на что он мне сразу прислал архив с какими-то проектами, название которых говорило о том, что они для данного экрана, а в коде которых было подключение к OLED экран по шине I2C.
Но не беда, подумал я, отпаял шлейф экрана, разрезал дорожку, подключающую CS к земле, вывел ее на проводок и припаял шлейф обратно. Получилось достаточно колхозно, но фото к сожалению не осталось.
Следующим этапом была проверка работоспособности экрана. С библиотекой Adafruit-ST7735-library все заработало. Но не будут же все проводить такие операции с экраном, тем более среди ардуиньщиков мало кто держал в руках паяльник. И тут родилась идея, написать библиотеку для работы с экраном, у которого отсутствует вывод CS (вернее вывод CS замкнут на землю все время).
Вот собственно и она: Arduino-ST7789-library
Кстати, уже заметил, что в отзывах на экран куча комментариев, что экран не работает и у него нет вывода CS.

Обзор качественных характеристик

А теперь самое интересное — сравнение с экранами OLED 1.5 SPI 128x128 на контроллере SSD1351 (слева) и TFT 1.44 SPI 128x128 на контроллере ST7735 (в середине). На все три экрана была выведена одинаковая картинка.

Смотрим прямо:

Смотрим снизу:

Смотрим сверху:


У OLED и IPS отличные углы обзора, но OLED проигрывает по яркости и цветопередаче. У TFT идет смещение всей картинки в синий цвет (вероятно, из-за цветовой температуры подсветки). Фотографиями, конечно, не передать всего качества картинки, но можете поверить, на IPS экранчике все прямо как на телефоне — насыщенно, четко, ярко.

UPD
Токи потребления в режиме отображения статической картинки:
OLED: 179 мА
TFT: 18 мА
IPS: 26 мА
Планирую купить +92 Добавить в избранное +107 +171
+
avatar
+1
Жаль потребление тока на максимальной яркости у приведенных дисплеев не сравнили…
+
avatar
+12
Добавил. Хорошо, что все это дело на столе еще стоит в сборе, оперативненько измерил. OLED конечно удивил очень по току потребления.
+
avatar
+6
OLED: 179 мА
Что-то он как не в себя жрет, конечно :) у него по даташиту 40мА с копейками при 100% площади свечения.
Вероятно, step-up на 13В самого модуля, мягко говоря, не эффективен.
+
avatar
  • WHALE
  • 05 мая 2018, 14:37
+2
Надо к этому дисплею китайцам лупы изготавливать как на старые телевизоры, ничего же не видно.
+
avatar
  • chaloc
  • 05 мая 2018, 14:59
+20
Так они давно:
+
avatar
  • WHALE
  • 05 мая 2018, 16:20
+6
это не такая, надо чтоб водой заполнялась )
+
avatar
+6
Глицерином.
+
avatar
0
Френель рулит!
+
avatar
  • Aloha_
  • 05 мая 2018, 17:26
+11
КВН-49 рулит.
+
avatar
  • WHALE
  • 05 мая 2018, 21:24
+5
френель полосит
+
avatar
+1
Для чего применять планируете?
+
avatar
+3
Планирую для портативного датчика PM2.5 и CO2.
+
avatar
+2
Ждем обзор ;)
+
avatar
+10
смартфон сколхозит
+
avatar
+5
Из четырёх таких можно сделать часы с эмуляцией сегментных индикаторов из соседнего обзора.
+
avatar
  • Bramix
  • 05 мая 2018, 15:21
0
А этот тогда не лучше? Все выводы на месте, да и дешевле
ru.aliexpress.com/item/IPS-1-3-3-3-12PIN-SPI-Full-HD-TFT/32859772356.html
+
avatar
+6
Для быстрого прототипирования — нет, не лучше. Для него нужно плату разводить.
Ну и, собственно, проблема-то была в отсутствии библиотеки. Теперь библиотека есть, поэтому без проблем можно использовать тот, который в обзоре, не допиливая его руками.
+
avatar
  • sir0ta
  • 05 мая 2018, 15:41
-2
Я бы сказал и для быстро делелизма. Вот был заказ — контролить температуры на видяшках (по 2 датчика на карту) (места где они чаще чего прогорают) и в случае чего рубить питание на каждой, не трогая другие. Мега + такой экранчик + кучка датчиков и проводочков + чуть ли не консольная утилита для пека. Милейшее дело. Вообще не паял, 30 минут на написание скетча и программы. И человек доволен и лишние пару тысяч рублей в кармане.
+
avatar
+3
Исходя из задачи всё это можно было заменить термореле :)
+
avatar
  • sir0ta
  • 05 мая 2018, 17:09
+1
1. Их будет много
2. стоить будет дороже (мк мега2560 была добыта хозяином хз где, плату ему знакомец вытравил за 50 рублей, разъемы на все про все 100 рублей, еще и остались, обвяз выпаяли с дешевой уно, реле автомобильные и обвяз к ним был добыт в куче всякого разного хлама).
3. настроек больше.
4. Не возможности мониторить график изменения температуры. Когда к примеру у тебя 30 видяшек и у 29 температура после разъема питания 40, а у 30-й 55… стоит подумать о том что же там не так. Потом дописали быстро запуск приложения с параметрами и утилита временами запускала простой батничек с этими параметрами и хозяин уже сам потом по образу и подобию нашел как отправлять сообщение на почту, потом вроде бы как еще как-то что-то придумал для оповещений. В общем не сравнить.
+
avatar
0
Как то не сходится
Вообще не паял
и
плату ему знакомец вытравил за 50 рублей
обвяз выпаяли с дешевой уно
+
avatar
  • sir0ta
  • 13 мая 2018, 15:44
0
Как то не сходится
Я ему собрал на коленке. Уже законченный девайс. Дальше его полет фантазии. Просто ему или надо было оплатить мне мегу и т.д. или заказать самому и долго и мучительно ждать.
+
avatar
  • fps
  • 05 мая 2018, 21:13
+4
Вот был заказ — контролить температуры на видяшках
Майнеры, они повсюду… )
+
avatar
  • sir0ta
  • 06 мая 2018, 06:24
0
Ну… Что поделать. Сас грешен )
+
avatar
  • Bramix
  • 05 мая 2018, 16:44
0
Согласен отчасти, но есть вариант проще. К существуещему шлейфу паяем проводной шлейф.
+
avatar
+7
но есть вариант проще. К существуещему шлейфу паяем проводной шлейф.
Данная фраза звучит в стиле — чего на макетках то мастырить — 15 минут и отправил готовую разведенную плату в соседнюю комнату для производства :)
Там мелкий шаг и неизвестная адгезия проводника к шлейфу, т.е. указанный «вариант проще» может оказаться «опять месяц ждать, пока новый экран приедет».
+
avatar
0
Я бы сказал это личный выбор каждого :). Мне вот проще плату прототип развести и спаять. Один/два дня. Ничего не болтается, никаких длинных проводов и наводок.
+
avatar
0
Подскажите габаритные размеры дисплейного модуля? (Не платы, а самого дисплея)
+
avatar
+3
Из даташита на модуль: 26.16(H) x 29.22(V) x 1.5Max(D) mm
Ссылку на даташит добавил в характеристики дисплея.
+
avatar
  • LynXzp
  • 05 мая 2018, 16:09
0
А как на счет динамики? По SPI без параллельного интерфейса менять каждый пиксель должно быть долго, если не на AVR то наверное может и не так печально.
+
avatar
0
А как на счет динамики?
ммм… думаю на 328-х никак :) Это больше для датчиков, погодных станций, анимации кнопок и т.д.
У 328-х памяти для анимации практически нет, если на ARM-ах, то можно и почти кино смотреть :)
+
avatar
  • LynXzp
  • 05 мая 2018, 16:22
+2
Кино это для домашних поделок. Больше интересует менюшки, просто информация, не важно, все равно приходиться часто перерисовывать больше половины экрана. Хотя я еще не знаю куда такой маленький вообще применить, но интересно как возможность.

P.S. «погодных станций» ни разу не понимал зачем они нужны в таком количестве «самоделкиным».
+
avatar
+1
ни разу не понимал зачем они нужны в таком количестве «самоделкиным».
Самоделкиных же много, а это второй шаг после «помигать светодиодом» :)
Нормально, да и встроить в любое устройство можно, а иногда даже нужно.
+
avatar
  • LynXzp
  • 05 мая 2018, 16:32
+1
Вариантов на «второй шаг» море. Но выбирают то что будет бесполезным. Архиваторы, игры и файловые менеджеры еще куда ни шло. Но погодные станции это как… спиннеры.
+
avatar
+4
Но погодные станции это как… спиннеры.
спиннеры уже отошли, а у погодных станций задел еще огромный.
Может под «погодной станцией» — разное понимают? Например, зафиксировать текущую температуру, давление, влажность — это просто. А предугадать погоду на завтра (имея доступ к дополнительным данным), а просчитать — будет ли сегодня голова болеть, или ноги крутить?
Да и термостат в котел соорудить за 2 копейки — все же лучше, чем пробухать эти деньги — верно ведь?
+
avatar
  • LynXzp
  • 05 мая 2018, 16:52
0
предугадать погоду взять ESP и распарсить погодный сайт или API.

Ну или пойти во все тяжкие: изучить метеорологию, построить нейронку и выкачивать ежедневно терабайты данных. В мире нет никого более беспомощного, безответственного и безнравственного, чем терабайты погодных данных. И я знал, что довольно скоро мы в это окунёмся.
+
avatar
0
взять ESP и распарсить погодный сайт или API
Да, но там не будет хватать температуры в доме и за окном. Соответственно, как одеть ребенка — не понятно.
А так все в одном месте — и внутри, и снаружи, и дождь, и прогноз.
Заодно и тренировка в создании «цельности из разрозненности».
И еще — создавать архиваторы с игрушками (в одиночку) — это чистейшая математика. А погодная станция — это дизайн и немного программирования. Т.е. направленности все-же разные.
+
avatar
  • LynXzp
  • 05 мая 2018, 17:08
0
Архиватор игрушка и файловый менеджер — это я про однотипность мышления. (сам я только игрушку не писал, но все порываюсь, архиватор — математика, в fm — нету, как раз исключительно API и дизайн)

там не будет хватать температуры в доме и за окном
Где Вы такой допотопный сайт нашли? Ладно, шучу, прям точно за окном температуру не узнать, но погрешность в 2 градуса совсем не критична. А вот точность прогноза самодельного и с сайта как самокат и феррари. Причем можно знать будет ли дождь в ближайший час, два, три… можно выйти ровно на час чтобы успеть вернуться до начала дождя.

А температура внутри это уже как героиновая зависимость.
+
avatar
+2
Где Вы такой допотопный сайт нашли?
За МКАДом жизнь существует :)

но погрешность в 2 градуса совсем не критична.
Угу, но только если температура меняется на 2-4 градуса за минуту — значит на улице еще и ветер присутствует.

А температура внутри это уже как героиновая зависимость.
Значит многие (особенно молодые) родители — приобретают эту зависимость, особенно в первые 3-6 месяцев жизни нового члена семейства.
+
avatar
  • LynXzp
  • 05 мая 2018, 17:25
0
За МКАДом жизнь существует :)
Сейчас сайты позволяют указать точку в поле. А дальше интерполируют показания относительно соседних. Вполне точно показывает погоду у моей бабушки, где деревню не найти на большинстве сайтов.

Значит многие (особенно молодые) родители — приобретают эту зависимость
Известная болезнь: geektimes.com/post/297999/ geektimes.com/post/289453/
Некоторые стараются лечиться: geektimes.com/post/289671/
Выбрал из первого попавшегося, правда не нашел статьи что мне понравилась.
Хотя в первые месяцы возможно надо.
+
avatar
0
если температура меняется на 2-4 градуса за минуту
— значит термодатчик плохо размещен — нагревается солнцем или какой-то поверхностью и меряет температуру в своих локальных условиях :)
+
avatar
0
— значит термодатчик плохо размещен — нагревается солнцем или какой-то поверхностью и меряет температуру в своих локальных условиях :)
Да… но в станции же можно получать много разных значений, и баловаться математикой. Весь тред об этом :)
+
avatar
0
При неправильно размещенном датчике никакая математика в разумном объеме не поможет :)
+
avatar
0
При неправильно размещенном датчике никакая математика в разумном объеме не поможет :)
Ну выше же был реальный пример детектирования ветра косвенными признаками. :)
Понятно, что для получения максимально приближенных к средневзвешенным в объеме данных нужно строить короб. Но весь цимес собственноручно построенных метеостанций — именно в процессе, и в возможности испробовать нестандартные приемы для решения своих задач.
На «правильном» градуснике — 26, а на «неправильном» в течении минуты меняется от 35 до 29. Вывод — солнце шпарит, ветерок обдувает. Ребенку получить солнечный «бабах» — как два пальца об асфальт. По-этому мокрая панамка на голову и команда появляться каждые 15 минут, для обновления «охлаждающей жидкости». :)

Почему-то вспомнилось:
— Вам нравятся дети?
— Нет… но сам процесс.

Так и здесь — интересен процесс, а остальное — мелочи :)
+
avatar
-1
Ну выше же был реальный пример детектирования ветра косвенными признаками. :)
Так в том-то и проблема, что вместо измерения температуры воздуха получается показометр ветра — есть он или нет :) Ни температуру уже не меряет нормально, ни скорость ветра не показывает :)
+
avatar
0
Ни температуру уже не меряет нормально, ни скорость ветра не показывает :)
Опять-же… если голова ребенка открыта, и он находится на солнце, то с большей вероятностью она разогреется до той, которую показывает «термометр на солнце». Да и скорость ветра не особо нужна, часто достаточно ранжировать — сильный/слабый/нет. С этим справится.
Ну и к той-же метеостанции добавляются «правильные» термометры, барометры, гигрометры и данные с разных «погодподземлей» :)
В общем — здесь есть поле, поле обширное, интересное, и имеющее низкий уровень вхождения.
А здесь топикстартер еще и достаточно интересные дисплеи засветил… (вспомнили :))))) )
+
avatar
0
А температура внутри это уже как героиновая зависимость.
Не совсем так. У меня частный дом и допотопный котел, который ручками регулирую до комфортной температуры. Так при изменении температуры на улице (зимой) очень полезно наблюдать изменение температуры внутри для своевременного регулирования (этакий пид). И это при наличии хоть какого то регулирования самого котла.
+
avatar
  • LynXzp
  • 05 мая 2018, 18:24
0
Эксперименты это святое.
+
avatar
+1
По динамике все хорошо, особенно если использовать «hardware» SPI на Arduino. Я конечно не говорю про вывод видео, но частичное обновление экрана происходит достаточно шустро. В стандартных применениях (вывод каких-либо числовых величин, символов) необходимо обновлять только небольшой регион, а не все изображение целиком. Т.е. заполнили буфер пикселями и в режиме «burst» (пикслели друг за другом без другой информации) передали этот буфер в нужную область экрана.
+
avatar
  • LynXzp
  • 05 мая 2018, 16:25
0
Ладно, понятно что ничего не понятно, сейчас на столе лежит 480x320 с библиотекой UTFT, жить можно, но медлительность раздражает (перерисовка проходит быстрее секунды, но все равно глаз успевает замечать как компоненты перерисовываются один за другим). И там еще и параллельный 16-ти битный интерфейс. Читаю даташит, думаю попробовать 8-ми цветовой режим чтобы быстрее все рисовать.
+
avatar
0
480x320 с библиотекой UTFT
надеюсь не 328-й :)
Вон на радиокоте осциллограф вполне себе отличный GFX завел. Но там железо «чуток» посильнее :)
+
avatar
  • LynXzp
  • 05 мая 2018, 16:40
0
Сейчас 2560, но это вообще никакой разницы. Могу так оставить или пересадить на ESP32 но только SPI без параллельного интерфейса. Хотя 8 цветов на SPI ESP32 должно быть явно быстрее, но полноцветное изображение — нет.
+
avatar
+1
Сейчас 2560, но это вообще никакой разницы.
Ну так и будет. Здесь же достаточно внушительный массив нужно двигать, AVR-ы ардуиновские, а тем более прицепленные через универсальные библиотеки, еще и в arduino-среде быстро перерисовывать не будут.
ARM + нормальная среда и работа по прерываниям — будут.
Ардуина — это отлично для быстрого, но простого протатипирования. Но если нужно выжать максимальную производительность из железа, то это однозначно не ардуина, а спеки, маны и правильная сдк-шка :)
+
avatar
  • LynXzp
  • 05 мая 2018, 17:09
0
Ну AVR я от регистра до регистра знаю, и некоторые библиотеки их используют очень эффективно. UTFT еще не раскапывал, пока там только инициализация огромнейшая с попыткой инициализировать все известные экраны, и это меня не волнует. Прерывания в данном случае не нужны совсем. Разве что посмотреть как реализован ногодрыг и адаптировать для конкретного экрана.
+
avatar
0
Прерывания в данном случае не нужны совсем. Разве что посмотреть как реализован ногодрыг и адаптировать для конкретного экрана.
Т.е. предлагаете перерисовывать часть экрана внутри loop-а в ардуине?
Будет медленно, буквально со скоростью перепрохода этого самого loop-а.
+
avatar
  • LynXzp
  • 05 мая 2018, 17:31
+1
Я думал что Вы про прерывания для отрисовки. Ну для приема внешних данных по UART я настрою, остальное не нужно. И по большому счету отрисовываем экран а на остальное забиваем. В 99% задач подходит.
+
avatar
0
И по большому счету отрисовываем экран а на остальное забиваем. В 99% задач подходит.
Ну так по-этому для кнопок-станций-статик интерфейсов подходит. Для динамики нужен минимальный объем оперативки для буфера(ов) и минимальная скорость передачи по шине. Все, что не вписывается в минимальные значения — будет тормозить. Ардуиновские AVR-ы не вписываются, у них другая цель, и она вполне себе достигнута.
+
avatar
  • LynXzp
  • 05 мая 2018, 17:54
0
Кмк наши представления и требования сильно различаются, нет смысла абстрактно продолжать.
+
avatar
0
Все же можно посчитать. Например, Вам нужно передавать на каждый пиксель 16 бит. Всего пикселей — 480*320=153600, бит для них нужно передать 153600*16=2457600. Если экран нормально воспримет 16 МГц SPI, то идеальное время для перерисовки всего экрана — 2457600/16000000=0.1536 секунды. Это при условии, что SPI в контроллере не делает пауз между байтами и весь массив льется в SPI по DMA.
Максимальную скорость SPI на AVR я уже не помню, но вот паузы между байтами ее SPI по-моему делает, и ни о каком DMA из памяти не может быть и речи :) То есть раза в три длительность можно смело умножить — это еще если не отрисовывать что-то сложное типа шрифтов с прозрачностью :)
+
avatar
  • ewavr
  • 05 мая 2018, 19:33
0
Вроде максимальная частота SPI в AVR Fclk/2. DMA есть только в XMEGA, формально это тоже AVR )
+
avatar
0
Формально — да, архитектура ядра AVR :)
+
avatar
  • mnb2
  • 05 мая 2018, 16:09
+4
скажи мне об этом в 90-х, не поверил бы…
+
avatar
+1
Интересные экранчики.
Для поделок на ардуине еще очень удобны такие дисплейчики, они 128х160 и почти 1,8"
+
avatar
0
Да, но у них детализация, цветопередача и углы обзора как у экрана в центре на фото.
+
avatar
+1
Да, но у них детализация, цветопередача и углы обзора как у экрана в центре на фото.
Это по сути они и есть, только более растянутые. Здесь именно о применении в ардуине (на атмеге 328-й в 99% случаев). И именно для такого применения есть два плюса — бОльший физический размер, и меньшее количество обрабатываемых пикселей (т.е. меньшая прожорливость памяти).
Если бы они были бы еше и IPS — для ардуины небыло бы конкурентов в принципе. :)
Рассмотренный экран отличный, но ОЧЕНЬ мелкий.
+
avatar
0
Друзья, помогите подобрать экран на плеер руйзу X02
Раздавил-каюсь.На шлейфе JL-18CO2-SD-A2
Вроде 1,8 дюйма,26 пинов…
Вот это не он? ru.aliexpress.com/item/1-77-inch-JL18C01-SD-A2-ST7735S-OLED-MP3-game-machine-LCD-screen/32830794125.html?dp=13c47f3a2ff48dda79cbddcd239c1cfe&af=137322&cv=47843&afref=&mall_affr=pr3&aff_platform=aaf&cpt=1525527915485&sk=VnYZvQVf&aff_trace_key=d0195c565c344e18bdcb4ec4f91df0f6-1525527915485-03881-VnYZvQVf&terminal_id=86a85b20937d4f54bc8274682e1a8c83
По фоткам в нете JL18C01 имеет 20пинов, поэтому чешу репу )))
+
avatar
+1
Экран — отличный. Под интернет радио мелковат, конечно.
Но, то что начали продавать приличные экранчики по шуточной цене — тенденция хорошая.
+
avatar
0
Но, то что начали продавать приличные экранчики по шуточной цене — тенденция хорошая.
Это да. Спасибо $10 «умным» часам :)
+
avatar
0
А что за часы на IPS за 10$?
+
avatar
0
А что за часы на IPS за 10$?
Это больше как собирательный образ массовой продукции, в которой используется конкретный дисплей.
+
avatar
0
В исходники не лазил. Как будут обтстоять дела с другими ведомыми на шине и вашей библиотекой?
+
avatar
0
Вариант 1: Использовать для экрана «software» SPI.
Вариант 2: Если для экрана скорости «software» SPI мало, то для него можно задействовать «hardware» SPI, а для всего остального «software» SPI.
В примере скетча, который идет с библиотекой несколько вариантов подключения экрана — с использованием «software» и «hardware» SPI, а также с использованием CS и без.
+
avatar
+2
Мдя. Bit-bang SPI? Спасибо не надо. Костыли нам не нужны. Костыли — это плохо. Те кто пользуется костылями должны гореть в аду и ехать на боковушках возле туалета. Потому что инженер, который проектировал вагон, думал так же как вы сейчас. Подождем нормальный с выделенным CS. К тому же в вашем сценарии ног у esp8266 не хватит.

За труды и популяризацию спасибо. Плюс поставил.
+
avatar
+1
Мдя. Bit-bang SPI?
А Вы зря его недооцениваете, достаточно бодрый. Раза в три конечно медленнее чем софтовый, но тем не менее, работать можно.
+
avatar
+1
А еще у ATmega328p есть вариант с использованием USARTSPI (USART в режиме SPI) со скоростью до Fclk/2. Но тогда мы лишимся UART.
+
avatar
0
Чем вам bit-bang spi не угодил? с аппаратным видели сравнения — поищите — удивитесь.
И с чего вдруг bit-bang вдруг костылем стал? Если реализовано что-то программно, а не аппаратно — это сразу костыль что-ли?
+
avatar
0
чем вам bit-bang spi не угодил?
Скоростью. Осмысленно дергать софтом ножки всегда будет гораздо медленнее, чем аппаратное решение.
если реализовано что-то программно а не аппаратно — это сразу костыль что-ли?
В данном случае — да :)
+
avatar
0
Скоростью.
По скорости будет лишь чуть уступать, причем большинство девайсов с SPI имеют ограничения по скорости, в которые Вы скорее упретесь, чем в нехватку скорости при бит-бэнге.

В данном случае — да
Ну да, ну да, особенно если надо сделать несколько SPI и не стэковать их (например из-за той-же скорости), а аппаратный доступен только один.

Можно, конечно, заюзать STM или MEGA вместо тиньки — но вот это уже тогда — точно костыль.
+
avatar
0
По скорости будет лишь чуть уступать, причем большинство девайсов с SPI имеют ограничения по скорости, в которые Вы скорее упретесь, чем в нехватку скорости при бит-бэнге.
Да ладно… Большинство SPI-устройств умеет как минимум 8 МГц, чего софтовым ногодрыганьем никогда не достигнуть на 16-мегагерцовом контроллере.
Ну да, ну да, особенно если надо сделать несколько SPI и не стэковать их (например из-за той-же скорости), а аппаратный доступен только один.
Можно практический пример девайса на тиньке когда действительно необходимо работать
одновременно
по двум или более SPI?
+
avatar
+1
Чем вам bit-bang spi не угодил? с аппаратным видели сравнения — поищите — удивитесь.

Только потому что есть железный на борту. Расход ног памяти и тд.

Зачем вам ноги? Щас такие протезы делают, мама дорогая. Увидите и удивитесь.
+
avatar
-2
Расход ног
Бгг, так как раз из-за ног его и делают — когда нужно несколько SPI без стэкования, а аппаратный только по одной-двум максимум.

памяти
Это на что там память-то уходит, нука-нука, удивите? Или Вы код считаете? Дак огорчу — очень мало уйдет на программную реализацию, а если на ASM — то вообще копейки — даже для Тиньки13 это несущественно.

А по-поводу «увидите и удивитесь» прежде чем спорить, посмотрите тесты скорости бит-бэнг SPI и аппаратного и потом уже поговорим, если вопросы останутся.

плюсы bit-bang SPI:
+ любое количество (ограничение только ноги)
+ работа на любом проце (в независимости от модели, а если на C — то и в независимости от платформы)

минусы:
— более низкая скорость работы
— затраты времени выполнения

И это уж точно — не костыль а вполне себе фича — мы еще не дожили до времени, когда все платформы будут универсальный и SPI можно будет повесить сколько угодно на какие угодно ноги.

И эта фича дает возможность делать вещи гораздо более дешевым и использовать их на 100%, а не стрелять пушками по воробьям используя тяжелые и дорогие процы и нагружая их на 5% чтобы «лампочкой помигать» — только ради аппаратной реализации протокола связи.

Не смешите вобщем — bit-bang — это инструмент, и как любой инструмент — ему есть время и место для применения и если Вы не овладели навыком работы с ним — так дело в Вас, а не в инструменте.

Так что костыль в таком случае — Вы.
+
avatar
+2
Битбенг инструмент когда нет на борту железного протокола. Например сделать из FTDI програматор. Таки да за такой Битбенг я обеими руками. Все остальное это отговорки тех у кого серого вещества мало и кому микрофон мешает.
+
avatar
+4
посмотрите тесты скорости бит-бэнг SPI и аппаратного и потом уже поговорим, если вопросы останутся.
Видел, сам пробовал, поэтому вопросов и нет. Ногодрыганье — костыль на самый крайний случай.
плюсы bit-bang SPI:
+ любое количество (ограничение только ноги)
+ работа на любом проце (в независимости от модели, а если на C — то и в независимости от платформы)
Оба плюса сильно притянуты за уши. Любое количество обычно нафиг не нужно, как и работа на каких-то экзотических микроконтроллерах, не имеющих аппаратного SPI. А если уж очень сильно нужно, то просто надо взять контроллер с двумя SPI.
минусы:
— более низкая скорость работы
— затраты времени выполнения
Забыли еще один немаловажный минус — микроконтроллер во время передачи наглухо занят этой самой передачей и больше ничем (кроме критичных прерываний) заниматься не может.
bit-bang — это инструмент
Это костыль для тех кто не умеет работать с аппаратным или не умеет выбрать подходящий под задачи микроконтроллер :)
+
avatar
  • LynXzp
  • 05 мая 2018, 19:23
+1
Костыли нам не нужны.
Костыль костылю рознь. После мучений с I2С на AVR я плюнул на аппаратный TWI и реализовал программный UART по тем же пинам, благо аппаратные прерывания на них есть и платы переделывать не пришлось.

UART даже программный прост как две копейки, а I2C нельзя назвать полностью аппаратным в AVR.
+
avatar
-1
Ну не знаю. На avr ардуино i2c работает нормально. С esp8266 есть нюансы — github.com/enjoyneering/ESP8266-I2C-Driver
+
avatar
  • LynXzp
  • 05 мая 2018, 20:59
+1
Ардуино, а внутрь смотрели? Он пополам программно-аппаратный. Вот например этот Wire.cpp и twi.c.
А знаете как байт в UART переслать без библиотеки? UDR=data;
(Ну еще можно проверить флаг на занятость, и это без прерываний, и без инициализации, каждое из них займет по 3-5 строк.)
Считать так же: data=UDR;
Вот это аппаратная реализация в отличие от I2C.

Я писал без arduino и сдался реализовывать состояния и обрабатывать зависания при неотвечающих устройствах.
+
avatar
  • mzr910
  • 05 мая 2018, 19:19
+2
мне показалось или автор путает TN или STN с TFT а то если что IPS тоже основан на TFT
+
avatar
  • Rifer
  • 06 мая 2018, 22:20
0
Я б даже больше сказал: все три дисплея являются TFT. . Автор поддался распространненой путанице понятий.
+
avatar
+1
особенно oled — а что ж, не вакуумная же технология)

нефиг приплетать сюда формально терминологию, которой 60 лет в обед — при том, что все поняли, в каком смысле использованы автором расхожие определения

поборитесь лучше за чистоту йазыка с литий vs li-ion, там поезд возможно ещё не совсем ушёл;)
+
avatar
  • Dimon_
  • 06 мая 2018, 00:22
+1
тем более среди ардуиньщиков мало кто держал в руках паяльник
Ну вот уж нет. Вот совсем нет, простите…
+
avatar
+1
Hi, what did you change to the ST7789 library to solve the missing CS problem? Thanks for sharing!

Привет, что вы перешли в библиотеку ST7789, чтобы решить проблему отсутствия CS? Спасибо, что поделился!
+
avatar
+1
Hi. I changed the SPI mode and methods of sending data and commands to the display. And made some changes in the initialization of the display.
+
avatar
+1
Great! It works for me. Thank you very much.
+
avatar
0
наверное продавец. щас будет раздавать негодующим покупателям.
+
avatar
+2
Не, продавцу я писал уже. Сказал ему, что может давать ссылку на работающую библиотеку. На что он мне ответил «да, Вы можете использовать ее». Китайцы — они такие китайцы…
Это как раз негодующий покупатель, видимо.
+
avatar
0
Китайцы — они такие китайцы…
Не знаю, как в китае, но в жизни китайцы из китая… они гораздо хуже… Это реально инопланетяне.
+
avatar
0
Поделитесь, пожалуйста, мастерством — как вы находите такие лоты?
Я ввожу в поиск ST7789 и мне выдаёт только два результата:
Дополнительная информация
+
avatar
0
Я просто просматриваю что нового у тех продавцов, у которых постоянно беру.
Странно, сделал такой же запрос, у меня в результатах поиска 30 вариантов.
Скрин
+
avatar
+1
Зашёл через Tor — первые попыток 5-10 при вводе в поиск ST7789 али требовал меня залогиниться.
Пробовал всякие варианты — жать Enter, кликать на рыжую кнопку, выбирать предлагаемые варианты из списка…
После этой «дрочки» алиэкспресс через Tor наконец начал выдавать 30 результатов БЕЗ требования залогиниться!
В моём фаерфоксе по-прежнему выдавало 2 результата.
И только после того как я приказал фаерфоксу «Забыть об этом сайте», мне начало выдавать 30 результатов!

Такое ощущение, что распространённые термины кэшируются и выдаются без регистрации, а редкие НЕ кэшируются и требуют логина. Но если хорошо постараться, можно сделать термин распространённым.

Вопрос требует продолжения экспериментов…

edit: Всё равно не понятно, почему у вас сразу выдавало 30 результатов, может на разных серверах разный кэш…
+
avatar
  • evg123
  • 18 мая 2018, 21:57
+1
Я давно заметил, что поиск на али работает не совсем корректно. Такое ощущение что хорошие лоты скрываются от покупателей. Листая товары в магазинах, попадались предложения, которые не мог найти через поиск. А еще если отсортиорвать результат поиска, количество найденных товаров уменьшается.
+
avatar
0
А ещё он по-разному ищет в разных браузерах и по-разному отбрасывает дефисы/точки/пробелы в названиях.
Особенно заметно, если искать Хиквижинские камеры по названию модели.
+
avatar
0
Давно искал такой экранчик, маленький, с высоким разрешением и хорошим углом обзора. Спасибо автору темы, купил себе такой же — полный восторг!
+
avatar
  • IAlex
  • 21 ноября 2018, 01:30
0
Эти экранчики нужно постоянно регенерировать из внутренней памяти МК на частоте 25 Гц, или у них встроенная память есть, чтобы вывести в неё изображение и оно будет с частой 25 Гц выводится на экран без МК?
+
avatar
  • AndyBig
  • 21 ноября 2018, 01:54
0
Практически у всех дисплеев с контроллерами есть внутренняя память, обновлять постоянно их не нужно.
+
avatar
  • scliva
  • 13 января 2019, 20:32
0
Купил такой же дисплей, попробовал вашу библиотеку, скетч примера собрался на разных платформах, но увы всегда мусор на экране:( в чем может быть дело?
+
avatar
0
Люди, как подключить этот дисплей к ардуино? Китаец игнорирует. Почему все жопят хотя бы фото, как подключено? Неужели жалко вам?
+
avatar
  • SCratORS
  • 02 февраля 2019, 15:48
0
Дак там в примере же все написано
Sda — линия даеных pin11
Sdl — тактирование pin13
Dc и reset — pin 8 и 9
Vcc и blk — 3.3v
Gnd — gnd

Только вот одна фигня, — мусор на экране и всё. Как-будто запись в буфер экрана не происходит, т.е. при инициализации дисплей мусор из памяти показывает, и дальше экран заливается черным и дальше всё тупо зависает.
Беда видимо из-за обновлений adafruit'овских библиотек. Х.з на какие версии у автора было сделано.
Подобная беда была с олед1306. Написал скетч под версию 1.2.4, — работает, обновил библиотеку и скеч перестал работать, тупо всё зависает. Хорошо бы автор обновил свою либу
+
avatar
0
Это ладно. Как картинку вывести? Неужели в коде каждый пиксель выводить?
+
avatar
0
Пробуй стандартные адафрутовские библиотеки задав CS как -1
+
avatar
0
Дошли руки до данного дисплея. Завелся на 36МГц SPI на stm32f103. И я получил заливку всего экрана 240x240x16бит 25мс или 40fps.
Но тут какой то косяк, все равно видно как обновляется изображение. На ютубе к данному дисплею тоже видел такой комментарий «медленный он невероятно, я разогнал обмен до 11ФПС, а обновления выше 6ФПС не поднимаются никак.»

P.S. Сторонними библиотеками не пользуюсь.


+
avatar
0
Если кому интересно, все нормально с частотой обновления. Просто нет вертикальной синхронизации и визуально появляются кадры, где есть часть старого кадра и часть нового. Тут уже ничего не сделаешь, на шлейфе нет вывода TE для синхронизации.

Вот я программно синхронизировал ~ частоту обновления (через porch и frame rate) и частоту вывода и даже никаких артефактов не видно :). Но это синтетика, вывод TE все равно для этого нужен.
40fps, заливка красный-зеленый-синий. Используется stm32f103, DMA не используется.
yadi.sk/i/c_CBeqB3S7UA4g
+
avatar
0
вот бы такой экранчик с встроенным контроллером и usb входом
+
avatar
  • lobyte
  • 30 августа 2019, 20:46
0
Для работы с экраном без CS не надо паять или использовать переделанные библиотеки, достаточно добавить в строку инициализации tft.init третий параметр SPI_MODE2, например, tft.init(240, 240, SPI_MODE2);
+
avatar
  • SIKA
  • 15 сентября 2019, 21:58
0
Экран TFT 1.8 дюйма, подключение и вывод текста с NodeMCU, в данном видео вывод данных о YouTube канале. Спасибо за просмотр, критика принимается ))
+
avatar
  • dadigor
  • 06 февраля 2020, 17:28
0
А к чему тут этот старинный экран? Для сравнения он не подходит — разрешение у него ниже, как помнится 160х128, то есть в 2,8 раза и сам экран не IPS, то есть соответсвенно смотрится нормально только под каким-то углом.
+
avatar
  • PIV0
  • 08 декабря 2019, 09:26
0
Всем привет. Загрузив в esp8266 5 фотографий, запустив их по очереди получилось анимационное видео. Выведя это на дисплей 240х240, качество мне очень понравилось, yadi.sk/i/vaWl60k8uZ_F0A
+
avatar
  • Jiva
  • 11 июня 2020, 11:12
0
Доброй ночи! Нужна помощь в подключении дисплея TFT LCD на st7789, 15pin, 240x240, IPS 1.54", SPI 262K RGB, интерфейс передачи данных 3 проводной, яркость 250, входное напряжение 2.8в. Хочу подключить к ардуино уно или нано, но в электронике новичок и со всей доступной информации подходящего ни нашел. Разница в пинах: 1-15: LEDK,GND,FMARK,SDA,WR,RS,CS,RESET,IOVCC1.8,VCC2.8,VCC2.8,GND,GND,LEDA,LEDA. P.S. дисплей от смарт часов без тача.
+
avatar
  • bazarv
  • 16 октября 2021, 22:49
0
Подскажите пожалуйста подобный маленький экран но сироты на нем можно было видео поиграть, как на GoPro 9, а лучше 10, передний маленький экран