AnsweredAssumed Answered

Link port connection on ADSP-21469 EZ-Boards

Question asked by mich1985 on Jan 17, 2017
Latest reply on Jan 18, 2017 by mich1985

Hello all,
I'm trying to communicate between two eval boards over the link port. The attached code works fine if I'm only using one eval board (+ a loop back connection). If the code is executed on two boards the receiver board is receiving non-valid data continuously as soon as the transmitter side is out of reset. Any hints?

 

Best regards,

flo

 

...
// init stuff
*pLCTL0 =0;
*pLSTAT0 =0;

 

// configure link port tx
*pLCTL0 = (    /* EXTTXFR_DONE_MSK */    /* external transfer done interrupt mask */
            /* LPIT_MSK */             /* invalid transmit interrupt mask*/
            /* DMACH_IRPT_MSK |*/    /* DMA channel count interrupt mask */
            /* LRRQ_MSK */            /* mask the receive request mask */
            /* LTRQ_MSK |*/                /* unmask the transmit request mask */
            LP_BHD |                /* prevents a core hang when reading from a empty or writing to a full buffer */
            BIT_6 |                 /* link port transmitter logic synchronizer will be disabled -> checkme */
            LTRAN                /* link buffer transfer direction -> transmit */
            /* LCHEN| */                    /* enable dma chaining */
            /* LDEN |*/                    /* link buffer DMA enable */
            /* LEN*/);                    /* link port enable */

 

*pLCTL0 |= LEN;

 

*pLCTL1 =0;
*pLSTAT1 =0;

 

// configure link port rx
*pLCTL1 = (    /* EXTTXFR_DONE_MSK */    /* external transfer done interrupt mask */
            /* LPIT_MSK */             /* invalid transmit interrupt mask*/
            /* DMACH_IRPT_MSK |*/        /* DMA channel count interrupt mask */
            /* LRRQ_MSK |*/            /* unmask the receive request mask */
            /* LTRQ_MSK */             /* unmask the transmit request mask */
            LP_BHD     |        /* prevents a core hang when reading from a empty or writing to a full buffer */
            BIT_6                 /* link port transmitter logic synchronizer will be disabled -> checkme */
            /* LTRAN */             /* link buffer transfer direction -> receive */
            /*LCHEN|*/                     /* enable dma chaining */
            /*LDEN |*/                    /* link buffer DMA enable */
            /*LEN*/);                    /* link port enable */

 

*pLCTL1 |= LEN;

 

...

 

while(1)
{
    if (gb_sw8_pushed)
    {
        gb_sw8_pushed =false;
        SRU(HIGH,DAI_PB17_I);
        *pTXLB0 = 0x01234567;
    }

 

    if (*pLSTAT1 & 0x60)
    {
        rxData =*pRXLB1;
        SRU(LOW,DAI_PB17_I);

 

        if (rxData != 0x01234567)
        {
            asm("nop;");
        }
    }
}

Outcomes