Forum: Mikrocontroller und Digitale Elektronik RFM12 - Funkmodul


von jonny (Gast)


Lesenswert?

Hallo,
ich habe beim stöbern bei Pollin dieses Funkmodul gefunden:
http://www.pollin.de/shop/shop.php?cf=detail.php&pg=OA==&a=MDU5OTgxOTk=&w=OTk4OTY4&ts=0

Meine Frage an euch ist:
Hat schon wer damit gearbeitet und ob es schwer ist diese Module für 
eine art Wetterstation zu nutzten um die daten zu übermitteln.

jonny

von AVR-User (Gast)


Lesenswert?

Sieht interessant aus. Nähere Informationen gibts hier:
http://www.hoperf.com/doce/pro/RFM12.html

(Im programming guide gibts auch ein Schaltplan-Beispiel mit AVR)

von jonny (Gast)


Lesenswert?

cool danke,
auf der Seite war ich auch schon^^ Leider muss ich mal wieder zum 
Augenarzt... xD

mfg
jonny

von Werner K. (i-mon)


Lesenswert?

Hallo,

weiß jemand, wie es da mit der Reichweite aussieht?

Gruß, Werner

von Werner K. (i-mon)


Lesenswert?

Ich habe gerade die Info gefunden. Bis zu 200m im Freien.

Für den Preis ist das ja echt in Ordnung, wenn es denn auch funktioniert 
;-)

von AVR-User (Gast)


Lesenswert?

Jonny:
Wenn du das Modul erfolgreich in Betrieb genommen hast, dann gib uns 
doch mal ne Rückmeldung.

von Andreas S. (andreas) (Admin) Benutzerseite


Lesenswert?

Das sieht ja wirklich gut aus, vor allem für den Preis.

von guest (Gast)


Lesenswert?

also ich werde in naher zukunft erstmal keins dieser module 
ausprobieren, da ich noch andere dinge zu machen habe... klasse 10 
abschlussprüfungen (ja, sind neu) usw.... (leider nicht in informatik 
und physik xD)

Wenn es denn dann soweit ist melde ich mich aber nochmal. Wollte nur 
wissen wie es mit den modulen aussieht weil der preis recht ansprechend 
ist.

von jonny (Gast)


Lesenswert?

also der beitrag (1 über diesem) ist von mir hatte falschen namen drinn 
xD

von dennis (Gast)


Lesenswert?

..ich wäre an infos zu dem thema interessiert, meine module sind bereits 
auf dem weg zu mir.

ich habe gelesen das damit ü raten von 115,2 kbaud und entfernungen bis 
zu 100m möglich sind, zudem verfügen die module über einen angepassten 
antenneneingang.

die schnittstelle ist spi kompatibel....

wer weiß, bei dem preis ists wirklich ein versuch wert. habe auch das 
transceiver modul rmf12 bestellt.

ich hoffe das damit ein broadcast möglich ist...
d.

von AVR-User (Gast)


Lesenswert?

Die Datenraten sollte man lieber realistisch sehn. Laut Datenblatt sind 
im Idealfall(wohl weniger in der Praxis) Reichweiten über 100m bei 
1,2kbps erreichbar. Die Reichweite wird sicher merklich geringer bei 
höheren Datenraten.

Zudem werden im Demokit nur max. 19,7kbps verwendet. Ich vermute mal, 
dass die 115,2kbps in der Praxis nicht erreicht werden. Theoretische 
Werte halt ;)

Nicht desto trotz ein nettes Teil.

von Benedikt K. (benedikt)


Lesenswert?

Selbst wenn es nur 300Baud sind, ist das ganze immer noch verdammt 
günstig.

Mich würde interessieren, wie hoch die Fehlerrate ist, also wie sicher 
man sein kann, dass die gesendeten Daten auch ankommen.

Die Übertragung scheint ja nur in eine Richtung zu laufen, also ohne 
Bestätigung vom Empfänger.

von AVR-User (Gast)


Lesenswert?

>Die Übertragung scheint ja nur in eine Richtung zu laufen, also ohne
>Bestätigung vom Empfänger.

http://www.hoperf.com/pdf/RF12TOOLS.pdf (letzte Seite)

von jonny (Gast)


Lesenswert?

es gibt ja drei module

1. sende -Y 4€
2. empfangen -> 4€
3. empfangen und senden -> 8€

kommt also drauf an was du machen und ausgeben willst :)

von Benedikt K. (benedikt)


Lesenswert?

Da macht aber der uC die Fehlerprüfung, oder ?

Ich habe mir mal von jedem Modul ein paar bestellt. Bei den Tranceivern 
habe ich ähnliches vor, bei den einfachen Sendern/Empfänger muss es ja 
ohne gehen.
Die Frage nach der Fehlerrate bleibt also.

von W. P. (przybilla)


Lesenswert?

Ich kann das auch noch gar nicht glauben, dass die Teilchen so billig
sind, für dass was diese leisten.

Ich werde mich, sobald ich die Platinen von Pollin bekomme, auch gleich 
drannmachen die Beispielprogramme von Hoperf auf einem ATmega8
(wenns passt) umzusetzten.

@Jonny:  Das Sende - bzw. Empfangsmodul kosten rund 5€ nicht 4€   :)

von voopster (Gast)


Lesenswert?

ey saugeil, son ding kann ich optimal gebrauchen.

danke mann. bestell mir nachher auch nochn paar.

oa, pollin is so gut!

von Benedikt K. (benedikt)


Lesenswert?

Ich versuche gerade das Datenblatt zu verstehen und eine 
Ansteuersoftware zu schreiben: Hat jemand eine Idee was das "Low 
Duty-Cycle Command" ist ?

Das Datenblatt kotzt mich auch schon wieder an: Den kompletten 
Beispielcode mitliefern, aber das Datenblatt kopiergeschützt gemachen 
!!!

von W. P. (przybilla)


Lesenswert?

Ja das mit dem Kopierschutz tut mich mich das auch !!!

Vielleicht kann ich den umgehen. Mal gucken ob's klappt.


später mehr ...

von mag (Gast)


Lesenswert?

es gibt nen Tool mit dem man den c&p Schutz bei pdfs entfernen kann

aber keine ahnung wie das Teil hieß -> google

von AVR-User (Gast)


Lesenswert?

Also ich kann die Programmcodes problemlos unter Linux 
rauskopieren.(ohne Aushebelung von irgendwelchen Schutzfunktionen). Wo 
ist das Problem?
Ich häng nachher mal die Codes als Textfiles an...

von AVR-User (Gast)


Angehängte Dateien:

Lesenswert?

So hier der komplette Code zum Atmel vom "programming guide". Falls die 
Zeilenumbrüche nicht hinhauen unter Windows -> mit Wordpad öffnen und 
neu speichern.

von W. P. (przybilla)


Lesenswert?

Nur der Vollständigkeit halber : Zum entfernen des PDF-Kopierschutzes 
wäre ein
Programm " PDF Password Remover v2.5 " bei   www.chip.de/   eine Wahl.
Braucht man vielleicht doch öfter (unter Windows) :)

von jonny (Gast)


Lesenswert?

hier habe ich gerade gesehen xD

Funkplatine mit "Eval. Board"

http://www.pollin.de/shop/shop.php?cf=detail.php&pg=OA==&a=MzU5OTgxOTk=&w=OTk4OTY4&ts=0

von Benedikt K. (benedikt)


Lesenswert?

Hat eigentlich schon jemand die Module am Laufen, und hat eine eigene 
Software dafür geschrieben ?
Ich komme mit den Datenblättern nicht so ganz klar:
Im RF01 Beispielcode wird 0x47 für 4800Baud verwendet, im RF02 
Beispielcode 0x23 für 4800Baud. Ist Data Rate die Bitrate vom Sender 
oder die Baudrate ? (Falls der Sender eine Manchester Codierung nutzt, 
wäre das eine ja genau das doppelte vom anderen.)

von Bluescreen (Gast)


Lesenswert?

@AVR-User

hab nochmal auf der Pollin-Homepage nachgeschaut, inzwischen gibts 
anscheinend auch dort für die module einen beispielcode in c, so wies 
ausschaut angepasst für die avr-evaluation-platine....

aber danke für deine mühe

von przybilla (Gast)


Lesenswert?

Hi Leute,

ich habe da auch eigentlich drauf gewartet und beim heutigem Stöbern bei 
Pollin auch die Beispielprogramme (von Pollin neu eingestellt) zu den 
Modulen entdeckt.

guckst du hier:
http://www.pollin.de/shop/shop.php


viel Spass damit , ich muss noch auf meine Hardware warten...

von jonny (Gast)


Lesenswert?

sieht recht einfach aus die zu benutzten

von przybilla (Gast)


Lesenswert?


von Bluescreen (Gast)


Lesenswert?

Sieht wirklich relativ einfach aus, vor allem ist der code so aufgebaut, 
dass man beliebige pins nutzen kann, oder auch kleine prozessoren, die 
keine spi-schnittstelle besitzen....
so für richtige minianwendungen

von Benedikt K. (benedikt)


Lesenswert?

Die Beispielcodes sind genau die Beispiele aus dem Datenblatt, mit genau 
denselben Fehlern.

von dennis (Gast)


Lesenswert?

wo liegen die fehler!?
d.

von Benedikt K. (benedikt)


Lesenswert?

Das hatte ich weiter oben geschrieben: Einmal ist 0x23 der Wert für 
4800Baud, einmal 0x47. Da kann irgendwas nicht stimmen.

von dennis (Gast)


Lesenswert?

ok, wenn du "nur" das meinst ok... hörte sich so an, als würde das alles 
nicht funktionieren....
d.

von Benedikt K. (benedikt)


Lesenswert?

Insgesamt finde ich die Datenblätter ziemlich schlecht. Ich möchte die 
Module jetzt nicht schlecht reden (der Preis ist wirklich spitze), aber 
in den Datenblättern sind zwar alle Register aufgelistet, aber leider 
gibt es nirgends eine Beschreibung was die Register bewirken. Das 
Datenblatt ist also schon etwas dürftig.
Wenn man den Beispielcode verwendet, und die Dinger einfach nur so 
laufen lässt, dann reichen die Infos, aber wenn man selbst Software 
schreibt und das allerletzte aus den Modulen rausholen möchte, dann 
merkt man schnell, dass doch einiges an Infos fehlt.

von Benedikt K. (benedikt)


Lesenswert?

Ich habe heute die Module bekommen, schreibe gerade die erste Software 
dafür und stolpere überall auf Fehler im Datenblatt:
Auf dem 4 Seitigen Blatt dass dem RFM12 beilag, steht:
0xC400    ;1,66MHz CLK-Pin, 2,2V Battery

Dasselbe auch im Beispielprogramm.

Laut dem Datenblatt beschreibt 0xC4xx aber das AFC Register ! Um den 
Takt einzustellen müsste man 0xC0xx schreiben.

Ich habe bisher 2 Register (dieses und die Baudrate) angeschaut und die 
Werte vom Beispielprogramm mit dem im Datenblatt verglichen. Beidesmal 
hat es nicht gepasst...

Entweder die Beispielprogramme oder das Datenblatt sind an mehreren 
Stellen falsch.
Welches von beiden, dass muss ich jetzt noch herausfinden.
Typisch Pollin: Einfach mal den Mist von anderen kopieren.

von Benedikt K. (benedikt)


Lesenswert?

Ich habs mal ausprobiert: Die Angaben im Datenblatt scheinen zu passen 
(0xC0E0 setzt den Takt an CLK auf 10MHz), die Beispielprogramme sind 
also definitiv fehlerhaft.

von Marc G. (marc_gauger)


Lesenswert?

Ich habe meine Module ebenfalls bekommen. mir ist noch ein Fehler 
aufgefallen, bei der LED-Steuerung:

#define LED1_OUTPUT() DDRD|=~((1<<6)|(1<<4)) //+Module-Power
#define LED1_ON() PORTD&=~(1<<6)
#define LED1_OFF() PORTD|=~(1<<6)
#define MODULE_ON() PORTD&=~(1<<4)
#define MODULE_OFF() PORTD|=~(1<<4)

müsste doch eigentlich heißen:

#define LED2_OUTPUT() DDRD|=((1<<5)|(1<<4))//+Module-Power
#define LED2_ON() PORTD&=~(1<<5)
#define LED2_OFF() PORTD|= (1<<5)
#define MODULE_ON() PORTD&=~(1<<4)
#define MODULE_OFF() PORTD|= (1<<4)

damit leuchtet dann auch die LED ;-)

