Forum: Projekte & Code NRF24L01 - Testprogramm für Windows PC


von NRFTestGuy (Gast)



Lesenswert?

NRF24L01 - Testprogramm für Windows PC

(Hardware Ansteuerung des NRF24 über Druckerport)

Das wichtigste in Kürze vorweg: das ist eine 32-Bit Applikation.
Das Programm funktioniert nicht unter 64-Bit Windows. Wegen
Fehlen eines 64-Bit I/O Drivers ist die Anwendung beschränkt auf
32-Bit Betriebssysteme. Falls ich mal Zeit habe und einen I/O
Driver für 64 Bit finde und einbinden kann, dann .....

Motivation

Beim Programmieren des NRF24 mit Mikrocontrollern stellt sich die
Problematik dass man zwei Teilnehmer (Sender und Empfänger)
gleichzeitig zum Funktionieren bringen muss. Das erhöht die
Chance einer Fehlfunktion beträchtlich und kann die Fehlersuche
sehr erschweren. Das Testprogramm bietet einen "Testpartner" für
die jeweils andere Seite die man gerade versucht zum Laufen zu
bringen. Mit zwei Installationen kann man auch von PC zu PC
senden.

Vielleicht sieht mancher von euch auch irgendwelche Vorteile
dieses Programm zu benutzen.

Anbei ein Schaltplan der die erforderliche Anbindung des NRF24 an
den PC Druckerport dokumentiert. Der Aufbau muss noch mit einer
Betriebsspannung versorgt werden.

Das Programm ist unter LabWindows/CVI geschrieben. Für die
korrekte Funktion darf kein Druckertreiber (nicht zu verwechseln
mit dem Port Treiber) installiert sein. Druckertreiber werden im
Hintergrund geladen und scannen oft den Druckerport ohne dass man
davon etwas mitbekommt. Das Scannen würde möglicherweise/
warscheinlich den Datenaustausch des Testprogramms mit dem NRF24
stören.

Momentan ungetestet unter Windows 7

Bedienungsanleitung gibt es keine. Entweder man versteht es oder
eben nicht. Wer Fehler findet darf sie melden aber auch behalten.

Zum Installieren das Archiv in ein temporäres Verzeichnis
entpacken und das setup.exe starten. Auch wenn man es nicht
glaubt - der Rechner muss danach neu gestartet werden damit das
Programm funktionsfähig ist. Bei Nachinstallationen kann/muss das
nicht mehr der Fall sein.

Das hier dargebotene Material und die Software unterliegt meinem
Copyright. Für private nichtgewerbliche Zwecke darf es frei
verwendet werden.

Gruss

NRFTestGuy

von NRFTestGuy (Gast)


Angehängte Dateien:

Lesenswert?

So sieht das Programm dann im Betrieb aus.

Nachtrag: da es auf dem Markt eigentlich nur den NRF24L01+ gibt
bezieht sich das Testprogramm auch nur darauf. Ältere Versionen
die teilkompatibel sind habe ich nicht getestet.

von Michael U. (amiga)


Lesenswert?

Hallo,

nette Idee, beachtlicher Aufwand, den Du da betrieben hast.
Hoffentlich haben noch genug Leuten einen passenden Bastelrechner im 
Einsatz, die 32Bit-OS-Zeiten und auch der Parallelport sind ja doch 
schon etwas her.
Eine USB-SPI-Bridge (CH341 oder ein passender FTDI) würde vermutlich 
mehr Leute ansprechen, selbst ein Arduino Nano als USB-SPI-Bridge wäre 
billig und machbar.

Ich muß auch zugeben, daß ich eher ein Datenblatt lese und zu verstehen 
versuche als in einer solchen GUI mit diversen Button Registerinhalte zu 
setzen. Raussuchen muß ich die Bedeutung ohnehin und letztlich 
entscheidet mein Ziel, wie ich einen solchen oder ähnlichen Chip 
initialisiere.

Gruß aus Berlin
Michael

: Bearbeitet durch User
von NRFTestGuy (Gast)


Lesenswert?

Michael U. schrieb:
> Hoffentlich haben noch genug Leuten einen passenden Bastelrechner im
> Einsatz, die 32Bit-OS-Zeiten und auch der Parallelport sind ja doch
> schon etwas her.

Hmmmm ... mein Ziel war es nicht ein Testprogramm den Leuten hier
aufzudrängen sondern ich brauchte ein Tool um nicht halb blind auf
einem AVR die Zusammenhänge verstehen zu lernen. Das Datenblatt
alleine gibt das nämlich nicht her. Nun gut, ich hätte auf einem
einfachen formlosen Hacker-Tool (womöglich noch mit Kommandozeile)
bewenden lassen können ....

Michael U. schrieb:
> Ich muß auch zugeben, daß ich eher ein Datenblatt lese und zu verstehen
> versuche als in einer solchen GUI mit diversen Button Registerinhalte zu
> setzen.

Es hat schon seinen Sinn ...
Deine Aussagen lassen mich daran zweifeln ob du dich mit dem NRF24
auseinandergesetzt hast (das Anwenden einer Library oder vor-
gefertigtem Code welcher "zufällig" funktionsfähig ist bezeichne
ich nicht als auseinandersetzen). Der ist nämlich nicht so "straight
forward" wie man das von einem anderen einfachen Peripheriebaustein
erwarten könnte. Deswegen mein Tool, und das hat sich für mich gelohnt.

von Michael U. (amiga)


Lesenswert?

Hallo,

ich habe auch nicht angezweifelt, daß es Dir geholfen hat, es waren nur 
ein paar Anmerkungen dazu.

PS: RFM12 und die sontigen HopeRF-Module waren vor ein paar Jahren auch 
schon recht komplex, besonders, wenn noch keine wirklich brauchbaren 
Datenblätter vorlagen.
6800, 6502, Z80 und deren Preipherie sind auch recht komplex, 
Entwicklungsumgebungen und Bibliotheken und Simulatoren waren speziell 
im Privatbereich unbekannt, Windows mußte auch erst erfunden werden.
Um wieder etwas aktueller zu werden (obiges war mein Zeitvertreib in den 
80ern), ziemlich geschafft hat es mich den ENC28J60 am AVR in Gang zu 
bekommen, da haben ich letztlich aber dann aber die Bibliotheken anderer 
zurückgegrifen. Den ganzen TCP/IP-Stack zu schreiben war mir dann doch 
zuviel Aufwand. Ich wollte den Kram hauptsächlich benutzen.

Das nur zum Auseiandersetzen, meine NRF24 liegen letztlich ziemlich 
ungenutzt in der Schachtel, es fehlte die wirkliche Anwendung. Die alten 
Sensoren laufen seit Jahren mit den RFM-Modulen und die ESP8266 waren 
dann die interessanteren Spielzeuge.

Gruß aus Berlin
Michael

von NRFTestGuy (Gast)


Lesenswert?

Gibt es hier jemand der das Programm benutzt und/oder
dies jetzt (auch) unter 64-Bit Windows gern tun würde?

von Mini C. (minicomp)


Lesenswert?


von NRFTestGuy (Gast)


Lesenswert?

Mini C. schrieb:
> Würde es auch mit einem solchen USB-Adapter zusammenarbeiten?

Nein, das ist eine ganz andere Linie.
Ich wiederhole den Titel dieses Threads nochmal (bitte
lesen, verstehen und verinnerlichen):

----------------------------------------
 NRF24L01 - Testprogramm für Windows PC
----------------------------------------

Das ist ein Test-Tool, kein Programm zum Ansteuern auf
irgendeiner Art von Applikations-Ebene.

Ich hatte mal geplant einen Arduino als USB-zu-NRF-Umsetzer
zu benutzen bin aber nicht sicher ob das noch kommt. Das wäre
dann auch eine Umsetzung auf NRF24 Register-Level.

Der von dir genannte Adapter wird dir eine Datenübertragung
ermöglichen, aber nicht den Zugriff auf den NRF24 auf
Register-Level.

von Mini C. (minicomp)


Lesenswert?

NRFTestGuy schrieb:
> Ich wiederhole den Titel dieses Threads nochmal (bitte
> lesen, verstehen und verinnerlichen):
>
> ----------------------------------------
>  NRF24L01 - Testprogramm für Windows PC
> ----------------------------------------
Schon klar.
Sollte ja auf Win laufen zum Testen und nicht um eine Kommunikation 
aufzubauen ;)
Nur eben das der Adapter nicht geeignet ist.

Schade.
Dennoch Danke

von NRFTestGuy (Gast)


Lesenswert?

Mini C. schrieb:
> Schon klar.

Vielleicht wird es etwas klarer wenn man einen Blick auf
die Arduino-Leute wirft die sich mit grundlegenden Problemen
der Inbetriebnahme herumschlagen. Es gibt hier und in anderen
Foren viele Beispiele wie die Leute nicht mit dem NRF24
zurechtkommen. Sie schustern sich irgendwas auf dem Steckbrett
zusammen und wundern sich warum es nicht funktioniert.

Siehe auch:

Beitrag "NRF24L01+ test program for Arduino Uno"
Beitrag "NRF24L01+ test program for Arduino Mega"

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Letztlich geht es darum, SPI an den PC zu bekommen.

Das kann man mit Bitbanging am Frickelport machen, wie das Programm von 
"NRFTestGuy", aber dann gibt es halt die leidigen Probleme mit dem 
Zugriff auf den Frickelport.

Eine Alternative wäre die Verwendung eines FT2232, der enthält eine 
"MPSSE" genannte Vorrichtung, mit der auch synchrone serielle Protokolle 
wie I2C und eben SPI umgesetzt werden können. Das Ding ist seit etlichen 
Jahren weit verbreitet (so findet es in diversen JTAG-Adaptern unter dem 
Namen "OpenOCD" gebraucht), und FTDI stellt auch entsprechende Libraries 
zur Verfügung, um aus Usermode-Programmen heraus diese Funktionalität 
nutzen zu können.

Der Vorzug wäre der, daß das auch mit PCs ohne Frickelport nutzbar ist, 
und daß es sowohl mit 32- als auch 64-Bit-Systemen funktioniert (sofern 
das Testprogramm selbst ein 32-Bit-Programm bleibt).

von NRFTestGuy (Gast)


Lesenswert?

Rufus Τ. F. schrieb:
> Letztlich geht es darum, SPI an den PC zu bekommen.

Wobei es einen grossen Unterschied macht zwischen

"SPI an den PC zu bekommen"

und

"einfach mit SPI das machen was man braucht"

Ich werde das in den kommenden Tagen begründen. Leider
genügt es nicht für eine gesuchte Lösung einfach mal
einen Chip in den Diskussionsraum zu werfen.

Rufus Τ. F. schrieb:
> Das Ding ist seit etlichen Jahren weit verbreitet

Bei mir trägst du da Eulen nach Athen. Ich arbeite
beruflich damit.

Im folgenden Post zwei Beispiele von Testinterfaces die
auf meinem Mist gewachsen sind und für die ich Software
geschrieben habe. Die Testinterfaces dienen in der Firma
dazu bei der Entwicklung Baugruppen auszutesten und zu
vermessen.

von NRFTestGuy (Gast)


Angehängte Dateien:

Lesenswert?

Hier zwei Testinterfaces mit FT2232 mit SPI und zusätzlichen
Steuerbits zur Ansteuerung/Test von Baugruppen (einzelne
Funktionsmodule innerhalb eines Messgerätes).

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.