Hi all,
erst jetzt hab ich die Transceiver nRF24L01+ bei ebay für ein paar Cent
entdeckt, leider bekomme ich die Dinger nicht zum miteinander
kommunizieren :-(
Ich habe
- einen Arduino UNO und
- Raspi's vorzugsweise den gerade freien Pi2.
- 2x nRF24L01+ (Elko angelötet)
Die Lib für den UNO hat von Anfang keine Probleme beim kompilieren
gemeldet.
Ich nutze derzeit: http://tmrh20.github.io/RF24/
Die Lib's für den Raspi Jessy war schon aufwendiger zum laufen zu
bringen.
Der SPI in der /boot/config.txt aktivieren.
Pinbelegung CE-> GPIO25, CSN->CE0
1 | RF24 radio(RPI_V2_GPIO_P1_22, RPI_V2_GPIO_P1_24, BCM2835_SPI_SPEED_8MHZ);
|
Die einzige Lib die bei mir keine Probleme hat:
https://github.com/stanleyseow/RF24
(wobei die readme's im Verzeichnis irgendwie bei allen Libs gleich ist.)
WICHTIG für Pi2 SPI: vorm kompilieren: in den MAKEFILE's
-march=armv6zk in -march=armv7-a ändern und
in der bcm2835.h
1 | #define BCM2835_PERI_BASE 0x20000000
|
in 0x3F000000 ändern
Wenn ich jetzt die gettingstarted.cpp oder transfer.cpp starte.
Vorher hab ich noch:
- die nodes bei beiden festgelegt:
1 | uint64_t addresses[] = { 0x65646f4e31,0x65646f4e32};
|
- und
1 | printf_begin(); // bei arduino
|
2 | radio.printDetails();
|
bekomme ich:
**** ARDUINO
1 | STATUS = 0x0e RX_DR=0 TX_DS=0 MAX_RT=0 RX_P_NO=7 TX_FULL=0
|
2 | RX_ADDR_P0-1 = 0x65646f4e31 0x65646f4e32
|
3 | RX_ADDR_P2-5 = 0xc3 0xc4 0xc5 0xc6
|
4 | TX_ADDR = 0x65646f4e31
|
5 | RX_PW_P0-6 = 0x20 0x20 0x00 0x00 0x00 0x00
|
6 | EN_AA = 0x3f
|
7 | EN_RXADDR = 0x02
|
8 | RF_CH = 0x4c
|
9 | RF_SETUP = 0x07
|
10 | CONFIG = 0x0e
|
11 | DYNPD/FEATURE = 0x00 0x00
|
12 | Data Rate = 1MBPS
|
13 | Model = nRF24L01+
|
14 | CRC Length = 16 bits
|
15 | PA Power = PA_MAX
|
** Pi2
1 | ================ SPI Configuration ================
|
2 | CSN Pin = CE0 (PI Hardware Driven)
|
3 | CE Pin = Custom GPIO25
|
4 | Clock Speed = 8 Mhz
|
5 | ================ NRF Configuration ================
|
6 | STATUS = 0x0e RX_DR=0 TX_DS=0 MAX_RT=0 RX_P_NO=7 TX_FULL=0
|
7 | RX_ADDR_P0-1 = 0x65646f4e32 0x65646f4e31
|
8 | RX_ADDR_P2-5 = 0xc3 0xc4 0xc5 0xc6
|
9 | TX_ADDR = 0x65646f4e32
|
10 | RX_PW_P0-6 = 0x20 0x20 0x00 0x00 0x00 0x00
|
11 | EN_AA = 0x3f
|
12 | EN_RXADDR = 0x03
|
13 | RF_CH = 0x01
|
14 | RF_SETUP = 0x07
|
15 | CONFIG = 0x0e
|
16 | DYNPD/FEATURE = 0x00 0x00
|
17 | Data Rate = 1MBPS
|
18 | Model = nRF24L01+
|
19 | CRC Length = 16 bits
|
20 | PA Power = PA_MAX
|
Sowohl Senden als auch Empfangen geht ins Leere.
Rate: 0.00 KB/s
Payload Count: 0
etc
Now sending
failed
Failed, response timed out.
usw..
Kann mir jemand weiterhelfen?
Was muss beim Sender / Empfänger identisch sein?
Und mit welchem Befehl kann ich was anpassen?
Grüße aus LA
ralphi