|
DMA2D в stm32f4хх, реально такой убогий, или я что-то не понимаю? |
|
|
|
 |
Ответов
|
Apr 21 2017, 10:12
|
Участник

Группа: Участник
Сообщений: 40
Регистрация: 27-01-17
Пользователь №: 95 184

|
Вопросы к знаюшим людям, может что доброе подскажут: - Плата 4-х слойка - STM32F429BIT6 180 Мгц - SDRAM MT48LC16M16A2 (16 бит шина данных) - экран 800x480 AT070TN9x(4)(подключение 24бит) , драйвер питания TPS65150 - Питание 3.3, 3А, ST1S14  SDRAM включена на 90 Мгц (проверяли до 105 Мгц), проблем с чтением/записью или долговременным хранением нет, тайминги по ДЩ. Был написан тестовый драйвер на LTDC, проверили вывод из SDRAM, никаких проблем не было. Частота клока на экран 33.3 МГц, согласно ДШ на экран. Подключили STemWin, драйвер взяли готовый (использует ARGB), подправили инициализацию и тайминги LTDC, демка запустилась, но с косяками. Начали разбираться, убрали GUI, решили позаполнять экран на максимальной скорости в главном цикле. И тут вылезли проблемы. Простейший код рисования прямоугольников синим цветом в режиме ARGB8888: Код for (uint32_t i = 0; i < 800*480; i++) { for (uint32_t y = 0; y < i%480 +1; y++) { for (uint32_t x = 0; x < i/480 +1; x++) { LTDC_Lay1_Ram[(y*LCD_HS_SIZE + x)*LCD_BPP] = 0xFF; LTDC_Lay1_Ram[(y*LCD_HS_SIZE + x)*LCD_BPP + 1] = 0x00; LTDC_Lay1_Ram[(y*LCD_HS_SIZE + x)*LCD_BPP + 2] = 0x00; LTDC_Lay1_Ram[(y*LCD_HS_SIZE + x)*LCD_BPP + 3] = 0xFF; } } } В итоге на экране во время рисования цветная каша. Но стоит остановить проц в дебаге, как на экране нужный прямоугольник без всякого шума. Сделали вывод, что проц и LTDC постоянно соревнуются за SDRAM, т.к. шина все же одна, и совместного доступа один фиг не получится. Проверили заполнение через DMA2D - ровно такая же картина. Уменьшили частоту клока до 23 мгц - экран стал отрисовываться без мусора. Поставил режим RGB888, т.е. на 1 байт на пиксель меньше, т.е. LTDC надо выводить ровно на 25% меньше данных. Увеличил частоту до 30.5 Мгц (больше на 25%) - выводится без проблем. Увеличиваем до 31 - опять мусор. Дабы убедиться, сделали второй буфер в другом банке SDRAM, и во время вывода статичного буфера на LTDC писали во второй буфер. В итоге опять мусор, хотя видеобуфер никто не трогал и не менял. Сейчас есть идея воткнуть SDRAM с шиной данных 32бит (либо две по 16 ), что даст теоретический прирост скорости обмена в 2 раза, но быть может я упускаю что-то совсем простое? Может все же SDRAM криво работает, но тогда бы терялись данные, а тут несколько иная картина. Увеличивал тактовую до 210 Мгц, не меняя клок на экран - проблемы уходили, пока не повысить клок на процент увеличения частоты проца.
Сообщение отредактировал Hold - Apr 21 2017, 10:13
|
|
|
|
|
Apr 21 2017, 10:26
|
Знающий
   
Группа: Участник
Сообщений: 758
Регистрация: 27-08-08
Пользователь №: 39 839

