DMA2D (Chrom-ART Accelerator)
Чтобы закрасить прямоугольник на TFT-экране или наложить полупрозрачную иконку, процессору пришлось бы перебирать тысячи пикселей. В STM32 с контроллером дисплея это делает графический DMA — DMA2D, он же Chrom-ART Accelerator.
Обновлено Редакция GAW
DMA2D — контроллер DMA для двумерных изображений в STM32; ST называет его Chrom-ART Accelerator. По RM0433 (разд. 18.1) это специализированный DMA, который работает с прямоугольными областями пикселей и выполняет четыре вида операций:
- заливка части или всего изображения одним цветом;
- копирование части изображения в другое место;
- копирование с преобразованием формата пикселя — например, из ARGB8888 в RGB565;
- смешивание (blending) двух изображений по альфа-каналу с записью результата в третьем формате.
Возможности
| Параметр | DMA2D по RM0433 |
|---|---|
| Шина | один главный интерфейс AXI |
| Форматы | до 12, от 4 до 32 бит на пиксель, прямой цвет или палитра |
| Палитры | две памяти CLUT, загрузка автоматически или процессором |
| Источники | до двух, со смешиванием |
| Альфа | из источника, фиксированная или модулированная |
| YCbCr | блоки 8 × 8, субдискретизация 4:4:4, 4:2:2, 4:2:0 |
Смещения строк задают в пикселях или байтах, поэтому DMA2D работает с окном внутри большого кадра. Встроенный таймер ограничивает нагрузку на шину AXI, чтобы графика не мешала другим мастерам.
DMA2D и LTDC
LTDC — контроллер дисплея: он непрерывно читает кадровый буфер и выдаёт его на панель. DMA2D этот буфер рисует: заливает фон, копирует шрифты и иконки, накладывает полупрозрачные элементы. Поддержка YCbCr позволяет выводить результат JPEG-декодера STM32H7 без перекодирования процессором.
DMA2D есть в STM32F7 (RM0385, гл. 9) и STM32H7. Общие принципы DMA — в термине DMA.
Частые вопросы
Зачем DMA2D, если LTDC и так выводит картинку на экран?
LTDC только читает готовый кадр из памяти и отдаёт его дисплею. Нарисовать этот кадр — залить фон, скопировать иконки, наложить полупрозрачный текст — должен кто-то другой. DMA2D делает эти операции с прямоугольными областями сам, пока процессор занят другим.
Что умеет DMA2D?
По RM0433 шесть режимов: заливка области цветом из регистра, копирование память — память, копирование с преобразованием формата пикселя, то же со смешиванием двух источников по альфе и два варианта смешивания с фиксированным цветом — переднего плана или фона. Форматов цвета до 12, от 4 до 32 бит на пиксель, плюс таблицы палитры CLUT.
В каких STM32 есть DMA2D?
В семействах с графикой: по RM0385 — в STM32F74x и F75x, по RM0433 — в STM32H742, H743, H753 и H750; заголовки CMSIS обоих семейств описывают регистры DMA2D. Как правило, DMA2D стоит в паре с контроллером дисплея LTDC.
Источники
- STMicroelectronics. RM0433: STM32H742, STM32H743/753 and STM32H750 Value line advanced Arm-based 32-bit MCUs. Reference manual, Rev 9 — разд. 18.1: Chrom-ART Accelerator (DMA2D) — специализированный DMA для обработки изображений: заливка всего изображения или его части цветом; копирование части или всего изображения в другое; копирование с преобразованием формата пикселя; смешивание двух изображений разных форматов с записью результата в третий формат; поддержаны все классические кодировки цвета от 4 до 32 бит на пиксель, с палитрой или прямым цветом, включая блочный YCbCr для вывода JPEG-декодера; свои памяти для таблиц CLUT; разд. 18.2: один главный интерфейс AXI, программируемая рабочая область, смещения строк в пикселях или байтах, до двух источников со смешиванием, альфа — из источника, фиксированная или модулированная, до 12 форматов цвета, YCbCr 8 × 8 с субдискретизацией 4:4:4, 4:2:2 и 4:2:0, две памяти CLUT, автоматическая загрузка CLUT, внутренний таймер ограничения нагрузки AXI, 6 режимов работы: регистр — память, память — память, память — память с преобразованием формата, то же со смешиванием, со смешиванием и фиксированным цветом переднего плана, со смешиванием и фиксированным цветом фона
- STMicroelectronics. RM0385: STM32F75xxx and STM32F74xxx advanced Arm-based 32-bit MCUs. Reference manual, Rev 9 — гл. 9 Chrom-ART Accelerator controller (DMA2D): разд. 9.1–9.2 — те же операции заливки, копирования, преобразования формата и смешивания; в STM32F74x/F75x DMA2D работает рядом с контроллером LCD-TFT (гл. 18, LTDC)
Нашли ошибку?
Смотрите также
- LTDC (контроллер LCD-TFT)Аппаратный вывод кадра на RGB-панель в STM32: слои, форматы, развёртка
- Формат пикселяRGB444, RGB565, RGB666: биты на точку, команда 3Ah, размер кадра
- DMAПрямой доступ к памяти без участия ядра
- Контроллер и драйвер дисплеяМикросхема, которая хранит изображение и управляет строками и столбцами панели
- STM32F7Cortex-M7 до 216 МГц: F72x/F73x, F74x/F75x, F76x/F77x — линейки, память, загрузка и распиновки
- STM32H7Cortex-M7 от 280 до 600 МГц, двухъядерные H745/H747 — линейки, память, загрузка и распиновки
- MDMA (master DMA)Контроллер DMA STM32H7 на шине AXI с доступом к TCM и FIFO на 256 позиций