Verwendung von nRF24LE1 mit Arduino und nRF24L01+

Ich weiß, dass nRF24LE1 einen 8051-Kern hat und ein kompatibles HF-Protokoll mit nRF24L01 + ist. Aber sind die nordischen Bibliotheken mit Arduino-Bibliotheken kompatibel? Hat jemand diese beiden Geräte verwendet, helfen Sie mir bitte bei der Suche nach kompatiblen Bibliotheken. Ich möchte einen Sensor an nRF24LE1 anschließen und die Messwerte an Arduino senden.

Haben Sie Links zum Quellcode der Bibliotheken?

Antworten (2)

Alle nRF24*-ICs können mit allen anderen nRF24*-Geräten kommunizieren. Von der nRF24LE1-Webseite :
Fully on-air compatible with all Nordic nRF24L-series, nRF24E-series and nRF240-series solutions

Ich denke, Sie müssen aufhören, in Begriffen von "Bibliotheken" zu denken, und anfangen, in Begriffen zu denken, "wie kommuniziert das Gerät eigentlich".

Ich habe kürzlich einige Zeit damit verbracht, an einer nRF-Bibliothek für den Atmel xmega zu arbeiten (ich habe den größten Teil des Codes aus einem ähnlichen Projekt für den MSP430 gestohlen), und mit der nRF-Geräteserie ist nicht allzu viel los. Das Datenblatt ist ein bisschen knapp, und es gibt ein seltsames Verhalten, das erst Sinn machen kann, nachdem Sie das Datenblatt ein paar Mal gelesen haben, aber wenn Sie hoffen, ein Gerät ernsthaft zu verwenden, sollten Sie ziemlich gründliche Kenntnisse darüber haben Datenblatt sowieso.

Ich würde vorschlagen, dass Sie anfangen, sich anzusehen, wie Sie tatsächlich mit dem nRF-Gerät kommunizieren. Interessanterweise scheint die Schnittstelle zum HF-Kommunikations-Transceiver im nRF24LE1 tatsächlich nahezu identisch mit dem diskreten nRF24L01+ zu sein, sogar bis zu dem Punkt, an dem eine On-Chip-SPI-Schnittstelle für die Kommunikation zwischen dem 8051-Kern und der HF-Schnittstelle verwendet wird (ich frage mich, ob es sind zwei separate Chips in einem Paket?). Die Hauptunterschiede scheinen zu sein, dass der nRF24LE1+ diskrete Interrupt-Vektoren für die verschiedenen Interrupt-Optionen der HF-Schnittstelle hat, während der nRF24L01+ einen einzigen IRQ-Pin hat.

Unter der Annahme, dass Sie anständig modularen Code schreiben, können Sie wahrscheinlich erhebliche Teile des Codes zwischen den beiden Geräten teilen.

Ich portiere gerade eine PIC-Bibliothek für NRF nach Electric Imp (Squirrel-Sprache) und stimme zu, dass Sie einige Zeit mit dem Datenblatt verbringen und die ursprüngliche Bibliothek langsam und methodisch durchgehen müssen - versuchen Sie nicht, alles zu portieren einmal - Konzentrieren Sie sich darauf, zuerst das Statusregister zu lesen, dann ein Register zu schreiben und zu lesen und dann von dort aus aufzubauen. Ein Logikanalysator wird viel helfen. Tipps: Wenn Sie den Status als 0x1F lesen und dann die Leseflanke der SPI-Uhr ändern, lesen Sie auf der falschen. Wenn es 0x1E ist, trennen Sie die Stromversorgung, um das Interrupt-Bit im Status zu löschen

Nein, die Standard-Arduino-Bibliotheken sind weitgehend inkompatibel mit etwas anderem als AVR. Generell werden nur eine Handvoll ATmega-Varianten unterstützt (zu finden im Tools=>Board-Menü). Die Bibliotheken sind eng mit der verwendeten Hardware verbunden und daher nicht mit anderen Geräten kompatibel.

Tatsächlich ist dies der Grund für die Existenz dieser Bibliotheken, denn wenn Sie einen Arduino-Sketch auf nicht unterstützte Hardware portieren möchten, müssen Sie nur die Bibliotheken auf die neue Architektur portieren.

Ein weiteres Problem, das Sie lösen müssten, ist die Programmierhard- und -software und die Schnittstelle zur Arduino IDE. Unterschiedliche Chips können unterschiedliche Algorithmen zum Programmieren verwenden und haben natürlich eine unterschiedliche Pinbelegung. Und natürlich benötigt dieser Programmierer einen unterstützten Treiber.

Ich habe PICduino und natürlich den Arduino Due gesehen, der eine ARM-Architektur hat. Es ist also machbar, aber nichts für schwache Nerven.

Entschuldigung, ich habe nicht nach der Portierung der AVR-Bibliothek auf 8051 gefragt. Ich habe gefragt, ob die Arduino-Bibliothek auf Arduino und die nordische Bibliothek auf 8051 (nRF24LE1 +) luftkompatibel sind. Ich möchte zwischen und Arduino + "nrf24L01+" und nrf24Le1 kommunizieren
Sie sollten diesen Kommentar in Ihre Frage kopieren.
@PriyankBolia Bitte geben Sie das in Ihre Frage ein.