cancel
Showing results for 
Search instead for 
Did you mean: 

DMA2D with 8-bit output pixel format

MGode
Associate

I'm trying to hook STM32F767 (on a Nucleo-144 board) to a 640x400 24-bit LCD-TFT display with the following configuration:

  • use the controller's internal RAM to store framebuffer, and drive the display using the LTDC controller
  • use 8-bit pixel format with CLUT (which is actually used to represent the RGB332 color encoding)

I was trying to use the DMA2D controller to transfer bitmaps from flash to the screen frame buffer, and to generate colorful rectangles. However, the stm32f7xx_hal_dma2d.h only defines the 24- and 16-bit output formats: ARGB8888, RGB888, RGB565, ARGB1555, ARGB4444.

Is there a way to use the DMA2D controller to work with the L8 output format?

(Also, given the typical memory constraints of embedded systems, it seems reasonable to provide native support for RGB332 or ARGB2222 in the LTDC and DMA2D controllers - are there any chances to see those in some foreseeable future?)

The header file also claims to support the A8 and A4 input color modes, but I haven't found any explanation of those modes. Are those explained anywhere?

Thanks in advance!

1 REPLY 1

> Is there a way to use the DMA2D controller to work with the L8 output format?

No.

This has nothing to do with Cube. Read the RM, DMA2D output PFC subchapter of the DMA2D chapter.

However, you still can use DMA2D for bitbltting even in 8-bit format, if you can live with the limitation of all horizontal sizes and positions being multiples of 2 - simply chose any pair of 16-bit input and output formats which perform no conversion.

JW