Кто любит RISC в жизни, заходим, не стесняемся.
Ответить

blue pill + китайский дисплей 2.2 на ILI9341 Arduino IDE

Пт дек 11, 2020 22:40:07

Добрый день!

Приобрел я китайский дисплейчик на 2.2 дюйма без тачскрина на 240 х 320 пикселей. Вроде бы ILI9341 т.к. другие контроллеры из мне известных поддерживают меньшее разрешение. И стал его дружить с blue pill (stm32f103c8t6).

Началось бодренько и с приколами. Есть у меня похожий дисплейчик, но чуть поменьше. На ST7735 с разрешением 128 х 160. Тоже по SPI подключается. Нашел к нему библиотеку Arduino_ST7735_STM и он завелся без проблем! Ну, думаю, для начала и этот запущу с той же библиотекой.

На удивление - заработал! Но с приколами. Изображение на четверть экрана, мерцает зверски, и шрифты зеркально отображаются. Четверть экрана исправил сразу же, выставив в библиотечном .h файле верное разрешение (240 х 320 - он указан на самом дисплее). Дальше - веселее. Заметил, что при питании от 3.3 v он выдает хаотическую картинку, а вот от 3.1 v - вполне устойчивую. Но только мерцает ужас как сильно. Как старый монитор со сбитой частотой кадров.

Про шрифты вообще еще не думал - пишут что есть простое решение вроде функции инверсии координат экрана.

Ну теперь решил - пора. Нужно на нормальную библиотеку переходить - для ILI9341 и лучше с DMA.

Дня два "долбился" с инетовскими библиотеками. Оказалось, что больше половины из них - с реальными ошибками! Незадекларированные переменные в середине и.т.д. И такие выложили на github и приложили к своим примерам! Это непонятно...

Нашел, наконец, нормально работающую (т.е. нормально компилирующуюся) библиотеку с DMA. Загружаю пример - и ничего! Белый экран! При этом в serial port выдает вполне осмысленную информацию и никаких сообщений об ошибках. Подана такая-то команда, теперь такая-то.

Я бы с радостью оставил его на библиотеке под ST7735, но мерцает сильно. И что за хрень с напряжением питания? Может быть на нем вообще какой-то контроллер, выдающий 240 х 320 и близкий по командам к ST7735 но не совместимый с ILI9341?

Если кто понимает - отзовитесь пожалуйста! Дисплей не ковырял (не хочется) а то посмотрел бы микруху, что на ней написано. Или стоит?

Пришлите пожалуйста (если у кого есть) лично проверенный пример под blue pill с подобным дисплеем и под Arduino IDE. Гарантированно работающий.

Не пользуюсь я тяжелым софтом - ни HAL ни CMISIS уж извините. Ну если что на EmBlocks пишу помимо Arduino IDE. Раньше - под ардуину, потом - под Attiny13 а теперь под stm32.

Как вообще понимать такие странные глюки дисплея. От чего они мерцают вообще если изображение в память выводится один раз и все?

Если ничего не поможет и никто не ответит по делу - ну что же, возьму "мерцающую" но работающую библиотеку от ST7735 и перепишу команды на правильные для ILI9341 - они вроде бы различаются.

Спасибо от меня и моих кошаков - их двое.

Re: blue pill + китайский дисплей 2.2 на ILI9341 Arduino IDE

Сб дек 12, 2020 08:06:40

:facepalm:

Re: blue pill + китайский дисплей 2.2 на ILI9341 Arduino IDE

Сб дек 12, 2020 22:09:42

Спасибо, посмотрел. Как-нибудь научусь понимать исходники написанные хоть и на Си, но под незнакомые библиотеки... Интересна схема входной цепи для осциллографа. Но я все же о другом.

1. Из-за чего дисплей на ILI9341 жутко мерцает, как старый монитор на видеозаписи? Как это лечится? Это неправильная установка каких-то временных параметров или железо?

2. Есть ли кто-нибудь живой из прочитавших, кто реально сам запустил дисплей на ILI9431 с blue pill на какой-нибудь библиотеке из-под Arduino IDE. Например на Adafruit_ILI9341_STM. В инете куча примеров и клонов этой библиотеки - у меня ни один не работает. Работает на Adafruit_ST7735 но плохо.

Добавлено after 5 hours 13 minutes 41 second:
С библиотеками разобрался (весьма поковыряв) - сделал рабочую. там надо Adafruit_GFX_AS везде заменить на Adafruit_GFX.

Но дисплей - япона мама (точнее - китая мама) инициализируется раз из 5-6 раз! И если его, уже работающего, коснуться - то выдает белый экран. Но не мерцает. Попробую питание уменьшить и все же шлейф посмотреть, как он пропаян.

Добавлено after 3 hours 33 minutes 6 seconds:
Да, похоже что это брак. В диапазоне питания 2.9 - 3.1 в он работает несколько лучше. Запускается где-то раз из десяти. Библиотека тут не причем. Шлейф вроде хорошо пропаян. А где сам контроллер я так и не понял... в толще платы что ли? Или в самом дисплее... Может где можно подпаять - но где?

Re: blue pill + китайский дисплей 2.2 на ILI9341 Arduino IDE

Ср дек 16, 2020 23:39:02

Разобрался... Все работает. Оказывается, нельзя использовать PA0 на blue pill для "дрыгания". На ней по умолчанию функция управления режимом низкого энергопотребления (WKUP) висит, как я понял. Взял вместо PA0 PA4 и все пошло как надо.

