ADV7800 for direct output without processing

Hello, I am interested in having ADV7800 to take Composite, S-video, Component, RGB SCART, and RGB VGA inputs and deliver 30-bit 4:4:4 RGB digital output, so I can use it with a big scaler IC.

However, I don't want ADV7800 to have any extra processing, but rather just deliver the output without latency or input lag... besides usual conversion which won't be anything.

Therefore, I don't need any 3D comb or any other effect... so, can I use it without external RAM IC?

I believe it is controlled with I2C to have all the inputs and one output, is there any simple way of just outputting one of the inputs directly? I mean no "script" or anything complicated, no features choice, or so,... just choose SCART or S-video. or anything.

I saw that in the schematic within datasheet, it had the S-video Y connected to CSync pin of SCART connector. and the RGB coming from SCART in this case won't have the CSYNC fed into ADV7800. Kindly explain, since I need all the 5 inputs to be select able.

Also, I don't want to set the input resolution manually, but rather it takes it automatically then digitize it. So basically all I want is to take these inputs, pick between them, then output it as digital 444 RGB video on pixels. No need for HDMI since I don't own a license and won't get one.

thanks!



added extra requirements.
[edited by: VEGETA at 12:28 AM (GMT -4) on 29 May 2021]
  • 0
    •  Analog Employees 
    on May 31, 2021 6:23 PM

    Hi,

      Hello, I am interested in having ADV7800 to take Composite, S-video, Component, RGB SCART, and RGB VGA inputs and deliver 30-bit 4:4:4 RGB digital output, so I can use it with a big scaler IC.

            ADI does not make multiple input simultaneously video decoder. Analog video decoders can only select (and thus output) one stream at a time,If a project requires multiple video streams simultaneously, they will need multiple video decoders.

    Therefore, I don't need any 3D comb or any other effect... so, can I use it without external RAM IC?

           If your not using above functionality(3D comb) then the external SDRAM memory is not required.

    I believe it is controlled with I2C to have all the inputs and one output, is there any simple way of just outputting one of the inputs directly? I mean no "script" or anything complicated, no features choice, or so,... just choose SCART or S-video. or anything.

          Without choosing a script for particular input its not possible to output a video, If you choosing a script then only the required register configuration will take care on the chip.

    Also, I don't want to set the input resolution manually, but rather it takes it automatically then digitize it. So basically all I want is to take these inputs, pick between them, then output it as digital 444 RGB video on pixels. No need for HDMI since I don't own a license and won't get one

          If your using an software driver, then your software will take care by outputting the video depending on the input resolution without doing any configuration manually on your side.

    Thanks,

    Poornima

  • Hello,

    ADI does not make multiple input simultaneously video decoder. Analog video decoders can only select (and thus output) one stream at a time,If a project requires multiple video streams simultaneously, they will need multiple video decoders.

    well, I saw schematics and they have all these inputs connected together at the same time. maybe you mean the internal ADC cannot take all of them simultaneously? what I meant is to have them ready to be used whenever I needed one of them... all wired and ready.

    If your not using above functionality(3D comb) then the external SDRAM memory is not required.

    Nice, I only need digitization to RGB 4:4:4. Nothing more, no processing or anything.

    Without choosing a script for particular input its not possible to output a video, If you choosing a script then only the required register configuration will take care on the chip.

    I saw some scripts with hard to understand settings, some of them with a register number that doesn't exist in 7800 or so...

    What I need is simple set of commands, or a script, to choose an input from the available ones then output it to RGB 444. nothing more.

    Can you give me a simple script in c code to demonstrate such a function?

          If your using an software driver, then your software will take care by outputting the video depending on the input resolution without doing any configuration manually on your side.

    what type of software?

    the issue here is that I am required to know the input resolution right? I will have different types of resolutions for the same input such as YPbPr. it can have from 240p up to 1080p. How can ADV7800 detect the input resolution? also some variations such as 288p which is considered 240p.

    Is there a way to read a certain input then ADV7800 gives me its format and resolution in one of its registers?

    I am imagining something like this:

    input1 = I2C_read(input_1);
    
    input1_res = check_resolution (input1); //uses registers value to determine resolution, based on adv7800 register values datasheet.
    
    if (input1_res) == 240p: {output1_script (240p_output);} //240p_output is a script of I2C commands to give 240p output @ RGB 444.
    
    if (input1_res) == 480i: {output1_script (480i_output);}

    ^
    is this method valid?

    ___

    also, can I use 2 of ADV7800 at the same time using the same inputs directly? like connecting CVBS video into both ICs without buffer and so on? I guess I need to use a separate I2C address for each one using a pullup resistor right?

    __

    as for S-video issue, you didn't comment on it. I need all 5 formats (VGA, RGB SCART, Component, Composite, and S-video) to be available to choose from. but in example schematic S-video Y pin is hooked to SCART pin 20 which makes it impossible to choose it right?

    __

    there is also the sync input issue.. how to manage it for all formats?

    - RGB VGA seems ok, it has H and V sync separately.

    - RGB SCART has sync in pin 20.

    - S-video will have sync on Y pin, but where to put it if SCART is connected? Y and scart pin 20 can't be shorted together since they will have different video systems connected.

    - YPbPr also has sync on Y pin.

    -CVBS has sync on itself, meaning I would need to connect it to sync pin on adv7800 which already has other formats connected.

    My current solution is to have one LMH1980 IC which has all these inputs available, my microcontroller activates analog switches or multiplex ICs to choose which signal goes into LMH1980 based on selected video input.

    for example, if I select S-video output, then MCU will send S-video Y signal to LMH1980 input.

    I guess this is ok right?

    what is left is to have a reference design if possible (kicad?) and a kicad-friendly schematic symbol and footprint.

    thanks!!! sorry for long post

  • 0
    •  Analog Employees 
    on Jun 5, 2021 1:48 PM in reply to VEGETA

    Hi,

     Well, I saw schematics and they have all these inputs connected together at the same time. maybe you mean the internal ADC cannot take all of them simultaneously?

       Yes, you can connect all the inputs together but ADC cannot process all the input simultaneously.

    What I meant is to have them ready to be used whenever I needed one of them... all wired and ready.

       Yes this is possible.

    I saw some scripts with hard to understand settings, some of them with a register number that doesn't exist in 7800 or so...

    What I need is simple set of commands, or a script, to choose an input from the available ones then output it to RGB 444. nothing more.

       Register related information are available in ADV7800 hardware and software manuals at 3823.ADV7800Manuals.zip. Here you can find the different map register details for configuration according to our requirement.

      Can you give me a simple script in c code to demonstrate such a function?

       What type of software?

         To get application software, you need to contact your ADI sales team to sign an SLA.

         For that need to fill the 'HDMI Software Request Form' in the below link

         Software Request Form | Analog Devices

    the issue here is that I am required to know the input resolution right? I will have different types of resolutions for the same input such as YPbPr. it can have from 240p up to 1080p. How can ADV7800 detect the input resolution? also some variations such as 288p which is considered 240p.

    Is there a way to read a certain input then ADV7800 gives me its format and resolution in one of its registers?

        Yes, by using STDI register(Standard Identification (STDI) enabling system level component format detection) you can able to know the which resolution coming from the source device, these register details are available in ADV7800 hardware manual(Please refer Page104).

    also, can I use 2 of ADV7800 at the same time using the same inputs directly? like connecting CVBS video into both ICs without buffer and so on? I guess I need to use a separate I2C address for each one using a pullup resistor right?

         Yes we can control two IC's on the same I2C bus but please note that the second chip needs a different set of I2C map addresses, So that the two don't collide when they are on the same bus.

    My current solution is to have one LMH1980 IC which has all these inputs available, my microcontroller activates analog switches or multiplex ICs to choose which signal goes into LMH1980 based on selected video input.

    for example, if I select S-video output, then MCU will send S-video Y signal to LMH1980 input.

    I guess this is ok right?

       Yes,You can send the selected input to LMH1980 IC by using microcontroller.

    Thanks,

    Poornima

  • Hello

    nice to see it can detect inputs.

    However, not just vertical pixels are important to me but also horizontal. for example 320x240p, looks like adv7800 can get the 240 and p part but not 320. also, there are other multiple resolution variations which are not in the table.

    in table, it is said fields per line, and lines per vsync but i don't see where it detects number of horizontal fields count per one vsync.

    you mentioned getting to sign something, ok but please know that i don't intend to use any feature of adv7800... so just direct conversion to rgb 444 is what I want... also detect resolution and read it. maybe the program is like this:

    //c code:

    void input_select( string IN) {

    case CVBS: (.....) // select SDP, tell it it is to take analog input #..

    case S-video: (.....) // select SDP, tell it it is to take analog input #..

    case YPbPr: () // select CP, tell it it is to take analog input #..

    case SCART: (.....) // select SDP, tell it it is to take analog input #..

    case VGA: (.....) // select SDP, tell it it is to take analog input #..

    };

    void input_resolution_detect () {

    // i2c commands to read registers of STDI

    };

    void output () {

    // i2c command to output the video needed at RGB 444 30-bits

    }

    video_input = Input_select(RGB_SCART); //  I2C commands to select between scart, vga, ypbpr, s-video, cvbs

    input_resolution = Input_resolution_detect(video_input); // I2C commands to detect input resolution

    output =  output_to_RGB_444 (); // one I2C script only... to do all the outputs.

    ________

    also, component mode is for YPbPr, SCART, and VGA while SDP is for S-video and CVBS only right? it means I need to output the i2c commands to assign this before telling it to go to output.right?

    I don't want to spend any good time configuring ADV7800 since I have a lot to spend on the main scaler IC, therefore support is needed. preferably scripts in C to do what is needed with little modification.

    thanks

  • 0
    •  Analog Employees 
    on Jun 7, 2021 12:03 PM in reply to VEGETA

    Hi,

    However, not just vertical pixels are important to me but also horizontal. for example 320x240p, looks like adv7800 can get the 240 and p part but not 320. also, there are other multiple resolution variations which are not in the table.

    in table, it is said fields per line, and lines per vsync but i don't see where it detects number of horizontal fields count per one vsync.

       Please note that Timing formats are measured by the STDI and the STDI uses the crystal as a timing base, so all format counts are related to the crystal.  The STDI only measures 8 horizontal lines to determine the horizontal frequency and count the horizontal lines to measure the vertical frequency. So in STDI its possible to measure the STDI Horizontal Locking Operation.

      For example the register BL(Block length) is a measurement of the length of 8 lines measured in XTAL cycles, this is measured from hsync falling edge to hsync falling edge, So by using this register you can measure the horizontal frequency 320 as well.

    also, component mode is for YPbPr, SCART, and VGA while SDP is for S-video and CVBS only right? it means I need to output the i2c commands to assign this before telling it to go to output.right?

          Yes,Standard definition processor (SDP), which processes all PAL, NTSC, and SECAM signal types from CVBS/YC source and the second section is the component processor (CP), which processes YPrPb and RGB component formats, including RGB graphics.

    Thanks,

    Poornima