|
|
  |
LTDC + ChromART в STM, Проконсультируйте, кто работал. |
|
|
|
Mar 3 2016, 15:07
|
Частый гость
 
Группа: Участник
Сообщений: 90
Регистрация: 7-10-11
Из: Москва
Пользователь №: 67 593

|
Цитата(Obam @ Mar 3 2016, 17:54)  Может показаться невероятным, но обычно амеры "http://www.tianma-usa.com/web/uploads/controller/20130614175157_IC%20Spec%20Request.pdf" не жадничают. Особенно если прикинуться студентом. тут ситуация другая, если дисплей в строго такой конфигурации,то по-другому они не сделают. либо в шлейфе должны быть доп. управляющие сигнальные линии
|
|
|
|
|
Mar 4 2016, 07:51
|
Гуру
     
Группа: Свой
Сообщений: 2 712
Регистрация: 28-11-05
Из: Беларусь, Витебск, Строителей 18-4-220
Пользователь №: 11 521

|
Цитата(DrGluck @ Mar 2 2016, 20:52)  Тут лучше начать с "конца" - какая нужна итоговая графика ... т.е. X*Y*Color ? На текущий момент применяю дисплей 4.3" 480х272. Но планирую изделие выпускать и с 7". С цветом определился буду делать 565. Графика у меня, скажем, офисная. То есть видео, мне ни разу не надо. ОЗУ планирую внешнее. Пока делаю на 429, но планирую попозже переехать на 746 какой-нибудь. Во внешнем озу пока не планирую ничего кроме видеобуферов. Не совсем понимаю, как там могут какие-то срывы синхронизации быть? Что-то совсем в мозги это не лезет. Я работал с таким дисплеем на LPC2478 - это вообще ARM7 100MHz. И он у меня справлялся с задачей. Здесь мы имеем CM4F с матрицей шин нового поколения и с тактовой 180МГц. Я планирую навертеть по-максимуму. То есть 2 Layer, DMA2D практически везде. Фонты я уже сформировал L4. Пока пишу нижний уровень. GUi буду писать свою. Цитата(NaughtyFreak @ Mar 3 2016, 17:16)  Есть дисплей RGB 24 бит c aliexpress, можно ли его подключить в режиме 16 бит? А какие проблемы? Просто заземлите неиспользуемые биты.
|
|
|
|
|
Mar 4 2016, 08:29
|
Частый гость
 
Группа: Участник
Сообщений: 90
Регистрация: 7-10-11
Из: Москва
Пользователь №: 67 593

|
Цитата(SasaVitebsk @ Mar 4 2016, 10:51)  А какие проблемы? Просто заземлите неиспользуемые биты. Как оказалось никаких  Можно заземлить, но лучше на MSB7 подать
|
|
|
|
|
Mar 4 2016, 09:02
|

Знающий
   
Группа: Участник
Сообщений: 756
Регистрация: 14-11-14
Пользователь №: 83 663

|
Цитата(NaughtyFreak @ Mar 3 2016, 19:07)  тут ситуация другая, если дисплей в строго такой конфигурации,то по-другому они не сделают. либо в шлейфе должны быть доп. управляющие сигнальные линии Да, интерфейс здесь RGB - без вариантов, а вот выбор разрядности цвета в соответствующем регистре (а может и не в одном) наверняка есть. И значит, надо будет физически R,G,B[1..0] не сажать на "0", а без выкрутасов подключать на LCD_R,G,B[1..0], что самое правильное. Вот просто, тупо, pin-to-pin шина TM060RDH03 - выводы LTDC.
--------------------
Пролетарий умственного труда.
|
|
|
|
|
Mar 4 2016, 12:21
|

Знающий
   
Группа: Участник
Сообщений: 756
Регистрация: 14-11-14
Пользователь №: 83 663

|
Цитата(SasaVitebsk @ Mar 4 2016, 16:07)  Не загружайте человека ерундой. Какие регистры? Как вы их программировать собрались? Где вы видите линии команд? Не надо так нервно реагировать. Нет причины. Найду datasheet, прочитаю, расскажу.
--------------------
Пролетарий умственного труда.
|
|
|
|
|
Mar 11 2016, 08:01
|
Гуру
     
Группа: Свой
Сообщений: 2 712
Регистрация: 28-11-05
Из: Беларусь, Витебск, Строителей 18-4-220
Пользователь №: 11 521

