I would like to clear some of my confusion on multi peripheral links behavior.
My context: SDK 15.2/SD610 on 3 52840 nodes.
I am using multiple peripheral links feature of SDK, 1x52840 as peripheral and 2x52840 as centrals. Each Central connects to the single peripheral directly.
On both central nodes I set connection interval to 15ms, and gap event length to 6units(7.5ms). The same setting also applies to the peripheral node. It is expected that in one connection interval that 2 packets can be sent per link.
The question is, can this peripheral node send 1 packet to each of the connected central node within one connection interval(15ms)?
I kinda of think this is not possible as according to what connection interval is defined, each central node has its own timing and anchor point when connection event is open, this may results in conflicts in peripheral node. So the peripheral can only send 1 packet in one interval and wait till this event is closed it can then starts sending next packet to another node. In other word, the expected throughput of this peripheral node can not be achieved by using the settings above.
Not sure if I understand this correctly. Can you help to clarify the exact behavior of soft device in this case?
any suggestions about this question?
thanks a lot.
I think it should be possible to send a packet to each central within 15ms. The connection interval is the interval between the start of each connection event. If you have one packet to send, then at the start of the connection event the packet will be sent, and if there is nothing else to be sent, the connection event is closed(in total is should only take a few ms). The next upcoming event is then the start of the connection event for your link number 2. The maximum time spent in the connection event is the gap event length that you set.
Thank you Sigurd for the hint. I think i basically got the idea.
2 more related issues would like to confirm:
1) in SDS scheduling chapter it is recommended that the connection interval should be set to:
∑tevent-Cx + (tScanReserved + ScanWindow) + tSlaveEventNominal + tAdvEventMax
In my case the scanning and advertising are all stopped after connection established. Will it be OK if i skip the scaning and adv parts in above formula in this case?
2) During test i found the scanner failed to discover advertising peripheral node quite often, and sometimes failed to connect due to peer disconnected. The scanning window is set to 80 units and interval is 160 units. Is there any way to improve it?