ILI9341 TFT LCD 8-битный параллельный режим не работает с GraphicStest

Кенласли
Ср. 02 мая 2018 12:20
Привет, ребята

Я публикую это перед тем, как отправить панель TFT в корзину, отмеченную «плохими устройствами, отправленными мне».

Я пытаюсь получить ЖК -дисплей ILI9341 320x240, работая с синей таблеткой.
Я проверял все свои подключения около 8 раз - я уверен, что правильно подключил их без шорт или перекрестных соединений с другими булавками.

Синяя таблетка запускает код нормальный - экран TFT остается «пустым» (просто белый экран, когда 3.Применяется мощность подсветки 3 В).
С 3.3V отключен, экран «мерцающие», который, по -видимому, соответствует запускам тестовых шаблонов, но ничего не отображается.

Серийный монитор, кажется, показывает проблему с коммуникациями. ILI9341 Тест!
Режим отображения питания: 0xd3
Madctl Mode: 0xd3
Пиксельный формат: 0xd3
Формат изображения: 0xd3
Самоагностика: 0xd3
Идентификатор устройства: 0xd3d3d3d3
Контрольное время (микросекунд)
Экран заполнен 309999
Текст 27292
Линии 126060
Horiz/Vert Lines 23695
Прямоугольники (контур) 15487
Прямоугольники (заполненные) 643837
Круги (заполненные) 104440
Круги (контур) 98367
Треугольники (схема) 29306
Треугольники (заполненные) 207032
Округлые прямы (контур) 40704
Округлые прямы (заполненные) 689085
Сделанный!
. . . Как видите, непрерывные ссылки на 0xd3 (1101 0011).

Моя проводка правильно соответствует настройкам в ADAFRIT_ILI9341_8BIT_STM.H, в частности:
int (PA_6); int (pwm_start); //pinMode(PA6, PWM); //pwm_start(PA_6, F_CPU, 1200, 600, 1);

Стивестронг
Ср. 02 мая 2018 12:49
Какая библиотека вы используете? Любая ссылка на это?

Пожалуйста, попробуйте это: https: // github.com/prentiedavid/mcufri ... eadreg.Ино и опубликовать здесь серийную распечатку.

Дэйвид.Прентис
Ср. 02 мая 2018 г. 13:00
Скачать эскиз LCD_ID_READREGER от Arduino.CC Forum или GitHub.
Отредактируйте определение, чтобы соответствовать вашей проводке на своем чертеже.

Скопировать вставку выход из серийного терминала.

Нет смысла ожидать, что что -то будет работать, пока не будет проверена проводка булавки.

Я уверен, что ваша библиотека ADAFRIT_ILI9341_8BIT_STM будет работать нормально, когда ваша проводка верна.
Ожидает ли он, что шина данных будет на PB8..PB15 ?

Я всегда использовал рекомендуемую официальную проводку, прежде чем попробовать любую пользовательскую настройку.
Эскиз Readgreg позволит вам проверить любую схему, которую вы хотите, на любой цели, которую вы хотите.глин. ESP32, STM32, Kinetis, AVR, ...

Дэйвид.

Кенласли
Ср. 02 мая 2018 г., 14:57
Спасибо, Дэвид и Стив, за то, что помогли мне.

Я изменил сценарий таким образом: void setup() { pwm_start(PA_6, F_CPU, 1200, 600, 1); } void loop() { }

Кенласли
Ср. 02 мая 2018 г. 15:05
Я только что проверил всю проводку - все хорошо - тоже нет шорт для других булавок.
Я запустил устройство от отдельного 3.3V железнодорожный волетки на случай 3.Регулятор 3V не соответствовал работе по обеспечению достаточного тока (даже если он освещает).
То же самое - нет :(

Кен

Кенласли
Ср. 02 мая 2018 г. 15:13
Ооо!
Этот поток надеется на то же самое TFT панель:
https: // форум.Ардуино.CC/INDEX.PHP?Тема = 450176.0

Эта доска, вероятно, имеет HIMAX HX8367-A Контроллер.

Кен

Стивестронг
Ср. 02 мая 2018 г., 16:02
Ну, тогда вы знаете решение: https: // форум.Ардуино.CC/INDEX.PHP?топи ... MSG3097103

Кенласли
Ср. 02 мая 2018 г., 16:05
Ты прекрасный джентльмен, Стив - да, действительно - я сейчас смотрю на эту страницу.
Еще раз спасибо.

Я буду держать эту ветку обновленным в отношении моего прогресса, так как, возможно, другие хотели бы использовать эту недорогую панель со своими проектами STM32 . . . или . . . какой-то китайский джентльмен неправильно преодолел им устройство, что это был контроллер на базе ILI на борту, и они все еще хотят попытаться заставить его работать. ;)

