Есть вот такой индикатор [url="http://www.litemax.com/download/manual/spanpixel/MU_SSF_SSH0822_20111018_Preliminary.pdf"]LITEMAX SSH0822[/url] Разрешение 1024х324. Интерфейс дисплея LVDS. Для передачи через LVDS предполагается использовать DS90C365A. На входе этой микросхемы 3 канала (RGB) по 6 бит, горизонтальная и вертикальная синхронизация, сигнал тактирования и еще чего то там. Согласно даташиту на TFT, ему нужно с частотой 45 MHz передавать 18 бит цвета (3 цвета по 6 бит). 18 бит - это один пиксель. В строке 1024 пикселя. После прорисовки строки передается строчный импульс синхронизации и происходит переход на следующую строку. И так прорисовывается 324 строки. После подается кадровая синхронизация и снова прописывается новый кадр.
Вопрос: Чем выводить на этот индикатор изображение? Даже если использовать что то вроде stm32f4, то максимальной частоты в 168 MHz уже не хватает. На то что бы передать 18 бит у stm есть около 3 тактов. А ведь еще нужно формировать картинку и другими делами заниматься. В общем, нужно что-то вроде отдельной видеокарты, со своей памятью, которая будет заниматься обслуживанием этого TFT. А контроллер не спеша будет передавать на эту "видеокарту" нужную картинку в нужные моменты времени.
Может есть какая-нибудь микросхемка, которая выполняет роль "видеокарты" для TFT с разрешением 1024х324 или кто-нибудь все-таки каким-то чудом смог сформировать такое разрешение на топовых ARM контроллерах?
Заголовок сообщения: Re: Формирование изображения 1024х324 на TFT без видеопамяти
Добавлено: Пн фев 10, 2014 17:24:32
Потрогал лапой паяльник
Карма: 11
Рейтинг сообщений: 110
Зарегистрирован: Пн май 24, 2010 19:33:41 Сообщений: 342 Откуда: Москва
Рейтинг сообщения:0
Vipper писал(а):
Есть вот такой индикатор [url="http://www.litemax.com/download/manual/spanpixel/MU_SSF_SSH0822_20111018_Preliminary.pdf"]LITEMAX SSH0822[/url] Разрешение 1024х324.
Вопрос: Чем выводить на этот индикатор изображение?
Без видеоконтроллера никак. В простейшем случае можно собрать на мелкой логике. Совсем просто, если использовать двухпортовую память - по одному порту перебираются адреса для вывода изображения (например, простым счетчиком, который так же формирует стробы для пиксельной и строчной/кадровой записи), а по второму порту долбится основной контроллер. Вот специально для вас выпускают такую память http://www.idt.com/products/memory-logi ... leaved-ios организация шины 18 бит. А вот обычная на 8 бит: http://www.idt.com/products/memory-logi ... l-port-ram
Вопрос: Чем выводить на этот индикатор изображение? Даже если использовать что то вроде stm32f4, то максимальной частоты в 168 MHz уже не хватает. На то что бы передать 18 бит у stm есть около 3 тактов. А ведь еще нужно формировать картинку и другими делами заниматься.
Вообще то, у stm32 есть DMA, который может гнать память наружу без участия CPU. Как раз пока неспешно разбираюсь с этим вопросом, покуривая даташит.
Тогда может просто взять stm32f429? Он уже с видео-контроллером. А так же SDRAM поддерживает. Не намного дороже выйдет...
Ну да, с видеоконтроллером, который поддерживает разрешение не больше 800х600 (или даже еще меньше, точно не помню).
Так 1024x324 - это даже меньше! 800*600=480000, 1024*324=331776. Это ограничение связано с тактовой частотой видеоконтроллера, и главное тут - это в пиксельтакты уложиться.
Так 1024x324 - это даже меньше! 800*600=480000, 1024*324=331776. Это ограничение связано с тактовой частотой видеоконтроллера, и главное тут - это в пиксельтакты уложиться.
Вот он и прорисует строку длинной в 800 пикселей, затем строчный импульс синхронизации и переход на следующую строку. А переход на следующий кадр, начнется не после 324 строки, а после 600. Так что не подходит.
Так 1024x324 - это даже меньше! 800*600=480000, 1024*324=331776. Это ограничение связано с тактовой частотой видеоконтроллера, и главное тут - это в пиксельтакты уложиться.
Вот он и прорисует строку длинной в 800 пикселей, затем строчный импульс синхронизации и переход на следующую строку. А переход на следующий кадр, начнется не после 324 строки, а после 600. Так что не подходит.
Так там это все эти размеры задаются в регистрах. Размеры строк, столбцов, синхроимпульсов, и задержек между пикселями (back porch и front porch). Там 12 бит на горизонтальный размер, и 11 бит на вертикальный, вместе с синхронизацией и задержками. Получается не более чем 1.5 раза от реального разрешения всё вместе. А то и меньше.
Так там это все эти размеры задаются в регистрах. Размеры строк, столбцов, синхроимпульсов, и задержек между пикселями (back porch и front porch). Там 12 бит на горизонтальный размер, и 11 бит на вертикальный, вместе с синхронизацией и задержками. Получается не более чем 1.5 раза от реального разрешения всё вместе. А то и меньше.
В STM32F4xx Reference Manual. Вот пример для 640x480 оттуда:
Цитата:
Example of Synchronous timings configuration: TFT-LCD timings (should be extracted from Panel datasheet): • Horizontal and Vertical Synchronization width: 0x8 pixels and 0x4 lines • Horizontal and Vertical back porch: 0x7 pixels and 0x2 lines • Active Width and Active Height: 0x280 pixels, 0x1E0 lines (640x480) • Horizontal front porch: 0x6 pixels • Vertical front porch: 0x2 lines The programmed values in the LTDC Timings registers will be: • LTDC_SSCR register: to be programmed to 0x00070001. (HSW[11:0] is 0x7 and VSH[10:0] is 0x3) • LTDC_BPCR register: to be programmed to 0x000E0005. (AHBP[11:0] is 0xE(0x8 + 0x6) and AVBP[10:0] is 0x5(0x4 + 0x1)) • LTDC_AWCR register: to be programmed to 0x028E01E5. (AAW[11:0] is 0x28E(0x8 +0x7 +0x27F) and AAH[10:0] is 0x1E5(0x4 +0x2 + 0x1DF) • LTDC_TWCR register: to be programmed to 0x00000294. (TOTALW[11:0] is 0x294(0x8 +0x7 +0x280 + 0x5) • LTDC_THCR register: to be programmed to 0x000001E7. (TOTALH[10:0] is 0x1E7(0x4 +0x2 + 0x1E0 + 1)
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 20
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения