Datum: 28.03.2007 18:15
Hallo, ich habe beim stöbern bei Pollin dieses Funkmodul gefunden: http://www.pollin.de/shop/shop.php?cf=detail.php&a... 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
Datum: 28.03.2007 18:26
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)
Datum: 28.03.2007 18:31
cool danke, auf der Seite war ich auch schon^^ Leider muss ich mal wieder zum Augenarzt... xD mfg jonny
Datum: 01.04.2007 17:39
Hallo, weiß jemand, wie es da mit der Reichweite aussieht? Gruß, Werner
Datum: 01.04.2007 17:49
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 ;-)
Datum: 02.04.2007 00:07
Jonny: Wenn du das Modul erfolgreich in Betrieb genommen hast, dann gib uns doch mal ne Rückmeldung.
Datum: 02.04.2007 00:17
Das sieht ja wirklich gut aus, vor allem für den Preis.
Datum: 02.04.2007 01:06
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.
Datum: 02.04.2007 01:12
also der beitrag (1 über diesem) ist von mir hatte falschen namen drinn xD
Datum: 02.04.2007 14:37
..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.
Datum: 02.04.2007 18:40
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.
Datum: 02.04.2007 19:23
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.
Datum: 02.04.2007 23:46
>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)
Datum: 03.04.2007 00:18
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 :)
Datum: 03.04.2007 08:17
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.
Datum: 03.04.2007 10:58
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€ :)
Datum: 03.04.2007 13:10
ey saugeil, son ding kann ich optimal gebrauchen. danke mann. bestell mir nachher auch nochn paar. oa, pollin is so gut!
Datum: 03.04.2007 14:20
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 !!!
Datum: 03.04.2007 17:42
Ja das mit dem Kopierschutz tut mich mich das auch !!! Vielleicht kann ich den umgehen. Mal gucken ob's klappt. später mehr ...
Datum: 03.04.2007 19:15
es gibt nen Tool mit dem man den c&p Schutz bei pdfs entfernen kann aber keine ahnung wie das Teil hieß -> google
Datum: 03.04.2007 19:25
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...
Datum: 03.04.2007 19:41
So hier der komplette Code zum Atmel vom "programming guide". Falls die Zeilenumbrüche nicht hinhauen unter Windows -> mit Wordpad öffnen und neu speichern.
Datum: 04.04.2007 14:05
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) :)
Datum: 04.04.2007 23:31
hier habe ich gerade gesehen xD Funkplatine mit "Eval. Board" http://www.pollin.de/shop/shop.php?cf=detail.php&a...
Datum: 05.04.2007 08:29
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.)
Datum: 05.04.2007 10:33
@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
Datum: 05.04.2007 14:29
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...
Datum: 05.04.2007 14:30
Datum: 05.04.2007 14:45
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
Datum: 05.04.2007 15:27
Die Beispielcodes sind genau die Beispiele aus dem Datenblatt, mit genau denselben Fehlern.
Datum: 05.04.2007 17:22
Das hatte ich weiter oben geschrieben: Einmal ist 0x23 der Wert für 4800Baud, einmal 0x47. Da kann irgendwas nicht stimmen.
Datum: 05.04.2007 17:25
ok, wenn du "nur" das meinst ok... hörte sich so an, als würde das alles nicht funktionieren.... d.
Datum: 05.04.2007 17:41
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.
Datum: 13.04.2007 21:21
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.
Datum: 13.04.2007 21:42
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.
Datum: 13.04.2007 22:11
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
Datum: 13.04.2007 22:21
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
Datum: 13.04.2007 23:08
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.
Datum: 13.04.2007 23:33
>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.
Datum: 13.04.2007 23:42
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.
Datum: 13.04.2007 23:54
@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.
Datum: 14.04.2007 00:31
@Marc Gauger läuft ein´Sende- Empfängerbetrieb mit einer Boudrate X mit dem Code? Oder ist das Signal ev. von anderen Funkgeräten?
Datum: 14.04.2007 10:16
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
Datum: 14.04.2007 10:27
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.
Datum: 14.04.2007 10:48
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.
Datum: 14.04.2007 11:36
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
Datum: 14.04.2007 11:41
Wäre Cool wenn du mal berichten könntest, dann bestell ich mir auch mal welche mit Funk wollt ich eh schonmal experimentiern :)
Datum: 14.04.2007 11:57
Auch bei der Beschreibung vom Timing Diagramm war anscheinend kein Papier mehr vorhanden. Ebenso beim Low Duty-Cycle Command Register.
Datum: 14.04.2007 12:29
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 ???
Datum: 14.04.2007 13:12
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!
Datum: 14.04.2007 14:16
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
Datum: 14.04.2007 14:31
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.
Datum: 14.04.2007 17:07
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.
Datum: 14.04.2007 17:36
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
Datum: 14.04.2007 17:45
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 ?
Datum: 14.04.2007 18:28
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
Datum: 14.04.2007 18:34
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/Frequenzordnu... 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.
Datum: 14.04.2007 18:40
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.
Datum: 14.04.2007 18:41
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
Datum: 14.04.2007 18:56
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
Datum: 14.04.2007 19:01
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
Datum: 14.04.2007 20:49
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
Datum: 14.04.2007 21:45
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.
Datum: 15.04.2007 00:24
Hi, DIO sollte ja eigentlich Data Input Output heißen aber die Datenblätter sind wohl nicht so gut. Gruss Sven
Datum: 15.04.2007 10:45
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).
Datum: 15.04.2007 11:19
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.
Datum: 15.04.2007 12:02
@ 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.
Datum: 15.04.2007 13:44
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
Datum: 15.04.2007 16:14
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
Datum: 15.04.2007 17:13
Optimierung einschalten (-Os), sonst wird die Floatingpoint-Arithmetik mit eingebunden.
Datum: 16.04.2007 12:16
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?
Datum: 16.04.2007 12:20
...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.
Datum: 16.04.2007 12:51
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.
Datum: 16.04.2007 13:26
...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
Datum: 16.04.2007 13:31
txd und rxd klingt nach RS232. Das geht schonmal mit Sicherheit nicht. Was meinst du mit Taktsignal bei der SPI Schnittstelle ?
Datum: 16.04.2007 13:48
...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
Datum: 16.04.2007 14:20
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.
Datum: 16.04.2007 14:34
...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.
Datum: 16.04.2007 17:09
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.
Datum: 16.04.2007 17:27
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
Datum: 16.04.2007 17:33
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.
Datum: 16.04.2007 18:06
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
Datum: 16.04.2007 18:24
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).
Datum: 16.04.2007 19:03
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
Datum: 16.04.2007 20:09
@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.
Datum: 16.04.2007 20:18
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
Datum: 16.04.2007 20:38
@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.
Datum: 16.04.2007 23:25
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
Datum: 17.04.2007 02:36
@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
Datum: 17.04.2007 07:36
@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).
Datum: 17.04.2007 08:20
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.
Datum: 17.04.2007 12:45
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^^
Datum: 17.04.2007 13:47
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!
Datum: 17.04.2007 15:10
...das ist genau das was ich suche... klasse. d.
Datum: 17.04.2007 15:29
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.
Datum: 17.04.2007 15:45
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.
Datum: 17.04.2007 15:54
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.
Datum: 17.04.2007 19:10
Guten Abend Hat jemand jetzt schon eine Verbingung zwischen 2 Modulen hinbekommen? Also eine klassische Datenübertragung? Grüsse



