Post Go back to editing

Just not working....

Category: Hardware
Product Number: ADV7282A

Hi,

I need to stream audio/video through Raspberry PI so I applied a/m chip. Initially it should work on my PCB made according to the datasheet. However at the very first start-up I have such observations :

1. current consumption from 1.8V is approx. 30mA

2. I2C port doesn't work at all (RPI commands say "no such device")

3. CSI lines (clock and data) stay at 0.2 - 0V level. No activity there.

4. Vrefp and Vrefn are 0V

5. Crystal works at expected frequency

So what to do next ? First samples were taken from Digi-Key.

Best regards

Jacek

Parents
  • Hi,

    If it is custom board, please refer application note for layout design Design Considerations for Connecting Analog Devices Video Decoders to MIPI CSI-2 Receivers

    Please make sure whether you are using the correct I2C address.   

    Have you verified with a scope the I2C timing and waveforms are correct?

    Check to see if you can access anything else tied to the I2C bus, like eeprom.  Tie something to the bus to make sure the bus is working as expected.

    Refer here EVAL-ADV7282A-M I2C detect not work - Q&A - Video - EngineerZone (analog.com)

    Note: 

    As per MIPI specification the MIPI receiver need to terminate the signals correctly. If the Microprocessor/ FPGA does not control the termination correctly then the MIPI signals from the ADV7282A cannot be decoded.

    How do you configure the board either through script or through software driver?

    Thanks,
    Dharani S

  • Hi Dharani,

    I have managed to configure RPi4 the way that I2C port 10 sends proper signals to camera connector. Checked with a scope. The thing is that the command

    sudo i2cdetect -y 10 produces this table with numbers but no slave address is detected. The whole table is filled with "- -". So there is no communication with a chip. On this first prototype board I power all voltages at same time, also PWRDWN and RESET pins are pulled-up. The crystal oscillator is active and works.

    I went through the link as above and I see that the guy had similar problem but there was no clue how to establish a communication with a chip.

    Is it possible that this start-up sequence with RESET pin pulled down and up after powering device is so important and can open I2C port ?

    Best regards

    Jacek

  • Hi,

    When powering up the ADV7282A,follow these steps. During power-up, all supplies must adhere to the specifications listed in the Absolute Maximum Ratings section.
        1.Assert the PWRDWN and RESET pins (pull the pins low).
        2.Power up the DVDDIO supply.
        3.After DVDDIO is fully asserted, power up the 1.8 V supplies.
        4.After the 1.8 V supplies are fully asserted, pull the PWRDWN pin high.
        5.Wait 5 ms and then pull the RESET pin high.
        6.After all power supplies and the PWRDWN and RESET pins are powered up and stable, wait an additional 5ms
    before initiating I2C communication with the ADV7282A.

    If you're using a 400kHz SCL rate, you might try 100kHz. 

    Thanks,

    Varshini K

  • Dear Varshini

    Yes, I am aware about this description from the datasheet. Unfortunately it requires additional microcontroller to arrange this timing sequence. OK, it isn't impossible but looking at evaluation board EVAL-ADV7282 (I compare some behaviours) I see that :

    1. On EVB all supllies (1.8V and 3.3V) are delivered in the same time from simple regulators, not as according to the above sequence and I2C works. The chip works. I can load script and there is an activity on CSI outputs.

    2. On my board I use SCL at 125kHz (default value from RPi4)

    3. When I power my board the oscillator runs immediately (I even can't load any script because of no I2C communication)

    4. On EVB the oscillator runs after loading script. OK, I understand that - this is logical.

    So why these two boards behave in a different way ? The current consumption on my board from 1.8V is 30mA total. Isn't it too low ?

    brgds

    Jacek

  • Hi,

    The higher bias current setting will make the AFE of the ADV728x better at locking to low voltage video sources at low temperatures.

    I advise that you continue the investigation of the crystal.

    An internal ring oscillator is used to clock the I2C block of the ADV728x. Therefore, it makes sense that you have I2C communication even if the crystal is not working.

    Thanks,

    Varshini K

  • Hi Varshini,

    my previous surprise was a difference between EVAL board and mine. On EVAL the crystal is stopped until a first script is loaded, on mine it starts immediately after power-up. The same chip, nearly the same connections (maybe the EVAL sends some commands to the chip just after power-up to stop it).

    Frankly speaking I was concentrating in checking the result of command sudo i2cdetect -y 10. I will try to send some other commands for I2C communication (a short script from python code) and we will see if the chip has started operation (I mean any action on CSI output ports).

    brgds

    Jacek

  • Hi,

    1)Check the Signal flow of I2C lines in both Eval board and custom board after power up.
    2)Run the script probe the behaviour of SCL and SDA lines in both the boards.
    3)How you confirm , the crystal is being stop condition, until a first script is loaded.
    Note : When initially powered up to the H/W there is a 200ms period before the I2C port is ready to be addressed.
    Thanks,
    Varshini K
  • Hi,

    I have connected RPi4 (camera connector) to SDA/SCL on evaluation board. After some investigations I have achieved I2C communication between both modules. UFFFF.... At least this part works. But observing on the scope what is going on I have such questions :

    1. SCL speed (EVAL) is 83kHz not 100. OK, this is not a big difference but why ?

    2. Between commands passed to ADV in EVAL board there are time breaks 30-16ms between each one. Is it necessary ?

    3. When I pass first 6 commands from the AD script (running my python program) to EVAL chip, then oscillator starts operation. As it should. It looks that my python I2C commands are OK.

    4. I2C on my custom board is completely dead, the commands as above do not work but oscillator starts working immediately after power-up. It cannot be a matter of supply voltages sequence as on EVAL board all of them are delivered at the same time (simultanously). I have checked POWERDOWN and RESET pins, they are held high. Is it possible that I have bad chip ? But oscillator works....

    Frankly speaking after checking all these connections I have no other idea what can be the reason that this communication is missing...

    Regards

    Jacek

