Forum: Mikrocontroller und Digitale Elektronik Universelles USB RFM12 Modul


von Stefan S. (energizer)


Angehängte Dateien:

Lesenswert?

Hallo,

ich habe für diverse Projekte ein universelles Modul für das RFM12 
Funkmodul mit USB Anbindung entworfen, siehe Artikel:

http://www.mikrocontroller.net/articles/RF_SOAP

Ich werde mir die Tage davon ein paar Leiterplatten machen lassen, falls 
jemand auch welche brauchen kann möge er/sie sich hier kurz melden dann 
kann ich ein paar mehr bestellen.
Vielleicht hat auch noch jemand den ein oder anderen 
Verbesserungsvorschlag, der noch mit eingearbeitet werden kann bevor ich 
die Leiterplatten bestelle.

Gruß
Stefan

von Daniel K. (epyx)


Lesenswert?

Für welche RFM12-Module wäre es denn geeignet ? die 3,3 V oder die 5V 
Variante.

Sorry, hab den Schaltplan nur kurz überflogen.

Gruß,
Daniel

von Stefan (Gast)


Lesenswert?

Ich habe das Modul für die 5 V Version konstruiert. Das RFM12B verträgt 
laut Datenblatt 2,2 - 3,6 V, das normale RFM12 2,2 - 5,4 V. Ich habe 
aber hier im Forum gelesen dass das RFM12B auch etwas höhere Spannungen 
ab kann, aus dem LiPo Akku kommen bis zu 4,2 V, nominal 3,7V.
Das bringt mich aber auf die Idee die Versorgungsspannung des Moduls 
(µC, RFM12, etc.) mit einem Lötjumper wahlweise auf 5 V (von USB), oder 
3,3 V (Ausgang vom FT232) setzen zu können, falls man die Akku mimik 
nicht braucht und nur direkt über USB arbeiten will.

Gruß
Stefan

von Frank B. (frankman)


Lesenswert?

Halli Hallo,
ich wäre an zwei Leiterplatten interessiert.
Ich hätte allerdings noch einen brandheissen Tip:

Kontaktiere den Lipo-Akku doch mit zwei Ziff-Steckern, 5-polig, 1mm 
Raster und knicke dann die Kontaktfähnchen vom Lipo einmal um. Die 
passen dann exakt in die Ziff-Sockel.

Grund: Die Lipo´s haben normalerweise eine Kontaktfahne aus Aluminium, 
die sich nicht Löten läßt. Auch das erhältliche "Spezial-Lot" 
funktioniert nicht, stinkt, ist äzend und die Rückstände lassen sich 
fast nicht mehr entfernen. Außerdem wird ein Lipo extrem schnell 
beschädigt, wenn man Ihn Lötet, weil die Siegelnaht rund um die 
Kontaktfähnchen bei Hitze undicht wird. Der Lipo zieht dann Wasser und 
ist in zwei Wochen hin.
Gruß
Frank

von Stefan S. (energizer)


Lesenswert?

Hallo,

gute Idee, hast Du einen kongreten Vorschlag für passende Sockel 
(Lieferant / Bestellnummer)?

Gruß
Stefan

von Stefan S. (energizer)


Lesenswert?

So,

habe noch ein paar Änderungen mit einfließen lassen (siehe Artikel):

- TXD und RXD sind nun über Pufferwiderstände an eine Pinleiste geführt 
(z.B. wenn der FT232 nicht benötigt wird, jedoch an die serielle 
Schnittstelle etwas angebunden werden soll)

- FSK/DATA/NFFS und DCLK/CFIL/FFIT sind nun ebenfalls an den µC 
angebunden, für Mess- und Testzwecke oder für den Betrieb ohne FIFO

- Lötjumper um die Akkumimik (Akku, Lader und MOSFET der die 
Stromversorgung kappt) weglassen zu können, falls reiner USB Betrieb 
reicht. Dabei kann die Schaltung mit 5 V oder 3,3 V (Ausgang des FT232) 
versorgt werden, so sollte auch ein RFM12B Modul innerhalb der Spec 
laufen können

Gruß
Stefan

von Robert K. (mr_insanity)


Lesenswert?

Also ich wäre wohl auch an den Leiterplatten interessiert.
Gibt es denn schon einen Preis?

von Stefan S. (energizer)


Lesenswert?

Ich denke es wird auf 8 € pro Stück + Versand zzgl. UmSt hinauslaufen...

