Forum: Mikrocontroller und Digitale Elektronik Microchip RN4020 Bluetooth Low Energy


von Leuchtfeuer (Gast)


Lesenswert?

Hallo Zusammen,

kennt einer das obige Modul von Microchip und kann mir etwas dazu sagen?
Gibt es wieder DemoCodes, Stack etc. den Microchip als Freeware zur 
Verfügung stellt.

Mein Anwendungsfall ist, dass ich mich einfach mit einem Smartphone 
connecten will und fortwährend eine UUID etc. aussenden möchte.

Laut Datenblatt ist die Verbindung zu einem Smart Device kein Problem. 
Ich überlege einmal mir das Starterkit zuzulegen und erst einmal ein 
wenig rumzuexperimentieren.

Falls jemand schon mit dem Modul gearbeitet hat und vielleicht sogar in 
eigenen Projekten benutzt hat wäre ich über jeden Input dankbar!

von Volker S. (vloki)


Lesenswert?

Meinst du dieses hier:
-> http://www.microchip.com/wwwproducts/Devices.aspx?product=RN4020

Ich habe zwei davon und auch schon mal kurz damit gespielt.
(Noch keine eigene Anwendung dafür)
Die Demos, welche auch in dem Video zu sehen sind, haben auf einem Nexus 
5 und einem Nexus 7 funktioniert. Nur nach einem Update auf Android 5 
war es dann leider vorbei ...

von Leuchtfeuer (Gast)


Lesenswert?

Hallo Volker,

ja genau dieses meine ich. Demo Video sieht eigentlich ganz interessant 
aus. Bin auch mal eben den USER Guide durchgegangen. Man kann scheinbar 
sehr viel damit machen.

RN4020 <-> Smartphone
RN4020 <-> RN4020
usw.

Falls Jemand schon Erfahrungen mit dem Modul gemacht hat wäre ich über 
jeden Hinweis dankbar.

Wo hast Du Dir das Starterkit bestellt?
Direkt bei Microchip?

von Volker S. (vloki)


Lesenswert?

Wenn ich mich recht erinnere, dann habe ich es bei einer Farnell 
Bestellung dazu genommen um über die 55€ zu kommen ;-)

von Tollmer (Gast)


Lesenswert?

Hallo Leute,
Ich befasse mich zurzeit in einem Studienprojekt mit der Thematik.
Woraus ich aus der Doku nicht ganz schlau werde. Wie kann ich das Teil 
selbst programmieren? Im MPLABX weiß ich nicht welche Schnittstelle 
gewählt werden muss wenn das Modul nur über USB verbunden ist. Ich habe 
zusätzlich noch ein PicKit2 und dachte ich könnte das RN4020 Pictail 
Modul vll. über die ICSP Schnittstelle programmieren jedoch hat diese 
nur 5 Pins und das PicKit2 6 Eingänge. In der Doku finde ich nirgends 
einen Hinweis wie ich denn nun das RN4020 Pictail modul mit dem Pickit 
verbinden muss und will auch nichts kaputt machen weshalb ich nun hier 
hänge.
Das PicTail sollte anfangs nur zum üben sein später soll der RN4020 
einzeln in Kombination mit einem PIC18F2020 per C programmiert werden.

Ziel ist es eine Analoge Spannung einzulesen und diese an eine 
Smartphoneapp zu schicken.

MfG
Tollmer

von Andreas H. (ahz)


Lesenswert?

Tollmer schrieb:
> Ich habe
> zusätzlich noch ein PicKit2 und dachte ich könnte das RN4020 Pictail
> Modul vll. über die ICSP Schnittstelle programmieren jedoch hat diese
> nur 5 Pins und das PicKit2 6 Eingänge.

Dann lass den sechsten Pin halt weg :/ Sechs beim programmieren ist eh 
meist kontraproduktiv^^

Aber im Ernst:
Read the fu***ing (PicKit & Pictail) manuals.
Pin 6 am PicKit ist LVP (low-voltage-programming). Der wird (lt. 
Userguide) beim RN4020 Pictail nicht benutzt. Also kannst Du ihn einfach 
ignorierieren und nur die Pins 1-5 verbinden.

