Перейти к содержанию

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.

Источники

  1. 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 режимов работы: регистр — память, память — память, память — память с преобразованием формата, то же со смешиванием, со смешиванием и фиксированным цветом переднего плана, со смешиванием и фиксированным цветом фона
  2. 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)

Нашли ошибку?