I’m using a deserializer FPDLINK3 (DS90UB954) for acquiring from 2 cameras. I’m able to capture correctly the camera 0 with 4 lanes from the deserializer. When I switch to the other (same sensor) I found that the deserializer uses VC=1 instead of VC=0. In this way acquiring from the Jetson Xavier raises an error
may I know what’s the actual connections? did you connect two 4-lane camera to share same CSI brick?
please refer to Jetson Virtual Channel with GMSL Camera Framework, you may see-also [Device Tree Programming] session to review your device tree configurations.
my connection consists in 2 cameras connected on a deserializer. Deserializer is configured externally by command line i2c tools. What I want to do is acquire first from a camere and after from the other. To do this I set externally the deserializer in right way. As bt what I verified by the logs attached before, the frames arrrives rightly at Jetson but I think they are dropped becouse the ID changes from 0 to 1.
I read the reference. As I understand, the system checks the ‘vc-id’ tag inside the vi component. I tried to change this value to 1 and acquire from the camera but alredy see the same.
ok I found. In the guide you refer to, in the configuration examples of the device tree (page 28), it misses the vc-id also in nvcsi endpoints. Also, add the same in port endpoint of the device sensor. At the end, for acquiring with an ID different than 0, place vc-id everywhere in the chain where you find port-index and bus-width.
that’s correct. assume you’ve two 4-lane camera connected to and sharing the same CSI brick, you should have same port-index and bus-width settings for both of them, but using vc-id to distinguish difference cameras.
there’re vc-id for destination ID assigned to sensor, and vc_id property in sensor mode, they should be within the same settings. you must set the vc-id property in the gmsl-link node for each sensor to match the vc_id property in the sensor mode device node.