AnsweredAssumed Answered

ADV212 couldn't generate SWIRQ0 interrupt

Question asked by zzzljb on Sep 3, 2012
Latest reply on Jan 18, 2016 by DaveD

Hi,

Now I’m using ADV212 in JDATA mode. I have tested the Direct-Register-Access successfully by writing and reading back the value in both STAGE and IADDR. And I also have checked both the firmware and encode parameter. What I read back were the same as I wrote in. But now I couldn’t get the SWIRQ0 interrupt. What I read from the EIRQFLG is always 0x0027, not 0x040F. My code is shown below. If there is any change to be done in setting the parameters or order of settings please kindly inform.

  

   Reg_Write(PLL_HI,0x0008);

   Reg_Write(PLL_LO,0x0004);

   delay_ms(10);                   

   Reg_Write(BOOT,0x008A);           

   Reg_Write(BMODE,0x0005);               

   Reg_Write(MMODE,0x0005); 

                                       

   while(DirReg_Test());     //check if the direct-register-access is right(write and read back the STAGE and IADDR)

 

//-----download and check the firmware------

   FirmWare_Load();                  

   while (FirmWare_Check()); 

        

   Reg_Write(BOOT,0x008D);               

   Reg_Write(BMODE,0x0011);              

   Reg_Write(MMODE,0x0005);                

                                 

//-----download and check the encode parameter

  FW_Parameter_Load();                

  while (FW_Parameter_Check());         

 

   Reg_Write(STAGE,0XFFFF);                   

   Reg_Write(IADDR,0X1408);              

   Reg_Write(IDATA,0X001A);   

              

//-----enable SWIRQ0

   Reg_Write(EIRQIE,0X0400);      

  

//-----check EIRQFLG[10] is asserted or not

   while (Reg_Read(EIRQFLG)!=0X040F);    

  

//-----read the application ID

   while (Reg_Read(SWFLAG)!=0XFF82);   

                    

//-----set EDMOD0 to 0X001B    

   Reg_Write(STAGE,0XFFFF);                

   Reg_Write(IADDR,0X1408);              

   Reg_Write(IDATA,0X001B);          

       

//-----clear EIRQFLGA   

   Reg_Write(EIRQFLG,0XFFFF);            

 

 

The encode parameter is set like the following, the remaining are all zeros.

0x01000503,   

0x03000000,   

     0x01004E20,    

     0x00000001,   

 

Outcomes