Приобрел я китайский дисплейчик на 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 - они вроде бы различаются.
Спасибо, посмотрел. Как-нибудь научусь понимать исходники написанные хоть и на Си, но под незнакомые библиотеки... Интересна схема входной цепи для осциллографа. Но я все же о другом.
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 в он работает несколько лучше. Запускается где-то раз из десяти. Библиотека тут не причем. Шлейф вроде хорошо пропаян. А где сам контроллер я так и не понял... в толще платы что ли? Или в самом дисплее... Может где можно подпаять - но где?
Разобрался... Все работает. Оказывается, нельзя использовать PA0 на blue pill для "дрыгания". На ней по умолчанию функция управления режимом низкого энергопотребления (WKUP) висит, как я понял. Взял вместо PA0 PA4 и все пошло как надо.
Граждане чайники! Перед применением blue pill посмотрите хорошо, чтобы задействованные ноги в схеме были свободными!
Любая разработка начинается с чтения документации и изучения доступных средств разработки. Данный материал целиком посвящен средствам разработки, включая детальные инструкции по запуску вашего первого приложения на BlueNRG-LP. Описана работа с отладкой STEVAL-IDB011V1, набором инструментов и пакетом ПО позволяющим разработчику быстро войти в курс дела.
Заголовок сообщения: Re: blue pill + китайский дисплей 2.2 на ILI9341 Arduino IDE
Добавлено: Чт дек 17, 2020 00:03:10
Прорезались зубы
Зарегистрирован: Пн сен 10, 2018 19:16:28 Сообщений: 211
Рейтинг сообщения:0
Тоже хочу TFT ILI9341 на blue pill подключить. https://bigl.ua/p543079358-tft-touch-lc ... JWEALw_wcB Только SPI мне не светит, микробейсик мой только шину 8 бит для TFT поддерживает, а она в blue pill с дырками.Там еще Контроллер spfd5408, надеюсь, что аналог ILI9341 . Завтра буду пробовать.
Что привлекает в SiC по сравнению с кремнием, и какие особенности делают компоненты SiC часто используемыми, несмотря на более высокую стоимость в сравнении с кремниевыми высоковольтными устройствами? – Объясняет специалист ведущего разработчика силовых приборов из карбида кремния, компании Infineon.
Заголовок сообщения: Re: blue pill + китайский дисплей 2.2 на ILI9341 Arduino IDE
Добавлено: Чт дек 17, 2020 12:08:39
Прорезались зубы
Зарегистрирован: Пн сен 10, 2018 19:16:28 Сообщений: 211
Рейтинг сообщения:0
Novice user, прошил, но на ногах нет импульсов, экран пока не подключал. Сейчас контрольный светодиод подключу. Микробейсик поддерживает ST. Там компиляторы для Си, бейсика и паскаля на одной платформе. Для TFT есть визуальная среда программирования, лепишь на форму элементы управления со свойствами и событиями, как в визуал бейсике.
Зашел в тупик с I2C STM32F030 ,хотел научиться управлять SSD1306,но никак,простые комманды отправляются не корректно (там команда отправляется тремя битами-адрес,два ноля,потом комманда,почему то уходят только первые 2 бита и все тут)
С F103 пока только дисплеи по 8080 использовал. Кстати библиотеки от 9341 отлично подходят к 9486, если вкурить даташит там кажется один регистр только отличался, но и без его изменения работает. PA0 вполне работает на любые нужды. А вот шину 8 битную нормально повесить можно только на старшую восьмерку порта B. PA11-12 работать не будут пока не отключишь USB.
Без буфера на шине можно спалить порт, такие вот китайские дисплеи. Направление берем с RD.
А вот шину 8 битную нормально повесить можно только на старшую восьмерку порта B.
Когда делал цифрой фильтр на F103, то использовал младшую шину под ЦАП. Что бы освободить b3 и b4 давал код AFIOEN_bit=1 SWJ_CFG0_bit=0 SWJ_CFG1_bit=1 SWJ_CFG2_bit=0 а b2 тянул с ноги проца.
В таблетке как она есть PB2 не выведен вообще, только на джампер выбора загрузки. Дисплей, как и прочие активные устройства на PB2 подключать не рекомендуется, так как при включении питания тот же дисплей может выдать единицу на него и загрузка пойдет не та что нужно.
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 5
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения