In the OTA update process, sometimes the BLE disconnected on the customer board. The disconnection error code is 0x28 (CYBLE_HCI_INSTANT_PASSED_ERROR). I do not find more data about this error. What is this error? What is the reason? How to fix this?
The Instant Passed error code indicates that an LMP PDU or LL PDU ( for example LL_CONNECTION_UPDATE_REQ PDU for changing the connection parameter ) that includes an instant cannot be performed because the instant when this would have occurred has passed.
So, for example when the master sends this PDU (LL_CONNECTION_UPDATE_REQ PDU), it will sends an instant value as a part of this PDU.
The Instant field of the LL_CONNECTION_UPDATE_REQ PDU shall be used to indicate the connEventCount when the updated parameters shall be applied; this is known as the instant. The master should allow a minimum of 6 connection events that the slave will be listening for before the instant occurs.
Hope above clears about the error message.
Now to resolve this issue --
-> Are you changing the connection parameters after the BLE connection has established ? If yes, check what is the Slave latency number you have used. Try with a lesser number for slave latency (eg. 0)
-> Are you using the Low Power Modes in your design and also changing the WCO Sleep Clock Accuracy? If yes , please refer the page #12 for correct configuration from this document -http://www.cypress.com/file/140991/download
-> Which BLE device are you using ? If you are using a Module solution ( CYBLE-xxxxxxx-xx) part , assign the correct cap-trim values for the ECO as per the below document - ECO Capacitance Trim Values for EZ-BLE™ Modules - KBA218990