Кен

Мадиас
Ср. 02 мая 2018 г., 21:01
MCU Friend LCD щиты - это своего рода лотерея. Просто прочитайте отзывы на AliexPress для таких дисплеев: ILI9325 в описании и HX8367. Или наоборот ...или что -то еще.
Хорошая новость: эта библиотека поддерживает почти больше всего "популярного" друга MCU TFT:
https: // github.com/prentiadevidavid/mcufriend_kbv
Лучшая новость: работа над STM32 без проблем и/или модификаций :) (Сделано это с «старым» MCU Friend Shield (0x7783) на моем нуклео с ядром Роджерса прямо из коробки)

Rogerclark
Ср 2 мая 2018 г., 21:24
Мне нужно изменить название этой темы ?

Это решено ?

Кенласли
Ср. 02 мая 2018 г., 21:32
Привет, Роджер

Я надеялся начать, но играет с устройством в течение последних нескольких часов . . . Написание моего собственного «сырого» сценария для инициализации ЖК -дисплеев и даже отправить в него несколько основных команд . . . Даже чтобы просто включать и выключать панель, все невозможно доставить. Я просто навсегда получаю белый экран.

Если бы вы могли, не могли бы вы изменить заголовок для более подходящего «Missold ILI9341-это действительно HIMAX MX8367-A.'или что -то подобное.
Я предполагаю, что проблема решена. Все, что вы считаете нужным. Я оставлю это при этом.

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

Без сомнения, больше людей найдут с ними такая же подобная вещь. Я только что проверил eBay, и все еще есть многие из этих устройств, которые продаются как «ILI9341».

Всего наилучшего
Кен

Дэйвид.Прентис
Ср. 02 мая 2018 г., 22:33
MCUFRIENT_KBV давно поддерживает HX8367-A. Однако вам необходимо включить макрос Support_8347d, как описано в файле How_to.

Контроллеры HIMAX ведут себя совсем по -другому с ILI9341.

Я предлагаю вам использовать проводку «щит адаптера» или одну из специальных схем проводки STM32.
Если у вас есть убедительная причина другой схемы, я напишу для вас специальную.

Дэйвид.

Кенласли
Чт, 3 мая 2018 г., 16:02
Привет, Дэвид

спасибо за помощь.
Я посмотрел на вещи MCUFRIEN.
Это было в основном, поскольку я склонен не использовать мышление типа «щита». Я просто использую необработанные булавки. Обычно мне нравится «определить» для всего, что мне нужно в основном коде с самого начала.

Я увидел указатель на изменение #Define, чтобы поддержать HX8367, я не смог найти способ изменить код для поддержки булавок, которые я использовал на синей таблетке (PB8 - PB15).
Однако, если вы могли бы сказать мне, какие вырывы используются настройки настройки адаптера «Bluepill Adapter» (и любой #Define, который мне нужно либо подумать, либо прокомментировать это), я могу переоценить ЖК -дисплей и посмотреть, смогу ли я его получить Работать с использованием этого кода/библиотеки.

Спасибо
Кен

Дэйвид.Прентис
Чт, 3 мая 2018 г., 19:27
Библиотека предназначена для подключения щитов к регулярным гнездам Arduino Header.

Доски из нуклео. Поэтому я поддерживаю несколько досок нуклео. На самом деле бета.

Я предлагаю, чтобы вы проводили, как щит адаптера Bluepill. Контрольные булавки на PB5..PB9. PINS на PA0..ПА7
От mcufriend_shield.H в текущей бета -версии: https://www.st.com/content/st_com/en/search.html#q=stm32f103 board-t=tools-page=1

Мадиас
Чт, 3 мая 2018 г., 20:13
[Дэйвид.Прентис - Чт, 3 мая 2018 г., 19:27] - Святое ядро ​​следует за регулярными соглашениями.
Это очень неловко поддерживать странное ядро ​​кленового кленового ядра, которое использует Роджер.
Это наследие, оставшие :)
Более удобный метод (но медленнее, потому что не все 8 бит написаны одновременно!) для индивидуального переключения штифта на высокой скорости может использовать // check to see if usb can receive serial data bool usb(){ if(Serial.getDTR() && Serial.getRTS()) { return true; } else { return false; } } if(usb()) Serial.print("Connected");

