Go Down

Topic: NRF24 läuft nicht - Oder überschreibt config (Read 57 times) previous topic - next topic

Ahn1

Hallo,

mein NRF24l01+ verhällt sich ziemlich komisch.

Ich habe folgenden Code

Code: [Select]

#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:

Code: [Select]

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:

Code: [Select]

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:

combie

Quote
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.

Ahn1

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?

nix_mehr_frei

#3
Today at 04:08 pm Last Edit: Today at 04:09 pm by nix_mehr_frei
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
rot ist blau und Plus ist Minus

combie

Wie groß muss der Kondensator denn sein?
"Der"?
Ein ganzes Büschel fehlt da!
Meist machen die Hersteller Vorschläge im Datenblatt.



Aber wie kann es denn sein, dass sowas so komische Effekte mit sich zieht?
Wildes ungepuffertes Zappeln macht Zufallsergebnisse.


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

Go Up