EDMA SAI1 error

  • Hello.

    I am using PicoCore™MX8ULP and I have a problem using edma for sai1.

    In the attached code I initialize SAI1(#define USE_SAI1) or SAI0 (#define USE_SAI0) to send data using edma (function config_sai_tx_edma();) or without edma (function config_sai_tx();). When using SAI0 both functions work and data comes out from corresponding pins initialized for SAI0. But when I use SAI1 I can send data without edma and it comes out from pins, but when I use edma (function config_sai_tx_edma();) there is no data output. In edma registers (DMA0->MP_ES) I see destination bus error. Is this related to some incorrect initialization of edma for sai1 on my part or some other error in the settings?


    my code:

  • Hello Saturnion ,


    your configuration seems to be OK.

    I suspect that the tRDC can prevent communication between DMA and SAI1.


    Please execute the function “BOARD_SetTrdcGlobalConfig()”.

    In addition, an entry would have to be added for SAI1.


    In “BOARD_SetTrdcGlobalConfig()” it should look something like this.


    Please let me know if this works.

    F&S Elektronik Systeme GmbH
    As this is an international forum, please try to post in English.
    Da dies ein internationales Forum ist, bitten wir darum, Beiträge möglichst in Englisch zu verfassen.

  • Thank you!

    I changed the BOARD_SetTrdcGlobalConfig() function as you said and it helped me, I see the information on the sai1 outputs that I transmit using edma.

    For others who will see this thread and for me in the future: apparently, a repeated call to the BOARD_SetTrdcGlobalConfig() function (from debug) is not successful, even if the previous call was from the firmware loaded into the flash memory. Therefore, make sure that there is a file in the flash memory with the already edited BOARD_SetTrdcGlobalConfig() function;