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.

MSP430F5438A: DMA - Bluetooth data transmission control (UART protocol) issue

Part Number: MSP430F5438A

Introduction

Hello, I developed a wireless device, which continuously transmit bulk data.

 - MCU : MSP430F5438A

 - BT : CC2564B (PAN1326B)

 - Throughput : 400 kbps

And I wanted for MCU in this device to do data processing before bulky data transmission,

By using Bluetooth stack code, however, UART protocol was an too much burden to compute additional data processing,

So I wanted to design for UART data transmission by using DMA control.

 

Problem - no DMA trigger assignment option about UCA3TXIFG

From DMA in MSP430F5438A , I can only select UC- A0, A1, B0, or B1 interrupt flag (page 50 in datasheet),

but in stack code, MCU-Bluetooth UART connection was UCA3, so I cannot send UART data by using DMA.

How can I transmit data by using DMA?

  • Hi Donghyeon,

    You're correct that there are no DMA triggers for UCA3 on this part. In order to use the DMA in this scenario, you will need to change the bluetooth uart connection to use one of the UART modules you've listed above that has a DMA trigger. I can help guide you through this process if you have any questions.

    Best regards,
    Caleb Overbay
  • Hello Caleb,

    Maybe you are suggesting using another UART module, such as UCA1, I think.

    I have developed the Bluetooth project by using 'stack code' (www.ti.com/.../cc256xmspbtblesw)
    I was wondering if I can fix the direction of UART pin in MCU to communicate with Bluetooth chip,
    because in the stack code, UART and Bluetooth initialization parts are secret.

    I also want to fix them.
    How can I fix TiI- offered stack code parts which are hidden?

    I don't know whre the UART initialization is processed, but I guessed 'BSC_Initialize()' function manages the UART initialization.

    How do you think?
    Can Texas Instruments offer fixed code?
  • Hi Donghyeon,

    You're correct, I am suggesting using another UART module such as UCA1. I'm not as familiar with the stack as our bluetooth team is, so I asked for their input on this and got the following response:

    The Stack is provided as binary and the default sample applications use UCA3 UART because it is how the EVM (EXP-MSP430F5438) is designed. But the HAL is available to the users in form of source code. Please find the HAL.c, HAL.h and HRDWCFG.h files in the stack SDK. All the hardware peripheral level definitions including UART port are defined in the HRDWCFG.h and being used by HAL.c. In order to use the UCA0 or any other serial port, these files need to be modified.

    Similarly the HCITRANS.c implements UART Tx and Rx mechanism. If you want to use DMA, you will need to modify this file to implement that. Both of these files are provided as source code to the users so they can port according to their board requirements. So having the Bluetooth stack as binary should not limit anything.

    Hope this helps and let me know if you have any questions.

    Best regards,
    Caleb Overbay
  • Hello Caleb,

    Thank you for advising!!! It was really helpful!!!
    I now can transmit data using DMA!

    Before I using DMA, the transmission rate was down to 182 kbps
    But after using DMA, the transmission rate was changed to 330 kbps

    DMA operation is good for lowering CPU burden, I think.

    Thank you Caleb!

**Attention** This is a public forum