cancel
Showing results for 
Search instead for 
Did you mean: 

STM32N6570-DK + IMX335: RAW10 interpreted as RGB565 (diagonal color artifacts) – ISP routing not activated? AEC/AWB cause ISP error 190

BCPH357
Associate II

 

Hello ST team,

I am developing a camera application on STM32N6570-DK + IMX335.
The entire capture/display pipeline follows the official DCMIPP_ContinuousMode example:

 

 
IMX335 RAW10 → CSI → ISP → PixelPacker RGB565 → LTDC
 

However, the LCD output shows a corrupted pattern like in the attached video:

The image reacts to hand movement (so the sensor is streaming), but the content becomes color-shifted, diagonal, and distorted. The pattern matches the behavior when:

RAW10 is fed directly into the PixelPacker interpreted as RGB565,

meaning the ISP output is never routed to Pipe1.

 

What currently works

1. IMX335 is clearly streaming (image brightness changes when covering the lens).

2. CSI + Pipe1 receive real frames.

3. LTDC and framebuffer work correctly (solid-color test OK).

4. All registers after DCMIPP init match the official demo.

5. ISP_Init() and ISP_Start() both return OK (0).

6. ISP_BackgroundProcess() also returns OK.

 

What is incorrect

After ISP_Start(), the register dump is:

P1SRCR = 0x00000000
P1PPCR = 0x00000001
P1DMCR = 0x64420001
P1CCCR = 0x00000000
P1GMCR = 0x00000001
CMSR1 = 0x00800003

 

The only abnormal register is P1SRCR = 0,
which means:

ISP output is not routed into Pipe1

PixelPacker receives RAW10 directly

Result = diagonal rainbow-like color artifacts (matches the video)

This suggests ISP pipeline is not being activated internally, even though ISP_Start() returns OK.

 

Important detail about ISP IQ configuration (AEC/AWB)

In the ISP IQ configuration (imx335_E27_isp_param_conf.h),
I temporarily disabled:

 

.AECAlgo.enable = 0; .AWBAlgo.enable = 0;

 

because if I set them to 1 (enabled), ISP_Init() fails with:

 

 

ISP error: ERROR CODE = 190
 

So to avoid ISP_Init failure, I had to disable both.
This may indicate that some ISP pipeline block is not configured correctly,
and ISP may be silently skipping the routing stage even after ISP_Start() returns OK.

Could this be related to why ISP → Pipe1 routing is never activated?

 

 My questions for ST

  1. Under what conditions would ISP_Start() return OK
    but ISP routing (P1SRCR) remains at 0x00000000?

  2. Does disabling AEC/AWB break any dependency in the IMX335 RAW10 → RGB565 pipeline,
    leading to ISP skipping the activation of demosaic/color stages?

  3. What does ISP error 190 specifically correspond to in the N6 ISP middleware?

  4. Is there any required IQ table parameter that must be enabled for ISP routing to Pipe1?

  5. Could this be caused by a mismatch in the IMX335 RAW10 mode table?
    (Although I already restored the resolution table and mode table from the official example.)

Summary of the issue

1. Sensor is streaming (RAW10 frames present).

2. LTDC works.

3. DCMIPP configuration matches official sample.

4. ISP_Init() / ISP_Start() report success.

5. But ISP routing never happens → .P1SRCR = 0

6. PixelPacker receives RAW10 instead of ISP RGB output → diagonal colored artifacts.

 

Video attached shows the exact behavior.

Any guidance to help identify why ISP routing does not activate (and why AEC/AWB cause error 190) would be greatly appreciated.

Thank you very much!

(Virus scan in progress ...)
0 REPLIES 0