This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

DS90UB954-Q1: GPIOx Output Function Programming

Hi team, 

           As 954 datasheet shows that GPIO can be configured as output and linked to port frame valid signal:     

         So I set one of 954's GPIO as "RX Port 0 Frame Valid signal" mode(b00011001), and using oscilloscope to measure the signal. What I have got is that, when port 0 received a frame, this GPIO will be high, and keep high regardless of other frame.
         According to the datasheet, I would expect that the GPIO will output a pulse signal(high at frame start, low at frame end), but actually it outputs a single high signal(and keep that way) whenever get a frame start. 
         Am I misunderstanding the “RX Port 0 Frame Valid siganl” mode? if so, is there any way, that 954's can output signal corresponding to every frame RX Port0 get?

Best regards,

  • Hello Xingzhu,

    The frame valid signal does toggle with every frame. If it is staying high always that means that most likely you are not receiving more than one initial frame. 

    Best Regards,

    Casey 

  • Hello Casey,

            Thank you for your kindly reply.

             I used oscilloscope measured the 954‘s mipi signal, and confirm that 954 outputs data in 30fps. but GPIO0(set as output and "RX Port 0 Frame Valid signal") does not toggle as before.

             Am I missing something?
             If 954's GPIO is set as output and function is "RX Port 0 Frame Valid signal", GPIO will be high at frame start and low at frame end, and follow that way with every frame?

             Is there any other register need to be set?

             my seeting now:
             0x0F = 0x7E, //GPIO0 as output

              0x10 = 0x19, //GPIO0 select RX port 0 Frame valid signal

              sensor is connected to port0.

    Best regards

  • Hello Xingzhu,

    It looks like you have the GPIO0_OUT_SEL and GPIO0_OUT_SRC bits flip flopped. Bits [7:5] should be GPIOX_OUT_SEL which is 110 for frame valid. Bits [4:2] are GPIO0_OUT_SRC which is 000 for RX0. So in total the register should be:

    11000001 = 0xC1

    Best Regards,

    Casey 

  • Hi Casey,

        Sorry for late reply.

        You are right, the problem is caused by my wrong setting for GPIO0. 

         Changed the setting and it works fine. 

         Thank you for your kindly help.

    Best Regards