[Oberon] FPGA - nRF24L01 `RPI Net' server

Tomas Kral thomas.kral at email.cz
Wed May 16 08:49:04 CEST 2018


On Wed, 16 May 2018 07:40:22 +0200
Jörg Straube <joerg.straube at iaeth.ch> wrote:

> REPEAT
>   GetRegister(status)
> UNTIL {SENT, MAXRETRY} * status <> {};
> ResetBit;

Nice and simple!

Currently employing `SCC.Mod' & `Net.Mod', `RF24::Write()' class method
rewritten to match `SCC.SubSnd'.

Sending this control file having multiple 32 byte payloads + [CR].
0000000000000000000000000000000
1111111111111111111111111111111
2222222222222222222222222222222
3333333333333333333333333333333
4444444444444444444444444444444
5555555555555555555555555555555
6666666666666666666666666666666
7777777777777777777777777777777
8888888888888888888888888888888
9999999999999999999999999999999
0000000000000000000000000000000
1111111111111111111111111111111
2222222222222222222222222222222
3333333333333333333333333333333
4444444444444444444444444444444
5555555555555555555555555555555
6666666666666666666666666666666
7777777777777777777777777777777
8888888888888888888888888888888
9999999999999999999999999999999

Receiving this.
0000000000000000000000000000000
1111111111111111111111111111111
2222222222222222222222221111111
2222222222222222222222222222222
3333333333333333333333333333333
4444444444444444444444444444444
5555555555555555555555555555555
6666666666666666666666666666666
7777777777777777777777777777777
8888888888888888888888888888888
9999999999999999999999999999999
0000000000000000000000000000000
1111111111111111111111110000000
1111111111111111111111111111111
2222222222222222222222222222222
3333333333333333333333333333333
666666666666666666666666���666666666666666666666666���6666666666666666666666666666666
7777777777777777777777776666666

It coughs when a third payload is retransmitted, and some bad CRC data
lingers in RX_FIFO. Loosed some data at the end of the second packet.
Size transferred/received reported good though.

No use increasing number of retries, as the receiver end then times
out, stops listening and will not catch other payloads to come.

Test.Mod receving 640, `oberon' end 

Transmit protocol `RPI' end.

valid header 
65 14 165 210
 Test.Mod sending
status 32
4
status 32
4
status 16 <== retransmit
status 32
3
status 32
4
status 32
4
status 32
4
status 32
4
status 32
4
status 32
4
status 32
4
status 32
4
status 16 <== retrasmit
status 32
3
status 32
4
status 32
4
status 16
status 16
status 16
status 16
status 16 <== payload lost after 5th try
0
17 0 165 210 512 <= 1st packet done
status 16 <== retransmit
status 16 <== retransmit
status 32
2
status 16
status 32
3
status 16
status 16
status 16
status 16
status 16 <== payload lost after 5th try
0
18 0 165 210 128 <= 2nd packet done
 640 <== size good


-- 
Tomas Kral <thomas.kral at email.cz>


More information about the Oberon mailing list