|
Цитата(Hold @ Apr 21 2017, 13:12)  В итоге опять мусор, хотя видеобуфер никто не трогал и не менял. Не хватает полосы памяти. Прикиньте сами - ARGB8888 это 132МБ/сек Цитата Сейчас есть идея воткнуть SDRAM с шиной данных 32бит (либо две по 16 ), что даст теоретический прирост скорости обмена в 2 раза, но быть может я упускаю что-то совсем простое? ИМХО, ничего Вы особенно не упускаете. Есть некоторые приемы работы с SDRAM, которые позволяют поднять производительность по максимуму, но в целом для таких разрешений полосы памяти недостаточно (плюс арбитр шины по всему не без проблем для такого применения). Могу посоветовать перейти на RGB565, тем более Ваш экран 24битный цвет скорее всего не поддерживает.
|
|
|
|
Сообщений в этой теме
Шаманъ DMA2D в stm32f4хх Oct 28 2015, 20:48 Genadi Zawidowski После эпсонов действительно полное ощущение что DM... Oct 28 2015, 21:08 Шаманъ Цитата(Genadi Zawidowski @ Oct 28 2015, 23... Oct 28 2015, 21:18 mantech Цитата(Шаманъ @ Oct 28 2015, 23:48) Приве... Oct 29 2015, 08:27 adnega Цитата(mantech @ Oct 29 2015, 11:27) Это ... Oct 29 2015, 08:37 Genadi Zawidowski с самым нужным шаманством над форматом пикселей - ... Oct 29 2015, 09:08 adnega Цитата(Genadi Zawidowski @ Oct 29 2015, 12... Oct 29 2015, 09:23  Шаманъ Цитата(adnega @ Oct 29 2015, 11:23) Дык, ... Oct 29 2015, 10:37   mantech Цитата(Шаманъ @ Oct 29 2015, 13:37) Почем... Oct 29 2015, 11:33 SasaVitebsk + можно для фонтов антиалиасинг использовать 4-ёх ... Oct 29 2015, 09:47 Шаманъ Цитата(mantech @ Oct 29 2015, 13:33) Не б... Oct 29 2015, 17:00 mantech Цитата(Шаманъ @ Oct 29 2015, 20:00) Ладно... Oct 29 2015, 18:32  Aner QUOTE (mantech @ Oct 29 2015, 21:32) Диск... Oct 29 2015, 22:05   mantech Цитата(Aner @ Oct 30 2015, 01:05) Сюда за... Oct 30 2015, 07:37    Шаманъ Цитата(mantech @ Oct 30 2015, 09:37) но л... Oct 30 2015, 08:20     mantech Цитата(Шаманъ @ Oct 30 2015, 11:20) У стм... Oct 30 2015, 08:45 Rash Что-то маловато граф вкусностей gfx маловато, emWi... Oct 30 2015, 06:39 Aner QUOTE (Rash @ Oct 30 2015, 09:39) Что-то ... Oct 30 2015, 07:25 Aner да я тоже лет 10 назад такое разводил, ... не прош... Oct 30 2015, 08:10 Rash STM429 в 176 LQFP разведена на 2-х слойке SDRAM, н... Oct 30 2015, 08:40 Шаманъ Цитата(Rash @ Oct 30 2015, 10:40) STM429 ... Oct 30 2015, 10:02 Rash На этой плате не проверены пока только SDRAM и LTD... Oct 30 2015, 11:41 SasaVitebsk На SRAM не прокатит. Объём объёмом, а производител... Oct 30 2015, 11:44 mantech Цитата(SasaVitebsk @ Oct 30 2015, 14:44) ... Oct 30 2015, 14:42 Шаманъ Цитата(SasaVitebsk @ Oct 30 2015, 13:44) ... Oct 30 2015, 15:26 AVI-crak Цитата(SasaVitebsk @ Oct 30 2015, 18:44) ... Oct 30 2015, 15:30  Aner QUOTE (AVI-crak @ Oct 30 2015, 18:30... Oct 31 2015, 20:49   mantech Цитата(Aner @ Oct 31 2015, 23:49) Вот вот... Nov 1 2015, 07:41    Aner QUOTE (mantech @ Nov 1 2015, 10:41) У эти... Nov 1 2015, 11:06     mantech Цитата(Aner @ Nov 1 2015, 14:06) Не зная ... Nov 1 2015, 15:53    Шаманъ Цитата(mantech @ Nov 1 2015, 09:41) У эти... Nov 1 2015, 12:09     adnega Цитата(Шаманъ @ Nov 1 2015, 15:09) Не, ко... Nov 1 2015, 13:41      Шаманъ Цитата(adnega @ Nov 1 2015, 15:41) Добави... Nov 2 2015, 06:59       mantech Цитата(Шаманъ @ Nov 2 2015, 09:59) Может ... Nov 2 2015, 07:39        Шаманъ Цитата(mantech @ Nov 2 2015, 09:39) Фриск... Nov 2 2015, 10:03         mantech Цитата(Шаманъ @ Nov 2 2015, 13:03) Рассма... Nov 2 2015, 13:47       SasaVitebsk Цитата(Шаманъ @ Nov 2 2015, 09:59) Вы так... Nov 3 2015, 05:51        Шаманъ Цитата(SasaVitebsk @ Nov 3 2015, 07:51) Н... Nov 3 2015, 08:54         SasaVitebsk Цитата(Шаманъ @ Nov 3 2015, 11:54) Если в... Nov 3 2015, 09:49     Aner QUOTE (Шаманъ @ Nov 1 2015, 15:09) Не, ко... Nov 1 2015, 14:13 Rash Цитата(Aner @ Nov 1 2015, 17:13) ...мы вы... Nov 1 2015, 17:20 Aner QUOTE (Rash @ Nov 1 2015, 21:20) думаю эт... Nov 1 2015, 22:11 SasaVitebsk Цитата(mantech @ Oct 30 2015, 17:42) Опан... Nov 2 2015, 06:40 Rash Цитата(Aner @ Nov 2 2015, 01:11) Менталит... Nov 2 2015, 19:31 Genadi Zawidowski Вопрос - DMA2D работает ли с flash памятью? Nov 3 2015, 09:14 Шаманъ Цитата(Genadi Zawidowski @ Nov 3 2015, 11... Nov 3 2015, 12:44 Шаманъ Цитата(Шаманъ @ Nov 3 2015, 15:44) Остало... Feb 5 2017, 12:42  Мусатов Константин Цитата(Шаманъ @ Feb 5 2017, 15:42) Если б... Feb 5 2017, 20:04 Aner Что за панель? Какой интерфейс у неё? И есть ли ем... Feb 5 2017, 13:27 Шаманъ Цитата(Aner @ Feb 5 2017, 16:27) Что за п... Feb 5 2017, 20:39 Мусатов Константин Цитата(Шаманъ @ Feb 5 2017, 23:39) В DMA2... Feb 5 2017, 22:35  Шаманъ Цитата(Мусатов Константин @ Feb 6 2017, 01... Feb 6 2017, 04:48 Шаманъ Интересно, рисование через DMA2D занимает не намно... Mar 1 2017, 13:39  SasaVitebsk Цитата(Шаманъ @ Apr 21 2017, 13:26) Могу ... Apr 21 2017, 10:58   Шаманъ Цитата(SasaVitebsk @ Apr 21 2017, 13:58) ... Apr 21 2017, 11:05 Hold Да, сейчас уже думаю перейти на RGB565, т.е. надо ... Apr 21 2017, 11:42 Шаманъ Цитата(Hold @ Apr 21 2017, 14:42) Но надо... Apr 21 2017, 12:52 Hold Завтра попробую rgb565, неиспользуемые биты через ... Apr 21 2017, 14:53 Шаманъ Цитата(Hold @ Apr 21 2017, 17:53) Поведай... Apr 21 2017, 15:20 Hold Попробую на 29 Гц, покручу Vcom, подстроечник есть... Apr 21 2017, 15:34 Шаманъ Цитата(Hold @ Apr 21 2017, 18:34) Попробу... Apr 21 2017, 15:52 Hold Рассчетное выходит 16.2 Мгц... тайминги почти таки... Apr 21 2017, 16:09 Genadi Zawidowski Когда-то, втискивая 272*480 во внутреннюю память S... Apr 21 2017, 17:48 Шаманъ Цитата(Genadi Zawidowski @ Apr 21 2017, 20... Apr 21 2017, 18:01 Hold Вбил ваши параметры, Vcom выкрученный в минус пока... Apr 22 2017, 04:53 Шаманъ Цитата(Hold @ Apr 22 2017, 07:53) Vcom вы... Apr 22 2017, 06:16 Hold Нашел где косяк с отрисовкой шрифтов в STemWin.
Чт... Apr 22 2017, 07:34 jcxz Вопросик может не в тему (лень читать даташит :
D... Apr 22 2017, 11:59  Шаманъ Цитата(jcxz @ Apr 22 2017, 14:59) DMA2D м... Apr 22 2017, 12:19   jcxz Цитата(Шаманъ @ Apr 22 2017, 14:19) Источ... Apr 22 2017, 12:24    Шаманъ Цитата(jcxz @ Apr 22 2017, 15:24) Понятно... Apr 22 2017, 12:38     jcxz Цитата(Шаманъ @ Apr 22 2017, 14:38) Это ф... Apr 23 2017, 10:10 SasaVitebsk Там можно было бы многое, но нет отрицательного см... Apr 22 2017, 17:25 Шаманъ Цитата(SasaVitebsk @ Apr 22 2017, 20:25) ... Apr 22 2017, 18:05  zombi Цитата(Шаманъ @ Apr 22 2017, 21:05) Второ... Apr 23 2017, 12:38 Rash А кто-нибудь менял функции или добавлял функционал... Apr 23 2017, 12:55 Шаманъ Цитата(zombi @ Apr 23 2017, 15:38) А с че... Apr 23 2017, 17:47
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|