|
Вроде бы со всем разобрался, но некоторые вопросы всё же есть. Разбирался с работой DMA2D. Вроде уже всё устаканилось в голове. Так пару вопросов которые можно и натурным экспериментом... (По поводу FIFO буфера) Когда разбирал просматривал пример от ST для платы "STM324x9I_EVAL" из куба STM32Cube_FW_F4_V1.11.0\Projects\STM324x9I_EVAL\Applications\STemWin\STemWin_SampleDemo\EWARM Там как раз есть работа с DMA2D а экранчик по RGB подключён. И вот там непонятка есть... Вот типовой пример работы с DMA2D CODE static void DMA2D_ConvertColor(void * pSrc, void * pDst, uint32_t PixelFormatSrc, uint32_t PixelFormatDst, uint32_t NumItems) { /* Set up mode */ DMA2D->CR = 0x00010000UL | (1 << 9); /* Control Register (Memory to memory with pixel format conversion and TCIE) */ /* Set up pointers */ DMA2D->FGMAR = (uint32_t)pSrc; /* Foreground Memory Address Register (Source address) */ DMA2D->OMAR = (uint32_t)pDst; /* Output Memory Address Register (Destination address) */ /* Set up offsets */ DMA2D->FGOR = 0; /* Foreground Offset Register (Source line offset) */ DMA2D->OOR = 0; /* Output Offset Register (Destination line offset) */ /* Set up pixel format */ DMA2D->FGPFCCR = PixelFormatSrc; /* Foreground PFC Control Register (Defines the input pixel format) */ DMA2D->OPFCCR = PixelFormatDst; /* Output PFC Control Register (Defines the output pixel format) */ /* Set up size */ DMA2D->NLR = (uint32_t)(NumItems << 16) | 1; /* Number of Line Register (Size configuration of area to be transfered) */ /* Execute operation */ DMA2D->CR |= DMA2D_CR_START; while (DMA2D->CR & DMA2D_CR_START) { } }
В целом всё понятно. Из текста видно что завершение транзакции они ожидают полингом. Это, в принципе, не исключает обработку прерывания .... Хотя при инициализации я не вижу его ... Код void HAL_DMA2D_MspInit(DMA2D_HandleTypeDef *hdma2d) { /* Enable peripheral */ __HAL_RCC_DMA2D_CLK_ENABLE(); } Если посмотреть, к примеру в том же файле ... Код void HAL_LTDC_MspInit(LTDC_HandleTypeDef *hltdc) { GPIO_InitTypeDef GPIO_Init_Structure; /* Enable peripherals and GPIO Clocks */ /* Enable the LTDC Clock */ __HAL_RCC_LTDC_CLK_ENABLE(); .... /* Set LTDC Interrupt to the lowest priority */ HAL_NVIC_SetPriority(LTDC_IRQn, 0xF, 0); /* Enable LTDC Interrupt */ HAL_NVIC_EnableIRQ(LTDC_IRQn); } То видно что на LTDC прерывание обрабатывается ... Это же видно и в файле проекта stm32f4xx_it Там есть обработчик LTDC_IRQHandler, но нет обработчика DMA2D_IRQHandler.... Но в приведенном примере я вижу: DMA2D->CR = 0x00010000UL | (1 << 9); /* Control Register (Memory to memory with pixel format conversion and TCIE) */ То есть разрешаются прерывания по трансферу. Это как? Хомут? И как у них это работает? Кто прокомментирует?
|
|
|
|
|
Mar 30 2016, 07:19
|
Гуру
     
Группа: Свой
Сообщений: 2 712
Регистрация: 28-11-05
Из: Беларусь, Витебск, Строителей 18-4-220
Пользователь №: 11 521

|
Короче пишу на всех парах приложение. Сейчас лабаю gui. Всякие там кнопочки и прочие win элементы. Пишу с нуля. Под десятку затачиваю... )) Везде ускоритель использую. В принципе даже поворот можно делать, хотя и есть нюансы (нет отрицательного смещения на строку). Можно линии выводить, текст, иконки с несколькими видами сжатия. Удобно, что работает под отладчиком. Уже обнаружились всякие мелочи. Пока комментировать не буду, тока вчера ночью примитивы запустил. --- Пример, который упоминал, постом выше, как раз показывает как не надо делать. Показывает отличие примера, от коммерческого ПО. ((
|
|
|
|
|
Mar 31 2016, 21:34
|
Группа: Участник
Сообщений: 11
Регистрация: 22-03-13
Пользователь №: 76 154

|
Нужно больше гуев, хороши и разных=) Чем не устроили готовые решения ГУЙ (там уже по всем граблям люди прошли уже вроде)?
|
|
|
|
|
Apr 1 2016, 07:35
|
Частый гость
 
Группа: Участник
Сообщений: 132
Регистрация: 6-02-16
Из: г. Баку
Пользователь №: 90 364

|
Цитата(lleeloo @ Apr 1 2016, 01:34)  Нужно больше гуев, хороши и разных=) Чем не устроили готовые решения ГУЙ (там уже по всем граблям люди прошли уже вроде)? Человек же четко написал чем не устроили. (Зачем так акцентировать внимание именно на этом слове "ГУЙ"??) И написал также, что хочет разобраться до конца и пишет периодически об этом. Но вот после подобных заявлений наверно он начинает думать: "А нафига? Зачем я тут буду что-то писать если оно никому не надо?" А если посмотреть шире, на другие подобные темы/проблемы, то в итоге получается, что их авторы замыкаются в себе в большинстве случаев и в одиночку улучшают софт и пр. Т.к. некоторым оказывается это и не нужно вовсе. Вот так вот.
|
|
|
|
|
  |
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0
|
|
|