Hallo zusammen, ich stehe gerade etwas auf dem Schlauch. Ich will 2 nRF24L01+ kommunizieren lassen, schaffe as aber nicht recht. Registe lesen und beschreiben klappt ohne Probleme aber die beiden wollen sich einfach nicht unterhalten. Eine Library will ich nicht nutzen. Einen 10 nF habe ich zur stabilisierung bei beiden verbaut. So sind aktuell meine Einstellungen der Register wenn ich sie auslese: RECEIVER SETTINGS: read from register (0x00): 00001011 POWER UP + RECEIVE MODE read from register (0x01): 00111111 NOTHING CHANGED: EN_AA Enchanged ShockBurst read from register (0x02): 00000011 NOTHING CHANGED: EN_RXADDR read from register (0x03): 00000011 NOTHING CHANGED: SETUP_AW read from register (0x04): 00000011 NOTHING CHANGED: SETUP_RETR read from register (0x05): 00000010 NOTHING CHANGED: RF_CH read from register (0x06): 00001111 NOTHING CHANGED: RF_SETUP read from register (0x07): 00011111 NOTHING CHANGED: STATUS read from register (0x08): 00000011 NOTHING CHANGED: OBSERVE_TX read from register (0x09): 00000000 NOTHING CHANGED: CD read from register (0x0a): 11100111 NOTHING CHANGED: RX_ADDR_P0 read from register (0x0b): 00010000 NOTHING CHANGED: RX_ADDR_P1 read from register (0x0c): 11000011 NOTHING CHANGED: RX_ADDR_P2 read from register (0x0d): 11000100 NOTHING CHANGED: RX_ADDR_P3 read from register (0x0e): 11000101 NOTHING CHANGED: RX_ADDR_P4 read from register (0x0f): 11000110 NOTHING CHANGED: RX_ADDR_P5 read from register (0x10): 11100111 NOTHING CHANGED: TX_ADDR read from register (0x11): 00000001 PAYLOAD PIPE 0 -> 1 BYTE read from register (0x12): 00000001 PAYLOAD PIPE 1 -> 1 BYTE read from register (0x13): 00000000 NOTHING CHANGED: PAYLOAD PIPE 2 read from register (0x14): 00000000 NOTHING CHANGED: PAYLOAD PIPE 3 read from register (0x15): 00000000 NOTHING CHANGED: PAYLOAD PIPE 4 read from register (0x16): 00000000 NOTHING CHANGED: PAYLOAD PIPE 5 read from register (0x17): 00100001 NOTHING CHANGED: FIFO STATUS TRANSMITTER SETTINGS: sind die selben nur dass ich ihn als transmitter setze read from register (0x00): 00001010 POWER UP + TRANSMIT MODE Einen Payload kann ich in den Transmitter schreiben und das Register 0x17 (FIFO_STATUS) bestätigt mir das auch mit der TX_EMPTY Flag = 0 bzw. TX_FULL Flag = 1. Nach einem 10 Mikrosekunden CE HIGH/LOW tut sich aber nichts obwohl der receiver auf CE HIGH steht. Wie könnte ich z.B. hier herausfinden ob er es zumindest versucht hat die Daten zu senden? Im Register (0x08)-> OBSERVE_TX tut sich dabei nichts. Sollte es? Bin für jeden Tipp dankbar. Vielleicht reicht auch ein Weg den ich gehen könnte wie man den Fehler findet. Grüße, Marco
Marco G. schrieb: > Wie könnte ich z.B. hier herausfinden ob er es zumindest versucht hat > die Daten zu senden? Ich war vor genau deinem Problem gestanden und habe es mit einem Rundumschlag erledigt. Vielleicht ist dir dies noch nicht bekannt und hilft dir: Beitrag "NRF24L01 - Testprogramm für Windows PC" (funktioniert leider nur unter 32-Bit Systemen, aber immerhin unter W7 verifiziert) und dazu auch Beitrag "NRF24L01+ test program for Arduino Uno" Beitrag "NRF24L01+ test program for Arduino Mega" Marco G. schrieb: > Bin für jeden Tipp dankbar. Vielleicht reicht auch ein Weg den ich gehen > könnte wie man den Fehler findet. Mit einer Seite anfangen (also nur Sender oder nur Empfänger) und sicherstellen dass diese funkioniert. Siehe oben.
Marco G. schrieb: > Einen 10 nF habe ich zur stabilisierung bei beiden verbaut. Du möchtest nicht deinen Aufbau zeigen? Der wäre aber wichtig hinsichtlich der Versorgung des NRF24. 10 nF sind ärmlich. Ich emfehle (siehe auch meine Testprogramme) 100nF plus 10uF Elko. Und das empfehle ich nicht aus einem reinen Bauchgefühl heraus. Auch der Aufbau ist nicht völlig unkritisch.
Hallo NRFTestGuy, beide an einem je einem Raspberry PI mit ausreichend dimensioniertem Netzteil. 3,3V Versorgungsspannung für den nRF24L01+ aus einem der 3,3V GPIOs des PIs. Ich denke damit sollte es keine Probleme geben. Die Entfernung der beiden nRF24L01+ ist unter einem Meter. Daran sollte es also auch nicht liegen. Verstehe ich das richtig mit den Pipe Adressen damit sie kommunizieren können: 1. nRF24L01+ TX_ADDR = irendeinesinnvolleadresse_1 Pipe 0 RX_ADDR = irendeinesinnvolleadresse_2 2. nRF24L01+ TX_ADDR = irendeinesinnvolleadresse_2 Pipe 0 RX_ADDR = irendeinesinnvolleadresse_1 Also die TX_ADDR des ersten nRF24L01+ ist die RX_ADDR der Pipe 0 des zweiten nRF24L01+.und dann natürlich umgekeht. Grüße, Marco
Hallo zusammen, Problem gelöst, die Jungs kommunizieren miteinander. Wenn jemand wissen will wie es funktioniert hat einfach hier melden dann mache ich mir die Mühe eine Beschreibung zu erstellen. Grundvoraussetzungen sind: 2x Arduino Nano (zum Testen der Hardware) und dann 2x Raspberry Pi. Ich habe ein Software SPI programmiert, das ist dann recht einfach auf einen Mikrocontroller zu übertragen. Grüße, Marco
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.