Перейти к содержанию

    

Скорость вывода пикселей на TFT 3.5" 320x480 (ili9486)?

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

А почему всего 14 МГц?

Глянул даташит на ILI9486, там картинка с времянкой по SPI

image.png.e8a83da174e3f0b5de5b42f1ef295caa.png

 

14МГц - это при условии автоинкремента внутреннего счетчика пикселя в экране. Ну то есть если просто гнать данные в экран (пока что в подробности не вдавался, плохо будет, если промежуточные команды надо посылать).

По картинке - в лучшем случае 30нс на период клока SPI это 33МГц. А 14МГц - это мои расчетные. В идеале - натравить DMA на постоянный вывод в дисплей сплошного потока видеобуфера (как в модуле LTDC), а в МК при отрисовке программно подпихивать разные адреса видеобуферов с подготовленными виджетами.

SDRAM да, поставить придется. Ладно, думаю тупо заказать еще дисплеев с SPI на ILI-подобном контроллере и потестировать вживую.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

По моему вы не понимаете, что Serial Clock Cycle(Write) это максимальная частота  передачи бита а не байта или 16 битного цвета.

 

Т.е. если задать прямоугольник во весь экран и заливать его двумя байтами на пиксель:

 

480*320*2*8*0,000'000'066= 0,162'201'6 секунд на кадр по SPI

 

480*320*1*0,000'000'050=0,007'68 секунд на кадр по 16 битной шине

(или в 21 раз быстрее (130 кадров в секунду(кажется матрица из видеопамяти обновляется медленнее)))

Изменено пользователем Donker

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
2 часа назад, Donker сказал:

По моему вы не понимаете, что Serial Clock Cycle(Write) это максимальная частота  передачи бита а не байта или 16 битного цвета.

Точняк. Посыпаю голову пеплом. Значит все еще хуже. Один фиг уже заказал экран - жду приезда. Буду экспериментировать и разгонять.

А подключать по 16-битной шине уже смысла нет, потому что с таким успехом я мог бы подключиться к LTDC контроллера, а там плюшек побольше будет, нежели от простой шины FSMC или, что еще хуже, ногодрыжного варианта (помимо ногодрыга, работы для CPU с головой).

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
11 часов назад, Arlleex сказал:

Глянул даташит на ILI9486, там картинка с времянкой по SPI

14МГц - это при условии автоинкремента внутреннего счетчика пикселя в экране.

А Вы уверены, что в том модуле что заказали с али стоит именно тот контроллер, который у них указан на странице? :wink: Я вот нет. Потому что китайса очень часто там пишут не то что реально стоит, а то что при поиске выдаст страницу с их товаром. Там вполне возможно совсем другой чип, совместимый по интерфейсу с ILI9xxx, но с другими времянками.

По-крайней мере как я заметил: многие ставят в своих проектах частоты SCLK >= 40МГц и не видел отзывов чтобы из-за этого переставало работать. Если-б максимальная частота STM32F429 не была бы ограничена 180 МГц, я бы попробовал и выше 45 МГц SCLK поднять. И вполне возможно что работало бы нормально.

А если посчитать для вашего разрешения: 480*320*16/45000000 = ~55мс, примерно fps==18 - не очень конечно, но может вам и хватит для анимации. В реальности там будет ещё немного хуже из-за межсловных пауз в битовом потоке, которые нельзя убрать в STM32.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Только что, jcxz сказал:

А Вы уверены, что в том модуле что заказали с али стоит именно тот контроллер, который у них указан на странице? :wink: Я вот нет.

А если посчитать для вашего разрешения: 480*320*16/45000000 = ~55мс, примерно fps==18 - не очень конечно, но может вам и хватит для анимации. В реальности там будет ещё немного хуже из-за межсловных пауз в битовом потоке, которые нельзя убрать в STM32.

Печалька какая-то:smile:

В общем что: жду из Китая дисплеи IPS с SPI- и RGB-интерфейсами, платы для их подключения есть. Сравню скорости отрисовки анимаций, но уже склоняюсь снова к первоначальному варианту с LTDC:paint2:

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
20 минут назад, Arlleex сказал:

В общем что: жду из Китая дисплеи IPS с SPI- и RGB-интерфейсами, платы для их подключения есть. Сравню скорости отрисовки анимаций, но уже склоняюсь снова к первоначальному варианту с LTDC:paint2:

Можно попробовать взять Infineon XMC4700 или XMC4800 у него 352КБ ОЗУ и SPI может работать на SCLK до 72МГц и попробовать вдуть поток с него. Рисовать картинку придётся по частям (например - верх рисуется, низ - отправляется в это время по SPI). И хранить в формате 16бит на пиксель. Правда почти вся ОЗУ на это уйдёт. Ну или поискать другой МК с примерно такой же частотой SPI, но с бОльшей ОЗУ.

Очень жаль что все эти ILI почему-то не поддерживают dual- и quad-SPI. Странно, ведь это было бы логично.

 

А ещё можно усложнить алгоритм обновления экрана и отправлять не весь экран каждый раз, а только его модифицировавшуюся часть. У Вас же всё равно отрисовка спрайтов будет идти прямоугольными областями.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Это будет разгон SPI интерфейса экрана в 5 раз.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
1 час назад, Donker сказал:

Это будет разгон SPI интерфейса экрана в 5 раз.

Почему именно в 5, а не в 6?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
7 часов назад, Donker сказал:

75000000/(1/0,000000065)=4,875

Ещё раз: А с чего вы взяли, что в заказанном на али модуле стоит чип именно с 0.000000065, а не чем то другим? Можно любое значение с потолка взять.

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Там 400 заказов 200 отзывов , по поводу подмены чипа претензий нет.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
1 час назад, Donker сказал:

Там 400 заказов 200 отзывов , по поводу подмены чипа претензий нет.

Ага, 200 отзывов "всё получил быстро, упаковано классно в пупырку"  :biggrin:

В моём модуле что-то находится под большой чёрной кляксой, подскажите: как определить что именно там находится?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Обычно, чтение из контроллерного регистра 0 даёт идентификатор контроллера; как минимум, один из признаков "живого" чипа.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
On 2/14/2019 at 8:19 PM, Arlleex said:

Экран у меня 480x320. Глубина цвета - ну на сегодняшний момент 24 бита (RGB666) (именно хранение пикселей). Вот и думаю, 480*320*30fps*3Bpp = ~14МГц обмена по SPI

 

RGB666 -> 6+6+6 = 18 бит и это совсем не 24 бита, а дальше как вы считаете - вообще загадка

480*320*30fps*3Bpp - 3 бита на пиксель ? для 18 бит нужна частота SPI в 6 раз больше, для 24 - в 8 раз.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
1 минуту назад, sasamy сказал:

 

RGB666 -> 6+6+6 = 18 бит и это совсем не 24 бита, а дальше как вы считаете - вообще загадка

480*320*30fps*3Bpp - 3 бита на пиксель ? для 18 бит нужна частота SPI в 6 раз больше, для 24 - в 8 раз.

RGB666 - это физический формат. Кодируется он целым числом байтов.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти
Авторизация