Writing/Erasing internal flash during BLE connection
Hi all,
We would like to perform write/erase actions in internal flash during active BLE connection for a slave/peripheral device. We intend to use BLE_RfWithFlash example. We are trying to establish sufficient conditions for a slave to perform write/erase operations.
Looking "4.7 Flash memory management" of AN5289, we see the constraints:
- BLE connected: the connection interval must be longer than 25 ms + packet length, to
be able to execute flash memory erase operation. - Data throughput use case: When data streaming packet is sent, the radio is kept active
to send as much data as possible between two connection intervals. Therefore, the
radio can not be in idle long enough to fit an erase operation. When the device is
master, it can reduce the Connection Event Length parameter (with either the
aci_gap_create_connection() or aci_gap_start_connection_update() command) to
prevent the device filling completely the interval between two connection intervals.
When the device is slave, it must request the master to increase the connection interval
so that the data to be sent fit only part of the interval between two connections events.
Is it correct to conclude that, in theory, even with a very long connection interval, there is a chance that the connection event can span the whole interval and there won't be enough time to perform an erase and there is nothing at slave side to ensure an erase?
