Hello,
Sensor Output Resolution vs. Register Settings
Thank you for your detailed observations. Regarding the discrepancy between the README example and the register settings:
According to the sensor data sheet the availbale resolution is 2592x1944.
However, the actual output resolution sent to the LCD/display pipeline is controlled by additional configuration layers, including the DCMIPP (Digital Camera Memory Interface Pixel Processor) and downsize settings.
In the example, even if the sensor is internally set to 2592x1944, the DCMIPP and downstream processing block resizes or crops the image to 800x480 before it reaches the LCD (here dcmipp - downsize is used)
This approach allows the sensor to operate in a full-resolution mode (for example, to maintain image quality or for post-processing) but outputs a scaled-down frame to the display.The sensor registers may be configured for 2592x1944, but the effective output after processing is 800x480, as controlled by the DCMIPP and related configurations.
BUFFER_ADDRESS and Memory Usage
Regarding the memory address:
The address 0x34200000 points to internal memory, specifically AXISRAM3 (refer to section 2.3.2 "Memory map and register boundary addresses" in the Reference Manual).
Since the DCMIPP configuration sets the output size to 800x480 with 2 bytes per pixel (likely RGB565 or similar), the allocated buffer size is:
800×480×2=768,000 bytes≈750 KB
This size fits comfortably within this RAM.
Configuring 640x480 resolution:
You can use either Crop or Downsize features of the DCMIPP to fit your application constraints, with Downsize being the recommended approach.
For downsize , refer to the chapter 39.7.4 Downsize in the referance Manual of N6 for software configuration:
STM32N647/657xx Arm<Sup>®</Sup>-based 32-bit MCUs - Reference manual
For each value a formula is provided withinregiter description part (sections 39.14.71 & 39.14.72)
The division factor is an unsigned integer based on the source/destination ratio:
div = max(int(1024 / (source/destination)), 1023)
The down scale ratio is expressed in unsigned 3.13 format:
ratio = max(int((SourceSize - 1) / (DestinationSize -1)) * 8192), 8 * 8192 - 1)
Best Regards.