[Oberon] FPGA - nRF24L01 `RPI Net' server

eas lab lab.eas at gmail.com
Wed May 16 03:05:31 CEST 2018


>> The trick seems in adjusting time loop constants in
>> various places, plus delays and retries. The setting slightly differs
>> between `PI' and `Oberon', having no exact explanation, except that each
>> platform runs at different speed..

> The approach to rely on time constants in loops is not the best one...

Yes, AFAIK the now mature/well-established protocol is:
  interrupt-driven switching;
 but there must be some timeout to handle abnormal/bad delays?

> The chip is able to tell you when it received a packet and it can tell you
> when it sent the packet.

It tells THAT it has received a packet and it knows/records THAT it
sent a packet.
I expect the TxSentBit is set AFTER the last bit-of-the-packet has been sent.

> It does so by setting bits in registers. Please have a look at the register
> map and find those bits.

> When the chip told you that there happened something, treat the packet
> accordingly (get the packet off the chip or prepare a new one to send) and
> (important!) tell the chip that you're done by resetting the bits mentioned
> above.

IF NewRx THEN HandleRX&ResetBit;
IF TxDone THEN andleTX&ResetBit;

There's no "real time catch the ball".
The protocol caters for communication between very different speed nodes.

==crg


More information about the Oberon mailing list