AnsweredAssumed Answered

the PPI problem on BF548

Question asked by Tao.Cheng on Apr 21, 2010
Latest reply on May 10, 2010 by JiangW

Hi,Guys,

   In BF548, customer use PPI (external PCLK, internal FS1) to transmit data to external FPGA. But they found that if PPI DMA length<32, the FS1 and data has no signal, no matter what PCLK is.

  The relative code is as following:

 

void startPP0Tx(TestPPI0Tx * dp)
{
Uint16 i;

    stopPP0Tx();
   
    dp->len=15;
   
*pEPPI0_LINE    =  dp->len;                

*pEPPI0_HDELAY    = 0;
*pEPPI0_HCOUNT    = dp->len;
*pEPPI0_FS1P_AVPL = 17300;                      
asm("ssync;");
   
    dp->data = (Uint16 *)dbg_l1_ram;                  
    *pDMA12_START_ADDR = (void *)(dp->data);
    *pDMA12_X_COUNT   =dp->len;
    *pDMA12_X_MODIFY   = 2; //16bits
    asm("ssync;");
   
*pDMA12_CONFIG    = FLOW_STOP |  WDSIZE_16 | DMAEN;; // enable DMA  (PPI not enabled yet)
asm("ssync;");

  
*pEPPI0_CONTROL   = (4<<15) | IFSGEN|(1<<4) | XFR_TYPE | EPPI_DIR | EPPI_EN ;     // enable PPI
asm("ssync;");
}

 

void stopPP0Tx(void)
{
*pEPPI0_CONTROL = 0;        // disable PPI
asm("ssync;");
    *pDMA12_CONFIG  = 0;                    // disable DMA
asm("ssync;");
}

 

Could any one check it?

Outcomes