Post Go back to editing

We could not see color bars test pattern from adv7280-m

Category: Hardware
Product Number: ADV7280-M

We are using ADV7280AWBCPZ-M, MIPI-CSI output IC, with our custom NXP IMXRT1176 microcontroller board. We could not yet success to see colorful test bars pattern on display. Let me summarize what we did up to now;

1- I sent your script ":Color Bars 576p MIPI Out:" to adv7280m,  576P (Progressive Mode, I2P enabled) Mipi output test pattern script named "ADV7280M_Cust-VER.4.1.txt" in attached. Before running the script, I am making hard reset and waits as in the following;

resource->pullPowerDownPin(false);
resource->pullResetPin(false);
ADV7280M_DelayMs(100);

-------------------------------------------------------
resource->pullPowerDownPin(true);
ADV7280M_DelayMs(20);

-----------------------------------------------------

resource->pullResetPin(true);
ADV7280M_DelayMs(50);

------------------------------------------------------

2- I tried to capture some data over I2C according to the reference:https://ez.analog.com/docs/DOC-10695 in order to be sure that our crystal works oscillating well. I repeated 8-10 times successive test reads but in each time I got "0xAF" data from the "0x46 address Interrupt Map Register". So, the most significant bit is always read as "1" , because of that it seems crystal not oscillating properly. But not got any idea why crystal not oscillate well.

3- I captured some oscilloscope screenshots of MIPI_CSI-CLKP,CLKN and MIPI_CSI-DP0,DN0 (in attached, yellow signals represent positive and blue signals represent negative csi-clock and data). Mipi Clk is around 90MHz I captured however since I2P core is enabled, it has to be around 216MHz.(According to the datasheet if interlaced  it is 216Mbps, otherwise it is 432Mbps for progressive scan).

