NRF24 läuft nicht - Oder überschreibt config

Hallo,

mein NRF24l01+ verhällt sich ziemlich komisch.

Ich habe folgenden Code

#include <SPI.h>
#include "nRF24L01.h"
#include "RF24.h"
#include "printf.h"

#define MODE 1

RF24 radio(9,10);

const uint64_t pipe = 0xF0F0F0F0E1LL;
const uint64_t pipe_2 = 0xF0F0F0F0D2LL;

void setup()
{
  Serial.begin(57600);
  printf_begin();

  radio.begin();

  radio.openReadingPipe(2,pipe);
  radio.openWritingPipe(pipe_2);

  radio.startListening();

  radio.printDetails();
}

void loop()
{


}

Da ist überhaupt keine Magie drin. Ganz simples Setup.

Das Problem ist nur, dass er meine Config einfach ignoriert. Die Adressen sind schlichtweg nicht die, die ich gesetzt habe:

STATUS = 0x0e RX_DR=0 TX_DS=0 MAX_RT=0 RX_P_NO=7 TX_FULL=0
RX_ADDR_P0-1  = 0xe7e7e7e7e7 0xc2c2c2c2c2
RX_ADDR_P2-5  = 0xc3 0xc4 0xc5 0xc6
TX_ADDR = 0xe7e7e7e7e7
RX_PW_P0-6  = 0x00 0x00 0x00 0x00 0x00 0x00
EN_AA = 0x3f
EN_RXADDR  = 0x03
RF_CH = 0x02
RF_SETUP  = 0x0f
CONFIG = 0x08
DYNPD/FEATURE  = 0x00 0x00
Data Rate = 2MBPS
Model = nRF24L01+
CRC Length = 8 bits
PA Power = PA_MAX

Mein erste Vermutung war natürlich, dass die Wiring schlichtweg falsch ist. Habe das jetzt mehrmals gechecked... Es stimmt.
Ich habe dann ein wenig mit dem Code rumprobiert. Wenn ich den Aufruf von "radio.startListening();" weg lasse, dann hat er die richtigen Adressen drin:

STATUS = 0x0e RX_DR=0 TX_DS=0 MAX_RT=0 RX_P_NO=7 TX_FULL=0
RX_ADDR_P0-1  = 0xf0f0f0f0d2 0xc2c2c2c2c2
RX_ADDR_P2-5  = 0xe1 0xc4 0xc5 0xc6
TX_ADDR = 0xf0f0f0f0d2
RX_PW_P0-6  = 0x20 0x00 0x20 0x00 0x00 0x00
EN_AA = 0x3f
EN_RXADDR  = 0x07
RF_CH = 0x4c
RF_SETUP  = 0x07
CONFIG = 0x0e
DYNPD/FEATURE  = 0x00 0x00
Data Rate = 1MBPS
Model = nRF24L01+
CRC Length = 16 bits
PA Power = PA_MAX

An der Stelle bin ich wirklich ratlos! Er kann ja offenbar mit dem NRF24 kommunizieren, sonst würde er die Adressen ja nicht gesetzt bekommen. Nur beim StartListening geht dann was schief.

Ich benutzt ein Arduino Pro mini 328P 5V und ein NRF24l01+

Wenn ich das Funkmodul an ein Arduino Uno anschließen, läuft es ohne Probleme. Es wird also an meiner Schaltung liegen. Ich komme aber einfach nicht drauf, was es sein kann.

Hier noch ein Bild von meiner Schaltung. Allerdings sieht man nicht all zu viel. Das soll seine Steuerung für ein RGB Strip werden:

Ich benutzt ein Arduino Pro mini 328P 5V und ein NRF24l01+

Und, wo nimmst du die 3,3V für das Modul her?

Ich verwende an der Stelle 3 Dioden in Durchlassrichtung + 10µF Elko direkt am Modul

Falls das eine TO 220 Dreibein ein 3,3V Regler sein sollte fehlen dem auch ein Büschel Kondensatoren.

Das Arduino ist direkt an 12v dran. Nur der nrf24 hängt an dem 3.3v Voltage Regulator. Wie groß muss der Kondensator denn sein? Ich werde das mal probieren.