Hat schon jemand hinbekommen die dinger auf einer anderen Frequenz 
laufen zu lassen?

RFXX_WRT_CMD(0xA640);//A140=430.8MHz
(So wie es im Datenblatt steht sind es eher 434,0Mhz)
Jedoch empfange ich auf ca. 433,89Mhz ein Signal und bei 434 Mhz ist 
ruhe. Wenn ich das Register ändere, ändert sich an der Sendefrequenz 
nichts.

Hab bisher nur eine Platine aufgebaut, konnte also die Wualität der 
Übertragung noch nicht testen.

Gruß Marc

von Marc G. (marc_gauger)


Lesenswert?

Ok der eben benannte Fehler war in der RFM12_transmit.c
In der RFM12_receive.c ist auch ein Fehler, glaub ich zumindest:

#define LOW_SDO() PORT_SDO&=(1<<RFXX_SDO)
sollte doche eher heißen:
#define LOW_SDO() PORT_SDO&=~(1<<RFXX_SDO)

Die nehmens mit ihren ~ nicht so genau.

Falls ich mir irren sollte und es gar keine Fehler sind, dann seht es 
mir nach, bin erst seit ein paar Wochen in C "unterwegs".

Gruß Marc

von Jadeclaw D. (jadeclaw)


Lesenswert?

Hier nochmal der Hinweis, wo man mit solchen Modulen senden darf:
433.05 bis 434.79MHz.
Man muß vor Aufnahme des Sendebetriebs sicherstellen, daß das Signal 
komplett innerhalb der Bandgrenzen bleibt. Immer dran denken, die 
Empfänger solcher Funkmodule sind ziemlich taub, ein Signal, das für 
diese Module in 100m gerade noch empfangbar ist, kann mit guten 
Amateurempfängern je nach Topographie noch in mehreren Kilometern 
Abstand empfangen werden.

In dicht bebauten Umgebungen empfiehlt es sich evtl. ,
die 433.92MHz +- 100kHz zu meiden, da dort bereits so gut wie jedes 
kommerziell vertriebene Gerät arbeitet.

Gruss
Jadeclaw.

von Tom Bear (Gast)


Lesenswert?

>Empfänger solcher Funkmodule sind ziemlich taub, ein Signal, das für
>diese Module in 100m gerade noch empfangbar ist, kann mit guten
>Amateurempfängern je nach Topographie noch in mehreren Kilometern
>Abstand empfangen werden.

Dann müssen die ja in dem freq. bereich ein wahres durcheinander 
empfangen können bei der anzahl an geräten die auf der freq senden.

von Benedikt K. (benedikt)


Lesenswert?

Auf dem Zettel der bei dem Modul dabei war steht:
"Die Konformitätserklärung ist im Bereich "Kontakt und Service" unter 
folgendender Internetseite veröffentlicht: http://www.pollin.de";

Hat das schon jemand gefunden ?
Ich habe zumindest nichts gefunden außer den normalen pdfs zu den 
Modulen, aber da steht nichts drin.

von Jadeclaw D. (jadeclaw)


Lesenswert?

@Tom Bear: Das Chaos ist nur auf 433.92MHz, lasse ich da mal den Scanner 
stehen, schrappt und knirscht es da fast unentwegt, rundherum ist wenig 
los. Sitze hier aber auch in der 10. Etage. Zur Reichweite von den 
erlaubten 10mW: Vor einigen Jahren, als Sprechfunkgeräte für diesen 
Bereich in den Handel kamen, habe Hobbyfunker zwei von diesen Dingern 
als Relaisstation zusammengeklemmt und auf einen Berg in der Nähe von 
Bad Salzuflen aufgestellt. Diese Konstruktion war teilweise noch in 30km 
Abstand zu vernehmen. Leider konnten sich diese Hobbyfunker nicht 
benehmen, sodaß Regulierungsbehörde und Gesetzgeber dem Spaß schnell ein 
Ende setzten.

Gruss
Jadeclaw.

von Der erste Frager (Gast)


Lesenswert?

@Marc Gauger
läuft ein´Sende- Empfängerbetrieb mit einer Boudrate X mit dem Code?
Oder ist das Signal ev. von anderen Funkgeräten?

von Christian C.-Z. (Gast)


Lesenswert?

Moin,

ist Euch eigentlich in den beiden Datenblättern aufgefallen, dass der 
Configuration Command i Pollin-Datenblatt die Bits 5&4 fest auf 0,1 
stehen hat?

Wenn ich mir jetzt das Datenblatt von Hope RF anschaue, dann findet mit 
Hilfe dieser beiden Bits genau die Bandauswahl statt:

0, 0: 315 MHz
0, 1: 433 MHz (Pollin)
1, 0: 868 MHz
1, 1: 915 MHz

Alles bei Verwendung des 10MHz Quartzes auf dem Modul.

Gruss,
Christian

von Benedikt K. (benedikt)


Lesenswert?

Das liegt halt daran, dass die Module für 433MHz ausgelegt sind.
Das IC kann vermutlich alle Bereiche, nur der externe Schwingkreis ist 
warscheinlich für 433MHz ausgelegt.

von Benedikt K. (benedikt)


Lesenswert?

Und noch mehr Fehler, diesmal im Datenblatt:
Beim Receiver Control Command steht als Standardwert 0x9080
Die Bits sind aber als 1100.... beschrieben. Dier ergibt aber 0xC...
Vermutlich sind die Bits falsch. 0xC wäre nämlich ein anderes Register.

von Hagen R. (hagen)


Lesenswert?

Und noch einer, Status Command 0x0000 liefert welchen Status ? Da 
scheint wohl das Papier im PDF Editor ausgegangen zu sein ;)

Ich werde heute auch mal anfangen eine Platine mit ATMega8 zu machen um 
meine Teile zu testen.

Gruß Hagen

von Läubi .. (laeubi) Benutzerseite


Lesenswert?

Wäre Cool wenn du mal berichten könntest, dann bestell ich mir auch mal 
welche mit Funk wollt ich eh schonmal experimentiern :)

von Benedikt K. (benedikt)


Lesenswert?

Auch bei der Beschreibung vom Timing Diagramm war anscheinend kein 
Papier mehr vorhanden. Ebenso beim Low Duty-Cycle Command Register.

von Benedikt K. (benedikt)


Lesenswert?

Und noch mehr Fehler:
Beim Data Filter Command wird S1,S0 beschrieben, es gibt aber nur ein S 
Bit im Register.
Allerdings ist nebem dem S Bit eine 1. Würde man das als S1 betrachten, 
würde sich S1,0 = 10 ergeben was einen ungültigen Zustand bedeuten 
würde.

Ist denn in diesem sch... Datenblatt überhaupt was richtig ???

von Thomas K. (thomas_k)


Lesenswert?

Wär super wenn ihr vielleicht im Wiki eine Errata für das Datenblatt 
(mit Seitenzahlen usw.) machen könntet. Dann wäre das schön 
übersichtlich für alle :)
Danke!

von Hagen R. (hagen)


Lesenswert?

Die Maße stimmen auch nicht, ok das ist aber nur minimal und im zentel 
Millimeter Bereich.

Für Eagle habe ich auch schon alles fertig, wer's gebrauchen kann meldet 
sich per PN.

Gruß Hagen

von Benedikt K. (benedikt)


Lesenswert?

Ich habe das Modul mittlerweile soweit bekommen, dass es ein Dauersignal 
sendet. Der IRQ Pin ändert sich bei mir aber nie, obwohl ich 30kByte/s 
rüberschiebe.

von Benedikt K. (benedikt)


Lesenswert?

Anscheinend braucht das Modul einige 100ms nach dem Einschalten ehe es 
Daten empfangen kann.
Das Senden funktioniert jetzt wunderbar. Sendeleistung, Frequenzshift 
einstellen usw. alles kein Problem.
Das Empfangen scheint so zu funktionieren:
FIFO einschalten, FIFO fill enable bit setzen, jetzt wartet das Modul 
auf das  das Sync Word, (falls dieses eingeschaltet ist) und zeichnet 
danach alles mit der Bitrate auf. Egal ob was sinnvoles kommt oder 
nicht. Ist die Übertragung also beendet, dann sollte man das FIFO fill 
enable Bit löschen, um die Suche nach dem Sync Word neu zu staren. Das 
Sync Word müsste 0x2DD4 sein.

Gibt es irgendwo eine genau Liste der zulässigen Sendefrequenzen ?
Das einzige was ich gefunden habe, ist der Bereich 433,05 MHz bis 
434,79MHz, max 10mW, unbegrenzte Sendedauer.
Ich kann mich aber daran erinnern, dass es daneben noch andere 
Frequenzen gab, die härtere Einschränkungen hatten, und die daher nicht 
so überfüllt sind.
Die normalen Funkmodule arbeiten übrigends bei 433,92MHz.

von Marc G. (marc_gauger)


Lesenswert?

Hast du denn schon geschafft die Sende-Frequenz zu ändern? Also ich hab 
nur mal einen Sender aufgebaut und da kommts mir so vor als ob es dem 
egal ist was in dem Register steht er sendet immer auf der gleichen 
Frequenz, könnte jemand diese Aussage bestätigen, oder gar wiederlegen? 
Denn ich bin im Besitz einer Funklizenz und möchte gerne aus dem 
ISM-Band entweichen.

Gruß Marc

von Benedikt K. (benedikt)


Lesenswert?

Bei mir funktioniert das wunderbar. Ich habe es gerade mal ausprobiert: 
430,92MHz und 438,92MHz nimmt er an und sendet auch auf den Frequenzen.

Hast du zufällig eine Liste auf welchen Frequenzen man senden darf, (mit 
oder ohne Lizenz) und welche komplett verboten sind ?

von Marc G. (marc_gauger)


Lesenswert?

Also ich würd sagen das was im Frequenznutzungsplan steht müsste hier 
gelten:

http://www.bundesnetzagentur.de/media/archive/1820.pdf

sind ca. 660 Seiten (ich denk auf Seite244 (Eintrag 222003) 433,05- 
434,79 Mhz

Auf Seite 619 steht nochmal der Frequenzbereich.. Aber ich hab nichts 
genaueres über die Auflagen in diesem Bereich gefunden... (also 
bezüglich ob dauersender usw erlaubt ist oder nicht)

Kannst du mir deinen Quellcode mal schicken (Marc.Gauger@web.de) Also 
für beide Frequenzen? BEi mir scheint das irgendwie nicht zu 
funktionieren.

Danke

Gruß Marc

von Jadeclaw D. (jadeclaw)


Lesenswert?

Nochmal, ohne Lizenz darf man nur zwischen 433.05 und 434.79 MHz senden. 
Die exakte Frequenz ist egal, man muß aber soweit von den Bandgrenzen 
entfernt sein, das keinesfalls Signale durch die Modulation ausserhalb 
des zulässigen Bereiches abgestrahlt werden. Wer eine Amateurfunklizenz 
hat, darf den gesamten Bereich zwischen 430 und 440MHz nutzen. Das jetzt 
auf dieses Modul bezogen.
Funkamateure dürfen aber noch erheblich mehr:
http://www.bundesnetzagentur.de/enid/Frequenzordnung/Amateurfunk_gu.html

Eine gesamte Liste gibt es hier (Short Range Devices - SRD):
http://www.bundesnetzagentur.de/media/archive/6709.pdf
Für Sprechfunk gibt es noch weitere Bereiche:
446MHz Analog:
http://www.bundesnetzagentur.de/media/archive/315.pdf
446MHz Digital:
http://www.bundesnetzagentur.de/media/archive/5524.pdf
Freenet:
http://www.bundesnetzagentur.de/media/archive/916.pdf
CB-Funk:
http://www.bundesnetzagentur.de/media/archive/1533.pdf
Babyphone:
http://www.bundesnetzagentur.de/media/archive/283.pdf
Audioanwendungen:
http://www.bundesnetzagentur.de/media/archive/5005.pdf

So, ich hoffe, das klärt einiges.

Gruss
Jadeclaw.

von Benedikt K. (benedikt)


Angehängte Dateien:

Lesenswert?

Ich habe mal meine Routinen angehängt. Diese haben mit Sicherheit noch 
Fehler, das Senden scheint aber insgesamt schon ganz gut zu 
funktionieren.
Zumindest konnte ich immer in etwa das erwartete auf dem Spectrum 
Analyser sehen.

Die Initialisierung sieht so aus:
rf12_init();          // ein paar Register setzen (z.B. CLK auf 10MHz)
rf12_setfreq(RF12FREQ(433.92));  // Sende/Empfangsfrequenz auf 433,92MHz 
einstellen
rf12_setbandwidth(4, 1, 4);    // 200kHz Bandbreite, -6dB Verstärkung, 
DRSSI threshold: -79dBm
rf12_setbaud(19200);      // 19200 baud
rf12_setpower(4, 0);      // -12dBm Ausgangangsleistung, 120kHz 
Frequenzshift

rf12_mode(1,0);          // Sender einschalten
rf12_tx(0xAA);
rf12_tx(0xAA);
rf12_tx(0xAA);
rf12_tx(0x2D);
rf12_tx(0xD4);
for (c=0; c<255; c++)  // irgendwelche Daten übertragen
  rf12_tx(c++);
rf12_mode(0,0);          // Sender ausschalten

Die Frequenz wird über das Makro RF12FREQ() (aus der rf12.h) in den Wert 
für das Modul umgerechnet.

von Marc G. (marc_gauger)


Lesenswert?

Ok mein Fehler auf Seite 244 steht es ja, ich hab alle 
Nutzungsbestimmungen nachgeschaut...
Also im Frequenznutzungsplan (Link siehe oben) steht:

Relative Frequenzbelagerungsdauer: kleinergleich 100%

sprich Dauersenden ist erlaubt :-)

Gruß Marc

von Marc G. (marc_gauger)


Lesenswert?

Ok sehr schön, hast den Code selber geschrieben? hab nur den von Polling 
runtergeladen und der sieht etwas anders aus :-) Kann ich auch die 
global.h bekommen? Die fehlt zum kompilieren... Möchte das nur kurz auf 
meinen Mega8 programmieren um den sender zu testen... hab zwar nur 8 Mhz 
intern aber ich denk das sollte dennoch funktionieren.

Gruß Marc

von Benedikt K. (benedikt)


Lesenswert?

Der Code ist komplett von mir. Der Beispielcode ist ziemlich falsch, 
wenn der nicht funktioniert, dann wundert es mich nicht. Ein paar Sachen 
musste ich ausprobieren, da das Datenblatt an mehreren Stellen 
widersprüchlich ist.

In der global.h steht nur:
#ifndef cbi
#define cbi(sfr, bit)     (_SFR_BYTE(sfr) &= ~_BV(bit))
#endif
#ifndef sbi
#define sbi(sfr, bit)     (_SFR_BYTE(sfr) |= _BV(bit))
#endif

von Marc G. (marc_gauger)


Lesenswert?

Also ich bekomm deinen Code nicht zum laufen, wie hast du das Modul 
angeschlossen?

Also PortB

#define SDI    5 = SDI
#define SCK    6 = SCK
#define CS    7 = nSEL
#define SDO    0 = SDO
#define IRQ    1 = nINT oder nIRQ ? (hab beides versucht geht nicht.
#define RES    4 = nRes

was hast du mit:
-FSK
-FIIT
-und nInt bzw nIRQ gemacht? unbeschaltet gegen masse oder pullup?

Hab mir diese main-Routine geschrieben:

int main(void)
{
  unsigned char c;
  unsigned int i,j;
  rf12_init();          // ein paar Register setzen (z.B. CLK auf 10MHz)
  rf12_setfreq(RF12FREQ(433.92));  // Sende/Empfangsfrequenz auf 
433,92MHz einstellen
  rf12_setbandwidth(4, 1, 4);    // 200kHz Bandbreite, -6dB Verstärkung, 
DRSSI threshold: -79dBm
  rf12_setbaud(19200);      // 19200 baud
  rf12_setpower(4, 0);      // -12dBm Ausgangangsleistung, 120kHz
  //Frequenzshift
  LED1_OUTPUT();
  for(;;)
  {
    LED1_ON();
    rf12_mode(1,0);          // Sender einschalten
    rf12_tx(0xAA);
    rf12_tx(0xAA);
    rf12_tx(0xAA);
    rf12_tx(0x2D);
    rf12_tx(0xD4);
    for (c=0; c<255; c++)  // irgendwelche Daten übertragen
      rf12_tx(c++);
    rf12_mode(0,0);          // Sender ausschalten
    LED1_OFF();
    for(i=0;i<10000;i++)for(j=0;j<123;j++);//sleep 1 second appr.
  }
  return 0;
}

Die LED soll während dems enden leuchten und danach ausgehen.. sie geht 
niemals aus... hab ich was falsch gemacht?

Gruß Marc

von Benedikt K. (benedikt)


Lesenswert?

Marc Gauger wrote:
> Also ich bekomm deinen Code nicht zum laufen, wie hast du das Modul
> angeschlossen?

An einem tiny2313, so dass es alles ohne Lötbrücken möglich ist. Also 
angefangen bei PB0 mit SDO und die Reihe am Modul entlang. FSK und FFIT 
sind daher an 2 und 3 angeschlossen, diese Pins sind aber auf Eingang 
geschaltet.
nINT habe ich auf VDI (=Ausgang) geschaltet und unbeschaltet gelassen.
IRQ = nIRQ
Im Beispielprogramm setzen die nFFS auf High, bei mir ist dieser Pin 
aber Ausgang vom RFM12, daher habe ich den besser hochohmig angesteuert. 
Ebenso Reset (Was bitte heißt DIO ? Eingang oder Ausgang ???)

Damit ist es mir sogar gelungen Daten zu senden und mit einem anderen 
RFM12 zu empfangen.
Es kam aber nur jedes 2. Byte an, und danach hört der Empfang nie mehr 
auf, außer ich schalte die Spannung ab.

Jetzt muss ich noch rausfinden, ob es am Sender oder Empfänger liegt, 
daher wollte ich einen RFM02 als Sender verwenden. Dessen Datenblatt ist 
aber noch schlimmer: Bei dem beispielprogramm werden Befehle verwendet, 
die es garnicht im Datenblatt gibt.

von Sven G. (s705081)


Lesenswert?

Hi,

DIO sollte ja eigentlich Data Input Output heißen aber die Datenblätter 
sind wohl nicht so gut.

Gruss Sven

von Benedikt K. (benedikt)


Lesenswert?

Ich habe noch ein wenig gebastelt, aber es immer noch nicht geschaft 
Datenpackete konrolliert zu übertragen: Es kommen immer nur Teile bzw. 
sehr viele Nullen an.
Im Datenblatt (vor allem beim RFM02) fehlt eindeutig die Beschreibung 
des Timings der Pins (welcher SPI Modue wird verwendet, wann wechselt 
nIRQ usw).
Wenn man bedenkt, dass das Modul schon Rev 3.0 ist (steht auf der 
Rückseite der Platine) dann möchte ich nicht wissen, wie das Datenblatt 
bei Rev 1.0 ausgesehen hat...

Zur Sendefrequenz:
Stellt man z.B. 334MHz und 200kHz, positive Modulation ein, sendet das 
Modul ohne Daten und bei einer 0 auf 333,9MHz und bei einer 1 auf 
334,1MHz. Die Sendefrequenz ist also die Mittenfrequenz (und nicht wie 
ich zumindest anfangs dachte die Frequenz di bei einer übertragenen 0 
gesendet wird).

von Benedikt K. (benedikt)


Lesenswert?

Ich habe was gefunden:
www.hoperf.com/pdf/RF01.pdf
www.hoperf.com/pdf/RF02.pdf
www.hoperf.com/pdf/RF12.pdf

Das sind die Datenblätter der auf den Modulen verbauten ICs. Die sind um 
einiges genauer und brauchbarer.

von Martin (Gast)


Lesenswert?


von Benedikt K. (benedikt)


Lesenswert?

@ Martin
Den Code brauchst du dir garnicht anschauen, der ist total fehlerhaft.


Ich habe es jetzt geschafft Daten richtig zu übertragen. Die Module 
(sind mit dem ordentlichen Datenblatt) eigentlich echt genial.
Ich schätze mal in den nächsten Tagen werde ich dann ein kleines 
Demoprogramm in die Codesammlung stellen. Im Laufe der Woche folgen dann 
Programme für RF01 und RF02.

von jonny (Gast)


Lesenswert?

schön, dass du es geschafft hast. Wenn ich meine Prüfungen hinter mir 
habe, werde ich mir auch welche kaufen und nen bissel basteln XD

jonny

von Marc G. (marc_gauger)


Lesenswert?

Also dein Code funktioniert bei mir jetzt.
Hab nur noch eine kleine Frage dazu.
Hab den Code auf nen Atmega 8 gemacht und der braucht dafür 61% des 
Speichers??? Hab mal geschaut was da so viel Platz brauch und ohne die 
delay.h  sind es nur noch 15% Speicher.. Hast du mir eine bessere 
Delay.h oder mach ich irgendetwas falsch? Kann doch nicht sein dass die 
so viel Speicher benötigt nur um eine kleine Pause zu machen.

Gruß Marc

von Roland Schmidt (Gast)


Lesenswert?

Optimierung einschalten (-Os), sonst wird die
Floatingpoint-Arithmetik mit eingebunden.

von Christian Wimmer (Gast)


Lesenswert?

Hallo zusammen,

hab das Modul auch per Zufall gefunden und finds toll, dass schon so 
viele Leute versuchen es zum Laufen zubringen ;)

Habt ihr schon Erfahrungswerte, wie schnell das Modul ist bzw. weit man 
damit kommt? Gibts auch schon Erfahrungen zur Übertragungssicherheit?

Auf dem Foto vom Demokit hab ich gesehn, dass ein Draht als Antenne 
verwendet wird, welche Länge verwendet ihr da? Gibts eventuell ein PCB 
Layout mit dem man eine bessere Sendeleistung bekommt?

von dennis (Gast)


Lesenswert?

...ich habe vor, das ganze mit einer externen stummelantenne zu 
betreiben, über smb oder bnc stecker und rg58 kabel aus dem gehäuse 
führen..., da wäre es auch interessant was die ü raten angeht...und die 
machbarkeit..

d.

von Benedikt K. (benedikt)


Lesenswert?

Meine ersten Tests: Einmal quer durchs Haus (ca. 30m), durch mehrere 
Wände und 1 Decke mit 19200Baud und 15cm Draht als Antenne: Keine 
Probleme. Mehr als 99% der gesendeten Daten kamen fehlerfrei an, solange 
die beiden Antennen einigermaßen parallel waren. Die Angaben von >100m 
im Freien sind also meiner Meinung nach durchaus realistisch. Auf kurze 
Entfernungen (z.B. 5m im selben Raum) sind die hohen Datenraten 
(100kBit) kein Problem.
Da man an einem Pin auch das analoge Signal abgreifen kann, könnte man 
mittels Korrelation bestimmt >1km erreichen.

Zum Vergleich: Mit einem billigen AM Modul (z.B das von C oder eines aus 
einer Funk Haustürklingel) habe ich schon bei 2 Wänden und etwa 10m 
Probleme.

Auch der Softwareaufwand ist extrem gering: Nach der Initialisierung 
muss man nur den Sender einschalte, und die Daten rüberschieben. Keine 
Manchestercodierung, kein Bittakt usw ist notwendig.
Man sollte nur darauf achten, dass ausreichend Flanken im Signal 
enthalten sind, damit der Empfänger den Bittakt regenerieren kann. 
Solange man also nicht dauerhaft nur 0 oder 1 sendet, gibt es nichts zu 
beachten.

Den Code dazu habe ich in die Codesammlung gepackt:
Beitrag "Beispielprogramm für RFM12 433MHz Funk-Module"

Als nächstes mach ich mal die Ansteuerung für RFM01 und 02, dann weitere 
Tests der Reichweite und Datenrate.

von maddin (Gast)


Lesenswert?

...hätte ich die möglichkeit das ding direkt an txd und rxd zu hängen? 
im code sieht es so aus als müsste man dort noch eine menge 
einstellungen vornehmen, bandbreite etc...und ich dachte es hat eine spi 
schnittstelle - ist dort nicht ein taktsignal enthalten!?

maddin

von Benedikt K. (benedikt)


Lesenswert?

txd und rxd klingt nach RS232. Das geht schonmal mit Sicherheit nicht. 
Was meinst du mit Taktsignal bei der SPI Schnittstelle ?

von maddin (Gast)


Lesenswert?

...ich wollte das ganze auf einem pic controller laufen lassen, 
programmiert in asm.

ich schätze ich muss die ganze sache wirklich auf hardware-ebene 
ansteuern.

PIN:  SCK Spi clock (da du geschrieben hast das kein bittakt nötig ist)


m

von Benedikt K. (benedikt)


Lesenswert?

Das mit dem Bittakt hast du falsch verstanden:
Bei dem SPI Interface ist schon der Takt notwenig. Das einzige was nicht 
notwendig ist, ist der Bittakt für die Daten die versendet werden. 
Dieser Takt wird intern erzeugt.
Wenn das Modul konfiguriert ist, sendet man die Daten als Byte Paket 
über SPI an das Modul. Dieses sendet dann mit der eingestellten Baudrate 
die einzelnen Bits nacheinander.

von dennis (Gast)


Lesenswert?

...danke, da haben wir aneinander vorbeigeredet:-)

tja dann muss ich mal sehen wíe ich das am besten realisiere. mit 
bitgeklimper anzufangen, ist nicht der richtige weg. aber noch einen 
dritten controller in das projekt zu holen (atmel incl. programm) ist 
auch nicht unbedingt der traum.

nett wäre eine umsetzung von spi mit modul und fertig programmiertem 
atmel auf rs232. damit lagst du übrigens richtig. dann könnte man die 
funkstrecke transparent an fast jedem controller betreiben. müsste ein 
atmel mit spi und serieller schnittstelle sein.

eckdaten müsste man festlegen, ganz klar, oder ein paar pre-sets für 
datenrate - reichweite Rx/tx / kanal usw... über dips anwählbar machen..

in meiner anwendung habe ich 1 sender, und 8 zuhörer, insgesamt benötige 
ich 9 module, es werden transceiver sein, so bleibt es flexibel..

das ganze müsste rs232 transparent sein, bis auf die zeitverzögerung 
durch das umwandeln der daten im atmel natürlich...

d.

von Benedikt K. (benedikt)


Angehängte Dateien:

Lesenswert?

Der gekennzeichnete Pin ist vermutliche der ARSSI Pin (Analog Receive 
Signal Strength Indicator).
An diesem Pin liegt eine dem empfangenen Signal proportionale Spannung 
an. Bei mir sind es etwa 0,6V ohne Signal und 0,3V ohne Signal, ohne 
Antenne. Mit einem Sender direkt daneben sind es rund 1V. Allerdings 
scheint das ganze durch eine AGC Schaltung zu laufen: Wenn ich kurze 
Impulse sende, erscheint an dem Pin 15mS lang 1V, dann 15ms lang etwa 0V 
und dann wieder 0,6V.

von Hagen R. (hagen)


Lesenswert?

Benedikt:

wenn ich das richtig lese dann wird im analogen Empfangsmodus, also ohne 
FIFO usw. am DCLK Ausgang einfach das I/Q Signal ausgegeben ? (über 
einen internen Widerstand von 10KOhm)

Gruß Hagen

von Benedikt K. (benedikt)


Lesenswert?

Den analogen Modus habe ich noch nicht ausprobiert.
Ich vermute, hier kommt einfach das FM demodulierte Signal raus. Im 
Datenblatt ist dies der Ausgang des I/Q Demodulators.

von Hagen R. (hagen)


Lesenswert?

Hm, das heist, ich sende im analogen Modus über DATA mein per FSK zu 
sendenden Bitstrom. Auf Empfängerseite werte ich im analogen Modus das 
FSK (I/Q Demodulator) am DCLK Pin aus. Man könnte so also seine eigene 
Kodierung benutzen. Ich denke da an ein Manchester kodiertes Signal das 
mit zb. 511 Bit langen MLS (maximum length random sequences) koderiet 
wurde. Sprich Spreizspektrum. Man sampelt das anaolge Signal an DCLK und 
wertet es im Dekoder per Kreuzkorrelation aus, sprich FHT (Fast Hadamard 
Transformation). So müsste man eine sehr hohe Reichweite erzielen, wenn 
auch mit geringer Datenübertragung. Statt mit so langen Sequenzen könnte 
man für erste Tests auch mit Barker Codes arbeiten.

Gruß Hagen

von Benedikt K. (benedikt)


Lesenswert?

Ich muss zugeben, ich habe jetzt nicht allzuviel davon verstanden, aber 
es klingt interessant. Seit hier im Forum mal das Thema Korrelation kam, 
warte ich darauf, das irgendjemand mal eine einfache Software schreibt, 
die sowas macht und sogar auf einem AVR läuft.

Ich werde es mal ausprobieren, ob man den Sender als dummen Sender 
verwenden kann (0 rein -> 0V raus, 1 rein -> 5V raus).

von Hagen R. (hagen)


Lesenswert?

Die FHT benötigt N * Log2(N) Additionen und Subtraktionen. Ist also 
ziemlich schnell und macht sowas ähnliches wie eine FFT. Allerdings 
funktioniert sie nur mit orthogonalen Codes, zb. Barker Codes oder eben 
MLS. MLS sind nichts anders wie Shiftregister deren Polynom irreducibel 
sein muß. Sprich das LFSR erzeugt eine Pseudozufallssequenz mit 
maximaler Länge. Benutzt man zb. ein 8Bit LFSR als MLS so erzeugt man 
eine 255 Bit Sequenz. Man sampelt nun 255 "Bits", auch Chip genannt und 
lässt darüber die FHT laufen. Die FHT benötigt also 256 * 8 = 2048 
Additionen/Subtraktionen um die 255 ADC Samples zu korrelieren. Der 
maximale Ausschlag  nach dieser Korrelation gibt also den 
Synchronisationszeitpunkt an. Benutzt man die gleiche MLS einmal 
invertiert und einmal nicht invertiert so kann man die Bits 0 und 1 
kodieren. Pro Datenbis würde man also 255 Chips senden. Dies erklärt den 
hohen SNR des Spreizspektrum (bzw. Spreizcodierung).

Falls die RFM12 Teile also die analogen FSK Daten dekodiert ausgeben 
können so wäre das mal ein interessantes Experiment ;) Ich habe erstmal 
meine Platine im Eagle fertig und werde heut Abend ätzen ;)

Gruß Hagen

von Marco S. (masterof)


Lesenswert?

@Benedikt K.

Mache mal die Antenne ca 17,3 cm lang. Das wird vermutlich die 
reichweite noch mehr verbessern.
Da diese Antenne ihre Resonazfrequenz auf ca 433Mhz hat.
Die 15cm Antenne hat ihre Resonanzfrequenz auf 500 Mhz.

von Sebastian (Gast)


Lesenswert?

Hallo,

Nach ein kleine "research" im web habe ich entdeckt das die IC's

IA4220/IA4221 (Tx)
IA4320/IA4322 (Rx)
IA4420/IA4421 (Rx+Tx)

von firma Integration Associates die gleiche "Die" besitzen.
Die ISM funk IC's mit SPI interface haben die name "EZRadio".

Auf http://www.integration.com/resources.shtml sind alle Datasheets und 
Application Notes zu finden.

Interessant ist auch
http://www.integration.com/docs/IA_MSC-UGSB1.pdf
(C source fuer Microchip PIC).

Freundlichem Gruess aus Holland, Sebastian pe9sms






von Benedikt K. (benedikt)


Lesenswert?

@hagen
Ich habe den analogen Modus mal ausprobiert:
Am Ausgang kommen 5V Pegel raus, es scheint also intern schon eine 
digitale Entscheidung geben, ob die empfangene Frequenz < oder > als die 
center Frequenz ist. Allerdings ist das Signal manchmal etwas 
verrauscht, daher der Filter.

von Jadeclaw D. (jadeclaw)


Lesenswert?

Schaut man in die IA-Datenblätter (Besten Dank an Sebastian), so erkennt 
man, daß der Analogausgang ein RC-Tiefpaß, gefolgt von einem 
Schmitt-Trigger ist. Der Digitalfilter, der das I/Q-Signal auswertet, 
verhindert genau diese Rauschanteile, was aber auf die Datenrate geht.

Gruss
Jadeclaw

von Hagen R. (hagen)


Lesenswert?

@Benedikt: hast du auch den richtigen Modus gesetzt ? Der DCLK/CFIL/FFIT 
müsste als analoger Ausgang geschaltet sein. Das ist der Modus der bis 
zu 256kBit erlaubt und bei dem es keinen DCLK gibt. Lässt man nun den 
externen Kondensator weg dann müsste man direkt das analoge 
Ausgangssignal des I/Q Demodulators abgreifen können. Man verzichtet 
also auf den DATA Ausgang und den internen Schmitttrigger. Egal, meine 
Platinen sind fertig, morgen bestücke ich sie und dann werde ichs mal 
seber testen ;)

Gruß Hagen

von Benedikt K. (benedikt)


Lesenswert?

@hagen
Ich denke schon.
Der Pin kann ja nur FIFO voll Interrupt, Baudrate und Analog.
Als ich das FIFO abgeschaltet hatte, kamen da 19200Hz raus, dann habe 
ich auf analogen Filter umgeschaltet, und es kamen die Rechteckimpulse 
raus, die ähnlich aussehen wie die Signale am Ausgang eines billigen AM 
433MHz Empfängers (Zufallswert wenn der Sender aus ist, mehr oder 
weniger saubere Daten wenn der Sender in der Nähe läuf).

von Benedikt K. (benedikt)


Lesenswert?

Die RFxx ICs sehen stark nach einer Kopie des IA4xxx aus. Ebenso das 
Datenblatt, das bis auf einige Kopierfehler nahezu identisch ist. Es 
wurde nur der Herstellername + Adresse geändert.

Es gibt einige interessante AppNotes zum Thema Antenne auf der Seite von 
Integration Associates. Mit einer Back IFA Antenne (was immer das auch 
ist), sollen angeblich 5km bei 9,6kBaud möglich sein.

von Jörg B. (manos)


Lesenswert?

Benedikt K. wrote:
> Mit einer Back IFA Antenne (was immer das auch ist), sollen angeblich 5km bei 
9,6kBaud möglich sein.
Das sollte auf jeden Fall für eine Wetterstation im Garten reichen^^

von Christian Wimmer (Gast)


Lesenswert?

Ich hab mich mal auf der Herstellerhomepage informiert, dort gibts 
unteranderem auch fertige module mit serieller schnittstelle mit rs232 
oder ttl pegel der preis beträgt 9USD (US Dollar)
http://www.hoperf.cn/pdf/HM-TR_EN.pdf

und für das Transivermodul 2,5USD... (leider sind die Versandkosten mit 
33USD recht hoch)

Danke Benediktfür deinen beispiel code!


von dennis (Gast)


Lesenswert?

...das ist genau das was ich suche...

klasse.

d.

von dennis (Gast)


Lesenswert?

gäbe es nicht die möglichkeit die transceiver module mit hilfe eines 
kleine atmel controllers mit spi und rs232 schnittstelle in der form aus 
zu bauen!?

im grunde genommen müsste man ja nur den code von benedikt, plus ein 
wenig uart ansteuerung in einen kleinen atmel packen, ich würde mich 
auch sehr gern dafür zur verfügung stellen. ich habe mit den atmels 
allerdings noch nichts am hut gehabt.

wenn jemand interesse daran hat, mache ich sonst auch gern ein layout 
o.ä. inclsive sma stecker und mit einem aufsatz für das rfm12 modul.

welcher controller wäre dafür eurer meinung verwendbar, aus der atmel 
reihe!?
eigenschaften.

- 1 uart
- 1 spi schnittstelle ( getrennt nutzbar)
- möglich ein 8pin gehäuse!?
- interner oszillator!?
- baudrate: 19,2kbaud (oder einstellbar über ein paar switches - dann 
allerdings mehr pins nötig)
- kanal einstellbar machen!?
- konfigurationen für lange weiten mit wenig baudrate, mittlere 
entfernung, mittlere baudrate, wenig entfernung, hohe baudrate
- dip für receiver oder sender - so kann man die module flexibel 
einsetzten - vielleicht auch einen switch pin zum auswählen über 
mikrocontroller...
- sma anschluss für antenne


d.

von Andreas L. (andi84)


Lesenswert?

Ich hab mal ein Keypad+GLCD-Modul für Modellroboter gebaut. Das wollte 
ich sowieso mal redesignen. Da kommt wohl auch noch ein Funktransceiver 
mit drauf und bastel noch einen Software-MAC dazu - dann hat man alles, 
was das Herz begehrt auf einem Modul (GLCD, Nummerntastatur, 
Echtzeituhr, Fühler für die Umgebungstemperatur und Funk und ggf. noch 
eine Akkuladeschaltung (mit zusätzlichem Modul für die 
Leistungselektronik)).Mal sehen, was draus wird.

von dennis (Gast)


Lesenswert?

wie ich gerade sehe ist auf den modulen von:

