AnsweredAssumed Answered

BF548 EPPI active video field only.

Question asked by emanuele.cardani on Feb 23, 2011
Latest reply on Jun 24, 2011 by RichardJ

We are developing an application based on BF548 which have to     acquire an NTSC stream from an external source and convert it in PAL     format.


Actually we are able to acquire only entire field of both NTSC and     PAL and loop back them correctly.
When we try to acquire active video field only using the the eppi     setted as below for PAL:

//PAL
ADI_DEV_CMD_VALUE_PAIR  EppiItuAVInPAL[]         =                                                
     {
         { ADI_EPPI_CMD_SET_SAMPLES_PER_LINE, (void *)1728 }, //         Samples per Line          
         { ADI_EPPI_CMD_SET_LINES_PER_FRAME, (void *)625 }, //         Lines per Frame          
         { ADI_EPPI_CMD_SET_FS1_WIDTH, (void *)280 }, //         Horizontal blanking samples per line          
         { ADI_EPPI_CMD_SET_FIELD1_PRE_ACTIVE_DATA_VBLANK, (void         *)22 }, // Vertical blank before start of Field 1 Active Data          
         { ADI_EPPI_CMD_SET_FIELD1_POST_ACTIVE_DATA_VBLANK, (void         *)2 }, // Vertical blank after the end of Field 1 Active Data          
         { ADI_EPPI_CMD_SET_FIELD2_PRE_ACTIVE_DATA_VBLANK, (void         *)23 }, // Vertical blank before start of Field 2 Active Data          
         { ADI_EPPI_CMD_SET_FIELD2_POST_ACTIVE_DATA_VBLANK, (void         *)2 }, // Vertical blank after the end of Field 2 Active Data          
         { ADI_EPPI_CMD_SET_FS1_PERIOD, (void *)1440 }, // Active         Video samples per line or Vertical blanking samples per line          
         { ADI_EPPI_CMD_SET_FIELD1_ACTIVE_DATA_LINES, (void *)288         }, // # of Active data lines in Field 1          
         { ADI_EPPI_CMD_SET_FIELD2_ACTIVE_DATA_LINES, (void *)288         }, // # of Active data lines in Field 2 
         { ADI_EPPI_CMD_SET_TRANSFER_TYPE,                           (void*)0                               },        
         { ADI_EPPI_CMD_SET_FIELD_SELECT_TRIGGER,                    (void*)1                           },        
         { ADI_DEV_CMD_END,                                          NULL                                }
     };


we succeded to acquire and play back PAL video in sync. But when we     detach the Video source and attach it again the video syncs in a     random point of the field as if the ppi doesn't recognise the EAV or     the SAV code in the BT656 stream generated by the ADV7183.

For what concern the NTSC input we are not able to capture active     field only at all. We have setted the eppi as below:

//NTSC
     ADI_DEV_CMD_VALUE_PAIR  EppiItuAVInNTSC[]         =                                                
     {
         { ADI_EPPI_CMD_SET_SAMPLES_PER_LINE, (void *)1716 }, //         Samples per Line          
         { ADI_EPPI_CMD_SET_LINES_PER_FRAME, (void *)525 }, //         Lines per Frame          
         { ADI_EPPI_CMD_SET_FS1_WIDTH, (void *)268 }, //         Horizontal blanking samples per line          
         { ADI_EPPI_CMD_SET_FIELD1_PRE_ACTIVE_DATA_VBLANK, (void         *)17 }, // Vertical blank before start of Field 1 Active Data          
         { ADI_EPPI_CMD_SET_FIELD1_POST_ACTIVE_DATA_VBLANK, (void         *)2 }, // Vertical blank after the end of Field 1 Active Data          
         { ADI_EPPI_CMD_SET_FIELD2_PRE_ACTIVE_DATA_VBLANK, (void         *)17 }, // Vertical blank before start of Field 2 Active Data          
         { ADI_EPPI_CMD_SET_FIELD2_POST_ACTIVE_DATA_VBLANK, (void         *)3 }, // Vertical blank after the end of Field 2 Active Data          
         { ADI_EPPI_CMD_SET_FS1_PERIOD, (void *)1440 }, // Active         Video samples per line or Vertical blanking samples per line          
         { ADI_EPPI_CMD_SET_FIELD1_ACTIVE_DATA_LINES, (void *)243         }, // # of Active data lines in Field 1          
         { ADI_EPPI_CMD_SET_FIELD2_ACTIVE_DATA_LINES, (void *)243         }, // # of Active data lines in Field 2 
         { ADI_EPPI_CMD_SET_TRANSFER_TYPE,                           (void*)0                               },        
         { ADI_EPPI_CMD_SET_FIELD_SELECT_TRIGGER,                    (void*)1                            },        
         { ADI_DEV_CMD_END,                                          NULL                                }
     };

The video is totally out of sync. The playbacked video continues to     roll over the screen as if the Horizontal video sync is totally     missing. See the attached image.

 

Can anyone help me? I can't find any example of active video field only acquire.

How should i configre the input eppi?

And the DMA?

Outcomes