Stefan

von Daniel K. (epyx)


Lesenswert?

Sehr schön, dann wäre ich wohl auch an 2-3 Platinen interessiert. Je 
nachdem ob noch dir Dritte übrig wäre, aber 2 würde ich auch jeden Fall 
nehmen.

PS : Könnte man eventuell die LEDs noch gegen 0805 SMD tauschen ?

Grüße,
Daniel

von Stefan S. (energizer)


Lesenswert?

Die LEDs sollen aus dem Gehäuse schauen, deswegen die bedrahtete 
Version, aber man könnte die 0805 LEDs einfach auf die Pads der 
bedrahteten Genossen löten.

Stefan

von Daniel K. (epyx)


Lesenswert?

Nun im Prinzip ist mir das auch nicht ganz so wichtig. Benötige eben nur 
ein paar funktionstüchtige Platinen und da ist es eigentlich auch 
Wurscht, ob da 3mm oder SMD 0805 LEDs verbaut werden.

Soll eigentlich eh eine Zwischenstufe für ein Projekt sein um mit den 
RFM12-Steinen Erfahrungen zu sammeln.

Wenn du Genaueres bzgl. des Preises, sowie Bankverbindung etc. hast, 
dann gib bitte Bescheid, damit das Geld dann auch rechtzeitig da ist.

Grüße,
Daniel

von C. Rohde (Gast)


Lesenswert?

Hi S. Seegel,

bin gerade hier auf dein Projekt gestossen.

Ich hatte mir gerade das gleiche überlegt bzw. bin ich auf der Suche 
eine Kostengünstige Haussteuerung zu realisieren. Ich hatte die Idee das 
man ja im Baumarkt und im Online Versand für ca. 10 EUR 3-4 
Funksteckdosen bekommt. Ich würde diese gerne ansteuern und dachte an 
meine FritzBox oder alternativ an das Pollin AVR-NET-IO. Für die 
FritzBox bräuchte man ein USB-Funk Modul ;-) Dein Projekt scheint ja 
auch in diese Richtung zu gehen. Ich hätte Intresse an eine Platine bzw. 
auch an einem Fertikmodul, da ich leider kaum Zeit habe und meine 
letzten Lötversuche auch schon ein paar Jahre zurückliegen.

Hast du dir eigendlich die USB-Funk Sticks angeschaut die z.B. FS20 
steuern oder diese Heitzkörper-Regeler?

Mein Ziel ist ein Funk-Modul zu bauen was dann 433 Geräte steuert und 
ich habe gesehen davon gibt es ja fast alles (Heitzkörper-Regler, 
Rauchmelder, Wetterstationen, Steckdosen, usw.)

Wäre super wenn du dich mal bei mir meldest... Danke.

C. Rohde

von Stefan (Gast)


Lesenswert?

Hallo,

die FS20 kenne ich nicht, aber was ich beim Überfliegen der 
Googleergebnisse so gesehen habe scheint man das RFM12 damit verheiraten 
zu können. Die Funksteckdosengeschichte jedenfalls funktioniert hier 
schon mit dem RF Soap, sowohl sende- als auch empfangsseitig. Wie 
beschrieben ist ja der CFIL Ausgang des RFM12 mit dem µC verbunden so 
dass auch OOK Signale ausgewertet können.

von Stefan (Gast)


Lesenswert?

Hallo,

die Leiterplatten sind inwischen gekommen. Der Einfachheit halber habe 
ich selbige einfach mal in meinen Shop gesteckt. Aber ich glaube den 
Link darf ich hier nicht posten. Wer also welche braucht möge mir kurz 
eine Nachricht schreiben.

Schöne Grüße
Stefan

von Stefan (Gast)


Lesenswert?

Die Leiterplatten sind immer noch da, es hat sich noch niemand gemeldet. 
Wo sind die Leute hin die auch welche wollten?

Gruß
Stefan

von Christian (Gast)


Lesenswert?

Hast du zufällig 2 von den Platinen? Gruß Chris

von Ronny (Gast)


Lesenswert?

Also ich würde da vllt auch eine nehmen allerdings habe ich keine ahnung 
wie ich den USB Port am PC Programmiere wolle mir eigentlich RS232 
epfänger bauen.

von Stefan (Gast)


Lesenswert?

Hallo Ronny,