Граждане чайники! Перед применением blue pill посмотрите хорошо, чтобы задействованные ноги в схеме были свободными!

Re: blue pill + китайский дисплей 2.2 на ILI9341 Arduino IDE

Чт дек 17, 2020 00:03:10

Тоже хочу TFT ILI9341 на blue pill подключить.
https://bigl.ua/p543079358-tft-touch-lc ... JWEALw_wcB
Только SPI мне не светит, микробейсик мой только шину 8 бит для TFT поддерживает, а она в blue pill с дырками.Там еще Контроллер spfd5408, надеюсь, что аналог ILI9341 .
Завтра буду пробовать.

Re: blue pill + китайский дисплей 2.2 на ILI9341 Arduino IDE

Чт дек 17, 2020 05:45:25

Не аналог, сам на такое нарвался
А что за микробейсик? Он для ST?

Re: blue pill + китайский дисплей 2.2 на ILI9341 Arduino IDE

Чт дек 17, 2020 12:08:39

Novice user, прошил, но на ногах нет импульсов, экран пока не подключал. Сейчас контрольный светодиод подключу. Микробейсик поддерживает ST. Там компиляторы для Си, бейсика и паскаля на одной платформе. Для TFT есть визуальная среда программирования, лепишь на форму элементы управления со свойствами и событиями, как в визуал бейсике.

Re: blue pill + китайский дисплей 2.2 на ILI9341 Arduino IDE

Чт дек 17, 2020 13:27:40

Loyso Pondohva писал(а):Оказывается, нельзя использовать PA0 на blue pill для "дрыгания".
Можно. Это видимо из-за ArduinoIDE.
Пишите в нормальной IDE и проблемы не будет.

Re: blue pill + китайский дисплей 2.2 на ILI9341 Arduino IDE

Чт дек 17, 2020 16:34:41

Спасибо, а то начал с кокоса и пришёл в тупик, кейл на ноутбуке зависает, кубе мх тоже зависает, попробую

Re: blue pill + китайский дисплей 2.2 на ILI9341 Arduino IDE

Чт дек 17, 2020 23:07:29

Novice user писал(а):начал с кокоса и пришёл в тупик
Из-за чего возник тупик?
Можете попробовать EmBitz. Может с ним получится.

Re: blue pill + китайский дисплей 2.2 на ILI9341 Arduino IDE

Чт дек 17, 2020 23:22:29

Зашел в тупик с I2C STM32F030 ,хотел научиться управлять SSD1306,но никак,простые комманды отправляются не корректно (там команда отправляется тремя битами-адрес,два ноля,потом комманда,почему то уходят только первые 2 бита и все тут)

Re: blue pill + китайский дисплей 2.2 на ILI9341 Arduino IDE

Чт дек 17, 2020 23:27:00

Не думаю что это из-за кокоса или кейла. Вероятно ошибка в коде.

Re: blue pill + китайский дисплей 2.2 на ILI9341 Arduino IDE

Чт дек 17, 2020 23:30:46

Я тоже так думаю...Я еще валенок с стм... но я учусь :-)

Re: blue pill + китайский дисплей 2.2 на ILI9341 Arduino IDE

Чт дек 17, 2020 23:50:09

С F103 пока только дисплеи по 8080 использовал. Кстати библиотеки от 9341 отлично подходят к 9486, если вкурить даташит там кажется один регистр только отличался, но и без его изменения работает.
PA0 вполне работает на любые нужды. А вот шину 8 битную нормально повесить можно только на старшую восьмерку порта B. PA11-12 работать не будут пока не отключишь USB.

Без буфера на шине можно спалить порт, такие вот китайские дисплеи. Направление берем с RD.

Re: blue pill + китайский дисплей 2.2 на ILI9341 Arduino IDE

Пт дек 18, 2020 00:10:30

Рязанцев Владислав писал(а):PA11-12 работать не будут пока не отключишь USB.
USB по умолчанию отключен.

Re: blue pill + китайский дисплей 2.2 на ILI9341 Arduino IDE

Пт дек 18, 2020 00:31:17

USB по умолчанию отключен.

В Arduino IDE с ядром stmduino - нет, нужно закомментировать кое чего в нем. Первоначально то тема под ней идет.

Re: blue pill + китайский дисплей 2.2 на ILI9341 Arduino IDE

Пт дек 18, 2020 14:11:06

А вот шину 8 битную нормально повесить можно только на старшую восьмерку порта B.

Когда делал цифрой фильтр на F103, то использовал младшую шину под ЦАП.
Что бы освободить b3 и b4 давал код
AFIOEN_bit=1
SWJ_CFG0_bit=0
SWJ_CFG1_bit=1
SWJ_CFG2_bit=0
а b2 тянул с ноги проца.

Re: blue pill + китайский дисплей 2.2 на ILI9341 Arduino IDE

Сб дек 19, 2020 17:44:47

а b2 тянул с ноги проца.

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

Re: blue pill + китайский дисплей 2.2 на ILI9341 Arduino IDE

Сб дек 19, 2020 17:55:04

Рязанцев Владислав, весь порт B blue pil реально можно задействовать.

Re: blue pill + китайский дисплей 2.2 на ILI9341 Arduino IDE

Сб дек 19, 2020 17:58:28

реально можно задействовать.

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