http://www.hoperf.cn/pdf/HM-TR_EN.pdf

im grunde genommen nichts anderes enthalten, als das RFM12 mit einem 
zusätzlichen atmel und der option einen max 232 mit zu bestücken...

tja, ich habe meine module von pollin schon hier...

d.

von berd (Gast)


Lesenswert?

Guten Abend

Hat jemand jetzt schon eine Verbingung zwischen 2 Modulen hinbekommen? 
Also eine klassische Datenübertragung?

Grüsse

von Benedikt K. (benedikt)


Lesenswert?

Ja.

von Franz (Gast)


Lesenswert?

@  Christian Wimmer

Wo stehen denn da Preise? Stückzahl?
Beim Transceiver-Preis von $2.50 könnte man in einer Sammel-Bestellung 
bestimmt noch deutlich unter den Preis von Pollin kommen!?

von Franz (Gast)


Lesenswert?

Antenna Selection Guide for the
IA4220 and IA4320 ISM Band
FSK Transmitter/Receiver Chipset:

http://www.integration.com/docs/IA_ISM-AN1.pdf

"Modified Inverted (IFA) antennas, the
so-called “back IFA” antennas"

Enthält zahlreiche Antennenlayouts für die verschiedenen Frequenzen.


Ausführliche Beschreibung der Integration Module von:
CompoTRON Germany GmbH ist exklusiver Distributor der Firma Integration 
in Europa

www.compotron.de/daten/any/77_ISM_D.doc

von Tino W. (beeblomarv)


Lesenswert?

Ich habe es geschafft das das Modul etwas sendet, jedenfalls sehe ich 
auf dem Spektrum Analyzer etwas. Der Empfang funktioniert allerdings 
noch nicht, das Programm bleibt ewig in der void rf12_ready() Funktion 
hängen, der Sender sendet das Signal immer wieder aus doch ich kann 
nichts empfangen. Beim Sender habe ich den Code einfach so gelassen, 
beim Empfänger habe ich das Senden auskommentiert und nur noch das 
Empfangen drin.
Wie hast du es denn hinbekommen das du etwas empfängst?

von Benedikt K. (benedikt)


Lesenswert?

Schau dir mal meinen Code an, der sollte funktionieren.
Teilweise musst ich schon ein wenig mit den einzelnen Bits spielen, bis 
alles lief.

von Tino W. (beeblomarv)


Lesenswert?

Den Code hab ich ja verwendet, und wie gesagt, das senden scheint zu 
funktionieren ich jetzt nur ein problem beim Empfang der uC bleibt in 
der Funktion rf12_ready() ewig hängen.

von 433MHz-Frager (Gast)


Lesenswert?

Mal was ganz anderes:
Dauern Bestellungen bei Pollin immer so lange ?
Ich habe vor fünf Tagen im Online-Shop die Module bestellt aber nur eine 
Zitat:
"Diese E-Mail ist keine verbindliche Auftragsbestätigung, sondern dient 
nur der Bestätigung des Eingangs Ihrer Bestellung. Eine Ausführung des 
Auftrages behalten wir uns im Rahmen unserer Liefermöglichkeiten vor."
erhalten :-/
Sollte ich da mal telefonisch nachhaken oder ist das bei Pollin so ?
Sorry ist das erste mal das ich dort was bestelle ;-)
Für Hinweise deswegen dankbar ;-)

von Knut B. (Firma: TravelRec.) (travelrec) Benutzerseite


Lesenswert?

Unsere Lieferung hat gerade 4 Werktage gedauert.

von Sven S. (Gast)


Lesenswert?

@dennis

Ich wären an so einem Layout interressiert, wäre cool wenn du mal eins 
machen könntest.

Also controller würd ich nen Atmega48 oder 88 nehmen (wenn der code ein 
bischen grösser wird) in tqfp Bauform. Ein Attiny (8 Beinchen) wir dann 
doch eher umständlich da der nur 1 Universal Serial Interface hat. Der 
Atmega hat ein spi und ein uart was die sache doch vereinfacht.

Interner RC Taktgeber und uart verträt sich sowiso nicht.

gruss Sven

von Benedikt K. (benedikt)


Lesenswert?

@Tino
Es scheint so, als wenn der Empfänger keine Daten bekommt. Ich habe es 
eben nochmal ausprobiert: Bei mir funktioniert der Code: Einmal senden 
auskommentiert, einmal empfangen.
Hast du die Taktfrequenzeinstellungen enstprechend angepasst und nFFS 
Pin auf high ?


Meine Bestellung der Module hat etwa 1,5 Wochen gedauert (es war 
allerdings über Ostern, Dienstags nach Ostern ging das Paket sofort 
raus.)
Bei mir ist es auch so, dass es generell 2 Tage bei einem Pollin Paket 
dauert, bis es ankommt. Also keine Angst: es kommt noch.

von Tino W. (beeblomarv)


Lesenswert?

Ich habe den Code so angepasst:
- Den Quarztakt auf #define F_CPU 7372800UL
- Am Sender das Empfangen auskommentiert
- Am Empfänger das Senden auskommentiert
- Ich verwende zwei ATMEGA32
- nFFS liegt über einen 4,7k Widerstand auf high

Senden geht an beiden Modulen, empfangen an keinem von beiden.

von Christian Wimmer (Gast)


Lesenswert?

Die Preise hab ich erfahren, als ich versucht habe ob man von denen 
vielleicht Samples erhält, falls jemand die Preise braucht schickt mir 
einfach eine mail. Die Bezahlung erfolgt über PayPal und die 
Versandkosten sind ca 33 USD. Wieviel noch an Zoll und Wechselgebüren 
dazu kommt weis ich noch nicht aber in einer Woche kann ich euch mehr 
dazu sagen... Der kaufmännisch (teilweise auch technische) Support ist 
klasse und ich hab (wenn ich innerhalb der "Geschäftszeiten" also in der 
Früh schrieb) nie lange auf eine Antwort warten müssen.


Könntet Ihr eure Schaltpläne oder Layouts vielleicht hier oder in nem 
neuen Thread veröffentlichen? Hat schon jemand das Layout von den 
PCB-Antennen von http://www.integration.com/ ausprobiert? Bringen die 
eine bessere Qualität als die Drahtantenne?

von Benedikt K. (benedikt)


Lesenswert?

Ich hatte heute früh überlegt mir mal diese Back IFA Antenne zu ätzen, 
aber:
- Ich finde nirgends die Abmessungen für 433MHz
- Man muss die Antennenanpassung vom Modul ablöten. Ich hatte keine Lust 
mein Modul zu zerstören.

von Manuel S. (thymythos) Benutzerseite


Lesenswert?

Warum nehmt ihr nicht den Takt von dem Modul für den Atmel? Das bietet 
sich doch an. Nur mal so als Tipp an die Layouter ;)

von Hagen R. (hagen)


Lesenswert?

Auf meinem Board habe ich das so geroutet. Ich werde den Takt 
auspropieren auch wenn im Errata des IA4320 davon abgeraten wird. Die 
Hoffnung besteht ja das es sich um einen  IA4321 Clone handelt.

Gruß Hagen

von Hagen R. (hagen)


Lesenswert?

@Benedikt:

normale 1/4 Antennen bringen nach der großen Dipol-Schleifen Antenne die 
beste Leistung. Wenn alles bei mir läuft werde ich wohl eine 
Helixantenne benutzen.

Gruß Hagen

von Franz (Gast)


Lesenswert?

@ Christian Wimmer
Danke. Bin gespannt.

von Jadeclaw D. (jadeclaw)


Lesenswert?

Christian Wimmer wrote:
> Hat schon jemand das Layout von den PCB-Antennen von
> http://www.integration.com/ ausprobiert? Bringen die
> eine bessere Qualität als die Drahtantenne?
Nein.
1. Platinenmaterial hat grundsätzlich Verluste, die die Güte der Antenne 
beeinträchtigen. Durch den Einsatz von Teflon-Leiterplatten könnte man 
das  verhindern, eine Drahtschleife oder Wendelantenne im 
Kunststoff-Gehäuse ist da sicherlich der deutlich geringere Aufwand. 
Vorallem kostenmässig.

2. Platinenantennen machen nur Sinn, wenn möglichst klein gebaut werden 
soll, damit ist die Antenne aber sehr dicht an der restlichen Elektrik 
dran, ein Teil der Sendeenergie geht dadurch schlicht nach Gerätemasse 
weg. Das Layout ist daher als solches kritisch und ändert sich mit dem 
verwendeten Platinenmaterial.

Die technisch beste Lösung ist eine 1/4-Wellen-Groundplane, als 
zweitbeste Lösung nehme man eine sauber in Resonanz abgestimmte 
Wendelantenne. Man kann hier dann auch gleich versilberten Draht nehmen, 
bei einer Platinenantenne müsste man die Leiterplatte versilbern, um die 
Verluste etwas zu reduzieren.

Gruss
Jadeclaw.

von Benedikt K. (benedikt)


Lesenswert?

@jadeclaw und an alle anderen HF Spezialisten:

Wie ist das eigentlich, eine 1/4 Lambda Antenne braucht ja theoretisch 
eine unendlich große Grundplatte. Das Modul ist aber winzig klein, sogar 
kleiner als 1/4 Lambda.

Vielleicht könnte mal jemand erklären, was man am besten für eine 
Antenne an dieses Modul bauen könnte (also quasi eine kleine 
Bauanleitung), und zwar für folgende Fälle:
- Möglichst hohe Reichweite (d.h. kleine Richtantenne, oder zumindest 
mal eine die max 180° und nicht 360° wie es eine 1/4 Lambda Antenne 
macht, abdeckt).
- Möglichst klein (für den Einbau in ein Gehäuse)
- Möglichst einfach.

von jack (Gast)


Lesenswert?


von Lai (Gast)


Lesenswert?

Als richtantenne könnte man eine HB9CV nehmen
http://home.worldonline.nl/~moertje/jota/hb9-70cm.jpg

Gewinn  5    dBD
Länge   337   mm
Breite   90   mm

73

von Sven S. (Gast)


Lesenswert?

Hallo zusammen,

wie wärs denn mal mit ner Quad Antenne oder bi Quad
http://www.vallstedt-networks.de/?Fotogalerien/quad2

wär bei 433mhz dann aber nicht mehr ganz so klein.

gruss sven

von Hagen R. (hagen)


Angehängte Dateien:

Lesenswert?

Dipol bzw. Schlaufenantenne soll bei 433MHz das beste Resultat liefern. 
Also 70 cm Draht als Schlaufe 32cm breit, an den Kanten 3 cm und unten 
in der Mitte die beiden Anschlüsse an das RFM12 Modul. Allerdings muß 
man die Antennenanpassung auf dem Modul auslöten ;(

Deshalb wird es wohl das Einfachste sein einen 16.5 bis 15.5 langen 
Draht senkrecht anzulöten. Der Draht wird dann Stück für Stück gekürzt 
bis Resonanz entsteht.

Will man das verkürzen (kleinere Bauform) dann kann man eine 
Wendel-/Helixantenne benutzen. Das ist im Grunde die Drahtantenne als 
Luftspule. Allerdings ist deren Leistung schon schlechter und ich habe 
bisher im WEB keine konkreten Berechnungsformeln dafür gefunden.

Im Attachment gibts ein Bespiel für so eine Wendelantenne.

Gruß Hagen

von Benedikt K. (benedikt)


Lesenswert?

Hagen Re wrote:
> Deshalb wird es wohl das Einfachste sein einen 16.5 bis 15.5 langen
> Draht senkrecht anzulöten. Der Draht wird dann Stück für Stück gekürzt
> bis Resonanz entsteht.

Wodurch kommt eigentlich die Länge von 15,5cm zustande ?
c / 433MHz = 70cm -> 17,5cm

Bei der Schlaufenantenne müsste man also einfach die komplette Anpassung 
entfernen, die Drahtschlaufe anlöten, und in deren Mitte eine Anzapfung 
an die 5V legen, da es eine Gegentaktendstufe ist ?

von Lai (Gast)


Lesenswert?

ich würde sagen die 16.5 bis 15.5 cm sind die wegen der
Impedanzanpassung auf die 50 Ohm
Weiters ergibt sich noch der Verkürzungsfaktor von 0,96 bei der
Verwendung von Luft als Dielektrikum (im gegensatz zu Vakuum mit 1)

73

von hansjörg (Gast)


Lesenswert?

ich würd eine triple-leg aufbauen.

btw:
oha, verabschiedungen mit 73' .. da hamwer funker dabei :)

von Hagen R. (hagen)


Lesenswert?

@Benedikt:

ich bin genauso unbeleckt wie du in diesem Falle. Habe aber bei so 
einigen Funkmodulherstellern in deren AppNotes für 433MHz gesucht und 
einiges gefunden.


1.) Schlaufenantenne, Gesamtlänge 70cm, 32cm Breite, 3cm Höhe, im 
unteren Zweig zwei Anschlüsse direkt an das Modul. Keine Mittenanzapfung 
oder so und man sollte sie nicht als Rundantenne bauen (also ein Ring 
mit 70cm Umfang). Ich weiß nicht so recht ob die Bezeichnung "Dipol" 
noch richtig ist, früher hatte man das so genannt.