Reply
  • Hi,

    I have connected RPi4 (camera connector) to SDA/SCL on evaluation board. After some investigations I have achieved I2C communication between both modules. UFFFF.... At least this part works. But observing on the scope what is going on I have such questions :

    1. SCL speed (EVAL) is 83kHz not 100. OK, this is not a big difference but why ?

    2. Between commands passed to ADV in EVAL board there are time breaks 30-16ms between each one. Is it necessary ?

    3. When I pass first 6 commands from the AD script (running my python program) to EVAL chip, then oscillator starts operation. As it should. It looks that my python I2C commands are OK.

    4. I2C on my custom board is completely dead, the commands as above do not work but oscillator starts working immediately after power-up. It cannot be a matter of supply voltages sequence as on EVAL board all of them are delivered at the same time (simultanously). I have checked POWERDOWN and RESET pins, they are held high. Is it possible that I have bad chip ? But oscillator works....

    Frankly speaking after checking all these connections I have no other idea what can be the reason that this communication is missing...

    Regards

    Jacek

Children
  • Hi,

    If possible, could you please provide the custom board schematic. We will analyze and get back to you Once get the solution.

    Thanks,

    Varshini K

  • Hi Varshini,

    please find attached a schematic of my board. This board was made in a simplest way just for evaluation of software. Finally ADV will be part of bigger project but for now we just want to achieve signals on CSV outputs for further evaluation. So this board is just a first trial.

    The whole board consumes 30mA, oscillator works at expected frequency, SDA/SCL lines stay at 3.3V in idle state. As mentioned before the oscillator starts immediately after power-up.

    BUT.... I click "insert" button to upload a schematic in .pdf but I cannot upload anything. I could do it by wetransfer but your e-mail address is needed...

    brgds

    Jacek

  • OK, we have solved that. You should be able to open this pdf schematic.

    brgds

    Jacek

  • Hi,

    As per the expert comment,

    I noticed that on the customer’s board that the RESETN pin of ADV7282 is connected directly to +3.3 V.

    Please ask the customer to try this experiment:  Disconnect RESETN from +3.3 V and then add an RC on the RESETN pin like what we do on our eval board.  The RC will delay the de-activation of RESETN until all supplies have come up and stabilized.  They could also add a pushbutton on RESETN to reset the device manually and see if that would resolve the I2C communication issue. 

     

    Thanks,

    Varshini K

  • Hi Varshini,

    on my board it doesn't matter if RESET pin is high or low - the oscillator runs all the time. Maybe simply the chip is bad. I will check it.

    So I have connected EVAL to RPi4. My observations :

    - there is something wrong with initial RESET command 0x0F, 0x80. The chip doesn't reply with ACK so python module reports an error and stops. If I remove this command the whole script runs and EVAL board gives activity on MIPI output lines. If RESET is necessary I can do it later on in a hardware way. Observing I2C signals sent from EVAL it is the same (no proper ACK bit but EVAL ignores it) - maybe the chip starts reset action too early and there is no time for attaching ACK bit). I observe it very clearly on the oscilloscope.

    But I would like to finally get any image on RPI4 from EVAL board. Some documentations say that ADV7282A-M is supported by RPi4 it is a matter to add a configuration line "dtoverlay=ADV7282M=1" in config.txt file. So I did but all known commands for opening a video window do not work.

    So how to start this operation (in fact I have to make a stream with audio) ?

    Regarding my custom board I will replace the chip and we will see.

    brgds

    Jacek

  • Hi,

    I will try to add some lines to kernel, maybe finally this chip (EVAL board) will be seen by RPi.

    But would be nice to have any reaction at least on my first question regarding RESET command, I am curious if there is a bug inside ADV chip. If this command is present the script stops. If removed the whole script is loaded, So RESET can be performed by hardware if necessary and then the whole script loaded.

    thanks

    Jacek

  • Hi,

        Kindly note that, If your first I2C transaction is a reset command (0x0F,0x80), the commands will also reset the I2C engine and subsequently fail the ACK response in the transaction So start with another command after power up/hardware reset.

     Could you please try the below sequence regarding RESET,

      As per recommended script, the normal sequence would be follow as like below, Please make sure with your i2c writes,

         delay 10;   // wait 10ms after hardware reset to start i2c
         42 0F 80;  // Reset Decoder (ADV7280A) - Chip reset for loading all I2c bits with default values (This bit is self clearing one, approximately it take 2ms for reset)
         delay 10;   // wait another 10ms
         42 0F 00;  // Exit power down mode [ADV7280A writes begin]

    Note: Generally after ADV728x-M is programmed, the clock lanes should exit low power mode and it remains in high speed mode until the part is reset or powered down. In the ADV7280 rev.A datasheet the simplified power-up sequence state that a software reset is needed after power-up. After the hardware reset wait 10ms before beginning I2C communication. Not performing the hardware reset can leave the ADV7280 in a state where it is not able to perform I2C communication properly.

    Please make sure with power sequence again - The PWRDN pin should be held low when the supplies are being brought up, and it should be brought up after the supplies are up and stable.

    The RESET pin should be held low when the supplies are being brought up, and it should be released after a minimum of 5ms after the supplies and PWRDN pin are up and stable.

     Kindly refer this FAQ about crystal oscillation (+) How to Detect That the Crystal is Working Correctly on the ADV7182/ADV728x - Documents - Video - EngineerZone (analog.com)

    Note that ADV7182, ADV7280, ADV7280-M, ADV7281, ADV7281-M, ADV7281-MA, ADV7282 or ADV7282-M system is first powered, you will find that the 28.63636MHz crystal will not oscillate. This is expected behavior as per design.

       Also Our older part like ADV7180 the crystal start oscillating immediately after power up. 

      (+) Explanation As To Why the Crystal Does Not Oscillate on ADV7182 or ADV728x Systems After Powerup - Documents - Video - EngineerZone (analog.com)

    Thanks,

    Poornima

  • Hi Poornima,

    thank you for fast reply !

    1. regarding I2C after reset it was my first idea that the chip resets itself and doesn't reply properly. BUT for I2C communication with available procedures (like with RPi4) it is not acceptable because the procedure reports an error and stops. So I prefer to make a hardware reset, wait required time and continue with the rest of commands.

    2. looking at EVAL board schematic there is no special delay and sequence of power supply voltages. Only on RESET pin there is an RC network to make some delay. So should I understand that in fact RESET and PWRDN pins can be tied together and brought up together after required time ? Sounds logical.

    3. the most interesting thing in my board is that by taking RESET pin down the oscillator doesn't stop. It runs all the time no matter what RESET pin level is. As I mentioned before maybe the chip is bad - I will check it later on. On EVAL board, yes, the oscillator stops after pressing RESET button and then starts after sending a script. As it should be.

    At the moment I fight to achieve ANY image on RPi4 from EVAL board (here on signal lines I see activity after loading my script based on AD files).

    kind regards

    Jacek

  • Hi,

    Could you please try with below experiment,

      1) Power up the chip as normal

      2) With a jumper wire or probe, pull the reset pin low to get a good solid hardware reset after power up.

      3) Try I2C transaction again.

    Please note that, I2C bus is an open collector design and make sure the processor only pulls down the lines down, never drives them high.  Normally to do an I2C engines in FPGA or any processors you write a '0' to the output pin and then flip the pin direction.  When it's an output it pulls the bus low and when it's an input is allows the RC to pull the bus high.

    Thanks,

    Poornima

  • Hi,

    all of the above was done before (I have mentioned about it). I2C doesn't work - I also have mentioned that this communication is established from RPi4. In communication with EVAL board it works as it should.

    What's more after hardware reset the oscillator doesn't stop - it runs even during pulling RESET pin down !

    I suspect that the chip is simply bad. I will make assembling of new chip on new PCB in professional oven. Then we will have a full picture.

    Poornima, thanks so far for your assistance. Just give me some time for a/m actions and I will for sure come back to you with next results.

    BTW, what should be current consumption from 1.8V line when oscillator is active ? I have 30mA, it seems to me a bit too low..

    best regards

    Jacek