I am developing a driver for a sensor and having some issues getting it to stream continuously.
The camera will stream for 10-15 seconds, then fail.
The kernel trace shows successful captures during that period, then we start to see CHANSEL_NOMATCH with data:0x00000249, which I believe means it is failing to match on line start with a data type of 0x12.
This is confusing since this is the ID of our embedded rows (2 before the pixel section, 2 after), and capture of them works just fine until some time passes, so VI knows how to deal with this ID (in the right context, I guess).
The failed captures have a sane time period between FS and FE, so I believe the camera is still sending full frames. Perhaps it starts sending invalid frames, but that seems unlikely. It is difficult to debug anways as I can’t get VI to dump a raw failed frame for me to see what is going wrong with it.
I have uploaded a trace with an example of successful capture at the start and the failure mode mentioned at the end.
I have been running captures with these tweaks seen in other forum posts:
Yes, the camera is set to output two rows before the pixel rows, and two rows after. The device tree is set to expect 4 rows.
And the trace shows that VI, before the capture starts failing, is capturing embedded data before and after the pixel rows.
I am able to stream video from the camera just fine for 10-15 seconds.
Is it possible the embedded lines after the pixel lines cause the capture to fail after a period of time rather than right away?
I will try with the bottom embedded lines disabled.
That does not seem to have helped, unfortunately.
New trace attached, although the problem seems to be the same. Trace does show the embedded capture finishing prior to the pixel rows now.