Hi all,
I need help to understand better the limits of the vi4, so here my questions:
vi4 limits
I read in the forum that vi4 could achieve 4k,60fps but I can’t with my testing sensor.
So, I tried to test our sensor against tegra camera platform and these are the results for the tegra-vi4:
What happens if values are higher?
Our sensor is capable of larger images but, if we increase the (active) height to 3000, the tegra vi4 sends these errors:
[ 74.158742] tegra-vi4 15700000.vi: PXL_SOF syncpt timeout! err = -11
And this:
kworker/3:1-53 [003] ...1 80.558101: rtcpu_vinotify_handle_msg: tstamp:2872256131 tag:ATOMP_FS channel:0x00 frame:157 vi_tstamp:2872255721 data:0x00000000
kworker/3:1-53 [003] ...1 80.610098: rtcpu_vinotify_handle_msg: tstamp:2873729833 tag:CHANSEL_SHORT_FRAME channel:0x01 frame:157 vi_tstamp:2873729259 data:0x00000001
kworker/3:1-53 [003] ...1 80.610100: rtcpu_vinotify_handle_msg: tstamp:2873729963 tag:ATOMP_FE channel:0x00 frame:157 vi_tstamp:2873729259 data:0x00000000
So, even if we increase the line and the frame lenght, the error is still the same. But if we continue increasing the active height pixels, the vi4 ends up complaining about the following:
[ 281.014822] tegra-vi4 15700000.vi: Status: 7 channel:00 frame:0002
[ 281.021093] tegra-vi4 15700000.vi: timestamp sof 292351296384 eof 292397949120 data 0x00000001
[ 281.030483] tegra-vi4 15700000.vi: capture_id 49 stream 0 vchan 0
[ 281.964916] tegra-vi4 15700000.vi: PXL_SOF syncpt timeout! err = -11
[ 282.969054] tegra-vi4 15700000.vi: PXL_SOF syncpt timeout! err = -11
[ 283.972984] tegra-vi4 15700000.vi: ATOMP_FE syncpt timeout!
And this:
kworker/3:1-53 [003] ...1 324.356841: rtcpu_vinotify_handle_msg: tstamp:10491389719 tag:CSIMUX_FRAME channel:0x00 frame:3 vi_tstamp:1901454590 data:0x00000220
kworker/3:1-53 [003] ...1 324.356842: rtcpu_vinotify_handle_msg: tstamp:10491389848 tag:ATOMP_FS channel:0x00 frame:2 vi_tstamp:1901454623 data:0x00000000
kworker/3:1-53 [003] ...1 324.356843: rtcpu_vinotify_handle_msg: tstamp:10491405258 tag:CHANSEL_PXL_SOF channel:0x00 frame:2 vi_tstamp:1901470264 data:0x00000001
kworker/3:1-53 [003] ...1 324.356843: rtcpu_vinotify_handle_msg: tstamp:10491407968 tag:CHANSEL_LOAD_FRAMED channel:0x01 frame:2 vi_tstamp:1901472972 data:0x08000000
kworker/3:1-53 [003] ...1 324.408839: rtcpu_vinotify_handle_msg: tstamp:10492863328 tag:CHANSEL_SHORT_FRAME channel:0x01 frame:2 vi_tstamp:1902928162 data:0x00000001
kworker/3:1-53 [003] ...1 324.408840: rtcpu_vinotify_handle_msg: tstamp:10492863511 tag:ATOMP_FE channel:0x00 frame:2 vi_tstamp:1902928163 data:0x00000000
According to the CHANSEL notifications:
SHORT_FRAME (many-channel) is emitted when a Frame End appears from NVCSI before the normal number of pixels
has appeared (or when zero pixels have appeared, and therefore no channel could be selected). An additional payload
field indicates that too few embedded lines have been received.
LOAD_FRAMED (many-channel) is emitted when a LOAD command is received for a channel while that channel is
currently in a frame.
So, what do you think what’s going on with the vi4?
More information about vi4
Also, we would like to know more about the limits of the tegra-vi4+nvcsi and where to find more documentation about them. We have the TRM document but still we think it is not enough.
Other details
Of course, I’m using camera brinup wiki to fix some errors:
https://elinux.org/Jetson_TX2_Camera_BringUp
But also the camera Software Development Solution:
https://docs.nvidia.com/jetson/l4t/index.html#page/Tegra%2520Linux%2520Driver%2520Package%2520Development%2520Guide%2Fjetson_xavier_camera_soft_archi.html%23wwconnect_header
Thanks,