This post is older than 2 years and might not be relevant anymore
More Info: Consider searching for newer posts

TimeSlot API high frequency sampling

Hello,

I started with the UART timeslot API but countering some problems. It will be helpful if I could get any tips or solutions.

I am trying to sample every 2ms and for the purpose of the application, I can't afford to have any delays( at least less than 1 ms).

I have a slave chip that samples every 2ms using ADC and sends it to the master chip via ESB. In order to reduce delays, I have no ACK and 3 retransmission with high retransmission rate.

When the master chip receives the data from the slave chip, it also samples a data and sent it to the smartphone via BLE.

The problem is that since there is not ACK and the retransmission number of retransmission is low there are occasional situations when the slave chip tries to send data but the master chip does not receive it. I need to minimize the data loss.

Is there a way to synchronize the timing between the two chips? or is there a better way to solve this problem. Also will going to nrf52 to help this problem by a lot?

Parents
  • So the problem is that the master is not listening sometimes when the slave sends data?

    You can synchronize the chips over the air, this is what is done in BLE: The two devices are communicating at a certain interval and wakes up based on the time from the last time they communicated. The timing is done with the RTC clock and the device that is listening at the start of the interval has to wake up a bit before to cope with inaccuracies in the clock, which is called window widening. When it receives a packet it will synchronize the clock.

    Another question: what is "UART timeslot API" you are talking about?

  • Ok, then I understand better what you are trying to do. BLE will interfere with timeslot so you will have timeslot that will not be granted if they collide with already scheduled SoftDevice events (like advertising or connection). I highly recommend to read the schedule chapter in the SDS. If you want to have timeslots every 2ms you can be rejected multiple times because a connection or advertising interval usually takes longer than 2ms.

Reply
  • Ok, then I understand better what you are trying to do. BLE will interfere with timeslot so you will have timeslot that will not be granted if they collide with already scheduled SoftDevice events (like advertising or connection). I highly recommend to read the schedule chapter in the SDS. If you want to have timeslots every 2ms you can be rejected multiple times because a connection or advertising interval usually takes longer than 2ms.

Children
No Data
Related