Expand description
DCMIPP (Digital Camera Interface Pixel Pipeline).
Sits downstream of the CSI-2 Host (or the legacy parallel DVP input) and writes pixel data into SRAM through its own AXI master. The peripheral exposes three independent pixel pipes:
- Pipe0 — raw dump. No ISP, no colour conversion: bytes from the CSI packet payload land in memory in 32-bit words. Good for DMA-ing Bayer straight to CV/NN workloads, or for dumping ancillary data (embedded lines, CSI headers).
- Pipe1 — the main pipe. ISP passthrough, optional Bayer demosaic, optional crop, optional downsize, and a pixel packer with full format support including multi-planar YUV.
- Pipe2 — ancillary pipe, sharing Pipe1’s ISP front end. Supports crop + downsize and coplanar output formats only (single memory plane); typical use is a low-resolution preview running alongside a Pipe1 full frame.
The three pipes run concurrently. Dcmipp::new enables the peripheral
clock and NVIC line once; Dcmipp::split hands out the three pipe
handles, which are independent Sendable objects with their own async
wakers. The single interrupt line is shared: on fire, the handler reads
the common status register and wakes whichever pipe’s frame/overrun
flags are asserted.
Structs§
- Channel
Gains - Per-channel multiplicative gain applied through the Pipe1 colour-
conversion matrix as a diagonal.
1.0is pass-through. The hardware encodes each coefficient as 11-bit signed two’s complement with a scale of256 = 1.0(matches the ST ISP middleware’sTo_CConv_Reg). The effective positive range is therefore ~0.0..3.99; values outside saturate. - Color
Matrix - 3×3 colour-conversion matrix with per-row offsets, programmed into
the DCMIPP Pipe1 ISP via
Pipe1::set_color_matrix. - Crop
Config - Crop window. Coordinates and sizes are in pixels for Pipe1/Pipe2. On Pipe0 (raw word-aligned dump) the same struct is reused but values are interpreted as 32-bit words horizontally.
- Dcmipp
- DCMIPP driver — hands out three independent pipe handles via
split. - Downsize
Config - Downsize configuration for Pipe1 / Pipe2.
- Interrupt
Handler - Interrupt handler.
- Pipe0
- Handle to DCMIPP Pipe0 (raw dump). Obtained from
Dcmipp::split. - Pipe0
Config - Pipe0 (raw dump) configuration.
- Pipe1
- Handle to DCMIPP Pipe1 (main ISP + format conversion). Obtained from
Dcmipp::split. - Pipe2
- Handle to DCMIPP Pipe2 (ancillary, coplanar-only). Obtained from
Dcmipp::split. - Pipe1
Config - Pipe1 (main) configuration.
- Pipe2
Config - Pipe2 (ancillary) configuration.
Enums§
- Bayer
Pattern - Raw Bayer pattern of the sensor. Encoding matches
P1DMCR.TYPE(RM0486 §39.14.56). - Error
- DCMIPP error.
- Input
Source - Which interface feeds the pipeline with pixels.
- Pixel
Format - Pixel format on the output side of Pipe1 / Pipe2.
Traits§
- Instance
- DCMIPP instance.