Forum: Mikrocontroller und Digitale Elektronik nRF24L01(+) Problem & Fragen


von Jan G. (jan80)


Lesenswert?

Ich hatte diese Frage schon in einem anderen Thread gestellt:

Beitrag "Bidirektionaler Funk-IO-Expander für Raspberry Pi"

Ich denke aber, dass sie dort wegen des unpassenden Titels untergeht. 
Daher nochmal die Frage hier:

Ich muss nochmal nerven. Da die Reichweite der nRF24L01 Module (Betrieb 
mit 1 MBit) nicht zufriedenstellend war (aber nur knapp), habe ich mir 
einige nRF24L01+ Module bestelltl. Zu meiner Überraschung musste ich 
feststellen, dass die neuen Module exakt genau so aussahen wie meine 
bereits vorhanden nRF24L01 Module (ohne das +). Bei näherer Betrachtung 
stellte sich heraus, dass auch auf den alten Modulen der verbaute IC mit 
nRF24L01+ beschriftet ist. (zumindest vermute ich das, wirklich 100% 
sicher lesen kann ich es wegen der extrem kleinen Schrift nicht, könnte 
statt + auch * oder so sein).

Wie sehen die ICs ohne das + aus? Ist da hinter dem nRF24L01 noch ein
Zeichen? Habe ich jetzt nur nRF24L01+ Module? Ich bin da jetzt doch
etwas verunsichert!

Ich habe versucht eine Kommunikation mit 250 kbit/s herzustellen. Leider
funktioniert das nicht sauber. Ich sende die Daten und warte dann mit
einem Loop darauf, dass ein Interrupt gefeuert wird. Entweder wurden die
Daten erfolgreich übertragen, oder die maximale Anzahl von erfolglosen
Versuchen wurde erreicht. Leider ist bei 250 kbit/s beides nicht der
Fall. Der Loop wird dadurch zur Endlosschleife. Ich initialisiere die
Module so:

1
//Datenrate auf 250 KBit festlegen
2
mirf_write_register(RF_SETUP, RF_DR_LOW, 1);
3
mirf_write_register(RF_SETUP, RF_DR_HIGH, 0);
4
5
//Auto Retry Delay auf 1 MS festlegen
6
mirf_write_register(SETUP_RETR, ARD, 1);
7
mirf_write_register(SETUP_RETR, ARD+1, 1);
8
9
//Auto Retry Count auf 15 festlegen
10
mirf_write_register(SETUP_RETR, ARC, 1);
11
mirf_write_register(SETUP_RETR, ARC+1, 1);
12
mirf_write_register(SETUP_RETR, ARC+2, 1);
13
mirf_write_register(SETUP_RETR, ARC+3, 1);

Das ist natürlich nur ein Auszug. ;)

Sobald ich RF_DR_LOW auf 1 setze, tritt das beschriebene Problem auf.

Kann mir jemand weiterhelfen?

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.