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.

Regarding CC2540 chip communication using UART interface

Other Parts Discussed in Thread: CC2540

Hi,

Our project is related to bringup CC2540 BT chip in NetBSD platform. In the client hardware, Atheros SOC and CC2540 BT chip are connected. CC2540 BT chip is communicating through High speed UART interface (UART1). UART1 is part of Atheros SoC.

We ensured that High speed UART registers are set appropriately.

a. On starting bluetooth using btattach, btconfig, btdevctl commands in NetBSD platform, we could observe the below behavior.

           i) Bluetooth stack HCI, L2CAP, RFCOMM are getting initialized properly in NetBSD platform.

          ii) HS UART dev is getting created.

          iii) Btuart line discipline is initialized properly.

Issue observed:

b. On sending HCI command to read BDADDR (BT Device address) or reset hardware,

       i) We were able to observe that the data written to UART FIFO is successful (Ensured only with no failure return).

      ii) No Acknowledgement is received for written data from BT chip. We expect Rx interrupt as an acknowledgement from the BT chip to UART1 to post HCI command completion event.

c. We have confirmed that there is NO communication happening from UART to BT chip using oscilloscope by probing in rx/tx test points.

As per schematics, HSUART Rx/Tx are connected to P0_2 and P0_3 respectively.

In UART registers, we ensure

- No flow control

- Baud rate is 460800

Do we need to wake up BT chip by any other means ? What all the possible ways to ensure whether BT chip receives the sent data. Please provide your inputs to resolve this issue.

Thanks & Regards,

Vennila

  • Hello,

    There are a few options for 2 wire UART and sleep. 

    #1) Add GPIO to control sleep.

    #2) Toggle RX pin and add code to disable sleep on wake up. Send commands, Then use API to put device back to sleep.  Take a look at wiki page.

    http://processors.wiki.ti.com/index.php/LPRF_BLE_HostTestPM

    If you can go RTS/CTS then that would be much cleaner, robust, and also allow for device to back to sleep faster.

    BR,

    -Greg