Aber wie kann es denn sein, dass sowas so komische Effekte mit sich zieht?

Wollte ich auch fagen. Wo kommen die 3,3V her? Ist DIREKT am NRF24 nochmal ein Abblockkondensator? Richtwert sind 10µF. Wobei ich sicherheitshalber noch einen 100n KerKo parallelschalten würde.

Gruß Gerald

Ahn1:
Wie groß muss der Kondensator denn sein?

"Der"?
Ein ganzes Büschel fehlt da!
Meist machen die Hersteller Vorschläge im Datenblatt.

Ahn1:
Aber wie kann es denn sein, dass sowas so komische Effekte mit sich zieht?

Wildes ungepuffertes Zappeln macht Zufallsergebnisse.

Die NRF24L01+ sind unglaublich anfällig für instabile Versorgungsspannungen.

Es sieht so aus, als ob du den nRF24L01+ an einem China-Arduino-Klon betreibst. Besonders mit diesen, sowohl mit den On-Board-3V3 Regulatoren hatte ich größere Mengen Ärger.

Wenn du dir allen solchen Ärger vom Hals halten möchtest, organisier dir 1x 10µF Elko, 2x 100nF Kerko und einen LT1117-CST-3.3 (LDO 3,3Volt Spannungsregler).

Viele Grüße,
Tobias

Manawyrm:
Die NRF24L01+ sind unglaublich anfällig für instabile Versorgungsspannungen.

Es sieht so aus, als ob du den nRF24L01+ an einem China-Arduino-Klon betreibst. Besonders mit diesen, sowohl mit den On-Board-3V3 Regulatoren hatte ich größere Mengen Ärger.

Wenn du dir allen solchen Ärger vom Hals halten möchtest, organisier dir 1x 10µF Elko, 2x 100nF Kerko und einen LT1117-CST-3.3 (LDO 3,3Volt Spannungsregler).

Viele Grüße,
Tobias

Sieht ganz so auf als hätte ich mir tatsächlich die Module zerschossen.

Ich habe schon ein extra 3.3v Voltage Regulator auf der Platine. So weit ich das sehe hat der Pro mini doch gar kein 3.3v output?? Aber wie auch immer. Das mit den Kondensatoren werden ich versuchen.
Wo würde ich denn die 100nF Kerkos schalten?
Würde auch ein 100µF Elko gehen? Den hab ich hier noch rumliegen :confused: ....

Du solltest dir mal anschauen wie eine Schaltung mit linearen Spannungsregler aufgebaut sind:
http://www.it-mike.de/tag/7805/

Die Kondensatoren sind nicht gleichzusetzen. Du kannst nicht einfach einen Kondensator im nF-Bereich durch mehrere µF ersetzten. Die verhalten sich anders und reagieren auf unterschiedliche Frequenzen.

Die 100nF verhindern dass der Regler schwingt und die Elkos puffern die Spannung wenn die Leitung mal stärker belastet wird. Der Elko am Ausgang wird manchmal weggelassen, aber mach in mal rein wenn du damit solchen Ärger hast.

Serenifly:
Du solltest dir mal anschauen wie eine Schaltung mit linearen Spannungsregler aufgebaut sind:
http://www.it-mike.de/tag/7805/

Die Kondensatoren sind gleichzusetzen. Du kannst nicht einfach einen Kondensator im nF-Bereich durch mehrere µF ersetzten. Die verhalten sich anders und reagieren auf unterschiedliche Frequenzen.

Die 100nF verhindern dass der Regler schwingt und die Elkos puffern die Spannung wenn die Leitung mal stärker belastet wird. Der Elko am Ausgang wird manchmal weggelassen, aber mach in mal rein wenn du damit solchen Ärger hast.

Ok. Dann werde ich das morgen mal versuchen. Gut möglich das es daran lag. Vielen dank für eire liebe Hilfe :slight_smile:

So, ich habe jetzt vor und nach den Spannungsregler jeweilst ein Elko und Kerko geschaltet, wie hier vorgeschlagen: http://www.it-mike.de/tag/7805/
Jetzt scheint es tatsächlich stabil zu laufen.

Tja, hab das Problem wohl zu sehr auf Softwareseite gesucht :smiley:

Danke für eure Hilfe!