Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: DMA2D в stm32f4хх
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > ARM
Страницы: 1, 2
Шаманъ
Приветствую всех!

Собственно почитал описание DMA2D (он же Chrome-ART), и как-то все убого так. Из полезных функций это заливка и копирование? Или я что-то не понимаю? Если кто-то использует его, просветите для чего и каков эффект?

Спасибо!
P.S. Даже древний s1d13a04 и то умел намного больше...
Genadi Zawidowski
После эпсонов действительно полное ощущение что DMA2D недостойно названия "графический акселератор"
Шаманъ
Цитата(Genadi Zawidowski @ Oct 28 2015, 23:08) *
После эпсонов действительно полное ощущение что DMA2D недостойно названия "графический акселератор"

Та ото ж, сейчас понял, что он еще и индексированный цвет в качестве выходного формата не понимает 1111493779.gif
mantech
Цитата(Шаманъ @ Oct 28 2015, 23:48) *
Приветствую всех!

Собственно почитал описание DMA2D (он же Chrome-ART), и как-то все убого так. Из полезных функций это заливка и копирование? Или я что-то не понимаю? Если кто-то использует его, просветите для чего и каков эффект?

Спасибо!
P.S. Даже древний s1d13a04 и то умел намного больше...


Ну а чего вы хотели, чтоб еще и jpegи прямо в видеопамять распаковывал? biggrin.gif - Это просто 2хмерный дма...
adnega
Цитата(mantech @ Oct 29 2015, 11:27) *
Это просто 2хмерный дма...

.. и с форматами пикселей шаманить может.
Genadi Zawidowski
с самым нужным шаманством над форматом пикселей - распаковкой монохромного растра в цветной - никак.
adnega
Цитата(Genadi Zawidowski @ Oct 29 2015, 12:08) *
с самым нужным шаманством над форматом пикселей - распаковкой монохромного растра в цветной - никак.

Дык, можно предварительно распаковать монохром в L4 или A4, а DMA2D использовать для быстрой пересылки фрагментов
из памяти в видеобуфер. Распаковка происходит один раз, правда потребность в памяти возрастает в 4 раза. Зато потом можно
печатать фрагментами и блендить на лету.
SasaVitebsk
+ можно для фонтов антиалиасинг использовать 4-ёх битный
Шаманъ
Цитата(adnega @ Oct 29 2015, 11:23) *
Дык, можно предварительно распаковать монохром в L4 или A4, а DMA2D использовать для быстрой пересылки фрагментов
из памяти в видеобуфер. Распаковка происходит один раз, правда потребность в памяти возрастает в 4 раза. Зато потом можно
печатать фрагментами и блендить на лету.

Это все костыли sm.gif Я прикинул, многое из того, что я делаю Эпсоновским 2D ускорителем (а он у меня рисует всю графику, кроме одной операции - если нужно вывести отдельно одну точку sm.gif) можно реализовать и на CromeART, но во всех случаях требуется увеличение объемов памяти, минимум от 4х раз, в некоторых случаях в 10..16раз, а также увеличение фреймбуфера в два раза. Для моего применения это означает переход от внешней SRAM к SDRAM.

Цитата(mantech @ Oct 29 2015, 10:27) *
Ну а чего вы хотели, чтоб еще и jpegи прямо в видеопамять распаковывал? biggrin.gif - Это просто 2хмерный дма...

Не, JPGи мне распаковывать не надо. Мне не хватает простых функций, кроме уже названной Геннадием, было бы очень полезно иметь DMA2D с источником в виде какого-нить регистра - пишите туда данные, а 2D ускоритель записывает их в прямоугольник (при необходимости выполняя преобразования). Кроме того, было бы неплохо иметь поддержку индексированного цвета на выходе, пусть даже не полную (если мне хватает 256цветов, зачем тратить в два раза больше памяти и достаточно скромные ресурсы процессора?). Почему-то древний Эпсон, которому больше 10лет, это умеет...
mantech
Цитата(Шаманъ @ Oct 29 2015, 13:37) *
Почему-то древний Эпсон, которому больше 10лет, это умеет...


Не будте так категоричны, стм еще 2 года назад вообще и этого не умел, ибо такие камни разрабатывались вообще не для растровой графики, а простых жк индикаторов, так что прогресс есть как ни как laughing.gif
ЗЫ В любом случае, это лучше, чем засекреченные 2Д корки в процах А-серии, от которых толку ноль...
Шаманъ
Цитата(mantech @ Oct 29 2015, 13:33) *
Не будте так категоричны

Я ж не говорю, что плохо, что он есть, но допилить могли бы.

Цитата
такие камни разрабатывались вообще не для растровой графики, а простых жк индикаторов, так что прогресс есть как ни как laughing.gif

Ну а ежели камни для "простых ЖКИ", то заточенность DMA2D под RGB565 и больше не совсем логична 1111493779.gif

Ладно, похоже придется подключать SDRAM, интересно на двухслойке с stm32f439 в tqfp176 это вообще реально smile3046.gif ?
mantech
Цитата(Шаманъ @ Oct 29 2015, 20:00) *
Ладно, похоже придется подключать SDRAM, интересно на двухслойке с stm32f439 в tqfp176 это вообще реально


Дискавери, если не ошибаюсь, на 2х слойке, так почему бы и нет rolleyes.gif
Aner
QUOTE (mantech @ Oct 29 2015, 21:32) *
Дискавери, если не ошибаюсь, на 2х слойке, так почему бы и нет rolleyes.gif

Ошибаешся, 4х слойка там; значит не смотрел гербера 429Discovery. И потом таки та, без SDRAMа трудновато. Если у стекла контроллер с GRAM, тоже прикинул, все же медленнее получается. С SDRAM больше фпэсов.
Сюда загляни, на предмет граф вкусностей -> http://touchgfx.com/documentation/html/index.html
не ахти какой под M4 но все же, под M7 хром получше трудится, прогресс хоть какой.

Играюсь с 469Discovery, где 800х480, у проца и озу поболее и DIPI радует,
тотже GFX красив, но вот жаль в семействе 469 малоногих процев не сделали, да и дорогой получился чип.

QUOTE (Шаманъ @ Oct 29 2015, 20:00) *
...
Ладно, похоже придется подключать SDRAM, интересно на двухслойке с stm32f439 в tqfp176 это вообще реально smile3046.gif ?

на 2х слойке врядли, минимум 4х слойка ( не проблема сейчас то не 2000 год ) и то снапрягом, а по правильному 6 или 8 слойка.
746Dyscovery на 8и слойке сделали. Посмотрел, прикинул, похоже под 400...500Мег тактовой проца готовили плату.
Rash
Что-то маловато граф вкусностей gfx маловато, emWin повеселее будет
Aner
QUOTE (Rash @ Oct 30 2015, 09:39) *
Что-то маловато граф вкусностей gfx маловато, emWin повеселее будет

Тоже мне сравнили муравья со слоном. Похоже не мучились с GUi для этих процев, поэтому трудно вам сравнить вкусности gfxа.
mantech
Цитата(Aner @ Oct 30 2015, 01:05) *
Сюда загляни, на предмет граф вкусностей -> http://touchgfx.com/documentation/html/index.html
не ахти какой под M4 но все же, под M7 хром получше трудится, прогресс хоть какой.


Вот это совсем не айс, напоминает емвин - "The non-evaluation versions license for the precompiled libraries, TouchGFX driver and Core files, for which Draupner Graphics is the copyright owner,"

Цитата(Aner @ Oct 30 2015, 01:05) *
на 2х слойке врядли, минимум 4х слойка


Да, может с диско ошибся, но лежит куча плат от сд-ромов, 2х слойных, с сд рам... Могли ведь как-то laughing.gif

Aner
да я тоже лет 10 назад такое разводил, ... не прошли сертификацию по EMI всего то. Пришлось в 4 слойку уходить, там все решилось.
Шаманъ
Цитата(mantech @ Oct 30 2015, 09:37) *
но лежит куча плат от сд-ромов, 2х слойных, с сд рам... Могли ведь как-то

У стм32 очень неудобно выведены сигналы FMC - они со всех четырех сторон. На Вашем фото намного проще развести, и дорожки намного короче будут. В принципе еще есть вариант SRAM на 1МБ - особой скорости от нее не требуется.

Цитата(Aner @ Oct 30 2015, 00:05) *
на предмет граф вкусностей -> http://touchgfx.com/documentation/html/index.html

Для моих задач не актуально. Тем более у меня все свое, да и концепция touch интерфейса в моем случае неприменима - только некоторые моменты sm.gif Проект просто переезжает с stm32f103+s1d13a04 на stm32f439 (нужна бОльшая производительность и память, и кое-что из внешних интерфейсов отсутствующее в 103ей для дальнейшего развития, не для графики). Проект не коммерческий, ну и тут есть местные нюансы (в данное время 4х слойку ну никак заказать не выйдет), но эта история не для форума.
Rash
STM429 в 176 LQFP разведена на 2-х слойке SDRAM, на скорость пока не тестировалась и LTDC, занимает много места из-за неудобного расположения выводов. У STM вся периферия не удобно выходит. Остальные интерфейсы пришлось выносит на 2-ую плату. В итоге получился бутерброд. Корпус позволял это сделать. На 4-х слойке всё будет красивее и полигоны земли хорошие можно сделать, но опытные образцы получаются дорогие, особенно если приходится несколько итераций сделать, то ли из-за ошибок, то ли из-за изменения тех. задания.
mantech
Цитата(Шаманъ @ Oct 30 2015, 11:20) *
У стм32 очень неудобно выведены сигналы FMC - они со всех четырех сторон. неудобно выведены сигналы FMC - они со всех четырех сторон.


Ну да, это серьезный недостаток, ноги для памяти, как правило, по всему корпусу не размазывают...
Шаманъ
Цитата(Rash @ Oct 30 2015, 10:40) *
STM429 в 176 LQFP разведена на 2-х слойке SDRAM, на скорость пока не тестировалась и LTDC, занимает много места из-за неудобного расположения выводов.

О! Спасибо! А сама SDRAM то работает? Или пока только разведена?

Цитата
У STM вся периферия не удобно выходит.

К сожалению что-либо изменить тут не выйдет...

Цитата
Остальные интерфейсы пришлось выносит на 2-ую плату. В итоге получился бутерброд.

Я так тоже часто делаю, в этом случае тоже планировал сделать аналогично.
Rash
На этой плате не проверены пока только SDRAM и LTDC, остальные интерфейсы в том числе Ethernet работают. Работать я думаю будет, вот только на какой скорости не ясно, как до неё дойдёт сравню с дискавери.
У китайцев есть вот такая интересная плата, не дёшево, но разводить многое не нужно.
http://world.taobao.com/item/38629375129.h...0.7dFoeo#detail
Но на фото непофиксенная Y ревизия, в реале может и последняя идёт.
SasaVitebsk
На SRAM не прокатит. Объём объёмом, а производительность меньше. Я ковырялся ещё на LPC. Там это на глаз видно было. Так что SDRAM по любому.
Увеличение коснётся и флэши ... Фонты, картинки, виджеты... Но и преимущества очевидны. 4-ёх битным цветом всё покрасивее будет.
Конечно, требуется оценивать +/-.
mantech
Цитата(SasaVitebsk @ Oct 30 2015, 14:44) *
На SRAM не прокатит. Объём объёмом, а производительность меньше.


Опаньки... И почему статика стала медленней динамики?? Шины по 16 бит, или у статики 8?
Шаманъ
Цитата(SasaVitebsk @ Oct 30 2015, 13:44) *
На SRAM не прокатит. Объём объёмом, а производительность меньше.

А посчитать?

480х272xRGB565 TFT минимальная частота PCLK 5.1МГц, при этом будет 30 с чем-то FPS, для LTDC потребуется 4.5MTps на 16битной шине. Теперь берем медленную SRAM память (у меня в чулане нашлась K6X8016T3C-55), на 15МГц по идее ее запустить не составит труда. У нас остается 10MTps на рисование. Для двойной буферизации потребуется 480х272=130560 транзакций на одну прорисовку, для отрисовки каждой точки пусть будет два обращения к памяти, тогда на отрисовку всего экрана потребуется еще столько же. Итого 10MTps/261120 = 38fps. Как по мне вполне прилично (мне хватило бы и 10..15fps). Вот для 800х480, да будет слабовата (впрочем SRAM и намного быстрее бывает, даже у меня в чулане 10нс SRAM была какая-то). sm.gif

Цитата
Увеличение коснётся и флэши ... Фонты, картинки, виджеты... Но и преимущества очевидны. 4-ёх битным цветом всё покрасивее будет.

Что есть четырехбитный цвет? Или Вы про шрифты?

Я тут поэкспериментировал - если преобразовать все (по части графики), что у меня в проекте под формат перевариваемый DMA2D (т.е. рисунки не паковать, палитры 4 или 8бит, шрифты по 4бита на пиксель), то из 93кБ в флеше получается около 300кБ. В принципе можно так и сделать, при 2МБ флеша это не столь критично.

Цитата(Rash @ Oct 30 2015, 13:41) *
У китайцев есть вот такая интересная плата, не дёшево, но разводить многое не нужно.
http://world.taobao.com/item/38629375129.h...0.7dFoeo#detail

Да, я б с удовольствием такую себе поставил и не парился...
AVI-crak
Цитата(SasaVitebsk @ Oct 30 2015, 18:44) *
На SRAM не прокатит.

Любая статика 10нс - ровно в 9 раз быстрее sdram на рандомном чтении, и в два раза быстрее - на линейном.
А вот по цене и теплу - всё очень грустно.
Aner
QUOTE (AVI-crak @ Oct 30 2015, 18:30) *
Любая статика 10нс - ровно в 9 раз быстрее sdram на рандомном чтении, и в два раза быстрее - на линейном.
А вот по цене и теплу - всё очень грустно.

Вот вот, по потреблению, особенно когда от батарейки литиевой питаешся.
mantech
Цитата(Aner @ Oct 31 2015, 23:49) *
Вот вот, по потреблению, особенно когда от батарейки литиевой питаешся.


У этих процов достаточно своей набортной памяти, для решения большинства задач, особенно в случае портативных устройств. Если нужно большое время от батарей, то устанавливайте простые индикаторы или экранчики, как в мобильниках, со встроенным контроллером и памятью. И не пытайтесь "выжимать" из них по 150% производительности с суперграфикой, да еще и с малым потреблением...
Aner
QUOTE (mantech @ Nov 1 2015, 10:41) *
У этих процов достаточно своей набортной памяти, для решения большинства задач, особенно в случае портативных устройств. Если нужно большое время от батарей, то устанавливайте простые индикаторы или экранчики, как в мобильниках, со встроенным контроллером и памятью. И не пытайтесь "выжимать" из них по 150% производительности с суперграфикой, да еще и с малым потреблением...

Не зная софт задачи, как вы определите достаточно своей набортной памяти или нет? Да никак. Да у меня задача конкретная по ТЗ, и ваши все советы как то мимо.
... большинства/меньшенства задач откуда вам знать? ...про большинство, если процы только вышли и оч мало кто в их софте разбирается, не говоря о окружающих компонентах под задачу.
Да без ваших советов типа - ...не пытайтесь "выжимать"... как то, кучка устройств выпускается серийно пройдя все сертификации.
Шаманъ
Цитата(mantech @ Nov 1 2015, 09:41) *
У этих процов достаточно своей набортной памяти, для решения большинства задач, особенно в случае портативных устройств. Если нужно большое время от батарей, то устанавливайте простые индикаторы или экранчики, как в мобильниках, со встроенным контроллером и памятью. И не пытайтесь "выжимать" из них по 150% производительности с суперграфикой, да еще и с малым потреблением...

Не, коль добавили LTDC, то и памяти могли бы добавить - было бы от 1М внутренней SRAM, цены бы им не было. Если же юзать с внешним контроллером дисплеи, то нет смысла ни в DMA2D, ни в LTDC.
adnega
Цитата(Шаманъ @ Nov 1 2015, 15:09) *
Не, коль добавили LTDC, то и памяти могли бы добавить

Добавили FMC с возможностью подключения SDRAM. Чего еще надо? Внутренняя SRAM огромного объема будет стоить огромных денег.
Кста, 1МБ - это не так уж и много.
Aner
QUOTE (Шаманъ @ Nov 1 2015, 15:09) *
Не, коль добавили LTDC, то и памяти могли бы добавить - было бы от 1М внутренней SRAM, цены бы им не было. Если же юзать с внешним контроллером дисплеи, то нет смысла ни в DMA2D, ни в LTDC.

ДА поймите они думаны под свой круг тех задач, и не более. Оч не желательно раздувать их применение на те области куда ресурсов нехватит гарантировано и точно.
Почему не добавили, могу ответить со слов их STM чела.

...мы вычислили сегмент рынка сделали с учетом этого чип, и получаем неплохой результат теперь. Ваши требования больше внутренней SRAM мы знаем, также как и желание повыше задрать тактовую частоту. Сделав это мы не имели бы успеха, по причине того что эта память, один из дорогоих ресурсов при производстве и стоимость чипа была бы много дороже. К тому же сильно возросло потребление и мы станем не привлекательны на рынке. На сегоднешний день решение оптимально, используйте его с успехом конкурируйте на рынки продуктов с использованием процессоров от STM ...

Внеший контролер есть и без GRAM дешевые, не все так плохо с DMA2D.

QUOTE (adnega @ Nov 1 2015, 16:41) *
Добавили FMC с возможностью подключения SDRAM. Чего еще надо? Внутренняя SRAM огромного объема будет стоить огромных денег.
Кста, 1МБ - это не так уж и много.

да, согласен и это можно считать за счастье.
mantech
Цитата(Aner @ Nov 1 2015, 14:06) *
Не зная софт задачи, как вы определите достаточно своей набортной памяти или нет? Да никак. Да у меня задача конкретная по ТЗ, и ваши все советы как то мимо.


Ну хорошо, какая такая мегазадача на проце 200мег требует больше 384-512к памяти?? Наворочнную графику в расчет не беру.

Цитата(Aner @ Nov 1 2015, 17:13) *
Кста, 1МБ - это не так уж и много.


До 1 мега думаю вскоре добавят, больше вряд-ли.
Rash
Цитата(Aner @ Nov 1 2015, 17:13) *
...мы вычислили сегмент рынка сделали с учетом этого чип ...


думаю это всё маркетинговые отмазки, и не только у них, т.к с каждым годом потихоньку наращивают частоту и память. Им нужно напродавать то, что уже нашлёпали и по обещаниям должны шлёпать. И не создавать конкуренцию раньше времени другим чмпам или технологии. Пипл хавает, бабки идут, всё нормуль sm.gif
Aner
QUOTE (Rash @ Nov 1 2015, 21:20) *
думаю это всё маркетинговые отмазки, и не только у них, т.к с каждым годом потихоньку наращивают частоту и память. Им нужно напродавать то, что уже нашлёпали и по обещаниям должны шлёпать. И не создавать конкуренцию раньше времени другим чмпам или технологии. Пипл хавает, бабки идут, всё нормуль sm.gif

Менталитет там далек от вашего. Промышленность электронная нам трудится как часики, не то что тут. То что менеджеры другие 100%. То что наращивают, это новые технологии пиления камня появляются, тоже не дешевые. Их не заботит то что нашлепали и продавать им точно ни чего не нужно, по одной простой причине - заказы уже набраны, стоки заряжены, ну а далее конвейер капиталистической машины движется до первых булыжников.
SasaVitebsk
Цитата(mantech @ Oct 30 2015, 17:42) *
Опаньки... И почему статика стала медленней динамики?? Шины по 16 бит, или у статики 8?

Ну да. Я исходил из шины. Наверное есть и с 16-ти битной шиной, но подороже будет. Да и в плане доступности. Отходит это всё уже.

Цитата(Шаманъ @ Oct 30 2015, 18:26) *
А посчитать?

480х272xRGB565 TFT минимальная частота PCLK 5.1МГц, при этом будет 30 с чем-то FPS, для LTDC потребуется 4.5MTps на 16битной шине. Теперь берем медленную SRAM память (у меня в чулане нашлась K6X8016T3C-55), на 15МГц по идее ее запустить не составит труда. У нас остается 10MTps на рисование. Для двойной буферизации потребуется 480х272=130560 транзакций на одну прорисовку, для отрисовки каждой точки пусть будет два обращения к памяти, тогда на отрисовку всего экрана потребуется еще столько же. Итого 10MTps/261120 = 38fps. Как по мне вполне прилично (мне хватило бы и 10..15fps). Вот для 800х480, да будет слабовата (впрочем SRAM и намного быстрее бывает, даже у меня в чулане 10нс SRAM была какая-то). sm.gif

Прошу прощения. А что есть "двойная буферизация" в данном контексте? Почему 2 выборки на точку? О каком цвете ведём речь, 16 бит?
Я сравниваю со старым процом типа LPC2478, на котором делал пару проектов. Там для 24-ёх битной графики требовалось 32 бита памяти. Впрочем, достаточно удобно в плане обращения. STM32F4 хранит упакованный цвет. 3 байта на точку. Таким образом при полноцвете и 16-ти битной памяти, у вас 1.5 обращения на точку.
Но для данного контроллера я рассматриваю только "офисную" графику. Поэтому 16-ти бит на цвет вполне достаточно. Таким образом будет лишь одно обращение на точку.
При этом если рассматривать 2 слоя, то надо считать примерно среднее значение. То есть - основное окно 480*272 плюс диалоговое примерно 1/3. И того 174080 выборок, за время отрисовки экрана, при "чистом" отображении. При обновлении изображения, в "пике" вам надо, как минимум двойную пропускную. То есть 480*272*2. Если ещё оттуда же брать и примитивы, ну например кнопки подготовленные, то это ещё увеличит.
Цитата
Что есть четырехбитный цвет? Или Вы про шрифты?
Я тут поэкспериментировал - если преобразовать все (по части графики), что у меня в проекте под формат перевариваемый DMA2D (т.е. рисунки не паковать, палитры 4 или 8бит, шрифты по 4бита на пиксель), то из 93кБ в флеше получается около 300кБ. В принципе можно так и сделать, при 2МБ флеша это не столь критично.

Да я тоже к этому склоняюсь. Я уже написал конвертер. Получается 10.5к на шрифт. Таким же макаром сделать кнопки и другие примитивы. Таким образом вывод = копированию DMA2D с разворотом цвета. Скажем для кнопки - 2 операции. 1 - вывод самой кнопки, 2 - вывод надписи/ либо рисунка.
Неудобство в том, что не масштабируется. То есть надо для разных разрешений экрана отрисовывать свои виджеты. Преимущества - по красивее виджет получится, скорость вывода, простота отрисовки.
Шаманъ
Цитата(adnega @ Nov 1 2015, 15:41) *
Добавили FMC с возможностью подключения SDRAM. Чего еще надо? Внутренняя SRAM огромного объема будет стоить огромных денег.
Кста, 1МБ - это не так уж и много.

Вы так и не поняли мою мысль. Во многих случаях нет смысла в связке микроконтроллер+SDRAM, т.к. подобное решение по цене/сложности практически равно более продвинутым вариантам на Cortex-Ax+внешняя память. Для очень многих применений не нужно много МБ ОЗУ - достаточно обычного объема присутствующего в таких МК (128..256К) + объем требующийся для фреймбуффера небольшого дисплея. Теперь ответьте на вопрос имея выбор из двух МК - один в котором все вмещается внутри, а второй с необходимостью обвеса SDRAMом, что бы Вы выбрали под свою задачу?

Может быть у стм32 все маркетологи предусмотрели, но почему-то тот же Renessas и Freescale делает МК с намного бОльшим объемом набортной памяти, а там наверное маркетологи тоже деньги не просто так получают.

Цитата(SasaVitebsk @ Nov 2 2015, 08:40) *
Прошу прощения. А что есть "двойная буферизация" в данном контексте?

Обновления (перерисовка) происходят в неотображаемой области памяти, когда все готово делается копирование в отображаемую область. Чтобы скопировать нужно точку прочитать и записать = два обращения.

Цитата
Почему 2 выборки на точку?

Если Вы про рисование, то для многих случаев из-за прозрачности нужно прочитать, изменить и записать каждую точку = два обращения на точку.

Цитата
О каком цвете ведём речь, 16 бит?

Естественно 16бит цвет, 16бит шина данных памяти. Если бы ДМА2Д поддерживал 8бит индексированный цвет, то использовал бы его, ибо 256цветов мне достаточно (да и для 99% проектов на этих МК думаю тоже вполне достаточно).

Цитата
То есть - основное окно 480*272 плюс диалоговое примерно 1/3. ....

Ну у каждого свой интерфейс. У меня нет диалоговых окон в традиционном понимании - интерфейс заточен под узкоспециализированную задачу.

По итогам поставлю медленную SRAM на 1МБ sm.gif
mantech
Цитата(Шаманъ @ Nov 2 2015, 09:59) *
Может быть у стм32 все маркетологи предусмотрели, но почему-то тот же Renessas и Freescale делает МК с намного бОльшим объемом набортной памяти, а там наверное маркетологи тоже деньги не просто так получают.

По итогам поставлю медленную SRAM на 1МБ sm.gif


Фрисковый вибрид VF6 не рассматривали, там ваш заветный мег быстрой набортной оперативы и графика с ускорением и аппаратной прозрачностью, проц А5 на 500 мег + М4 на 170. Корпус бга, но если не делать внешнюю ДДр, то вполне разводимый на 4х слоях. Софта грузится с спи-флеш или сд-карты
Шаманъ
Цитата(mantech @ Nov 2 2015, 09:39) *
Фрисковый вибрид VF6 не рассматривали

Рассматривал, более того если делать "с нуля" экономически более оправдано может быть было бы даже взять готовый модуль процессор+память+флеш, но stm32f439, SRAM и все остальное есть в наличии, и мои потребности должна перекрыть, потому пока будет так.

Кстати, еще подумал - учитывая наличие QSPI, VF3xx под мою задачу очень неплохо подходит (пожалуй даже плату намного проще под него сделать) sm.gif, вот только что-то не возят их к нам sad.gif
mantech
Цитата(Шаманъ @ Nov 2 2015, 13:03) *
Рассматривал, более того если делать "с нуля" экономически более оправдано может быть было бы даже взять готовый модуль процессор+память+флеш


Я так и делал, ибо ваять платы самому, при потребности <50 плат в месяц нецелесообразно.
Rash
Цитата(Aner @ Nov 2 2015, 01:11) *
Менталитет там далек ...


OFF: это менталитет капитализма, с тем, что написал сталкивался не раз и с различными фирмами, когда говорят, то что им выгодно на данный момент. И не нужно давать мне оценку, я Вам её не давал. Не по теме больше не пишу, извините.
SasaVitebsk
Цитата(Шаманъ @ Nov 2 2015, 09:59) *
Вы так и не поняли мою мысль. Во многих случаях нет смысла в связке микроконтроллер+SDRAM, т.к. подобное решение по цене/сложности практически равно более продвинутым вариантам на Cortex-Ax+внешняя память. Для очень многих применений не нужно много МБ ОЗУ - достаточно обычного объема присутствующего в таких МК (128..256К) + объем требующийся для фреймбуффера небольшого дисплея. Теперь ответьте на вопрос имея выбор из двух МК - один в котором все вмещается внутри, а второй с необходимостью обвеса SDRAMом, что бы Вы выбрали под свою задачу?

На STM32f4 / f7 при размере дисплея 480*272, в принципе на небольших задачах можно обойтись без внешних компонентов. Если вас устроит 256 цветов из палитры 65к, то можно использовать LUT. Объём экрана при этом 130500 (без теневого). А объём озу у stm32f746 320+. Как видим - явно достаточно.
Шаманъ
Цитата(SasaVitebsk @ Nov 3 2015, 07:51) *
На STM32f4 / f7 при размере дисплея 480*272, в принципе на небольших задачах можно обойтись без внешних компонентов. Если вас устроит 256 цветов из палитры 65к, то можно использовать LUT. Объём экрана при этом 130500 (без теневого). А объём озу у stm32f746 320+. Как видим - явно достаточно.

Если внимательно прочитать название темы, и посмотреть доки на DMA2D, то можно увидеть, что он не работает с индексированным цветом на выходе, потому применять DMA2D к такому варианту придется с некоторыми извращениями и очень, очень большими ограничениями.

А вот используя 16битный цвет на выходе и пожертвовав определенным объемом флеш памяти или ОЗУ можно весьма эффективно использовать DMA2D (возвращаясь к истокам темы, применительно к своему проекту фактически я смогу получить бОльшую производительность, чем с сейчас с Эпсоном и 8битным цветом и даже применить DMA2D к тем вещам которые прорисовываются сейчас без ускорения sm.gif). Резюмируя (после более подробного изучения DMA2D и обдумывания каким образом его можно применить) могу сказать, что DMA2D не так убог, как казалось на первый взгляд, но чтобы его эффективно использовать придется отказаться от некоторых приемов экономии памяти (запакованные картинки, 1битные шрифты и т.п.). В принципе, учитывая 2МБ флеша на борту на такие "жертвы" вполне можно пойти.
Genadi Zawidowski
Вопрос - DMA2D работает ли с flash памятью?
SasaVitebsk
Цитата(Шаманъ @ Nov 3 2015, 11:54) *
Если внимательно прочитать название темы, и посмотреть доки на DMA2D, то можно увидеть, что он не работает с индексированным цветом на выходе, потому применять DMA2D к такому варианту придется с некоторыми извращениями и очень, очень большими ограничениями.

А зачем ему работать с индексированным цветом, если с ним работает сам LCD контроллер? Ему просто надо копировать любые байтовые форматы. Насколько я понимаю.

Цитата
All the classical color coding schemes are supported from 4-bit up to 32-bit per pixel with
indexed or direct color mode. The DMA2D has its own dedicated memories for CLUTs (color
look-up tables).



Цитата(Genadi Zawidowski @ Nov 3 2015, 12:14) *
Вопрос - DMA2D работает ли с flash памятью?

Да.
Шаманъ
Цитата(Genadi Zawidowski @ Nov 3 2015, 11:14) *
Вопрос - DMA2D работает ли с flash памятью?

Да.

Цитата(SasaVitebsk @ Nov 3 2015, 11:49) *
А зачем ему работать с индексированным цветом, если с ним работает сам LCD контроллер? Ему просто надо копировать любые байтовые форматы. Насколько я понимаю.