However, as based on the reference(https://www.analog.com/media/en/technical-documentation/application-notes/an-1337.pdf) , our NXP IMXRT1176 receiver side switches HS to LP or ULPS states very well. Receiver D_PHY termination seems good. (Please see the oscilloscope shots in attachments. However again seems that signal timing is wrong, I think, but not sure.)

4- We are using 4 pads XTAL input named "ABM8G-28.63636MHZ-18-D2Y-T". I also attached the crystal oscilloscope captured screenshots with DC biased in oscilloscope. When I run the script, adv7280-M applies some DC voltage to crystal. However, I am not sure if it is oscillating correctly. I thought that I would see roughly 28MHz signal however I would not. I also attached the other XTAL which feeding the imxrt1176. I can very easily capture this crystal in oscilloscope as 24MHz. But 28.6363MHz crystal is not. By the way, we designed hardware connection for XTAL to the same with ADV7280 datasheet. Actually, we performed everything according to the circuit in the last pages of datasheet. So, 47pf capacitor to each leg of crystal and the remaining 2 legs unused pins connected to the ground. 

5- I saw that in EVAL BOARD as based on the reference https://www.analog.com/media/en/technical-documentation/evaluation-documentation/adv7280am_32ebz-sch_a.pdf, there is 560R resistance in series with XTALP pin of ADV7280AM(Our design was made as based on ADV7280M datasheet, but both is the same as far I observe). Since I have no 20pf capacitor, I added to the nearest capacitor so I added 18pf to each leg together with 560R to XTALP. However nothing changed even it got much worse. 

6- I prepared camera framebuffer as CAMFB[576][720] and cameraConfig.frameBufferLinePitch_Bytes = DEMO_CAMERA_WIDTH * APP_BPP (720 *2 bytes) and csiConfig.workMode = kCSI_CCIR656ProgressiveMode. It is 2 bytes because U-Y-V-Y (Cb0-Y0-Cr0-Y1-Cb2-Y2-Cr2-Y3 and so on...) 16 bits per pixel. So that 2 bytes.. What I am not sure that IMXRT1176 if aware of or knows about ITU-R:BT656 messaging protocol. However I am thinking with the setting the choice of kCSI_CCIR656ProgressiveMode, imxrt1176 can decode the messaging protocol.(Data ID, blanking data, EAV, SAV etc. Is it required to define some more room in framebuffer for these datas (except from payload data) as well? or making room as CAMFB[576][720] is enough for just obtaining 1 frame? )

7- I can run :Color Bars 576p MIPI Out: in "ADV7280M_Cust-VER.4.1.txt" and success to observe datas on CSI_DP0-DN0 in oscilloscope. However when I try to run :Color Bars 576i MIPI Out:, I could not see any data on CSI data outputs. Is not it abnormal? Neither :Color Bars 576i MIPI Out: nor :Color Bars 480i MIPI Out: test pattern works!!

8- This is the our current case as in the link  ADV7280-M crystal doesn't work?if crystal doesn't work,can free run mode work normally? . We are trying the 4 pads XTAL to 2 pins solder pad in PCB. Also I tried to XTALN pin to GPO1 pin to see crystal oscillation as in the link How to get Crystal Clock output on GPIO pin of ADV728x  . But could not see any signal. 

Is it possible to share any oscilloscope screenshot regarding XTAL input clock signal feeding adv7280m and mipi-csi-clkp,clkn as well as mipi-csi-data in any one of your properly running EVAL BOARD?

We are got stuck. I am waiting your urgent recommendations/ideas if you can. Many thanks

1007.attachments.rar



.
[edited by: kartal at 12:10 PM (GMT -5) on 27 Jan 2023]
  • Hi,

      1. Please note that no of customers been successfully interfaced the ADV7280M with the iMX6 so ensure whether you are using the latest driver software from NXP.

      2. Also note that, Until proper termination is achieved then you will not be able to decode Video data from the MIPI CSI-2 signals output by the ADV7280-M.

     As part of MIPI specification, the MIPI receiver needs to terminate the signals correctly. The termination required changes depending on the MIPI mode (e.g. High speed, Low power mode etc.). The receiver needs to detect the mode of operation and dynamically set its termination accordingly. Note that the Clock signals will only appear correctly when properly terminated.

     When we try to terminate the output signals from the ADV7280-M (Microprocessor / FPGA) then you will see the correct MIPI traces.

     Note that the Microprocessor / FPGA needs to be able to detect the output format (high speed mode or low power mode) and dynamically change its input impedance. If the Micro processor/ FPGA does not control the termination correctly then the MIPI signals from the ADV7280-M cannot be decoded.

     Please ensure your MIPI receiver (Microprocessor/ FPGA) has been configured correctly.

    This is described in applications note AN-1337

    http://www.analog.com/media/en/technical-documentation/application-notes/AN-1337.pdf

    For our evaluation of the ADV7280-M we used the MIPI reference termination board which is available from here:

    MIPI Test Boards | Interoperability Laboratory

    ADI linux drivers can be found at Linux Drivers [Analog Devices Wiki]

    ADI do support Linux drivers - they are located here (https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/tree/drivers/media/i2c) The ADV728x related content is stored in the ADV7180.c file.

    Also the Linux driver for the ADV7280 branch in the Linux kernel git repository on the ADI github account.

    https://github.com/analogdevicesinc/linux/tree/adv7280

    3. When the 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.      

        When the ADV7182/ADV728x is first powered up it still remains in a software powerdown mode. In this powerdown mode the XTALP and XTALN pins are powered down. This results in the crystal not oscillating.

         Running Analog Devices' recommended script forces the ADV7182/ADV728x out of powerdown mode. The write 0x00 to the User Sub Map register 0x0F forces theADV7182/ADV728x out of powerdown mode. After this write the crystal will start oscillating.

          Also Please crosscheck your schematic at 1803.ADV7280_MSchematic.zip.

    4. Make sure with IMX6 MIPI-CSI2 is configured to match the MIPI clock rate of the ADV7280-M.

    5. Refer below FAQ for more information.

    How to Detect That the Crystal is Working Correctly on the ADV7182/ADV728x - Documents - Video - EngineerZone (analog.com)

    Thanks,

    Poornima

  • Dear Poornima,

    I am using imxrt1176 not imx6. I do not use any operating system like linux. I am developing the app as bare metal in c. I mentioned in detail in my former post. Are you sure to read my previous explanations above? Have you looked screenshots attached I sent? You nearly wrote everything that I am already aware of and mentioned with the results I experienced above. Please re-read my efforts so far. 

    I am waiting some valuable information/recommendation please! Many thanks in advance.

  • Dear Poornima,

    Is not there any response? I kindly remind you from awaiting your guidance to solve the issue. Quick answer much appreciated. Thanks

  • Hi,

     Could you please ensure the below sequence but in your case it seems you are introducing more delay.

     Also Probe the signals from ADV7280M output pins to check whether the issue is from ADV7280-M or from your processor side.

    delay 10 ; Wait 10ms After Hardware Reset To Start I2C
    42 0F 80 ; Reset ADV7282A-M
    delay 10 ; Wait 10ms
    42 0F 00 ; Exit Power Down Mode [ADV7282M writes begin]

    For hardware reset it is best to keep reset low until the power rails are stable. Normally this can be accomplished with a simple RC circuit on the reset pin.

    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 10 ms 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.

    Thanks,

    Poornima