`serdes_pix_clk_hz` vs `pix_clk_hz

How is pix_clk_hz used in autoexposure calculations? How is serdes_pix_clk_hz used in autoexposure calculations?

Running L4T 35.1 and have noticed that my images are now blown out, but they previously looked good on L4T 32.7.1.

Using an LI-IMX490-FPDLinkIII with a TI954/TI953 serdes pair.

Only significant change to camera driver between L4T 32.7.1 and L4T 35.1 was a change to serdes_pix_clk_hz from 833333333 to 500000000:

96c95
< 						serdes_pix_clk_hz = "833333333";
---
> 						serdes_pix_clk_hz = "500000000";

If I revert serdes_pix_clk_hzto 833333333 and try to stream from my camera, Argus gives me a timeout:

[09/13/23 22:57:24.866661680] CAM: serial no file already exists, skips storing again=== gst-launch-1.0[1508]: CameraProvider initialized (0xffff994519a0)SCF: Error BadValue: NvPHSSendThroughputHints (in src/common/CameraPowerHint.cpp, function sendCameraPowerHint(), line 56)
[09/13/23 22:57:32.119070832] CAM: serial no file already exists, skips storing againSCF: Error InvalidState: Timeout waiting on frame start sensor guid 0, capture sequence ID = 0 (in src/services/capture/FusaCaptureViCsiHw.cpp, function waitCsiFrameStart(), line 507)
[09/13/23 22:57:32.123673872] SCF: Error InvalidState:  (propagating from src/common/Utils.cpp, function workerThread(), line 114)
[09/13/23 22:57:32.128238800] SCF: Error InvalidState: Worker thread ViCsiHw frameStart failed (in src/common/Utils.cpp, function workerThread(), line 133)
[09/13/23 22:57:32.132807824] SCF: Error Timeout:  (propagating from src/services/capture/FusaCaptureViCsiHw.cpp, function waitCsiFrameEnd(), line 593)
[09/13/23 22:57:32.136265936] SCF: Error Timeout:  (propagating from src/common/Utils.cpp, function workerThread(), line 114)
[09/13/23 22:57:32.139723568] SCF: Error Timeout: Worker thread ViCsiHw frameComplete failed (in src/common/Utils.cpp, function workerThread(), line 133)
[09/13/23 22:57:34.083221616] SCF: Error Timeout:  (propagating from src/services/capture/CaptureServiceEvent.cpp, function wait(), line 59)
[09/13/23 22:57:34.086668112] Error: Camera HwEvents wait, this may indicate a hardware timeout occured,abort current/incoming cc
[09/13/23 22:58:33.871770334] SCF: Error InvalidState: 2 buffers still pending during EGLStreamProducer destruction (propagating from src/services/gl/EGLStreamProducer.cpp, function freeBuffers(), line 302)
[09/13/23 22:58:33.875306891] SCF: Error InvalidState:  (propagating from src/services/gl/EGLStreamProducer.cpp, function ~EGLStreamProducer(), line 50)
[09/13/23 22:58:38.881517340] waitForIdleLocked remaining request 102
[09/13/23 22:58:38.886052962] waitForIdleLocked remaining request 101
[09/13/23 22:58:38.895854195] SCF: Error Timeout: waitForIdle() timed out (in src/api/Session.cpp, function waitForIdleLocked(), line 909)
[09/13/23 22:58:38.900465889] (Argus) Error Timeout:  (propagating from src/api/CaptureSessionImpl.cpp, function destroy(), line 169)

hello jack31,

you may refer to Sensor Software Driver Programming for these two property.
please use serdes_pix_clk_hz since you’re working with serializer/deserializer, you may dig into SerDes Pixel Clock section for the calculation formula to review your clock settings.

This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.