No reply from camera processor

Hi,
while using gstreamer I am getting error
“tegra194-vi5 15c10000.vi: no reply from camera processor”
“tegra194-vi5 15c10000.vi: vi capture get status failed”
Does anyone know what causes the error ?

Hello varun.p

Does this log happens only with Gstreamer?
Could you provide more information on which command are you using, and if possible try with v4l2-ctl tool to see if the error is seen with it too?

Also which driver, and dtsi configuration are you using?

Best regards,
Roberto,
Embedded Software Engineer,

Hi @robertogs2,
I Tried using “gst-launch-1.0 nvargucamerasrc ! nvvidconv ! xvimagesink”
I tried using “v4l2-ctl --device /dev/video0 --stream-mmap --stream-to=frame.raw --stream-count=1 --set-ctrl bypass_mode=0”
I got the same error for both
“tegra194-vi5 15c10000.vi: no reply from camera processor”
“tegra194-vi5 15c10000.vi: vi capture get status failed”
I am trying to convert a camera driver to generate test pattern(TPG) in Deseriailser DS90UB594

i2c data write also fails saying no acknowledgement from address 0x30
"tegra-i2c c240000.i2c: no acknowledgement from address 0X30 "
but it works completely fine with i2cset command
“i2cset -f -y c240000.i2c 0X0030 0x0033 0x01”

I am attaching the dtsi configuration I used
tegra194-camera-e3326-a00.dtsi (11.3 KB)

Thank you in Advance

You may need to check the driver to check if specific REG or whole REG have the the same no ack problem.

Hi @ShaneCCC ,
0x30 is the i2c slave address I am writing to while writing from driver it writes sometime and fails sometimes .
but using i2c set command it works perfectly fine.
what could be the cause ?

Check if any behavior in power_on() function in sensor driver cause the i2c unstable.

hi @ShaneCCC ,
I am providing an external supply for the deserialiser and trying to generate pattern using the deseialiser

Hi varun.p,

Maybe you can first try first to have an stable i2c connection with the device before proceeding with the driver directly and the nvcsi problem,

Can you try disabling the driver, and checking if you find the device using in the specified bus:

sudo i2cdetect -y -r <i2cbus>

As ShaneCCC pointed out, maybe you are giving no chance for the external supply to power on the device and sometimes it does have time and sometimes it doesn’t, that’s maybe why with i2cset it works fine because the device is already on, so first let’s see if the device is always shown in the required bus, if that works, then you can try adding a usleep_range(a, b) prior to the device configuration in order to give it some time to power on.

Best regards,
Roberto

Hi @ShaneCCC , @robertogs2 ,

I tried disabling the driver File and checked for i2c bus it was available and tried usleep_range and still facing the same issue and I am also getting an error no reply from camera sensor but I am actually conecting a deserialzer to generate pattern but using the code for image sensor just by changing the i2c slave address and the required Registers.
Will there be a problem with it ?

Have a check the REGs that driver accessed with no ack and check if i2cdetect are the same.

hi @ShaneCCC ,
I checked the i2c slave address i am writing through the driver and the i2cset function both are same.

Does all of the device internal REGs(offsets) can’t access from driver?

hi @ShaneCCC
No the 1st three registers always writes and the other registers send no acknowledge from <slave_address>

  1. Can you try to write1st three REGS loopingly.
  2. What’s if skip 1st three REGS and write from the fourth?

Hi @ShaneCCC ,
I tried wirting the 1st 3 registers in loop again and again but only the 1st time it writes.
While trying to write different registers other than that it writes the 1st three times alone I gave usleep_range(1000,2000). But the same happens for it too.