Дэйвид.Прентис
Чт, 3 мая 2018 г., 20:37
Есть несколько удобных функций Leaflabs. Я не хочу зависеть от них.
Особенно, когда St ST Core кажется более будущим надежным.

Новый ST Core поддерживает доски Bluepill и Maplemini, а также многие доски Nucleo и Discovery.

Дэйвид.

Мадиас
Чт, 3 мая 2018 г., 22:10
@Kenlaszo: Я также без проблем попробовал свой щит MCU-друга на своем чертеже.
Три вещи, которые нужно помнить:
На экране Datalines D0 и D1 (в противоположность D2-D7) находятся в обратном направлении, поэтому дважды проверьте печать шелка на щите
На версии «Мастер» (первое, что вы можете/предпочли бы загрузить): // check to see if usb can receive serial data bool usb(){ if(Serial.getDTR() && Serial.getRTS()) { return true; } else { return false; } } if(usb()) Serial.print("Connected");

Rogerclark
Пт, 04 мая 2018 г., 6:20
[Дэйвид.Прентис - Чт, 3 мая 2018 г., 8:37 вечера] - Есть несколько удобных функций Leaflabs. Я не хочу зависеть от них.
Особенно, когда St ST Core кажется более будущим надежным.

Новый ST Core поддерживает доски Bluepill и Maplemini, а также многие доски Nucleo и Discovery.

Дэйвид.
Афик