2.) Whip-Antenne, einfacher Draht senkrecht: sollte zwischen 15.5 und 
17.5 cm maximal lang sein. Meistens werden 16.5cm empfohlen. Es gibt wie 
es Lai schon sagte einen Verkürzungsfaktor, deswegen fast nie 17.5 cm. 
Die Groundplane wird manchmal als wichtig und manchmal als unwichtiger 
beschrieben. Eine "echte" Groundplane gibts bei solchen Modulen sowieso 
nie. Expermimentell wird man mit 17.5 cm anfangen und schrittweise die 
Antenne solange kürzen bis die optimale Leistung erzielt wird. Das 
stelle ich mir mit Hobby-Equipment ziemlich schwierig vor, scheint aber 
schon praktisch durchgeführt worden zu sein. Also Antenne kürzen, 
Reichweite direkt ermitteln und Vorgang wiederholen. Naja, da würde ich 
gleich mit 16.5cm zufrieden sein ;)

3.) Wendel/Helix Antennen: darüber habe ich wenig konkrete Informationen 
gefunden. Interessant ist das das Material für diese Wendel wohl wichtig 
ist. Oft wird Silber erwähnt. Ich habe 2-3 fertige Dimensionierungen für 
433MHz gefunden (siehe oben im PDF) und damit werde ich wohl auch 
arbeiten.
Die Helix hat das beste "Preis-Leistungs-Platz-Hobby" Verhältnis.

4.) Plantinenantennen: da findet man einige konkrete Beispiele bei den 
einschlägigen Herstellern sammt Dimensionierung der Impedanzanpassung. 
Aus meiner Sicht irrelevant da diese Art der Antennen meistens nicht 
weniger Platz als eine Wendelantenne verbrauchen dafür aber exakter und 
besser abgestimmt sein müssen. Man kann also mehr falsch machen und 
erreicht längst nicht die Leistung einer Wendel/Whip Antenne. Zudem muß 
man sehr wahrscheinlich die RFM12 Platine umlöten und zusätzliche 
Imedanzanpassungen machen.

5.) das Modul auf 900Mhz umbauen. Dies wäre noch die interesanteste 
Alternative wenn es zulässig wäre. Von den Meßergebnisse beim IA4320 
ausgehend dürfte das die beste Leistung und kleinste Antennengröße 
abgeben.

Gruß Hagen

von Benedikt K. (benedikt)


Lesenswert?

Hagen Re wrote:
> 1.) Schlaufenantenne, Gesamtlänge 70cm, 32cm Breite, 3cm Höhe, im
> unteren Zweig zwei Anschlüsse direkt an das Modul. Keine Mittenanzapfung
> oder so und man sollte sie nicht als Rundantenne bauen (also ein Ring
> mit 70cm Umfang). Ich weiß nicht so recht ob die Bezeichnung "Dipol"
> noch richtig ist, früher hatte man das so genannt.

Bei dem Sendemodul handelt es ich aber um Open Collector Ausgänge, wenn 
ich das richtig gesehen habe (auf Seite 5 im RF02 Datenblatt ist genau 
solch eine Antenne abgebildet), daher die Mittelanzapfung.

Die Helixantenne wird bei billigen Sendern meist auch aus normalem 
Kupferdraht gemacht. Wie gut die dann ist, weiß ich nicht.
Ich vermute, diese hat auch eine andere Impedanz als die normale 
Lambda/4 Antenne: Ich habe einen Sender bei dem ich die orginale 
Helixantenne durch ein 16cm Drahtstück ersetzt habe, mit dem Ergebnis, 
dass die Reichweite schlechter wurde.

von Knut B. (Firma: TravelRec.) (travelrec) Benutzerseite


Lesenswert?

Hallo,

´tschuldigung, daß ich nachfrage: bei einer Helix muß der Draht, bevor 
er gewendelt wird, wie lang sein? Lambda oder Lambda/2 oder nichts von 
dem?

von Lai (Gast)


Lesenswert?

Das was ihr als Helix bezeichnet ist eigentlich eine Spulenantenne
http://de.wikipedia.org/wiki/Gummiwurst

Eine Helixantenne ist eine Richtantenne mit einer Zirkularenpolarisation
http://de.wikipedia.org/wiki/Wendelantenne
Eine Helixantenne ist für 70cm ein ganz schön großes Ding:
http://www.jrmiller.demon.co.uk/products/hlx70.html

73

von Andreas L. (andi84)


Lesenswert?

Wenn ich mir die Beschreibung auf der Herstellerseite ansehe, habe ich 
irgendwie das Gefühl, dass die Module von Haus aus auch 868 MHz können 
sollten. Müsste man mal versuchen, das einzustellen.

von Benedikt K. (benedikt)


Lesenswert?

Ja, die Module können alle 315, 433, 868 und 915MHz.
Man muss dazu lediglich 3 Kondensatoren und 4 Spulen austauschen.
Oder die Antennenanpassung entfernen und direkt eine entsprechende 
Antenne anschließen.

von Thomas V. (thomas_v)


Angehängte Dateien:

Lesenswert?

Hallo zusammen,

wollte auch mal wieder was beitragen - im Anhang eine Eagle-Lib für das 
RFM12-Modul. Vielleicht kann sie ja irgendwer gebrauchen ;-)

Gruß, Thomas

PS: Hat vielleicht irgendwer schon ein Programm zum Bidirektionalen 
Senden/Empfangen geschrieben (mit CRC und Rückmeldung zum erfolgreichen 
Empfang der Daten?

von 433MHz-Frage (Gast)


Lesenswert?

Hi,
gerade sind meine Module von Pollin gekommen ;-)
Die sind ja kleiner als gedacht :-P
Nun zu meiner Frage, wie habt Ihr die mit dem µC verbunden ?
Ich wollte eigentlich zwei Stiftleisten setzen und das Modul dazwischen 
schieben, sozusagen als Sockelersatz ;-)
Allerdings Frage ich mich wo ich solche Stiftleisten bekomme, denn das 
ist weder 1,27 noch 2,54 Raster :-/
Muß ich da jetzt im Layout einzelne Stifte setzen ?
Danke für jeden Tipp ;-)

von Benedikt K. (benedikt)


Lesenswert?

Das sind 2mm. Gibt es glaube ich bei Reichelt.
Da aber nur 6 Drähte reichen, kann man die auch über Kabel anschließen.

von Uwe .. (uwegw)


Lesenswert?

Ich hab das Modul auf Lochraster gepackt: Kupferseite nach oben, normale 
2,54er Stiftleisten am Rand einlöten, Mitte mit Klebeband isolieren, 
Modul mit dünnen Drähten an die Stiftleisten anschließen.
http://img158.imageshack.us/img158/5593/rfm12bondingxe3.jpg

Das Schreiben der Einstellungen in das Modul scheint mit dem Programm 
von Benedikt K. zu funktionieren, ich kann z.B. die Taktleitung 
einstellen. Aber  ich bekam erst keine Daten auf SDO zurück, daher blieb 
die Senderoutine auch immer bei Warten auf SDO hängen. Ich hab dann 
lange rumprobiert, und mit einem 10k Pullup an nFFS läuft es nun 
einwandfrei... da reicht wohl der interne 133k Pullup nicht aus.



von Benedikt K. (benedikt)


Lesenswert?

Uwe ... wrote:
> Ich hab dann
> lange rumprobiert, und mit einem 10k Pullup an nFFS läuft es nun
> einwandfrei... da reicht wohl der interne 133k Pullup nicht aus.

Ich zitiere mich mal selber (aus dem Thread in der Codesammlung):
Benedikt K. wrote:
> Der FSK/DATA/nFFS Pin muss über einen Pullup (z.B. 1-10k) an VDD gelegt
> werden, damit alles richtig funktioniert.

Ich hatte diese Erfahrung nämlich auch schon gemacht, dass ohne den 
Pullup nichts geht, und es daher extra dazugeschrieben...

von Andreas S. (elk)


Lesenswert?

Hi!
Ich hätte da mal eine Zwischenfrage: nach kurzem Durchschauen der 
Datenblätter bin ich mir nicht sicher, ob man die aktuell empfangene 
Signalstärke vom Controller irgendwie auslesen kann. Also nicht nur 
gut/schlecht, sondern einen möglichst genau aufgelösten Wert. Zur Not 
ginge es wohl auch mit dem analogen Signalstärkeausgang, aber das wird 
vermutlich nicht allzu genau sein.
MfG
Andreas

von Benedikt K. (benedikt)


Lesenswert?

Digital scheint das nicht zu gehen, sondern nur an einem Kondensator auf 
der Platine als Spannung (0,3-1V).

von Andreas S. (elk)


Lesenswert?

aha...mit dem ADC des AVR wäre das dann ja auch auswertbar. Ist nur die 
Frage, wie sich die Ausgangsspannung verhält. Ich würde gerne auf diesem 
Wege die Entfernung des Senders vom Empfänger messen oder zumindest 
einschätzen. Oder ist das aussichtslos?
MfG
Andreas

von Benedikt K. (benedikt)


Lesenswert?

Schau mal ins Datenblatt, da ist der Zusammenhang erklärt.

von Gast (Gast)


Lesenswert?

Hallo Benedikt,

Du scheinst ja schon sehr weit mit dem Modul gekommen zu sein.
Meine sind noch unterwegs. ;-}

Hast Du schonmal probiert, wie sich der aus den empfangenen Signalen
wiedergewonnene Takt bei ausgeschaltetem FIFO in abhängigkeit vom
Modulationsschema verhält? Also etwa NRZ oder Manchester oder ähnliches.

Mir ist nur der Gedanke gekommen, das die Taktrückgewinnung ja irgendwie
mal Flanken haben muss. Dann weiter was für ein Verfahren wohl verwendet
wird.
Konnte leider weder bei Hope noch bei Integration fündig werden.

Gruss
Michael

von Benedikt K. (benedikt)


Lesenswert?

Ich arbeite eigentlich nur mit dem FIFO, da dies einiges an CPU Leistung 
spart, und die Daten schon richtig schön angeordnet sind.
Wieviele 0en oder 1en man an einem Stück übertragen kann, ohne dass die 
Synchronisation verloren geht, habe ich noch nicht ausprobiert. Bisher 
habe ich nur Testdaten (z.B. die Zahlen von 0-255, oder Texte 
übertragen). Dies ging aber immer problemlos, wenn Fehler drin waren, 
dann waren einzelne Bits gekippt, aber ich hatte den Fall noch nie, dass 
Bits sich verschoben haben.
Meiner Meinung nach, braucht man sowas wie Manchester nicht, solange man 
nicht sehr viele 0en oder 1en am Stück überträgt.

Was bestimmt auch gut funktioniert: Der synchrone UART Modus. Aufgrund 
von Start/Stopbit sind in jedem Byte auf jedenfall Pegeländerungen 
vorhanden, und der Overhead beträgt nur 20% (im Gegensatz zu den 100% 
bei Manchester). Dazu müsse man Sender und Empfänger auf den Betrieb 
ohne FIFO einstellen, den AVR auf den UART im synchronen Modus, Slave. 
Der Takt ist dann jeweils der Bittakt vom Modul.

von Gast (Gast)


Lesenswert?

Hallo Benedikt,

aha. Danke.
Darf ich noch fragen was für eine Antenne Du benutzt?

Gruss
Michael

von Benedikt K. (benedikt)


Lesenswert?

Erstmal ein 16cm Stück Draht. Was ich später verwende, weiß ich nicht.

von Uwe .. (uwegw)


Lesenswert?

So, meine Module unterhalten sich! Reichweite etwa 100m, aus dem Haus 
raus und dann fast freie Sicht die Straße entlang. Aus dem Haus raus und 
durch das große Nachbarhaus durch bleiben noch etwa 80m.

Vielen Dank an Benedikt K. für den Code!

von Uhu U. (uhu)


Lesenswert?