der USB Chip auf dem Modul biete auf dem PC eine virtuelle serielle 
Schnittstelle an, also COMx, wie eine normale RS232 Schnittstelle. Du 
kannst dann z.B. mit einem Terminalprogramm darauf zugreifen.

Gruß
Stefan

von (saschak) (Gast)


Lesenswert?

Also ich würde auch eine Platine nehmen.
Ich schick später noch ne PM.

Viele Grüße,

Sascha

von Ronny (Gast)


Lesenswert?

Hey das ist ja super!!!!!!!
Genau das was ich brauche
Was ist aber mit der Software für den Mikrocontroller gibts die dazu 
oder kann man sich die bei dir laden?
Die RFM12 habe ich zwar hier aber noch nie angeschlossen.
Also ich wäre mit einer Platine aufjedenfall dabei erspart mir viel 
arbeit.

von Stefan S. (energizer)


Lesenswert?

>Was ist aber mit der Software

"Die Software" gibt es ansich nicht, weil das Modul als universelle 
Grundschaltung zu verstehen ist, mit dem sehr unterschiedliche Projekte 
realisiert werden können.
Falls Du eine Leiterplatte brauchst, gib mir kurz per PN Bescheid.
Gruß
Stefan

von Stefan (Gast)


Lesenswert?

Hallo,

ich habe inzwischen ein C++ Software-Framework für das Modul 
fertiggestellt, mit dem alle Modulfunktionen demonstriert werden:

- Powermanagment
- Akkuüberwachnung
- Tasten abfragen
- Senden, Empfangen (mit Scrambling und CRC Sicherung)

https://github.com/Phunkafizer/RF-Soap

Siehe auch im Artikel:
http://www.mikrocontroller.net/articles/RF_SOAP

Gruß
Stefan

von Karsten (Gast)


Lesenswert?

Hallo,

Habe das Board bestückt. FTDI wird von Windows erkannt und der uC läuft 
auch.

Das Framework lässt sich bei mir nur kompilieren, wenn vorher über 
Extras->Erweiterungs-Manager->Inlinekatalog->C++ BETA installiert wird.

Wird das hex-File in den uC (hier: ATmega168) hineingeschoben, so 
passiert Nichts. Im Simulator lässt sich erkennen, dass beim aufruf von 
sleep_mode() in der Funktion Button::Shutdown die Codeausführung hängen 
bleibt. Wird diese Zeile auskommentiert, so funktioniert der Code.

Die Optimierung muss auf -O0 (keine Optimierung) eingestellt werden. Bei 
eingeschalteter Optimierung (-Os) wie im makefile des Beispiels meldet 
AVR-Studio 5 einen Fehler.

Insgesamt ist das Framework doch spärlich dokumentiert. Mir ist 
eigentlich nicht transparent, was dort passiert.
1) Welcher Knopf macht welche Aktion?
2) Ist der das Modul auf senden, empfangen oder beides programmiert?
3) Wenn der Code in zwei gleiche Module eingespielt wird, könne die 
Module kommunizieren oder muss dies per Compilerschalter eingestellt 
werden? In dem makefile des demos wird ein Symbol -DRECEIVER gesetzt. 
Bedeutet dies, dass die Software das Modul nur für den Empfang 
vorbereitet. Dieses Symbol wird in dem Source-Code nirgens ausgewertet.
4) Coll wäre auch ein Beispiel für eine PC-Unterstützung via FTDI. Gibt 
es dort eine Unterstützung durch das Framework?
5) Wie erfolgt die Initialisierung der Platine?

Das Lade-IC, der LiPO, der FET, der BC847 und die Dioden sind nicht 
bestückt, da bisher noch nicht vorhanden (aber bestellt). Hat das einen 
Einfluss auf die Funktion der Schaltung?

Insgesamt wäre es interessant, wenn es eine Testsoftware gibt, mit der 
sich zwei SOAP-Module unterhalten können. D.h. Platine bestücken, Stück 
Draht als Antenne und Software programmiert. Der Druck eines Knopfes am 
Sender könnte z.B. eine LED am Empfänger leuchten lassen (vielleicht 
auch eine Ausgabe am PC).

Lobenswert ist die Platine aber allemal. Sie ist klein, kompakt und 
reduziert sich auf das Wesentliche. Besser als die sperrigen 
Pollin-Boards im Europakarten-Format.
Zum Testen und für Anfänger (wie mich) ist Dein Board optimal. Einzig 
das Framework bietet Kritikpunkte.


Gruß

Karsten
Karsten