В настоящее время, несмотря на ядро ​​STM, поддерживает общие платы, такие как Bluepill (и Maplemini, вы должны загружать через USB в серийный или stlink, так как загрузчики не поддерживаются.

Дэйвид.Прентис
Пт, 04 мая 2018 г. 8:21
Все чипы STM32 поставляются с заводским загрузчиком. Все чипы STM32 имеют интерфейс SWD/JTAG.
Modern STM32 Заводской загрузчик может использовать несколько методов интерфейса

«Пожилой» STM32F103 заводской загрузчик может только Используйте серийный интерфейс.

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

Я бы предположил, что любой встроенный набросок ядра STM может быть связан для вашего загрузчика так же, как наброски Maple Core.

Кленовое ядро ​​имеет много полезных функций. У него лучшая производительность SPI из -за DMA.
Я бы настаивал на улучшении стандартных классов библиотеки Arduino Core. Тогда пользователи Arduino выиграют на всех платформах.

Дэйвид.

Rogerclark
Пт, 04 мая 2018 г., 21:34
Ядро STM может быть изменено для поддержки с использованием загрузчика. Проблема заключалась в том, что смещение векторной таблицы жестко кодируется в один из файлов HAL без охраны IFDEF вокруг него.

Как ни странно, в файлах F4 HAL он охраняет IFDEF, и я упомянул об этом Фредерику, но я не смотрел HAL целую вечность, поэтому я дону’Знает ли команда STMS HAL теперь обновила код F1, чтобы сделать его в соответствии с F4.

Вместо того, чтобы использовать загрузчик на основе Libmaole, любой, кто использует ядро ​​STMS, который хочет использовать загрузчик, вероятно, должен посмотреть на USB HID -загрузчик по @BootSector и улучшен @Vassilis, как и он’T нужен водитель.
(Но это все еще работа)

И ядро ​​STM потребуется другие изменения для использования загрузчика HID, поскольку он использует BPK Register DR10 в качестве флага

fpistm
Пн, 7 мая 2018 г., 9:38
Просто быстрое примечание:
VECT_TAB_OFFSET определен в SYSTEM_STM32YYXX.C Файл шаблона, предоставленный ST HAL, так что его можно легко обновить или изменить, чтобы использовать охранник #IFNDEF ...

STM Core использует по одному для каждой серии в каждой STM32YYYXX/SYSTER_STM32YYYXX.в
https: // github.com/stm32duino/arduino_c ... Тер/Система

Бывший:
https: // github.com/stm32duino/arduino_c ... 1xx.C#L113
void HardwareSerial::begin(uint32 baud) { begin(baud,SERIAL_8N1); } /* * Roger Clark. * Note. The config parameter is not currently used. This is a work in progress. * Code needs to be written to set the config of the hardware serial control register in question. * */ void HardwareSerial::begin(uint32 baud, uint8_t config) { ......

Rogerclark
Понедельник, 7 мая 2018 г., 11:19
Привет, Фредерик

Спасибо.

Я думал, что, возможно, у F4 уже был #ifdef, но я проверил код на GitHub, и у него его нет :-(

Возможно, команда Hal Dev в STM удалила его, или, возможно, я просто мечтал, что это нормально на F4 ;-)

Я не уверен, что это то, что STM хочет добавить, но @bootsecter разработал USB -загрузчик USB без водителя, который занимает всего около 4K, а @Vassilis теперь улучшает его.
Я думаю, что @bootsector может также перенести загрузчик в F4.

Это, вероятно, в конечном итоге заменит загрузчик Maple Du, потому что ему не требуется драйвер, а драйверы всегда проблема

Однако все загрузчики (за исключением, возможно, USB Mass Storage) нуждаются в двоичнике для загрузки для каждой платформы.

fpistm
Пн, 07 мая 2018 г., 12:30
Роджер, он, вероятно, был добавлен в первое ядро, сделанное Wi6labs для F4.
Я думаю, что это никогда не будет добавлено в устройство CMSIS от ST, так как это в файле шаблонов, который пользователь может/должен настроить:
https: // github.com/stm32duino/arduino_c ... /Шаблоны

В любом случае, я добавил возможность переопределить его:
https: // github.com/stm32duino/arduino_c ... C8C87A9D35

Об использовании другого загрузчика, лично я думаю, что это будет отличная функция, и, вероятно, я попробую свое личное время, чтобы сделать это (как и некоторые другие функции ;) )

Rogerclark
Пн -понедельник, 07 мая 2018 г., 21:32
Привет, Фредерик

Это дон’Не думаю, что USB Hid Bootloader еще полностью стабилен, так как у Vassillis есть некоторые проблемы с Ubuntu

Я постараюсь исследовать проблемы

fpistm
Вторник 8 мая 2018 г. 8:08 утра
[Rogerclark - Пн, 7 мая 2018 г., 21:32] - Привет, Фредерик

Это дон’Не думаю, что USB Hid Bootloader еще полностью стабилен, так как у Vassillis есть некоторые проблемы с Ubuntu

Я постараюсь исследовать проблемы
Когда я скажу, что расследую об этом, я говорю о предстоящем месяце ;) Не в ближайшие недели. :рулон:

Rogerclark
Вторник 8 мая 2018 г. 8:18 утра
ХОРОШО.

Не беспокойся....

Дэйвид.Прентис
Вторник 15 мая 2018 г., 19:55
Фредерик проделал отличную работу по поддержке многих целевых плат STM32 с последним ST Core.

Новый V2.9.8 Выпуск библиотеки MCUFINTION_KBV может быть установлен/модернизирован с помощью менеджера библиотеки IDE

Добавлены контроллеры: неизвестно, сделайте 0x8031, HIMAX HX8352-B, HX8357-C, HX8357-D
Добавлены целевые платы Nucleo64: F030, F091, F103, F303, F401, F411, F446, L053, L152, L476

Никто никогда не просил поддержку доски Nucleo144. У кого -нибудь есть дисплей Nucleo144 и MCUFRIENT для тестирования?

Обратите внимание, что класс контроллера ILI9320 слишком медленный для чипсов M4.
Спросите, хотите ли вы использовать этот тип с M4 E.глин. SPFD5408, UC8230, ILI9325, R61580, ...

Дэйвид.