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.

CC2541 data throughput in network processor mode

Other Parts Discussed in Thread: CC2541

I am trying to probe the performance boundary of CC2541; I'm following http://processors.wiki.ti.com/index.php/CC2540_Data_Throughput but I am using the CC2541 as a network processor. I have defined the GATT off chip, it all works fine but I am observing that I can't really send packets from the application processor through the UART to the network processor at 6.9 kbytes per second. The most I'm able to send is at 4.5 kbytes per second, with at least 5 ms of delay between packets (as GATT_Notification commands sent to the UART from the application processor).

The CC2541 is running HostTestRelease from BLE-1.3 release compiled using the following preprocessor symbols:

INT_HEAP_LEN=3000
HALNODEBUG
OSAL_CBTIMER_NUM_TASKS=1
xPOWER_SAVING
xHAL_LED=FALSE
xHAL_KEY=FALSE
HAL_AES_DMA=TRUE
HAL_DMA=TRUE
HAL_UART=TRUE
HAL_UART_DMA=1
HAL_UART_ISR=0
GATT_DB_OFF_CHIP

I have considered resurrecting http://e2e.ti.com/support/low_power_rf/f/538/t/169928.aspx but then I've thought a new post might be more visible.

  • Is that because of the UART speed?  Did you configure the UART at 57600bps?

  • Li Wen said:

    Is that because of the UART speed?  Did you configure the UART at 57600bps?

    No, it is not. I have configured the UART at 115,200 and I'm also using SPI at 4 MHz (which is slightly faster).  Same effective notification speed. Some of it has to do with the extra processing done by the slow core, and some of it by the fact that most data packets go alone, not two or three every interval.

  • Hi,

    I'm trying to use the CC2541 as a network processor also, with GATT off chip. I want to maximize also throughput to at least 2kbytes. 

    Using the network processor with GATT DB off the chip is ok, but i have been unsuccessful for a few days to maximize throughput. I'm limited to 100ms time slots. Could you tell me how you have done this ?

    Thanks a lot and best regards,

  • Hi,

    If you are using SDK 1.4.0 then you can enable Overlapped Processing to send more packets per connection event.

    With GATT DB off chip, you are going to have more UART/SPI traffic overhead.

    The most efficient method to increase throughput is to use an embedded project, i.e., simpleBLEPeripheral, add an interface, such as UART, then send the data to the CC2541. The stack operations will be handled locally thus you'll have less traffic between the host & BLE MCUs.

    Best wishes