blue pill + китайский дисплей 2.2 на ILI9341 Arduino IDE
-
Loyso Pondohva
- Прорезались зубы
- Сообщения: 213
- Зарегистрирован: Пт июл 03, 2020 22:09:02
blue pill + китайский дисплей 2.2 на ILI9341 Arduino IDE
Добрый день!
Приобрел я китайский дисплейчик на 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 - они вроде бы различаются.
Спасибо от меня и моих кошаков - их двое.
Приобрел я китайский дисплейчик на 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 - они вроде бы различаются.
Спасибо от меня и моих кошаков - их двое.
- Реклама
-
Loyso Pondohva
- Прорезались зубы
- Сообщения: 213
- Зарегистрирован: Пт июл 03, 2020 22:09:02
Re: blue pill + китайский дисплей 2.2 на ILI9341 Arduino IDE
Спасибо, посмотрел. Как-нибудь научусь понимать исходники написанные хоть и на Си, но под незнакомые библиотеки... Интересна схема входной цепи для осциллографа. Но я все же о другом.
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 в он работает несколько лучше. Запускается где-то раз из десяти. Библиотека тут не причем. Шлейф вроде хорошо пропаян. А где сам контроллер я так и не понял... в толще платы что ли? Или в самом дисплее... Может где можно подпаять - но где?
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 в он работает несколько лучше. Запускается где-то раз из десяти. Библиотека тут не причем. Шлейф вроде хорошо пропаян. А где сам контроллер я так и не понял... в толще платы что ли? Или в самом дисплее... Может где можно подпаять - но где?
-
Loyso Pondohva
- Прорезались зубы
- Сообщения: 213
- Зарегистрирован: Пт июл 03, 2020 22:09:02
Re: blue pill + китайский дисплей 2.2 на ILI9341 Arduino IDE
Разобрался... Все работает. Оказывается, нельзя использовать PA0 на blue pill для "дрыгания". На ней по умолчанию функция управления режимом низкого энергопотребления (WKUP) висит, как я понял. Взял вместо PA0 PA4 и все пошло как надо.
Граждане чайники! Перед применением blue pill посмотрите хорошо, чтобы задействованные ноги в схеме были свободными!
Граждане чайники! Перед применением blue pill посмотрите хорошо, чтобы задействованные ноги в схеме были свободными!
-
linkov1959
- Держит паяльник хвостом
- Сообщения: 923
- Зарегистрирован: Пн сен 10, 2018 19:16:28
Re: blue pill + китайский дисплей 2.2 на ILI9341 Arduino IDE
Тоже хочу TFT ILI9341 на blue pill подключить.
https://bigl.ua/p543079358-tft-touch-lc ... JWEALw_wcB
Только SPI мне не светит, микробейсик мой только шину 8 бит для TFT поддерживает, а она в blue pill с дырками.Там еще Контроллер spfd5408, надеюсь, что аналог ILI9341 .
Завтра буду пробовать.
https://bigl.ua/p543079358-tft-touch-lc ... JWEALw_wcB
Только SPI мне не светит, микробейсик мой только шину 8 бит для TFT поддерживает, а она в blue pill с дырками.Там еще Контроллер spfd5408, надеюсь, что аналог ILI9341 .
Завтра буду пробовать.
- Реклама
-
Novice user
- Мудрый кот
- Сообщения: 1704
- Зарегистрирован: Вт янв 05, 2016 10:14:25
- Откуда: поселок Мелеуз
Re: blue pill + китайский дисплей 2.2 на ILI9341 Arduino IDE
Не аналог, сам на такое нарвался
А что за микробейсик? Он для ST?
А что за микробейсик? Он для ST?
-
linkov1959
- Держит паяльник хвостом
- Сообщения: 923
- Зарегистрирован: Пн сен 10, 2018 19:16:28
Re: blue pill + китайский дисплей 2.2 на ILI9341 Arduino IDE
Novice user, прошил, но на ногах нет импульсов, экран пока не подключал. Сейчас контрольный светодиод подключу. Микробейсик поддерживает ST. Там компиляторы для Си, бейсика и паскаля на одной платформе. Для TFT есть визуальная среда программирования, лепишь на форму элементы управления со свойствами и событиями, как в визуал бейсике.
Re: blue pill + китайский дисплей 2.2 на ILI9341 Arduino IDE
Можно. Это видимо из-за ArduinoIDE.Loyso Pondohva писал(а):Оказывается, нельзя использовать PA0 на blue pill для "дрыгания".
Пишите в нормальной IDE и проблемы не будет.
-
Novice user
- Мудрый кот
- Сообщения: 1704
- Зарегистрирован: Вт янв 05, 2016 10:14:25
- Откуда: поселок Мелеуз
Re: blue pill + китайский дисплей 2.2 на ILI9341 Arduino IDE
Спасибо, а то начал с кокоса и пришёл в тупик, кейл на ноутбуке зависает, кубе мх тоже зависает, попробую
Re: blue pill + китайский дисплей 2.2 на ILI9341 Arduino IDE
Из-за чего возник тупик?Novice user писал(а):начал с кокоса и пришёл в тупик
Можете попробовать EmBitz. Может с ним получится.
-
Novice user
- Мудрый кот
- Сообщения: 1704
- Зарегистрирован: Вт янв 05, 2016 10:14:25
- Откуда: поселок Мелеуз
Re: blue pill + китайский дисплей 2.2 на ILI9341 Arduino IDE
Зашел в тупик с I2C STM32F030 ,хотел научиться управлять SSD1306,но никак,простые комманды отправляются не корректно (там команда отправляется тремя битами-адрес,два ноля,потом комманда,почему то уходят только первые 2 бита и все тут)
Re: blue pill + китайский дисплей 2.2 на ILI9341 Arduino IDE
Не думаю что это из-за кокоса или кейла. Вероятно ошибка в коде.
-
Novice user
- Мудрый кот
- Сообщения: 1704
- Зарегистрирован: Вт янв 05, 2016 10:14:25
- Откуда: поселок Мелеуз
Re: blue pill + китайский дисплей 2.2 на ILI9341 Arduino IDE
Я тоже так думаю...Я еще валенок с стм... но я учусь 
- Рязанцев Владислав
- Мудрый кот
- Сообщения: 1781
- Зарегистрирован: Пн июн 24, 2013 23:00:42
- Откуда: Казахстан
Re: blue pill + китайский дисплей 2.2 на ILI9341 Arduino IDE
С F103 пока только дисплеи по 8080 использовал. Кстати библиотеки от 9341 отлично подходят к 9486, если вкурить даташит там кажется один регистр только отличался, но и без его изменения работает.
PA0 вполне работает на любые нужды. А вот шину 8 битную нормально повесить можно только на старшую восьмерку порта B. PA11-12 работать не будут пока не отключишь USB.
Без буфера на шине можно спалить порт, такие вот китайские дисплеи. Направление берем с RD.
PA0 вполне работает на любые нужды. А вот шину 8 битную нормально повесить можно только на старшую восьмерку порта B. PA11-12 работать не будут пока не отключишь USB.
Без буфера на шине можно спалить порт, такие вот китайские дисплеи. Направление берем с RD.
Re: blue pill + китайский дисплей 2.2 на ILI9341 Arduino IDE
USB по умолчанию отключен.Рязанцев Владислав писал(а):PA11-12 работать не будут пока не отключишь USB.
- Рязанцев Владислав
- Мудрый кот
- Сообщения: 1781
- Зарегистрирован: Пн июн 24, 2013 23:00:42
- Откуда: Казахстан
Re: blue pill + китайский дисплей 2.2 на ILI9341 Arduino IDE
[uquote="Мурик",url="/forum/viewtopic.php?p=3943132#p3943132"]USB по умолчанию отключен.[/uquote]
В Arduino IDE с ядром stmduino - нет, нужно закомментировать кое чего в нем. Первоначально то тема под ней идет.
В Arduino IDE с ядром stmduino - нет, нужно закомментировать кое чего в нем. Первоначально то тема под ней идет.
-
linkov1959
- Держит паяльник хвостом
- Сообщения: 923
- Зарегистрирован: Пн сен 10, 2018 19:16:28
Re: blue pill + китайский дисплей 2.2 на ILI9341 Arduino IDE
[uquote="Рязанцев Владислав",url="/forum/viewtopic.php?p=3943127#p3943127"]А вот шину 8 битную нормально повесить можно только на старшую восьмерку порта B.[/uquote]
Когда делал цифрой фильтр на F103, то использовал младшую шину под ЦАП.
Что бы освободить b3 и b4 давал код
AFIOEN_bit=1
SWJ_CFG0_bit=0
SWJ_CFG1_bit=1
SWJ_CFG2_bit=0
а b2 тянул с ноги проца.
Когда делал цифрой фильтр на F103, то использовал младшую шину под ЦАП.
Что бы освободить b3 и b4 давал код
AFIOEN_bit=1
SWJ_CFG0_bit=0
SWJ_CFG1_bit=1
SWJ_CFG2_bit=0
а b2 тянул с ноги проца.
- Рязанцев Владислав
- Мудрый кот
- Сообщения: 1781
- Зарегистрирован: Пн июн 24, 2013 23:00:42
- Откуда: Казахстан
Re: blue pill + китайский дисплей 2.2 на ILI9341 Arduino IDE
[uquote="linkov1959",url="/forum/viewtopic.php?p=3943327#p3943327"]а b2 тянул с ноги проца.[/uquote]
B2 подключенный к дисплею может и не понять подтяжки, отсюда неправильная загрузка.
B2 подключенный к дисплею может и не понять подтяжки, отсюда неправильная загрузка.
-
linkov1959
- Держит паяльник хвостом
- Сообщения: 923
- Зарегистрирован: Пн сен 10, 2018 19:16:28
Re: blue pill + китайский дисплей 2.2 на ILI9341 Arduino IDE
Рязанцев Владислав, весь порт B blue pil реально можно задействовать.
- Рязанцев Владислав
- Мудрый кот
- Сообщения: 1781
- Зарегистрирован: Пн июн 24, 2013 23:00:42
- Откуда: Казахстан
Re: blue pill + китайский дисплей 2.2 на ILI9341 Arduino IDE
[uquote="linkov1959",url="/forum/viewtopic.php?p=3944219#p3944219"]реально можно задействовать.[/uquote]
В таблетке как она есть PB2 не выведен вообще, только на джампер выбора загрузки.
Дисплей, как и прочие активные устройства на PB2 подключать не рекомендуется, так как при включении питания тот же дисплей может выдать единицу на него и загрузка пойдет не та что нужно.
В таблетке как она есть PB2 не выведен вообще, только на джампер выбора загрузки.
Дисплей, как и прочие активные устройства на PB2 подключать не рекомендуется, так как при включении питания тот же дисплей может выдать единицу на него и загрузка пойдет не та что нужно.