von Stefan (Gast)


Lesenswert?

Hi Karsten!

Vielen Dank erstmal für die sehr konstruktiven Anregungen!

>Bei eingeschalteter Optimierung (-Os) wie im makefile des Beispiels meldet
>AVR-Studio 5 einen Fehler.
Ok, seltsam, ich kompiliere mit -Os, allerdings nicht im AVR Studio, 
sollte aber doch das gleiche sein? Welcher Fehler ist das genau?

1) Der Hauptknopf dient zum Einschalten (länger drücken) und eine Befehl 
über Funk senden senden, die zwei seitlichen Knöpfe erhöhren und 
erniedrigen den Wert der gesendet wird (0-2)
2/3) Das Testframework ist beides, wenn Du bei einem Modul auf den 
mittleren Knopf drückst, sollte beim anderen kurz die entsprechende LED 
des eingestellten Wertes angezeigt werden. das -DReceiver ist ein relikt 
eines anderen Projektes, werde ich mal entfernen.
4) Das Framework benutzt die serielle Schnittstelle zur Zeit nicht, 
werde ich aber noch einbauen, so dass auch dieser Teil demonstriert 
wird.
5) Nun, auf jeden Fall muss PWEN aktiviert werden damit das Modul immer 
noch Strom bekommt wenn der Haupttaster losgelassen wird, dann je nach 
Anwendung SPI Schnittstelle und Buttons und LEDs IOs setzten, dann das 
RFM12 Modul initialisieren, ggf. die serielle Schnittstelle, usw...

Ich werde mal ein paar Sachen im Code erweitern und in das momentan 
leere README etwas einfügen...

Stefan

von Stefan (Gast)


Lesenswert?

Hab da auch noch den Grund gefunden warum es bei Dir im Shutdown() 
endet; Wenn der Hauptknopf zum Anschalten weniger als ca. 2 s gedrückt 
wird, wird das Modul gleich wieder ausgeschaltet. Du aktivierst das 
Modul durch das anstecken des USB Steckers, d.h. der Knopf wird gar nix 
gedrückt. Ich habe das in der Software angepasst, damit die Software 
auch in diesem Fall startet, siehe Github.

Gruß
Stefan

von Karsten (Gast)


Angehängte Dateien:

Lesenswert?

Hallo Stefan,

vielen Dank für Deine Bemühungen. Ich habe mal das AVR Studio 5 Projekt 
mit den vor ein paar Minuten heruntergeladenen aktuellen Sourcecodes 
angehangen.
Die Optimierung -Os ist eingeschaltet.
Die Fehlermeldungen:
Error  1  'fabs' was not declared in this scope  c:\program 
files\atmel\avr studio 5.0\avr 
toolchain\bin\../lib/gcc/avr/4.5.1/../../../../avr/include/util/delay.h 
149  42  AVRGCC1
Error  2  'ceil' was not declared in this scope  c:\program 
files\atmel\avr studio 5.0\avr 
toolchain\bin\../lib/gcc/avr/4.5.1/../../../../avr/include/util/delay.h 
149  43  AVRGCC1
Error  3  'fabs' was not declared in this scope  c:\program 
files\atmel\avr studio 5.0\avr 
toolchain\bin\../lib/gcc/avr/4.5.1/../../../../avr/include/util/delay.h 
226  42  AVRGCC1
Error  4  'ceil' was not declared in this scope  c:\program 
files\atmel\avr studio 5.0\avr 
toolchain\bin\../lib/gcc/avr/4.5.1/../../../../avr/include/util/delay.h 
226  43  AVRGCC1

Keine Ahnung, warum diese Fehler auftreten. Vielleicht hängt das mit dem 
C++-Compiler zusammen.

Gruß

Karsten

von Karsten (Gast)


Lesenswert?

Hallo Stefan,

trotz nicht funktionierender Optimierung kann ich melden, dass eine 
Funkübertragung um 20:50 Ortszeit geglückt ist.

Funktioniert also :-)


Karsten

von Karsten (Gast)


Lesenswert?

Eine Frage noch:

Sind in Deinem Framework auch Routinen für das RFM02 vorhanden?

Gruß

Karsten

von Karsten B. (karstenbrandt)


Lesenswert?

Hallo Stefan,

könntest Du evtl. bei der Stückliste die entsprechenden Artikelnummer 
noch ergänzen? Macht die Bauteilauswahl leichter.


Gruß
Karsten

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.