Jump to content

    
Sign in to follow this  
zheka

STM32F429-Disco, CubeMX и TouchGFX Designer. Тема будет долгой....

Recommended Posts

5 минут назад, mantech сказал:

А так понимаю, дама хотела все готовое и чтоб сразу работало...:dirol:

Ну так вроде полно народных библиотек и уроков по работе с этим контроллером...

Если лень писать самому, берется первый понравившийся комплект исходников и поехали.

Хоть я и не фанат подобных библиотек (а от народстрим так и подавно), но для быстрого подключения они годятся.

Share this post


Link to post
Share on other sites
4 минуты назад, mantech сказал:

А так понимаю, дама хотела все готовое и чтоб сразу работало...:dirol:

Так она вроде писала что:

В 28.03.2020 в 15:14, Xenia сказал:

микроконтроллеры слушаются меня

неужто слушания не хватает на то, чтобы нарисовать простую строку текста любым шрифтом в ОЗУ и переслать её через SPI в ILI?

Нарисовать самым простым способом, без всяких наложений на фон, областей отсечения и пр. Просто - на место каждой точке принадлежащей букве шрифта ставить точку цветом A, а каждой не принадлежащей - цветом B. Потом послать получившееся в ILI, предварив это командой обновления области видеоОЗУ. Вроде - куда уж проще. А обсуждение всё тянется и тянется вокруг 3-х сосен который день....  :smile:

12 минут назад, mantech сказал:

"Так есть для него что-то готовое или с нуля начинать - даташит на ILI9341 курить? :)"

Без понятия. По готовому быдлокоду - это не ко мне. Я - куритель даташитов  :big_boss:

Share this post


Link to post
Share on other sites
1 час назад, jcxz сказал:

Но почему то продолжаете перетирать одно и то же. В чём проблема нарисовать строку текста в ОЗУ и вывести её через SPI в этот самый ILI9341? За прошедшее время уже можно было успеть так сделать. Не понимаю проблемы...

Как это почему? Программку готовую хочу :). Я так и сказала - примерчик нужен, чтобы "Hello World!" на этот дисплей выводила.

 

 

1 час назад, jcxz сказал:

По готовому быдлокоду - это не ко мне. Я - куритель даташитов

 

А я в даташит ILI9341 как заглянула, там мне сразу же поплохело :). Даташиты на МК с интересом читаю (вероятно потому, что много ранее известного там встречаю), а даташит на дисплей ну никак не идет. Я уже говорила - не любят меня дисплеи :) и я их взаимно не люблю.

Share this post


Link to post
Share on other sites
1 час назад, Xenia сказал:

А я в даташит ILI9341 как заглянула, там мне сразу же поплохело :). Даташиты на МК с интересом читаю (вероятно потому, что много ранее известного там встречаю), а даташит на дисплей ну никак не идет. Я уже говорила - не любят меня дисплеи :) и я их взаимно не люблю.

Если бы вы его внимательнее почитали, увидели бы что ничего страшного там нет. Если прочитать описание команды записи в видеопамять

8.2.22.  Memory Write (2Ch)

то видно, что для того чтобы записать прямоугольный массив точек в видеоОЗУ ILI нужно последовательно отправить 3 команды: CASET (2Ah), PASET (2Bh), RAMWR(2Ch). В последней собственно и передаётся массив точек прямоугольного окна.

ili9341.thumb.png.d2c96976a991ec517098cd44fd174625.png

Share this post


Link to post
Share on other sites
2 hours ago, mantech said:

ногодрыг - это программный цикл по которому откуда-нибудь данные перекидываются в порт и программно формируется защелкивание и т.д.

Нет, это болезнь мозга под названием - адруино_мышление. От этой болезни можно вылечиться, если использовать голову по назначению.

Xenia - 

Любая техническая документация печатается в строгой последовательности - всё что раньше важнее того что ниже. Собственно читать её нужно именно в такой последовательности, и на практике применять, и в алгоритмах использовать.

Если первым идёт описание команды ресета и сна - то это первое что должно использоваться в обмене с дисплеем. 

 

Share this post


Link to post
Share on other sites
1 час назад, jcxz сказал:

увидели бы что ничего страшного там нет.

Да мудрено там чего-то наворотили. Как-то видел контроллер дисплея, там для записи нужна была 1 команда с 2мя параметрами 1-стартовый адрес, 2й - длина строки. потом тупо данные с автоинкрементом, прямоугольная область заполнялась автоматически... 

53 минуты назад, AVI-crak сказал:

Нет, это болезнь мозга под названием - адруино_мышление.

Не всегда. Гораздо приятнее тот же I2C программный, работает на ура, глюков нет, в отличие от того же аппаратного в стм, порты могу выбирать любые, так что не стоит подходить так категорично. В случае с дисплеями - бред конечно...

Edited by mantech

Share this post


Link to post
Share on other sites
33 минуты назад, mantech сказал:

Да мудрено там чего-то наворотили. Как-то видел контроллер дисплея, там для записи нужна была 1 команда с 2мя параметрами 1-стартовый адрес, 2й - длина строки. потом тупо данные с автоинкрементом, прямоугольная область заполнялась автоматически...

Так в ILI9341 почти также, только размеры и положение прямоугольной области задаются двумя отдельными командами CASET, PASET, за которыми идёт команда передачи данных RAMWR. Я же на картинке выше привёл это.

Share this post


Link to post
Share on other sites
7 часов назад, AVI-crak сказал:

Да что там за код такой, что так туго работает?

Да я вроде пытался понятно описывать. Сербы применили STM32F746ZG - отлично! Нужно подключить 7" TFT - вроде бы есть LTDC - не применили, поставили внешнюю SSD1963 с параллельной шиной. Отлично, в МК есть FMC - тоже не применили. Подключили параллельную шину на два разных порта 8+8 бит. И на случайные ножки порта сигналы CS, RD, WR, DC. Шину нужно эмулировать программно. Это я и называю "ногодрыгом".

Ну а дальше, когда я захотел запустить эту плату применяя CubeMX и STemWIN, мне пришлось написать только функции конфигурации SSD1963 и записи/чтения команды/данных в SSD1963.
Все остальное в STemWIN уже есть. Также и скорость отрисовки я измерял при помощи демо-примера от STemWIN, который сам гоняет туда-сюда данные в различных режимах и выводит результаты на экран. И получилось 1-2 экрана/сек (800 х 480 х 24). Так что моего кода там минимум.

 

14 часов назад, Xenia сказал:

Почему не хочу? Хочу! Вот только SDRAM не хочу использовать. Отсюда и мой вопрос о том, является ли обязательной жертва SDRAM, чтобы пользоваться этим дисплеем. Или в упрощенном/терминальном режиме есть возможность этой жертвы избежать? Вижу, что STemWin требует этой жертвы, потому и тот вопрос, есть ли ей замена под тем же CubeMX/HAL, если требования к графике снизить до минимума.

STemWin не требует этой жертвы, и я вам это уже писал. Ему вообще все равно, где вы ему выделите область памяти. Я выделял в процессоре. И памяти может быть немного.

 

3 часа назад, Xenia сказал:

Как это почему? Программку готовую хочу :). Я так и сказала - примерчик нужен, чтобы "Hello World!" на этот дисплей выводила.

Xenia, вы просто образец женщины! :wink2:
То говорили: "Не предлагайте мне этот "Hello World!" - видеть его не могу!"
А сейчас: "Хочу "Hello World!" примерчик".

Ну таки еще раз: CubeMX знает о существовании платы STM32F429I-DISCO. Поэтому при помощи выставления нужных галочек он создаст вам рабочий проект для STM32F429I-DISCO с полностью готовым для работы STemWin. Более того, в этом шаблоне проекта уже с применением STemWin будет выведено на экран "Hello World!" :smile:

А дальше открываете "emWin Graphic Library with Graphical User Interface User & Reference Guide" и делаете все что душе угодно. И не нужно даже лезть в Datasheet на ILI9341.

Share this post


Link to post
Share on other sites
11 hours ago, Baser said:

Сербы применили STM32F746ZG - отлично!

