ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Пятница
2 мая
1514984 Топик полностью
Eddy_Em (28.04.2025 14:26, просмотров: 147) ответил Лaгyнoв на И опять у клиентов обострение. Вынь да положь им сенсорный экран от 7 дюймов и больше. Я баловался с платой STM32F746-disco. Там экран 4,3 дюйма по LTDC, внешняя SDRAM и проч. Так в реальности из доступного и будет с 7-10 дюймами? Что там будет с разрешением (опять же из доступного)? Сам МК STM32F746 (не БГА конечно, а что-то вроде LQFP-176) потянет этот дело?. И обязательно внешняя SDRAM? Экранов со встроенной памятью не бывает такого размера?
Если цвет делать восьмибитным индексируемым и изображение спрайтами, то общее количество ОЗУ для экранного буфера займет T=P+C; где P=W×H/8 - пиксельная карта, C=W×H/64 - цветовые спрайты. 

Итого, для экрана 640×480 пикселей P=38400 байт, C=9600 байт. Еще нужно не забывать о необходимости иметь хотя бы один (заполнять половинки в прерываниях на halftransfer и fulltransfer) буфер для передачи по SPI или что там еще. С внешней RAM может быть медленно (особенно если она не по "родному" интерфейсу подключается, чтобы просто маппировать в общее адресное пространство).

В общем, для не слишком крутых STM32 больше, чем 640×480 не выйдет. И то, это если ОЗУ аж 64кБ.


Хотя, глянул я MCUfinder, там аж с мегабайтом ОЗУ есть! Ну, в этом случае можно и 1920×1080 запилить без использования внешней памяти: P=259200, C=32400 + буфер, скажем, 32кБ. Итого нам потребуется 324368 байт ОЗУ. Т.е., начиная с STM32F469 в очень дохренаногом корпусе.


Ах, да: не дочитал до конца. Конечно, тот МК, что хочет использовать автор, в легкую эту задачу потянет без необходимости добавления чего-то внешнего. И экран можно соединить по параллельному 16-битному интерфейсу (понадобится выделить целый порт для этих целей + один таймер, чтобы пинать DMA). Ну или аппаратный параллельный интерфейс задействовать…

eddy-em.livejournal.com github.com/eddyem