[Oberon] FPGA - nRF24L01 `RPI Net' server

Tomas Kral thomas.kral at email.cz
Wed May 23 22:15:00 CEST 2018


On Wed, 23 May 2018 19:51:03 +0200
Jörg <joerg.straube at iaeth.ch> wrote:

> How would the code following the ReceiveHead() detect whether a
> timeout occurred?
Add 1)
`head.typ = 0FFH' is not checked in the code after ReceiveHead(), I do
not see the point yet

> What does
> SCC.ReceiveHead(head1) do?

Add 2).
SCC.ReceiveHead(head1) does clear the receiver ResetRcv(), but it must
first see the data in FIFO.

Oberon Transmit Log:
===================

typ len sadr dadr

Net.Gettime RPI ~

  53   0 180  94
  53   0 180  94
  53   0 180  94
  53   0 180  94
  53   0 180  94
  53   0 180  94
  53   0 180  94
  53   0 180  94
  53   0 180  94
  53   0 180  94
  53   0 180  94
  53   0 180  94
  71   4 180  94 valid
 time set

Net.ReceiveFiles RPI  Test.Mod ~  file size 640

Test.Mod receiving  
  71   4 180  94
  71   4 180  94
  71   4 180  94
  71   4 180  94
  71   4 180  94
  71   4 180  94
   0 512 180  94 valid seqno 0
   1 128 180  94 valid seqno 1
   1 128 180  94
   1 128 180  94
   1 128 180  94
   1 128 180  94
   1 128 180  94
   1 128 180  94
   1 128 180  94
   1 128 180  94
   1 128 180  94
   1 128 180  94
... many iterations follow until timeout, no other seqno sent
   1 128 180  94
   1 128 180  94
   1 128 180  94
   1 128 180  94  <= timeout sets head0.typ := 255
    640

Net.Gettime RPI ~

255 128 180  94 <= first pass through the loop

RX-FIFO has data though
 00000040 RX_DR data ready
 00000010 RX_FIFO not empty


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


More information about the Oberon mailing list