Verzweifle an Nrf24L01 Modul

Gast #5102605
Lesenswert?

Hallo,
Ich habe ein großes Problem mit dem Funkmodul.
Aufgrund der Benutzung eines ESP8266 in verbindung eines Nrf24l01 moduls 
benötige ich eine Neue Library für meinen AVR (atmega328).
Für meinen AVR benutzte ich folgende Library:
https://github.com/kehribar/nrf24L01_plus
Mit der Funktioniert alles, ich kann von einem AVR zum anderen Senden.
Für den ESP8266 habe ich folgende Library verwendet:
https://github.com/nRF24/RF24
Dort kann ich auch problemlos vom einem ESp8266 zum anderen meine Daten 
verschiken. Wenn ich beide zusammen benutzen möchte, funktioniert dass 
nicht.
Ich habe schon mehr als 4 Tage in Fehlersuche gesteckt und komme 
überhaupt nicht weiter, habe auch schon verschiedene Librarys auf beiden 
Geräten versucht ohne erfolg.
Hoffe das mir bei diesem Problem jemand weiterhelfen kann
Gast #5102628
Lesenswert?

> um zwei Geräte am selben Mikrocontroller ansteuern zu können, brauchst
> Du getrennte Chip-Select-Leitungen. Ebenso müssen die beiden
> Software-Teile die beiden Pins getrennt ansprechen.
Nein, beide Mikrocontroller haben ein eigenes Funkmodul.
Einer Sendet die Daten aus (AVR)
und einer Empfängt diese daten über Funk (ESP8266)

mfg
Gast #5102650
Lesenswert?

> Ich wüsste jetzt nicht dass man einen ESP8266 mit einem
> Chip Select bedienen müsste.
Muss mann auch nicht,
Das erledigt alles die Arduino-Lib.
Nur wenn ich die Payloads mit der AVR-Lib empfangen oder senden möchte, 
kommt bei beiden nichts an.
Ich denke, das man nur die richtige Config der Module braucht, denn die 
Software läuft ziemlich gleich. Allerdings kenne ich micht nicht mit den 
Registern aus. Deswegen wäre es nett, wenn sich jemand mal das schauen 
würde.

mfg
Gast #5102729
Lesenswert?

Steh auf dem Schlauch schrieb:
> Für den ESP8266 habe ich folgende Library verwendet:
> https://github.com/nRF24/RF24
> Dort kann ich auch problemlos vom einem ESp8266 zum anderen meine Daten
> verschiken.

So so.

Du verwendest eine NRF24 Library um den ESP8266 anzusteuern.
Das grenzt an schwarze Magie.

Bist du auch sicher dass du weisst wovon du hier überhaupt
redest?

Dieses Posting lässt vermuten dass du generell auf dem
Schlauch stehst.
#5102834
Lesenswert?

Vermutlich konfigurieren die beiden Libraries den Chip unterschiedlich, 
so dass sie sich inkompatibel zueinander verhalten. Kannst Du nicht auf 
beiden Geräten die gleiche Library benutzen?

Beim kurzen Überfliegen des Codes ist mir z.B. folgendes aufgefallen:

https://github.com/nRF24/RF24/blob/master/RF24.cpp
1
// Reset NRF_CONFIG and enable 16-bit CRC.
2
write_register( NRF_CONFIG, 0x0C ) ;

https://github.com/kehribar/nrf24L01_plus/blob/master/nrf24.c
1
// CRC enable, 1 byte CRC length
2
nrf24_configRegister(CONFIG,nrf24_CONFIG)
https://github.com/kehribar/nrf24L01_plus/blob/master/nrf24.h
1
#define nrf24_CONFIG ((1<<EN_CRC)|(0<<CRCO))

Einer benutzt also 16 Bit CRC, der andere standardmäßig 8 Bit. Probier 
mal bei beiden 16 Bit zu benutzen:
1
#define nrf24_CONFIG ((1<<EN_CRC)|(1<<CRCO))

Vielleicht ist das schon das Problem. Kann aber gut sein, dass es noch 
mehr relevante Unterschiede gibt. Da hilft nur Code und Datenblatt des 
Chips zu studieren. Wenn Du durch Lesen bzw. Debuggen des Codes nichts 
findest, müsstest Du eine Ebene tiefer ansetzen und vergleichen, wie per 
SPI mit dem Chip kommuniziert wird.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren