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.

AM2634: MCSPI discard all MCSPI frames received

Part Number: AM2634

Hi experts

May I've found another bug in the current MCSPI driver (mcu_plus_sdk_am263x_08_06_00_34).

MCSPI_Transaction / API says:

  void                   *rxBuf;
    /**< [IN] void * to a buffer to receive data.
     *
     *   If rxBuf is NULL, the driver discards all MCSPI frames received.
     *
     *   The size of the buffer is similar to txBuf as explained above.
     */

If I use the "mcspi_loopback_dma_am263x-lp_r5fss0-0_freertos_ti-arm-clang" example and change rxBuf to NULL:

    spiTransaction.txBuf    = (void *)gMcspiTxBuffer;
    spiTransaction.rxBuf    = (void *)NULL;

Than the CPU gets stuck when executing the code via CCS / Debug.

Since this feature presumably increases efficiency when only data is sent and not received, I wanted to ask if anyone could take a look at this?

Thanks and best regards

Dominik

  • Hi Dominik,

    We will try to reproduce it here and get back to you soon.

    Best regards,

    Ming

  • Hi Dominik,

    I did reproduce the issue with the mcspi_loopback_dma_am263x-lp_r5fss0-0_freertos_ti-arm-clang example. I think the root cause is that the DMA was set to TX and RX (in example.syscfg) and it assumes the existence of TX and RX buffers.

    I made the same changes (RX buffer to NULL) in mcspi_loopback_am263x-lp_r5fss0-0_freertos_ti-arm-clang, it works OK.

    Best regards,

    Ming