HX8357B против ILI9325

Flyboy74
Вторник 07 августа 2018 г. 1:19
Хорошо, я получил свой HX8357B, работающий в 16 -битной параллельной.

Сейчас я пытаюсь использовать ILI9325 таким же образом.

Я использовал свою ту же функцию инициализации FSMC, но, конечно, использовал другую функцию для инициализации экрана ILI9325. Я только что разрезаю и вставлю LCDRegistersInit (void) отсюда https: // github.com/piotrczcc/arduino-lc ... LI9325.CPP

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

Есть ли у кого -нибудь здесь опыт использования оба экрана и знает, нужно ли им изменить свою настройку FSMC между двумя экранами???

Flyboy74
Вторник 07 августа 2018 3:25
ОК, я перешел от использования FSMC, чтобы бить, чтобы исключить проблему с настройкой FSMC.

Экран действительно меняется с полного чистого белого экрана на разрядный экран, где каждая вторая линия теперь черная. Таким образом, кажется, есть какая -то проблема с кодом настройки для экрана ILI9325.

Дэйвид.Прентис
Вторник 07 августа 2018 г., 6:18
HX8357-B-контроллер в стиле MIPI.
ILI9325 - контроллер стиля ILI9320.

Они используют разные пользовательские регистры E.глин. Напишите в грамм память.
Регистры производителя сильно различаются между Himax и Ilitek.

У Himax есть совершенно случайная схема для нумерации части.

Просто посмотрите на любую библиотеку, которая поддерживает разные контроллеры. Намекать. HX8357-B похож на ILI9481. Это очень отличается от HX8357 -C или -D

FSMC - не что иное, как аппаратный интерфейс низкого уровня.
Программное обеспечение высокого уровня точно одинаково для низкого уровня SPI, 8080-16, 8080-8, 6800-16, ... аппаратный интерфейс.

Дэйвид.

Flyboy74
Вторник 07 августа 2018 г. 9:45 утра
Я занимаюсь больше, пытаясь понять, что не так.

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

Я пробовал ряд других людей init () init (), чтобы запустить свой экран ILI9325, но все они дают один и тот же результат. Экран с белым перед запуском и после выполнения кода запуска, экран становится споткнутым белым и черным.

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

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

Дэйвид.Прентис
Вторник 07 августа 2018 12:57
MCUFRIENT_KBV поддерживает более 40 различных контроллеров, включая ILI9325 и HX8357-B. С параллельным интерфейсом 8080-8. Но это также поддерживает 8080-16 как особый.
Я никогда не беспокоился о FSMC, потому что доски с яростными 64 не имеют булавок. И McUfriend Uno Щиты 8080-8.

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

Но я вполне уверен, что у Stevestrong есть библиотека, которая будет поддерживать ILI9325 и ILI9481.

Если вам нужны комментарии или помощь, опубликуйте ссылку на свой репозиторий GitHub (или другой).

Дэйвид.

Стивестронг
Вторник 07 августа 2018 г., 14:54
Посмотрите здесь https: // github.com/stevstrong/adafruit_ ... 8bit_stm32

Flyboy74
Вторник 07 августа 2018 г. 20:56
[Стивестронг - Вторник 07 августа 2018 14:54] - Посмотрите здесь https: // github.com/stevstrong/adafruit_ ... 8bit_stm32
У меня есть штифт IM0, подключенный к GND, чтобы убедиться, что он находится в 16 -битном режиме.

Спасибо, Стив, я уже попробовал код в ILI932X.CPP с заголовком ILI932X.H с моим собственным битом bang writeregister16 () и дает тот же результат изменения экрана с белого на белый и черный.

Вот мой биг -бэнд write Register16 () фонд. Я даже попытался добавить некоторую задержку в случае, если это было слишком быстро. #include int AddressWrite,DataWrite; void setup() { // initialize the digital pin as an output: Serial1.begin(115200); uint16 Status; uint16 Data; EEPROM.init(); EEPROM.PageBase0 = 0x801F000; EEPROM.PageBase1 = 0x801F800; EEPROM.PageSize = 0x400; EEPROM.write(0, 1); for (int i = 0; i < 255; i++) { Serial1.print( i); Serial1.print( "= "); Serial1.println( EEPROM.read(i)); } } void loop() { }

Дэйвид.Прентис
Вторник 07 августа 2018 22:04
Бог дал вам рулевые регистры для GPIO E.глин. BSRR
Они работают намного быстрее, чем операции RMW на ODR

Ваши функции «выглядят» в порядке. Время чрезмерное. TWC - это 100NS. Использование 1000000NS кажется ненужным.

Обратите внимание, что IM# для 8080-16-0B0010, а 8080-8-0B0011
Вы уверены, что все биты Im# верны.

Вы используете правильные регистры для адресации GRAM и записать/прочитать E.глин. 0x20, 0x21, 0x22
Область окна с 0x50-0x53

Дэйвид.

Flyboy74
Ср. 08 августа 2018 г., 2:23
Бог дал вам рулевые регистры для GPIO E.глин. BSRR
Они работают намного быстрее, чем операции RMW на ODR
Из того, что я прочитал, использование BSRR медленнее. Несколько человек поставили его на область и показали это. Большинство людей просто проще используют BSRR.
Ваши функции «выглядят» в порядке. Время чрезмерное. TWC - это 100NS. Использование 1000000NS кажется ненужным. Да, очень медленно, но это был просто простой способ убедиться, что это не слишком быстро. Когда я заставляю его работать, я смогу ускорить ситуацию, но, скорее всего, вернусь к использованию FSMC, я просто хотел, чтобы способ был исключить FSMC или скорость в качестве проблемы.
Вы используете правильные регистры для адресации GRAM и записать/прочитать E.глин. 0x20, 0x21, 0x22
Область окна с 0x50-0x53
До сих пор я только что использовал код других людей для этого, я быстро просмотрел код, и регистры/данные, кажется, что можно ожидать.

Я буду тройной проверить свою проводку.

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

Дэйвид.Прентис
Ср. 8 августа 2018 г. 8:30
Общей стратегией с неизвестным оборудованием является:

1. Прочитайте любой регистр «известные значения». эн.глин. ID регистрация
2. Напишите известное значение для задокументированного регистра чтения/записи.
3. Читать из этого регистра, чтобы проверить.

Я всегда делаю это с новым чипом i2c или чипом SPI. Аналогично с параллельным чипом интерфейса 8080-16.

Вы можете использовать эскиз LCD_ID_Readreg AS-IS для любого чипа стиля 8080-8 ILI9320.
Или изменить эскиз для интерфейса 8080-16.

Обратите внимание, что контроллеры в стиле MIPI всегда имеют 8-битные команды и аргументы, даже если база данных шире.
Тип ILI9320 имеет 8-битные команды с 16-битными аргументами.
Тип ILI9326 имеет 16-битные команды с 16-битными аргументами.

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

Дэйвид.

Flyboy74
Ср. 8 августа 2018 г., 9:39
ОК, много отличных советов там.
1. Прочитайте любой регистр «известные значения». эн.глин. ID регистрация
2. Напишите известное значение для задокументированного регистра чтения/записи.
3. Читать из этого регистра, чтобы проверить.
Я попробую это первым.
Тип ILI9320 имеет 8-битные команды с 16-битными аргументами.
Тип ILI9326 имеет 16-битные команды с 16-битными аргументами.
Продавец Aliexpress цитировал ILI9325 (ничто не значит что -либо). В настоящее время я использую 16 -битные записи для команд и аргументов. Сначала это может заплатить за меня, чтобы попытаться вытянуть IM0 до высокого уровня, чтобы поместить его в 8 -битный режим и попытаться использовать TFT всего за 8 бит вместо 16 бит.

Дэйвид.Прентис
Ср. 8 августа 2018 г., 10:20 утра
Это звучит хорошая идея. Выберите IM# ​​для 0B0011. Редактировать LCD_ID_READREG, чтобы соответствовать вашему PIN #Defines. Это должно работать на любом ардуино.

Когда я сказал, что у ILI9320 есть 8-битные команды, они все еще отправляются как 16-битные.

Flyboy74
Чт 9 августа 2018 г. 12:47
Теперь я думаю, что, возможно, есть проблема с экраном.

Я вытащил IM0 до высокого уровня, чтобы поместить его в 8-битный режим, подключил 8 лучших контактов данных на TFT к выводам PE0- PE8 на STM32F4 и попытался прочитать ID-регистр 0x0 и просто получать случайный мусор каждый раз, когда я его читаю.

Из данных ILI9325 для 8 -битного чтения
Read.jpg
читать.JPG (28.54 киб) просмотрено 183 раза