Просто копировать это слишком просто wink.gif, но даже в этом случае копировать побайтно он не сможет - только по 16бит. Нормальное функционирование DMA2D возможно только при 16битном и выше цвете на выходе.

Чтобы Вы понимали, я сейчас "сделал наброски" и DMA2D по всему сможет делать все по части графики - начиная от заливки прямоугольника и заканчивая выводом текста, картинок и даже некоторой специфической для моего проекта графики sm.gif - согласитесь немного больше "просто копирования". Цена этого, как я уже писал бОльшие затраты памяти (хотя и возможности при этом получаются побольше). Осталось сделать плату и проверить все это rolleyes.gif
Шаманъ
Цитата(Шаманъ @ Nov 3 2015, 15:44) *
Осталось сделать плату и проверить все это rolleyes.gif

Сделал, проверил. Запросы правда за это время немного "подросли" - проц. stm32f746, 8М SDRAM и 800х480хRGB565 TFT.

В общем нормально DMA2D работает.

Самый неприятный момент это адресация в DMA2D - не поддерживается отрицательное смещение между строками. Из-за этого скроллинг можно сделать только в одну сторону, кроме того заливки масками тоже отменяются. Еще блендер в DMA2D несколько убогий. Если бы добавили третий канал с фоном (сплошной заливкой) то некоторые вещи было бы намного удобнее делать.

Да, может кому будет интересно - рисование битмапа 534х137 с преобразованием из L8 в RGB565 занимает:
1. Через DMA2D для простого рисования 1.29мс (если пересчитать на весь экран, то выходит 150fps однако)
2. Через DMA2D для наложения с прозрачностью
3. Через CPU с выключенным кэшем 12.8мс
4. Через CPU с включенным кэшем 4.2мс
Это для рисования прямо в видеобуфер, параллельно вычитываемый через LTDC, частоте CPU 180МГц, памяти 90МГц, картинка во флеше.

Также потестил как поменяется скорость для 1го варианта (см. выше) если картинка лежит не в флеше:
1. Для картинки в SRAM1 скорость такая же как из флеша - 1.29ms.
2. Для картинки в том же банке SDRAM - 5.03мс
3. Для картинки в другом банке SDRAM - 4.10мс

Да, на последовательной записи CPU=>SDRAM получается 54Mtps, рандомные чтение/запись 5.6Mtps, в разных банках 6.6Mtps. Это без кэша данных и с работающим LTDC.

Можно сказать я почти доволен sm.gif Огорчили китайцы - панель должна была быть с бОльшим углом обзора снизу, поэтому я ее предусмотрительно перевернул, а оказалось, что у нее лучшие углы обзора сверху laughing.gif ... надо будет поискать какую-нить панель с более "правильными" углами обзора.
Aner
Что за панель? Какой интерфейс у неё? И есть ли емкостной мультитач, хотябы на пять?
Мусатов Константин
Цитата(Шаманъ @ Feb 5 2017, 15:42) *
Если бы добавили третий канал с фоном (сплошной заливкой) то некоторые вещи было бы намного удобнее делать.


Так там есть регистр - цвет бэкграунда. Если у нижнего слоя режим с альфой, то тот бэкграунд просвечивает.
Сам пользуюсь блендированием из двух экранов с индексированными цветами в один RGB565. На двух экранах.
Выяснил проблемы с FMC, на котором у меня висит 16 битная SRAM. При байтной записи часто ошибается. Приходится и блендирование и операции кодом выравнивать до 16 битных.
Шаманъ
Цитата(Aner @ Feb 5 2017, 16:27) *
Что за панель?

AT070TN92
Цитата
Какой интерфейс у неё?

RGB
Цитата
И есть ли емкостной мультитач, хотябы на пять?

Сама она голая, но у меня есть тачскрин к ней (емкостной) и я сваял контроллер для него на stm32f103. Мне достаточно 2х касаний, в принципе можно и больше сделать. Пять для такой маленькой панели наверное уже перебор.

Цитата(Мусатов Константин @ Feb 5 2017, 23:04) *
Так там есть регистр - цвет бэкграунда. Если у нижнего слоя режим с альфой, то тот бэкграунд просвечивает.

Это в LTDC, а в DMA2D такого нет, а было бы хорошо, если бы был - я про это.

В DMA2D просвечивает только при комбинировании двух слоев, один из которых сплошной фон.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.