AnsweredAssumed Answered

ADSP-21479 SPORT Receive Interrupt

Question asked by pozzi on May 15, 2012
Latest reply on May 17, 2012 by Harshit.Gaharwar

Hi,

 

I am using an ADSP-21479 with SPORT 1 configured for receive using DMA:

SPCTL1 = SLEN32 | FSR | BHD | CKRE | SPEN_A | SDEN_A;

 

When the DMA completes an interrupt occurs as expected.  Inside the interrupt, I was expecting to be able to disable the DMA and the SPORT, reconfigure the DMA registers, then re-enable the SPORT and the DMA as follows:

    SPCTL1 &= ~(SPEN_A | SDEN_A);

    CSP1A  = HIGH_SPEED_SPORT_BUF_LEN;
    IISP1A  = (unsigned int) uiaHighSpeedRxBuffer;
    IMSP1A   = 1;
    CPSP1A   = 0;

    SPCTL1 |= (SPEN_A | SDEN_A);

 

The above code however did not work.  I got the first interrupt but never got any new ones.

 

When I changed the last line such that the entire control register was configured again as follows:

SPCTL1 |= (SLEN32 | FSR | BHD | CKRE | SPEN_A | SDEN_A);

I would continue to get interrupts.

 

Is there any particular reason as to why the control register has to be completely reset?

 

Thanks,

Pam

Outcomes