Forum: Mikrocontroller und Digitale Elektronik nRF24L01 defekt?


von Michael N. (garril)


Lesenswert?

Nabend,

habe zwei der o.g. Funkt-Transceiver an Atmegas hängen (je einer an 
Atmega 8) und auf beide ein Beispielprogramm aufgespielt.

Habe nur eine kleine Änderung vorgenommen:
1
while (!wl_module_data_ready()); //waits for RX_DR Flag in STATUS
2
 nRF_status = wl_module_get_data(payload); //reads the incomming Data to Array payload
3
 zaehler = payload[0];
4
5
//und jetzt statt:
6
7
/*itoa(zaehler, itoabuffer, 10); //conversion into String
8
lcd_string(itoabuffer);*/
9
10
//folgendes eingefügt:
11
    int test = zaehler;
12
    aus(PORTC,PC0);
13
    aus(PORTC,PC1);
14
    aus(PORTC,PC2);
15
    aus(PORTC,PC3);
16
    aus(PORTC,PC4);
17
    aus(PORTC,PC5);
18
    aus(PORTB,PB6);
19
    aus(PORTB,PB7);
20
    if (test & 0b00000001) {
21
      an(PORTC,PC0);
22
    }
23
    if (test & 0b00000010) {
24
      an(PORTC,PC1);
25
    }
26
    if (test & 0b00000100) {
27
      an(PORTC,PC2);
28
    }
29
    if (test & 0b00001000) {
30
      an(PORTC,PC3);
31
    }
32
    if (test & 0b00010000) {
33
      an(PORTC,PC4);
34
    }
35
    if (test & 0b00100000) {
36
      an(PORTC,PC5);
37
    }
38
    if (test & 0b01000000) {
39
      an(PORTB,PB6);
40
    }
41
    if (test & 0b10000000) {
42
      an(PORTB,PB7);
43
    }

Wenn ich den Integer "Test" per Hand befülle, zeigen mir die LEDs die 
entsprechende Zahl an.
Leider leuchtet keine einzige, wenn ich versuche dies per Funk zu 
empfangen (Sender zählt eine Variable hoch und verschickt diese Zahl 
immer wieder)

Jetzt könnte es sein (scheint wohl häufiger zu sein), dass die nRF24L01 
defekt sind (einmal stand mein programmer glaube ich auch 
fälschlicherweise auf 5V statt 3V...)
Kann ich das irgendwie testen? Oder ist oben der Code schon falsch?

von Mike J. (emjey)


Lesenswert?

Die Eingänge sind 5V Tolerant, das nRF-Modul verträgt aber keine 5V.

Du hast doch bestimmt mehr als nur 2 Stück gekauft da die Dinger eh nur 
1,30 Euro pro Stück kosten, dann nimm einfach ein anderes.

Bei mir war mal eins "defekt", die Funktionalität konnte ich aber 
herstellen indem ich das GND-Pad des Chip von der Rückseite aus durch 
die Durchkontaktierung mit Flussmittel und Lötzinn richtig angelötet 
habe.
Entweder die hatten dort keine Lötpaste aufgetragen oder sie haben zu 
kalt/schnell gelötet.

http://www.mikrocontroller.net/articles/NRF24L01_Tutorial

von Michael N. (garril) (Gast)


Lesenswert?

Nein,hab nur 2...
Muss ich wohl nochmal bestellen und das dauert wieder...

kann man die irgendwie testen ohne ein sicher funktionierendes zu haben?

von Mike J. (emjey)


Lesenswert?

Nutz doch dein Empfängermodul mal als Sendemodul und lass dir das 
Statusbyte ausgeben, vergleiche dieses Byte dann mal mit dem vom 1. 
Sender.
Da gibt es doch auch noch andere Register in die du etwas schreiben und 
dann wieder auslesen kannst.

von Michael N. (garril)


Lesenswert?

Ist es gesagt, dass ich durch das Statusbyte herausfinde ob das Ding 
kaputt ist oder noch funktioniert? Neue sind außerdem schon bestellt...
Wäre aber natürlich schön zu wissen ob die hier noch funktionieren oder 
ob ich nur ein Fehler drin hab ;)

von Michael N. (garril)


Lesenswert?

Habe jetzt einen Test gemacht und von jedem Modul den Kanal ausgelesen 
(hierfür war schon eine Funktion vorhanden). Hat funktioniert, also 
dürften die Teile noch heile sein (zumindest teile davon...)

von Chry (Gast)


Lesenswert?

Hey, kannst du mal posten wie du den Test gemacht hast? Link oder Code?
Habe das gleiche Problem.

Hab ich das richtig verstanden, dass die Teile 5V aushalten und damit 
einfach nur nicht funktionieren?

Gruß,
Chry

von Hans J. (step_up_mosfet)


Lesenswert?

Chry schrieb:
> Hab ich das richtig verstanden, dass die Teile 5V aushalten und damit
> einfach nur nicht funktionieren?

Im Datenblatt steht:

VDD Supply voltage = 2.7V bis 3.3V (wenn die High-Signale der Eingänge 
über 3.6V liegen)
VDD Supply voltage = 1.9V bis 3.6V (<3.6V)

Also wenn die Eingänge an 5V liegen darf die Versorgungsspannung des 
nRF24L01+ Chips maximal 3.3V betragen, weniger ist besser.

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.