Что-то мне подсказывает - что ПП получилась красивой и простой, без обилия переходных, всего на двух слоях, и с огромной площадью.

Share this post


Link to post
Share on other sites
18 часов назад, Baser сказал:

Ну таки еще раз: CubeMX знает о существовании платы STM32F429I-DISCO. Поэтому при помощи выставления нужных галочек он создаст вам рабочий проект для STM32F429I-DISCO с полностью готовым для работы STemWin. Более того, в этом шаблоне проекта уже с применением STemWin будет выведено на экран "Hello World!" :smile:

А дальше открываете "emWin Graphic Library with Graphical User Interface User & Reference Guide" и делаете все что душе угодно. И не нужно даже лезть в Datasheet на ILI9341.

Тогда еще разик и мой ответ послушайте: мне нужен пример, где SDRAM  не используется, а если CubeMX  сообщить о  существовании платы STM32F429I-DISCO, то он сделает графику через SDRAM, да еще и FreeDOS туда загонит.

 

Почитайте сами, что пишет CubeMX при попытке подключить графику:

StemWin.png

 

Share this post


Link to post
Share on other sites
11 часов назад, AVI-crak сказал:

Что-то мне подсказывает - что ПП получилась красивой и простой, без обилия переходных, всего на двух слоях, и с огромной площадью.

Не, ну не так там все плохо. :biggrin:  Плата позиционируется как development board и для этих целей вполне подходит, если не считать кривое подключение дисплея и уже снятых с производства Touch Screen controller и Wi-Fi модуля. Габариты ее в 7" дисплей. Для студентов и самодельщиков самое то. Начальство купилось на рекламу и даже предполагало использование в приборах, что мне сразу было странно исходя из ее конской цены. По крайней мере для меня возня с ней была полезной. Cлегка разобрался с TFT и понял как делать НЕ НАДО. Для проекта буду свою плату ваять.
 

5 часов назад, Xenia сказал:

Тогда еще разик и мой ответ послушайте: мне нужен пример, где SDRAM  не используется, а если CubeMX  сообщить о  существовании платы STM32F429I-DISCO, то он сделает графику через SDRAM, да еще и FreeDOS туда загонит.

Прошу простить, погорячился. :pardon: Забыл про все эти дурацкие ограничения. :dirol:
Тогда другой метод: создаем два проекта в CubeMX для STM32F429I-DISCO. Один по умолчанию (FreeRTOS можно сразу выключить, она для STemWin не нужна),
а во втором выключаем LTDC, DMA2D, SDRAM и включаем в FMC режим LCD Interface. При этом будет доступна опция GRAPHICS, где можно выбрать графический пакет и шину через FMC.
Смысл этого всего в том, что можно создать два проекта и потом из них сделать один рабочий по принципу "здесь играем, здесь не играем, а здесь мы рыбу заворачивали..." (с)

И это я не издеваюсь, именно так я запускал STemWin на пресловутой сербской плате. За 5 мин не получится, но это возможно.

з.ы. кстати, там на STM32F429I-DISCO по умолчанию перемычки на дисплей запаяны в положении IM[0..3] = 0110 --> 4-wire 8-bit serial I, SDA:In/Out
И этот сериальный интерфейс заведен на SPI5 процессора. Так что не удивлюсь, если идущий в комплекте демо-проект не использует LTDC и работает через SPI

Share this post


Link to post
Share on other sites
1 час назад, Baser сказал:

демо-проект не использует LTDC и работает через SPI

Гадать не придется - по SPI там только экран переводится в режим RGB и дальше работает по LTDC STM32:smile:

Share this post


Link to post
Share on other sites

Всем привет! Опять потребовался хелп!

Картина следующая: возникают артефакты (на фото плохо заметно, видео большое получается). Границы фигур (объектов) по вертикали дергаются хаотично +/- пикселей 10, как на старом телике)) при плохой настройке антенны. Кто-то сталкивался? Железо: STM32F746 + память EM63A165TS-6G. Плата не самодельная SK-STM746 + ATM0700. Все настраивал руками (ну, в КУБе, + touchGFX) добился пока этого

IMG_2070.JPG

Edited by dr.v

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this