Du bekommst aber vermutlich ein anderes Problem:
MPLabX unterstützt (iirc) nur noch PicKit3. Da musst Du mal schauen ob 
es klappt. Ansonsten halt das "klassische" MPLab nehmen oder die 
Programmer SW vom Pickit2.

HtH
Andreas

von Tollmer (Gast)


Lesenswert?

Erstmal danke für deine Antwort. Die Manuals hab ich natürlich gelesen. 
Nur sind diese relativ verwirrend. Was ich mir gewünscht hätte wär nen 
Tutorial gewesen wie man die Funktionalität RN4020 -> Smartphone wie es 
in dem Werbevideo gezeigt wird herstellt. Laut Manual wird das Teil über 
USB per UART konfiguriert mit vordefinierten Befehlen. Es ist nirgends 
ersichtlich wie man es mit dem PicKit programmieren kann. Ich bin 
Anwendungsentwickler und wollte halt durch das Projekt mal etwas über 
den Tellerrand hinausschauen d.h. für mich ist ne vernünftige Doku die 
einem dabei hilft die Grundfunktionalität herzustellen essenziell. Man 
muss sich nur mal die Kommentare unter diversen Youtube Videos zum 
RN4020 durchlesen . Ich bin nicht der Einzige dem die "Doku" zu 
unzureichend erscheint.

Ich habe den Pictail nun mal mit dem PicKit2 verbunden und wie du schon 
vermutet hast unterstützt MPLABX das PicKit2 nicht.
Ist mit der alten MPLAB Version MPLAB Harmony gemeint?

MfG

von Andreas H. (ahz)


Lesenswert?

Tollmer schrieb:
> Die Manuals hab ich natürlich gelesen.
ALLES was ich jetzt schreibe steht in den Manuals^^

> Nur sind diese relativ verwirrend. Was ich mir gewünscht hätte wär nen
> Tutorial gewesen wie man die Funktionalität RN4020 -> Smartphone wie es
> in dem Werbevideo gezeigt wird herstellt.

Oh, so eine Wunschliste einzulösender Werbeversprechen habe ich auch 
:-))
In diesem Fall klappt das aber sogar, wenn man erst mal verstanden hat, 
WAS da WAS macht.

> Laut Manual wird das Teil über
> USB per UART konfiguriert mit vordefinierten Befehlen. Es ist nirgends
> ersichtlich wie man es mit dem PicKit programmieren kann.

Du schmeisst da zwei Sachen durcheinander.
Das RN4020 ist ein BT interface, das über ein UART interface (NICHT USB 
!!!) programmiert wird.
Vereinfacht kannst Du Dir das so vorstellen, als ob Du das RN4020 an die 
serielle Schnittstelle Deines PCs anschliesst und dann mit einem 
Terminalprogramm mit dem Teil sprichst.
Das RN4020 selbst wird AUSSCHLIESSLICH über Kommandos gesteuert, die Du 
über das UART interface eingibst.

!!! NICHT ausprobieren. Die Pegel passen nicht zusammen. !!!

Um das "Pegelproblem" zu umgehen gibt es das RN4020 PicTail. Hier ist, 
neben dem RN4020, ein PIC18 drauf, den Du als USB<->UART interface 
benutzen kannst. Nach der Installation (und entsprechender Konfiguration 
des PicTail Boards) hast Du einen neuen COM Port im PC (über USB CDC), 
den Du z.B. mit einem Terminalprogramm ansprechen kannst um mit dem 
RN4020 zu reden.

Natürlich kannst Du auch ein PC-Programm in einer beliebigen 
Programmiersprache schreiben und den neuen COM-Port ansprechen.

Den PIC18 kannst Du auch selber programmieren. Erst dazu brauchst Du ein 
PicKit2/3 und die ICSP Schnittstelle. Den RN4020 sprichst Du dann über 
die UART Schnittstelle des PIC18 direkt an. Vorteil: Da muss kein PC 
mehr dranhängen, das PicTail läuft autonom.

> Ich bin Anwendungsentwickler und wollte halt durch das Projekt mal etwas über
> den Tellerrand hinausschauen d.h. für mich ist ne vernünftige Doku die
> einem dabei hilft die Grundfunktionalität herzustellen essenziell.
Naja, wie BT funktioniert (z.B. Bonding etc.) solltest Du schon wissen.

Ansonsten ist es doch überschaubar: PicTail konfigurieren (auf 
USB<->UART mode), an den PC anschliessen (via USB), RN4020 mit den 
Commands aus dem "RN4020 Bluetooth Low Energy Module User’s Guide" 
ansteuern.
(Also genau so, wie es in den Manuals steht, die Du gelesen hast ;-)

> Man muss sich nur mal die Kommentare unter diversen Youtube Videos zum
> RN4020 durchlesen . Ich bin nicht der Einzige dem die "Doku" zu
> unzureichend erscheint.
>
Du wirst IMMER Leute finden, denen die Doku nicht reicht. Natürlich will 
jeder ein Beispiel haben, das genau SEIN Problem löst^^

> Ich habe den Pictail nun mal mit dem PicKit2 verbunden und wie du schon
> vermutet hast unterstützt MPLABX das PicKit2 nicht.
> Ist mit der alten MPLAB Version MPLAB Harmony gemeint?

Nö. Harmony ist eher für PIC32 gedacht. Ich dachte eher an die älteren 
IDE Versionen, z.B. 
http://ww1.microchip.com/downloads/en/DeviceDoc/MPLAB_IDE_8_92.zip
Am einfachsten wäre es aber vermutlich wenn Du Dir ein Pickit3 besorgst.

Für die ersten Probeläufe ist es (für Dich) vermutlich am einfachsten, 
erst mal ein PC-Programm zu schreiben. Da hast Du nur den RN4020 selbst 
als Baustelle, denn das Interfacing zum RN4020 ist ja schon fertig.
Jetzt kannst Du Deine Analogwerte vom RN4020 lesen und über BT 
verschicken. Die Funktionalitäten kannst Du einzeln am PC schreiben und 
testen. Business as usual...
Wenn das funktioniert, dann kannst Du das Programm auf den PIC18 packen 
(dafür brauchst Du dann ein PicKitx) und das Pictail ohne PC betreiben.
Hier hast Du als Baustelle den PIC18. Der will ja auch erst mal 
konfiguriert werden, z.B. Oscillator, UART. USB kannst Du auch 
probieren, ist aber für autonomen Betrieb eher nicht notwendig.
Die Kommunikation mit dem RN4020 hast Du dann schon fertig, denn es sind 
die gleichen Cmds wie bei der PC Version. Die schickst Du jetzt nur 
nicht mehr an den COM-Port, sondern dan den PIC18-UART (und dafür gibt 
es Millionen Beispiele im INet).

Also alles sehr überschaubar ;-)

Grüße
Andreas

von Leuchtfeuer (Gast)


Lesenswert?

Es gibt die folgenden Möglichkeiten das RN4020 zu programmieren (wie 
schon erwähnt ausschließlich über die UART - Schnittstelle):

1. über ein Terminalprogramm und USB, der PIC18 übernimmt dann die 
Pegelwandlung, ist also ein einfacher USB <-> UART Wandler (wurde ja 
schon erwähnt)

2. über die herausgeführten UART_RX und UART_TX Pins und dann ebenfalls 
über ein Terminalprogramm. Hier brauchst du natürlich dazwischen noch 
einen Pegelwandler

3. Du programmierst den PIC18 über die ICSP Schnittstelle (ich nutze ein 
Pickit3 und MPLAB X IDE v2.25). Hier musst du zunächst natürlich die 
UART Schnittstelle initialisieren etc. bevor du die Befehle (die in der 
API enthalten sind) über die TX Leitung senden kannst.


Wie willst Du vorgehen? Hast du das Pictail Board? Willst Du Dir eine 
eigene Platine machen?

Ich würde zunächst empfehlen mit 1. ein Gefühl für das Modul zu 
bekommen.

Wenn Jemand Beispiel Code für 3. hat wäre ich ebenfalls sehr 
interessiert, da ich mich mit UART und PIC18 noch gar nicht beschäftigt 
habe.

Gruss
Leuchtfeuer

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.