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.

CC2640: Hardware Error event from CC26XX during fast notifications

Part Number: CC2640

Greetings,

I have CC2640 programmed with HostTest app based on TI BLE SDK ver.2.2.2.  In my experiment the chip works as central and communicates with Android phone that works as peripheral .  During communication they negotiated to use MTU size up to 203 bytes and then my chip sends 200 bytes notifications as fast as possible.  After each notification I checks status in Command Status event to ensure the transfer to the chip was successfully completed.

Sometimes after notification the chip responses with Hardware Error event (0x04 0x10 0x01 0x81) and after that responses with Command Status that has 0x04 status.  In this situation I repeats notification and it successfully received by Android phone.

So my question is could anybody explain why this Hardware Error event appears and is it safe to proceed with notifications without RF-chip reset and re-initialization?
May it is safe only if value exactly 0x81?

Thank you in advance,
Sergiy.

  • Hi Sergiy,

    This error code is consistent with the Link Layer (controller) running out of memory when it is trying to fragment or combine a PDU.
    In general, it seems that you are running out of memory in bursts. It seems that later when you retry sending the notification, then it will succeed.

    Have you tried increase memory available by reducing the max number of TX buffers (preventing the LL from accepting a noti it can't fragement). This is controlled by MAX_NUM_PDU. Also what API are you using to send the notifications?
  • Hi Sean,

    Yes, I reduced MAX_NUM_PDU to 4 before my experiment.  By the way below is a list of my Preprocessor settings:

    HEAPMGR_SIZE=0
    MAX_NUM_BLE_CONNS=4
    MAX_PDU_SIZE=207
    MAX_NUM_PDU=4

    I use ATT_HandleValueNoti (Command = 0xFD1B) to send notifications.

    In addition,  this error event appears if I send notifications to the brand-new phones like Samsung 7,8,9 but it does not appear if I send notifications to the Samsung 6.

    The issue disappeared once I reduced MAX_NUM_PDU to 3.

    Thanks,
    Sergiy.

  • Hi Sergiy,

    Thanks for following up.
    What is happening is that when reducing the MAX_NUM_PDU, you are preventing the controller from accepting too many packets that it can't fragment due to heap limitations.

    Without a sniffer capture, I can't say for sure, but I would say that it is likely because these phones support different Data Length Extension values and MTU values.

    Glad the issue is solved!