@ Benedikt K.:
> Was bestimmt auch gut funktioniert: Der synchrone UART Modus. Aufgrund
> von Start/Stopbit sind in jedem Byte auf jedenfall Pegeländerungen
> vorhanden

Synchrone serielle Übertragung funktioniert ohne Start/Stopbits. Für ein 
Byte werden ganau 8 Bits übertragen. Wenn keine Nutzdaten zu übertragen 
sind, wird ein spezielles Zeichen - SYNC - gesendet, um die 
Synchronisation zu erhalten.

von Benedikt K. (benedikt)


Lesenswert?

Woher hast du diese Informationen ? Ich habe den synchronene Modus noch 
nie verwendet, aber da es im Datenblatt keine genauere Beschreibung des 
synchronen Modus gibt, gehe ich davon aus, dass diese Modus genauso 
funktioniert wie der asynchrone, nur dass es eben noch einen Takt gibt. 
Ansonsten würde doch bestimmt beim Start und Stopbit dabei stehen, dass 
diese Einstellungen nur im asynchronen Modus gültig sind.

von Uhu U. (uhu)


Lesenswert?

@ Benedikt K.

Aus einem Datenblatt von einem Z80-SIO-Baustein vor zig Jahren. Der Witz 
von Synchronübertragung ist, daß die Netto-Datenrate höher ist, als bei 
Asynchronübertagung - sonst bräuchte man sie nicht.

von Benedikt K. (benedikt)


Lesenswert?

Ich denke nicht, dass das beim AVR genauso ist:
Ich habe mal schnell den Z80-SIO überflogen:
Die ankommenden Daten werden mit einem einstellbaren Sync Word 
verglichen. Das ist beim AVR nicht möglich, also muss der Modus anderst 
funktionieren.

von Andreas L. (andi84)


Angehängte Dateien:

Lesenswert?

Der AVR-USART kann im synchronen Modus als SPI-ähnliche Schnittstelle 
genutzt werden. Der Takt liegt dann auf einem weiteren PIN an.

von Andreas L. (andi84)


Lesenswert?

Aus dem Datenblatt des ATMega162
[quote]
When synchronous mode is used (UMSEL = 1), the XCK pin will be used as 
either clock input (Slave) or clock output (Master). The dependency 
between the clock edges and data sampling or data change is the same. 
The basic principle is that data input (on RxD) is sampled at the 
opposite XCK clock edge of the edge the data output (TxD) is changed.
[/quote]

von Benedikt K. (benedikt)


Lesenswert?

Genau. Wenn man sich jetzt dieses Diagramm anschaut, dann arbeitet der 
UART im synchronen Master Modus genau wie im Asynchronen Modus, nur dass 
zusätzlich noch der Bittakt an XCK ausgegeben wird.
Wenn das nicht so wäre, dann würde der SPI Modus des UART beim mega48 
keinen Sinn machen.

von Bingo (Gast)


Lesenswert?

Ich glaube die chip ist einer 4420 nicht 4421 , die spannung passt mit 
4420

http://www.integration.com/products/wireless_selector.shtml

Ich kaufe vielleicht ein paar RF12 module von Pollin , aber
ich wollte gern mit im einer sammelbestellung von HOPE , ob ich darf.


mfg
Bingo aus Dänemark
mikrocontroller.AT.luna.kyed.com

von Uhu U. (uhu)


Lesenswert?

Hier ist beschrieben, wie Synchronübertragung funktioniert:
http://einstein.informatik.uni-oldenburg.de/rechnernetze/synchron1.htm

Start- und Stopbits sind nicht notwendig, da die der zeichenweisen 
Synchronisation dienen. Die Übertragungsrate ist also deutlich höher bei 
gleichem Takt, als bei Asynchronübertragung.

Es würde mich doch wundern, wenn der AVR-USART sich da anders verhielte.

Siehe auch http://de.wikipedia.org/wiki/Usart

von Benedikt K. (benedikt)


Lesenswert?

Ich denke nicht, dass der AVR die ganzen Synchronisierungssignale 
erzeugt. Das würde doch eine Bytweise Übertragung garnicht erlauben, 
oder ?
Ich probiere er heute abend einfach mal aus, dann brauchen wir nicht 
länger rätseln.

von 433MHz-Frager (Gast)


Lesenswert?

Hallo,
ich wollte mal fragen wie das mit dem Sendercode aussieht, wenn ich 
nicht den IRQ vom Modul abwarte, sondern einfach in einem Timer-IRQ ca. 
66ms warte ?
Den Timer brauche ich wegen Tastenentprellung sowieso ;-)
Mit 66ms wäre ich doch sicherlich auf der sicheren Seite ?
Oder ist der Funk-IRQ zwingend notwendig ?
Danke ;-)
Zum Verständnis ich würde Benedikts Code dann so abwandeln:
1
void rf02_txdata(unsigned char *data, unsigned char number)
2
{  unsigned char i,j,wert;
3
  wert=0xC6;
4
  cbi(RF_PORT, CS);
5
  for (i=0; i<8; i++)
6
  {  if (wert&128)
7
      sbi(RF_PORT, SDI);
8
    else
9
      cbi(RF_PORT, SDI);
10
    sbi(RF_PORT, SCK);
11
    wert<<=1;
12
    _delay_us(0.2);
13
    cbi(RF_PORT, SCK);
14
  }
15
    rf02_shiftout(0xAA);
16
    rf02_shiftout(0xAA);
17
    rf02_shiftout(0xAA);
18
    rf02_shiftout(0x2D);
19
    rf02_shiftout(0xD4);
20
  for (i=0; i<number; i++)
21
    rf02_shiftout(*data++);
22
  sbi(RF_PORT, CS);
23
}
Und den TX-Off dann in die Timer-IRQ Routine verlegen ;-)
Klappt das oder habe ich da einen Denkfehler drin ?

von Hagen R. (hagen)


Lesenswert?

>Ich glaube die chip ist einer 4420 nicht 4421 , die spannung passt mit
>4420

Und ich meine es ist ein 4421. Die Spannungsangaben passen nämlich exakt 
überein, einfach mal im Datenblatt nach absolute Rating schauen.
Ein zweites Indiz ist das Kommando "Synchron Pattern Command" wird 
nämlich auch im RF12 Datenblatt beschrieben. Dieses Kommando wird vom 
4420 aber nicht unterstützt. Das gleiche gilt für das "PLL Setting 
Command"

Gruß Hagen

von Benedikt K. (benedikt)


Angehängte Dateien:

Lesenswert?

Hier mal das Timing des synchronen UART modes:
Genau wie ich vermutet hatte, funktioniert der UART wie im asynchronen 
Modus, nur dass zusätzlich eben der Bittakt übertragen wird. Start und 
Stop Bit sind also vorhanden !
Übertragen habe ich 0xAA und 0xFF. Beim zweiten sieht man daher nur das 
Startbit.
Interessant ist, dass der Takt dauerhaft vorhanden ist. Im Slave Mode 
sollte dies kein Problem sein, wenn man das Funkmodul einschaltet ehe 
man den UART einschaltet.
Im Prinzip kann man den AVR UART also auch für das Funkmodul verwenden, 
wenn man dieses ohne FIFO verwendet.

von Uhu U. (uhu)


Lesenswert?

Woraus schließt Du das?

Wie war den der USART eingestellt? Anzahl Startbits? Oder kann man das 
beim AVR nicht einstellen?

Wie erklärst Du Dir die große Lücke zwischen dem 0xAA und dem 0xFF?

Leider ist Zeitbasis nicht sehr gut an die Taktfrequenz angepaßt - da 
kann man eigentlich nur schätzen, was passiert.

von Benedikt K. (benedikt)


Lesenswert?

Uhu Uhuhu wrote:
> Woraus schließt Du das?

Aus dem Datenblatt, meinen Vermutungen und dem Timing: Es passt alles 
zueinander.

> Wie war den der USART eingestellt? Anzahl Startbits? Oder kann man das
> beim AVR nicht einstellen?

Der USART wurde einfach eingeschaltet, Standardeinstellungen, also 8N1, 
nur zusätzlich noch das synchron-Modus Bit gesetzt.

> Wie erklärst Du Dir die große Lücke zwischen dem 0xAA und dem 0xFF?

Ich habe eine Pause eingebaut, damit man die einzelnen Bytes besser 
unterscheiden kann. Nur so kann man erkennen, dass der Takt immer läuft. 
Wenn ich 0xAA dauerhaft sende, dann sehe ich auf der Datenleitung die 
halbe Frequenz wie auf der Taktleitung, da die Bits immer abwechselnd 1 
und 0 sind.

Glaube es mir doch einfach: Der synchrone Modus überträgt die selbe 
Daten wie der asynchrone Modus, nur dass eben zusätzlich noch der Takt 
übertragen wird.
Wenn man nur die Daten abgreifen würde, könnte man diese problemlos mit 
jedem anderen asynchronen UART empfangen.

von Uhu U. (uhu)


Lesenswert?

> Der synchrone Modus überträgt die selbe Daten wie der asynchrone Modus

Na ja, das sollte man auch erwarten.

Allerdings frage ich mich, was der Synchronmodus mit Start-/Stopbits 
eigentlich für einen Nutzen bringt.

Ich würde jeweils 1000 Zeichen synchron und asynchron und ohne Pausen 
ausgeben und die Zeit messen.

von Benedikt K. (benedikt)


Lesenswert?

Uhu Uhuhu wrote:

> Allerdings frage ich mich, was der Synchronmodus mit Start-/Stopbits
> eigentlich für einen Nutzen bringt.

Sie signalisieren Beginn und Ende eines Bytes...
Ja, eigentlich ist zumindest das Stopbit überflüssig, aber anscheinend 
ist der synchrone Modus nur ein Zusatzfeature, dass sich leicht einbauen 
lies: Daszu musste lediglich der Takt auf extrem umschaltbar gemacht 
werden.
Da normalerweise der 16x Takt benötigt wird, um das asynchrone Signal zu 
synchronisieren, hat man so die Möglichkeit mit dem 4x Takt auszukommen. 
Immerhin ist damit die 4x Geschwindigkeit notwendig. Und noch ein 
Vorteil hat das ganze: Man braucht keinen Baudratenquarz, man kann jede 
noch so krumme Baudrate verwenden.

von Oliver A. (oli82)


Lesenswert?

Hallo!

Bin recht neu hier und habe ein paar Fragen zu diesem Funkmodul!

Ist dieses Funkmodul dazu geeignet, serielle Daten per Funk zu 
übertragen?
Ich möchte damit nämlich eine Relaiskarte betreiben.

Was benötigt man noch, außer des Moduls um das zu realisieren?

Thx, Oli

von Benedikt K. (benedikt)


Lesenswert?

Oliver Appel wrote:
> Ist dieses Funkmodul dazu geeignet, serielle Daten per Funk zu
> übertragen?

Ja

> Was benötigt man noch, außer des Moduls um das zu realisieren?

Einen Mikrocontroller der das Modul ansteuert.

von Oliver A. (oli82)


Lesenswert?

Okay. Dann werd ich mich mal mit der Thematik weiter beschäftigen und 
den Beitrag hier mal im Auge behalten.
Leider habe ich nicht besonders viel Ahnung von Controllern, dafür aber 
in C.

Danke für die Antwort

von Steffen H. (Firma: www.shotech.de) (mc_sho) Benutzerseite


Lesenswert?

ich finde die Module auch sehr interessant und habe heute mal Kontakt 
mit der Firma in China aufgenommen. Wie "Christian Wimmer " schon 
geschrieben hat kostet ein RFM12 2,50 USD. Die Versandkosten sind mit 50 
USD angegeben und eine Gebühr von 30 USD für Paybal wird auch noch 
verlangt. Mit den 30 USD kommt man da nicht hin. Die Lieferzeit liegt 
bei 2 bis 3 Wochen. Mit der richtigen Stückzahl bei einer Bestellung 
kann man mit allen Kosten einen Preis von 2,50 EUR bis 3,00 EUR 
erziehlen.

Gruss

Steffen

von Benedikt K. (benedikt)


Lesenswert?

Wenn ich die 2,5USD umrechne, sind das 2,3€ inkl Zoll und MwSt. Dazu 
kommen dann die 70€. Für die 2,5€ müsste man also mindestens 350Stk 
bestellen und für 3€ mindestens 100Stk wenn ich mich nicht verrechnet 
habe.

von jonny (Gast)


Angehängte Dateien:

Lesenswert?

Ab 7-8 Stück die man bei Pollin bestellt kann man auch in China anfangen 
zu Bestellen.

s. anhang

von Steffen H. (Firma: www.shotech.de) (mc_sho) Benutzerseite


Lesenswert?

@Benedikt:

fast richtig. die 70 EUR sind 70 USD. Sonst habe ich den gleichen Preis 
raus. Ich denke mal, das meine Bestellung noch diese Woche raus geht.

von Benedikt K. (benedikt)


Lesenswert?

@ jonny
Schon mal was von MwSt und Zoll gehört ???

Davon abgesehen, habe ich bei Pollin noch nie Nachnahme und 
Versandkosten bezahlt.

@Steffen H.
Ich hätte interesse an ein paar Modulen, sagen wir mal mindestens 10Stk.

von jonny (Gast)


Lesenswert?

ich? klar^^ mir ging es auch nicht um die stückzahl um bei 3 € zu landen 
sonderm um einen vergleich zwischen pollin und china. Zoll und MwSt muss 
bei meiner rechnung bei der Cina angba noch drauf das stimmt :)

jonny

p.s. ich änder das mal eben xD

von jonny (Gast)


Lesenswert?

>> Davon abgesehen, habe ich bei Pollin noch nie Nachnahme und
>> Versandkosten bezahlt.

mhh, ich leider immer :) naja vergiss meine rechnung -.-

von Thomas K. (thomas_k)


Lesenswert?

@Steffen H.
Ähm wie was? Du bestellst in China?

Wenn ja, wieso machst du denn keine Sammelbestellung? Das wäre schon 
seeehr interessant.

Je nach Preis könnte ich schon einige Stück brauchen (beim Preis von 
Pollin würde ich mir 4 oder 5 Stück bestellen, beim halben Preis 
natürlich doppelt so viel).

von Sven S. (Gast)


Lesenswert?

ich wäre auch mit 5 bis 10 dabei je nach preis.

gruss sven

von Oliver A. (oli82)


Lesenswert?

An ner Sammelbestellung hätte ich auch Interesse und außerdem führen die 
auch eine Version mit direkter RS232 Unterstützung ;)

von Steffen H. (Firma: www.shotech.de) (mc_sho) Benutzerseite


Lesenswert?

ja, ne Sammelbestellung könnte man daraus auch machen, denn ich habe in 
meinen Bekanntenkreis schon 63 Stück (868MHz) auf Vorbestellung. Ich 
dachte so an 150 Stück. Bei den 434 MHz würde ich 100 Stück bestellen.

von Funker (Gast)


Lesenswert?

Würde auch 20 Stück (868MHz, optional mit RS232?) ordern.

von Thomas K. (thomas_k)


Lesenswert?

Ich bilde mir ein mal wo gelesen zu haben, dass man in Österreich Geräte 
mit 868MHz nicht betreiben darf. Deswegen würde ich 434MHz bevorzugen.
Ansteuerung über RS232 gibt es auch? Also nur Daten rein und am anderen 
Modul wieder raus? Klingt ja auch nicht schlecht.

Steffen H.:
Bestellst du also so oder so 100 Stück von den 434 Mhz Modulen?
Dann könntest du die Module sobald du sie hast um einen fixen und 
gesicherten Preis verkaufen. Würd ich ja persönlich am besten finden.

von Steffen H. (Firma: www.shotech.de) (mc_sho) Benutzerseite


Lesenswert?

ja, ich gebe den Preis einfach weiter. Angefragt habe ich 434MHz und 
868MHz ohne die RS232 weil es bei diesen Modulen ein Problem mit der 
Einfuhr gibt. Die benötigen eine Zulassung. Ein Modul ohne Prozessor ( 
eigene Intelligenz ) sind einfach Bestückte Leiterplatten.

Gruss

Steffen

von Steffen H. (Firma: www.shotech.de) (mc_sho) Benutzerseite


Lesenswert?

@Thomas Kropf:
ja, ich bestelle so oder so 100Stk. RFM12-434MHz.

von Thomas K. (thomas_k)


Lesenswert?

Aha super!
Und das sind dann genau die ganz gleichen Module wie bei Pollin?
http://www.pollin.de/shop/shop.php?cf=detail.php&pg=NQ==&a=MDU5OTgxOTk=

von 433MHz-Frager (Gast)


Lesenswert?

@ Steffen H.:
Also für 5,- Euro für ein RFM12-Modul würde ich noch sechs Stück nehmen 
;-)
Bei 3,- Euro auch zehn :-P
Stellst Du dann die Module in den Markt hier oder gibst Du eine 
Kontaktadresse an ?

von Steffen H. (Firma: www.shotech.de) (mc_sho) Benutzerseite


Lesenswert?

ich werde im "Markt" Bescheid geben, wenn die Module eingetroffen sind. 
Dann kann sich jeder bei mir melden, der Interesse hat.
Der Preis wird so um die 2,50 EUR sein.

Gruss

Steffen

von Heinz (Gast)


Lesenswert?

interesse an 10 stück rmf12 434 MHz - falls Du eine Sammelbestellung 
machst, kannst Du ja einen neuen thread aufmachen, bzw. deine e-mail 
angeben, um die informationen in diesem thread nicht zu verdünnen..

von Andreas L. (andi84)


Lesenswert?

Hätte wohl so Interesse an 10 Modulen

von Thomas K. (thomas_k)


Lesenswert?

Also um 2,50 Euro nehm ich fix 10 stück rmf12 434 MHz!

Hoffentlich sind dann 100 Stück insgesamt nicht zu wenig!?

von Steffen H. (Firma: www.shotech.de) (mc_sho) Benutzerseite


Lesenswert?

habe jetzt im Markt einen neuen Thread aufgemacht um diesen Thread etwas 
zu entlasten.

@Thomas Kropf :
>Hoffentlich sind dann 100 Stück insgesamt nicht zu wenig!?
Das ist für mich erstmal ein Testkauf, denn die Firma kenne ich noch 
nicht. Die Vorfinanzierung ist nicht unerheblich.

Gruss

Steffen

von Heinz (Gast)


Lesenswert?

434 vs. 868

Wie unterscheiden sich eigentlich die beiden Bänder? Hat die größere 
Wellenlänge eine größere Reichweite?

868 ist in http://www.bundesnetzagentur.de/enid/a2.html nicht besonders 
ausdrücklich als ISM beschrieben, gute Quellen habe ich noch nicht 
gefunden.

Die Antenne wird damit aber kürzer..

Läßt sich mit den Modulen eigentlich auch analog funken, bzw. 
8Bit/8kHz/mono digital übertragen? Das wären dann allerdings 
64kbit/s..mhh.

von Oliver A. (oli82)


Lesenswert?

Ist das so ein großes Problem, das ihr 10 HM-TR433/232 für mich mit 
bestellt?

Sonst bräuchte ich nämlich ewig viel Hilfe, das mit dem RMF12 zu 
realisieren

von Manuel S. (thymythos) Benutzerseite


Lesenswert?

Ich würde vorschlagen mal im Wiki einen Artikel für ein einheitliches 
Basisboard mit AVR anzulegen...

von Marius S. (lupin) Benutzerseite


Lesenswert?

hat schonmal jemand versucht so ein modul per parallel port oder rs232 
port an den PC an zu schließen (ohne viel Zusatzbeschaltung dazwischen)?

von Manuel S. (thymythos) Benutzerseite


Lesenswert?

Hab mal versucht ein paar Dinge aus dem Thread hier zu sammeln: 
http://www.mikrocontroller.net/articles/AVR_RMF12

von Benedikt K. (benedikt)


Lesenswert?

Ich habe mir erlaubt das ganze mal ein wenig Informativer zu gestalten.

Frage zum Basisboard: Was soll das machen ?
Standalone RS232 <-> 433MHz <-> RS232 ? (bzw. I2C statt RS232.) Das 
ganze mit Fehlerkorrektur, Empfangsbestätigung usw ?
Falls ja, wer kennt sich mit Fehlerkorrektur aus ? Ich kann 
allerhöchstens eine Fehlererkennung schreiben.


von Steffen H. (Firma: www.shotech.de) (mc_sho) Benutzerseite


Lesenswert?

bei der  Fehlerkorrektur bin ich gerade. Die Möglichkeiten wie 
ECC,RS,FEC usw. machen die ganze Sache etwas langsam. Ich Denke, das ich 
ein Protokoll mit einer Prüfsumme ( z.B. aller 16 Bytes eine CRC16 ) 
fahren werde, wo ein beschätigter Block nochmal angefordert wird. Die 
Blocklänge kann man ja noch anpassen.

von Benedikt K. (benedikt)


Lesenswert?

Mein Erfahrungen waren bisher: Entweder kommen die Daten korrekt an, 
oder es kommt garnichts an. Allenfalls waren mal 1-2Bits pro 32Byte 
gekippt. Also eine einfache Fehlerkorrektur die ein paar wenige Bist 
wieder richten könnte, wäre nicht schlecht. (Falls sowas ohne viel 
Aufwand möglich ist, ich habe auf dem Gebiet leider absolut keine 
Ahnung.)

Das Problem bei dem Anfordern von Daten ist, dass der Empfänger etwa 1ms 
braucht um zwischen Senden/Empfangen umzuschalten (was aber noch nicht 
heißt, dass der Empfänger dann auch direkt die 100%ige Empfangsleistung 
hat). Das macht das ganze halt relativ langsam. Zusätzlich halt noch das 
Timeout, falls der Sender auch diese Aufforderung nicht bekommt und die 
Anforderung nochmal geschickt werden muss.

Die optimale Version würde sich automatisch an die 
Übertragungsbedingungen anpassen. Man müsste also beim Empfänger die 
Signalstärke abfragen (->ADC), und den Data Quality Detector und den 
Sender dann darüber informieren wie gut er ankommt. Der könnte dann die 
Datenrate oder die Sendeleistung anpassen. Oder aber die Frequenz 
wechseln.
Ich denke in anbetracht der Kosten für diese Module (und der baldigen 
Verbreitung) kann man da ein wenig Arbeit investieren um alles aus den 
Modulen herauszuholen.

von Steffen H. (Firma: www.shotech.de) (mc_sho) Benutzerseite


Lesenswert?

ja, wobei ich da noch einige Test dazu machen werde. Von anderen 
Funk-Transceivern kenne ich das so nicht.
Bei der billigsten Fehlerkorrektur könnte man ja jedes Bit 3 mal senden 
und die Mehrheit siegt. Ist mal ein Anfang.

von Bingo (Gast)


Lesenswert?

Wann ich meiner module kriegt , ich will diser probiere

Hamming 7,4
http://michael.dipperstein.com/hamming/index.html

Source
http://michael.dipperstein.com/hamming/hamming-0.2.zip

Hamming 12,8 sind mehr effektiv (overhead) , aber am einer 8-bit'er 
(AVR) ich glaube er ist langsamer (processing) , 7,4 passt im einer 8 
bit register.

/Bingo
Dänemark

von Manuel S. (thymythos) Benutzerseite


Lesenswert?

Benedikt K. wrote:
> Ich habe mir erlaubt das ganze mal ein wenig Informativer zu gestalten.

Gerne

> Frage zum Basisboard: Was soll das machen ?
> Standalone RS232 <-> 433MHz <-> RS232 ? (bzw. I2C statt RS232.) Das
> ganze mit Fehlerkorrektur, Empfangsbestätigung usw ?
> Falls ja, wer kennt sich mit Fehlerkorrektur aus ? Ich kann
> allerhöchstens eine Fehlererkennung schreiben.

Fehlerkorrektur auf jedenfall. Schnittstellen sind noch die Frage. Ich 
überlege ein multifunktionales Layout zu machen, dass man für RS232 <-> 
433Mhz, USB <-> 433Mhz und/oder Aufsteckplatine mit µC + 433Mhz nutzen 
kann. Den Teil den man nicht benötigt (12Mhz Quarz für USB, etc) kann 
man beim Bestücken dann einfach weglassen.

Damit könnte man günstig ein einheitliches kleines Board fertigen 
lassen, dass von viele Einsatzzwecke abdeckt.

Die Frage ist noch, welcher Atmel am besten geeignet ist und wie stark 
miniaturisiert das ausfallen darf, damit niemand überfordert ist beim 
Bestücken.

Mein Vorschlag wäre ein ATmega8 (alternativ ATmega48 - pinkompatibel) im 
TQFP32 Gehäuse. Den kann man mit Lötpaste und nem Heißluftfön 
aufbringen.

Die Platine wäre dann nicht wesentlich größer als das RFM12 Modul.

Andere Vorschläge?

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.