This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

TMS320F28069: F28069 DMA/MCBSP stop work under EMI test

Part Number: TMS320F28069
Other Parts Discussed in Thread: AM3352

Dear Champs,

                 My customer use F28069 Mcbsp SPI slave mode to connect with AM3352 SPI port.  F28069 DMA Channel 1 is used for Mcbsp transmission.  DMA Channel 2 is used for Mcbsp receiver data. 

                 The function works well normally.

                 While under EMI test, customer reported Mcbsp receive DMA stop working,  the DMA transfer counter register did not update any more.  DMA Channel2 control register value is 0x2a00.  MCBSP port register SPCR1=0X180F and SPCR2= 0X4F. 

                 I'd like ask below questions:

                  1.   Looks like MCBSP stop send event to DMA module, what will be potential cause for this error? how to recover it?

                  2.    DMA Control register value is 0x2a00,  the bit9-10 is reserved field on TRM documents. Bit9-10 is zero by default, what's the meaning of value 1? Any clue that DMA stop working?

                  3. Any suggestion to solve this issue?

                   Thanks a lot for support!

                     Jane Lu

  • Jane,

    The value of "1" in bit 10 isn't a concern.  This was a function that was removed/unsupported during evaluation of the DMA module.  I looks like the logic is still there, but we don't support the use of it, and in this case there is no meaning to that bit being set to the issue customer has.

    From the SPCR1 register it is indicating that the RSYNCERR and RFULL bits are high, meaning there has been both a sync error as well as the read register is full and not read from the DMA.

    My thought is that perhaps the slave enable signal coming into the C2000(on the FSK signal) has noise from the EMI test, and this causes a frame sync issue if it is driven mid transmission(or when no transmission should be taking place to the C2000).

    I'd like to see if we can enable some extra qualification on this signal to remove the noise from the EMI test.  For below code I'm going to assume customer is using GPIO23 for the MFSXA signal, but if they are using another GPIO they can just replace it in the code below (they will need to verify the GPIO is in the correct QUALPRD group.

    Since this is qualified to SYSCLK, I don't anticipate the lag causing issues with the McBSP which should be clocked at a much lower rate.  Let's try either 3 or 6 samples and see if that fixes the issue.

    Best,
    Matthew

        EALLOW;
        GpioCtrlRegs.GPACTRL.bit.QUALPRD2 = 0;  //set the qual period = to SYSCLK
        GpioCtrlRegs.GPAQSEL2.bit.GPIO23 = 1;   //set the pin qualification to 3 samples
    //  Comment the above and uncomment the below to use 6 samples for the qualification
    //  GpioCtrlRegs.GPAQSEL2.bit.GPIO23 = 2;   //set the pin qualification to 6 samples
        EDIS;

  • Hi Matthew,

                The RSYNCERR bit is still occurred after implemented GPIO filter features.  Finally we decide to add MCBSP reset feature to workaround this issue.  We route  RSYNCERR event to CPU INT, once there’s error ,the ISR code will reset MCBSP.

                In addition, we also customer to try if anyway to improve EMI tolerance from system level.

                Thanks for your support again! 

                                      Jane