[Oberon] FPGA - nRF24L01 connection

Tomas Kral thomas.kral at email.cz
Tue Apr 17 12:21:41 CEST 2018


On Tue, 17 Apr 2018 10:35:38 +0100
Paul Reed <paulreed at paddedcell.com> wrote:

> What happens if you put a pause in that loop?
I inserted a delay, 
...
Ping; j := Kernel.Time() + Wait; REPEAT UNTIL
Kernel.Time() >= i;
...
I cannot see any effect, I got 26-32%, with or without a delay.

> Do all the modules reliably detect a carrier?

I need to understand this test first, I have an RPI channel scanner
code.
Until now, I just executed Ping by hand on Oberon, and on RPI carrier
detected also bleeding into neighbouring channels. This is the case
with any modules I have had to tests. Only two of them work so far, but
only in specific node, Oberon or RPI, not both.

The code is this
while (i--)
      {

        // Select this channel
        radio.setChannel(i);

        // Listen for a little
        radio.startListening();
        delayMicroseconds(128);
        radio.stopListening();

        // Did we get a carrier?
        if ( radio.testCarrier() ) ++values[i];
      }

bool RF24::testCarrier(void)
{
  return ( read_register(CD) & 1 );
}

I may also try measuring signal level in the channel as Joerg
suggested. 

bool RF24::testRPD(void)
{
  return ( read_register(RPD) & 1 ) ;
}

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


More information about the Oberon mailing list