Archiv verlassen und diese Seite im Standarddesign anzeigen : 433MHz Funkmodule bei Pollin
toemchen
29.03.2007, 17:11
Hallo,
blätter gerade durch die Pollin-Webseite und sehe: 433MHz-Funkmodule, Sender oder Empfänger für jeweils 4,95€, oder kombiniertes Sender/Empfänger-Modul für 7,95€!
Das ist - korrigiert mich, wenn ich falsch liege - weit weniger, als man bisher für irgendeine Funkkommunikation hinlegen mußte, oder?
Wie lange gibts die da schon? Hat sie schon jemand ausprobiert? (Mit der Forums-Suche hab' ich noch nichts darüber gefunden) Hab' jetzt mal zwei Sende/Empfänger-Kombiteile bestellt. Das Datenblatt braucht schon ein bißchen Lesezeit.
Bin gespannt auf Eure Kommentare und werde aber auch selbst Ergebnisse posten, wenn ich was zusammenbringe. Mein Traum wäre ein serielles Kabel ohne Kabel.
Ciao
Tom.
Andree-HB
29.03.2007, 17:53
Mein Traum wäre ein serielles Kabel ohne Kabel
...deutsche Stilblüten ! ;-)
Wäre aber natürlich schon Klasse, wenn das sehr einfach und so kostengünstig klappen würde.
hej, wenn du dir die teile bestellts vergiss nicht das AVR-Evaluation-Board mit zu bestellen, kostet 15€ gibts auch bei pollin, hab keien ahnung von AVR aber ich denke für den preis kann man das ruhig gleich mal mitnehmen.
im neuen katalog gibts da die infos übrigens auf der letzten seite
mfg, Zachso
Schlecht sehen die Module nicht aus von den Daten her. Mann brächte nur noch mal ein Beispiel von Hard/Software in verbindung mit nem AVR. Ein Serielle Wireless-Verbindung sollte zu machen sein.
Mich würd mal interessieren, wie groß die Reichweite von den Mudulen ist. Und ob der Transreceiver Voll- oder Halbduplex arbeitet. Im Datenblatt steht was von "Differential-Antennen-Eingang", könnte das ein Hinweis sein?
MfG Mark
Hatte ich ganz überlesen. Pollin bietet auch ein neues Funk-AVR-Evaluations-Board an wo man die Funkmodule gleich drauflöten kann.
http://www.pollin.de/shop/images/article/big/G810046.JPG
denke dass dass diese module ohne tuning nur wenige meter überbrücken könne...bei dem preis allerdings z.b. eine schöne alternative zu infrarot oder super zur kommunikation zwischen bots!
bin auf erste ergebnisse gespannt ;-)
Naaaa tooooolllll.... und ich hab mir vor 2 Wochen das alte Evaluationsboard gekauft...
toemchen
30.03.2007, 23:48
Hm, das Atmel-Eval-Board hätte ich auch noch bestellen können. Allerdings habe ich hier in der Firma Zugriff auf auf die übliche Atmel-Entwicklungsumgebung. (Und einen Kollegen, der's checkt, hehe...)
Zurück zum Funkmodul:
Mein Acrobat Reader druckt eine Seite des Datenblatts nicht aus, weil er chinesische Schriftzeichen braucht. Bei Euch auch so?
Die Konfigurationsmöglichkeiten sind umfangreich, will sagen fast zuviel. Man kann also sogar den Frequenzhub bei der Modulation einstellen? Da muß man doch einiges davon verstehen...
Ich glaube nicht, daß das kombinierte Modul GLEICHZEITIG senden und empfangen kann. Noch hab ich das Datenblatt nicht lange genug gelesen, um zu sehen, wie man das Senden triggert und wo man die Daten reinsteckt bzw. rausholt. Aber das wird schon noch.
Der "differentielle Antenneneingang" hat sicher nur mit der elektrischen Schaltung des Empfänges/Senders zu tun, nicht aber mit der Frage, ob Senden und Empfangen gleichzeitig gehen. Oder?
Also, am Laufen hat die Module noch keiner, sind recht neu, oder?
Ich melde mich dann nach ersten Versuchen wieder.
Ciao
Tom.
Hi, Tom das (Seite fehlt) hatte ich auch.
Ich hab die Schrift halt nachgeladen, dann gehts.
Mir waren das auf den ersten Blick auch ein paar viele Register / Lesearbeit. Aber übersichtlich ist die Dokumentation ja...
Es sollte sich gut machen lassen. Ein Beispielprogramm wäre mir aber auch lieber / bequemer.
Sigo
Ich habe mal ein bissel im Netz gestöbert und bin auf das hier gestoßen
http://www.hoperf.com/doce/rf_fsk.asp
Da gibts unter anderem ein Anschlußbeispiel für AVRs und Demo-Programme in C.
MfG
Bin jetzt in der neuen Sonderliste auch auf die Teile gestoßen.
Ist schon jemand damit weitergekommen?
Hat sich schon mal jemand drangesetzt und den Beispielcode aus dem Link von Rofo88 (http://www.hoperf.com/pdf/RF12_code.pdf)abgetippt (lässt sich nicht aus dem PDF kopieren)?
Hi,
Beispielcode muss nicht abgetippt werden, hab grad auf der Pollin-Seite gestöbert und gesehen, es gibt zu den Modulen ein paar Beispielprogramme in C zum Download...
Entweder ich bin blind, oder die Datei war gestern noch nicht online...
Ich hab grad mal das RFM12 in Eagle erstellt. Wenn jemand Interesse an der lib hat, kann er sich bei mir melden. Auf Lochraster passt das Modul wegen des 2mm Rasters ja leider nur schlecht...
snowbound
07.04.2007, 20:56
Hallo zusammen, bin neu hier.
Hat jemand seine RF12 Module funktionsfähig in Betrieb? Ich suche nach einer möglichen Funkübertragung, werde sicher mit einem PIC arbeiten.
Wo habt ihr die Modul bestellt?
Danke
Mit welcher Reichweite ist bei den Modulen im Freien zu rechnen?
Oder gibts da schon praktische Erfahrungen ?
Ich bräuchte sowas, um die Drehzahl von einem Modellhubschrauber - Flugzeug auf eine Basisstation zu übertragen.
snowbound
08.04.2007, 12:38
Dankeschön, gefunden bei pollin.
Wäre es einfacher mit sende und empfangsmodul zu arbeiten für den einstieg oder klappt das mit einem transceiver ganz gut? Hat jemand von euch die Modul schon im Einsatz?
Eine ganz andere Frage, wenn ich eine Fernbedienung brauch um dem Empfänger was zu senden, gibts da kaufbare die ich nutzen kann auf der Frequenz die mit den Modulen zusammenarbeiten, oder soll ich selbst eine bauen?
thx
toll schöne scheise... ich hab mein boar auch gerade mal 3 wochen udn dabei wollte ich auch mit funk arbeiten.. so nen kagg naja was solls...
Ich würd mir an euerer Stelle mal das Datenblatt des Herstellers anschauen, da steht was interessantes über das zu verwendende Frequenzband drin...
http://www.hoperf.com
Mehr möchte ich aber nicht verraten.
jschilli
12.04.2007, 14:28
Ist ja interessant, ob 868MHz auch ohne umlöten der C's und L's geht?
Dann bleibt aber noch eine Frage offen: Pollin ist ja bekannt, das dort Restposten vertickert werden... Vielleicht funktioniert die Basbandselektion bei dem Pollin Modul nicht, da es sich eventuell noch um eine ältere Version handelt...
:-(
Grüsse,
Schimmi
hallo,
es gibt ja die kombinierten sender/empfänger. dann brauche ich ja theoretisch 2 davon, für jede seite einen, um in beide richtungen daten senden zu können. die haben ja beide die gleiche frequenz, stören die sich dann nicht gegenseiti?
mfg jeffrey
Hobbylöt
12.04.2007, 16:12
Ist ja interessant, ob 868MHz auch ohne umlöten der C's und L's geht?
Hier: http://www.hoperf.com/pdf/RF12TOOLS.pdf steht das man einfach Umschalten kann.
Ist ja interessant, ob 868MHz auch ohne umlöten der C's und L's geht?
Auf den Modulen sind alle 4 Frequenzbereiche angegeben, bei 433MHz ist ein Strich mit einem Filzstift gemacht worden - was immer das bedeuten mag.
Hallo!
Ich spiele auch mit dem Gedanken diese Module einzusetzen. Weiß jemand was über die "Genehmigungslage" dieser Module? Ich denke das 70cm-Band (433MHz) ist nur mit Amateurfunklizenz (offiziell) zugänglich...
Ich weiß, wo kein Kläger, da kein Richter. Aber da ich das ggf. auch prof. einsetzen will, würde ich gerne dem Kläger (und damit auch dem Richter) vorbeugen :-)
Was ist den mit den anderen möglichen Bändern, sind die "offen"?
Salut, Jörg
(Leider kein Amateurfunker)
Ich denke dass wenn man diese Module kaufen kann, dann werden sie auch erlaubt sein (ich stell mich da einfach blöd). Und soweit ich das bisher erfahren habe ist vor allem das Bauen von eigenen Modulen verboten (Störung anderer Frequenzen). Auf dieser Frequenz tummeln sich ja auch Babyphone, Funkthermometer, Funk-Schalter.... Also eine oft genutzte Frequenz.
Laut Wikipedia:"Es ist nur der Betrieb zertifizierter Funkgeräte mit CE-Kennzeichen erlaubt." Quelle (http://de.wikipedia.org/wiki/Short_Range_Devices)
Gerade das 70cm-Band ist neben 35cm (866MHz) und 2,4GHz als ISM-Band völlig frei zugänglich. Allerdings muss das, was da sendet, sämtlichen gesetzlichen Auflagen entsprechen, und da diese für Nicht-HF-Techniker fast nicht zu überblicken sind, gibt es diese praktischen Module. Da sich bei den Pollin-Dingern sehr viel programmieren lässt, unter anderem auch Einstellungen möglich sind, die die geltende Gesetzeslage ganz klar verletzen, sollte man schon sehr genau wissen, was man da tut. So ist zB der Frequenzbereich und die Bandbreite, die man nutzen darf, klar festgelegt, darauf ist also beim Konfigurieren der Module zu achten!
Ob Du Dich da dumm stellst, wird im Zweifelsfalle keinen Richter beeindrucken.
Ich werde weiterhin die Aurel-Module nehmen, auch wenn die fünf mal so teuer sind.
jschilli
13.04.2007, 11:21
Hallo!
Ich spiele auch mit dem Gedanken diese Module einzusetzen. Weiß jemand was über die "Genehmigungslage" dieser Module? Ich denke das 70cm-Band (433MHz) ist nur mit Amateurfunklizenz (offiziell) zugänglich...
Hallo Jörg,
Hoepf schreibt hierzu:
RFM12 is a low costing ISM band transceiver module implemented with unique PLL. It works signal ranges from 315/433/868/915MHZ bands, comply with FCC, ETSI regulation. The SPI interface is used to communicate with microcontroller for parameter setting.
Das ISM Band ist lizenzfrei und solange das Modul selber nach FCC und ETSI ist, kann das in eignenen Applikationen verwendet werden, da es schon zugelassen ist. Wenn Du ein solches Modul selber bauen würdest, dann müstest Du dieses zulassen. In Europa und damit auch in Deutschlang sind allerdings nur die 433 und 868MHz Bänder zugelassen. 315 und 915MHz ist für USA...
Wie Du aber auch schon richtig bemerkt hast, wo kein Kläger, da kein Angeklagter. Die Regelierung greift letztendlich nur, wenn Du ein Produkt verkaufen willst, das Du auf Basis der Module herstellst.
Siehe auch hier:
http://www.bundesnetzagentur.de/enid/a2.html
@Hobbylöt&wkrug:
Im Datenblatt bei Hoepf ist aufgeführt, welche L's und C's man für die unterschiedliche Frequenzbereiche umbauen muss. Prinzipell funktionieren die Module auch ohne die Anpassung, man verliert aber wenn ein 433 Modul auf 868 eingesetzt wird erheblich an Performance. Ich hatte kürzlich mal mit einem CC1100 von TI herumgespielt. Mit einer 868 Antennenanpassung konnte ich auch auf 433 senden... Vermutlich nimmt dann allerdings die Abstrahlung ausserhalb des Basisbandes zu, so das zumindest nicht mehr sichergestellt ist, das nicht andere Geräte gestört werden.
Leider habe ich die Module noch nicht bekommen, so dass ich hierzu noch nichts sagen kann. Von Pollin hatte ich gestern die Versandbestätigung bekommen, so das vielleicht heute oder morgen die Module bei mir aufschlagen. Wenn ich mir die externen Antennenfilter mal näher angeschaut habe, kann ich sicherlich mehr dazu sagen...
Grüsse,
Schimmi
Christopher1
13.04.2007, 12:07
In der Anleitung von Pollin steht: " Der Hersteller erklärt, dass dieses Produkt bei bestimmungsgemäßer Verwendung den grundlegenden Anforderungen des §3 und den übrigen Bestimmungen des FTEG (Artikel 3 der R&TTE) entspricht"
MfG Christopher
Ändert nichts daran, dass man durch falschen Anschluss und/oder falsche Programmierung diese Bestimmungen verletzen kann.
bei µc.net ist man auch schon an den Dingern dran:
http://www.mikrocontroller.net/topic/65984
Die Datenblätter und Beispielprogramme scheinen noch etwas buggy zu sein...
Hallo Leute,
kann mir mal einer von Euch sagen, wie eine Antenne für das RFM 01 bzw. RFM 02 auszusehen hat ?
Die Datenblätter sind da mehr als widersprüchlich.
Beim Sendemodul soll anscheinend so eine Art Dipol Rahmenantenne eingesetzt werden, die eine Mittelanzapfung an +5V hat ????
Ich möchte am liebsten einen normalen Draht wie eine Stabantenne einsetzen.
Kann ich da 0,8mm Silberdraht mit 17,3cm Länge einsetzen oder komm ich da mit den Impedanzwerten überhaupt nicht hin ?
Tschuldigung für meine blöden Fragen, aber in HF Technik bin ich halt nicht so fit.
In welchem Datenblatt steht was zur Antenne?
Es gibt auch noch etwas ausführlichere Datenblätter zu den auf den odulen verbauten Chips:
www.hoperf.com/pdf/RF01.pdf
www.hoperf.com/pdf/RF02.pdf
www.hoperf.com/pdf/RF12.pdf
Hi im Mikrocontroller.net gibt's schon mal den erste Source für das RF12 Module:
http://www.mikrocontroller.net/topic/67273
Antenne:
Im Datenblatt des RF 02 ist auf Seite 5 ein Schaltbild, da ist eine in der Mitte mit +5V eingespeiste Rahmenantenne zu sehen.
Auf Seite 10 des selben Datenblattes sind unter Note 4: Die Impedanzen und Widerstände der benötigten Antenne angegeben.
Auf Seite 20 ist dann ein Schaltbild mit einer normalen 50Ohm Antenne aufgezeichnet.
Auf der Abbildung des Evaluation Board ist aber wieder eine normale Drahtantenne eingebaut - Darum meine Frage, was denn nun ?
Das Ganze ist alles etwas verwirrend.
Mistig find ich auch, das man mindestens 3 verschiedene Datenblätter durcharbeiten muß, bevor man die benötigten Inforfmationen für einen Chip beisammen hat.
MrVisual
17.04.2007, 23:02
weil wir gerade bei den schnuckelchen sin (zu denen pollin mir doch glatt ma das evalboard nich mitgeschickt hat - und jetzt ises auch nich mehr im webshop...):
da steht was von RSSI (radio signal strength indicator). ises auch möglich das auszulesen? hmhm
Digital kann man den RSSI laut Datenblatt (das muss aber nichts heißen...) auslesen. Man gibt einen Schwellenwert von, und kann auslesen, ob der Signalpegel darüber liegt oder nicht.
So, das erste RFM012 hat den Weg auf mein Steckbrett gefunden:
http://img235.imageshack.us/img235/2618/rfm12stecknz7.th.jpg (http://img235.imageshack.us/my.php?image=rfm12stecknz7.jpg)
Da das Modul ein 2mm-Raster hat, habe ich einfach eine Adapterplatine aus Lochraster gemacht: Kupfer nach oben, Stiftleisten an den Rand, Mitte mit Klebeband isoliert, Modul mit dünnen Drähten angelötet.
http://img158.imageshack.us/img158/5593/rfm12bondingxe3.th.jpg (http://img158.imageshack.us/my.php?image=rfm12bondingxe3.jpg)
Erstes Lebenszeichen mit dem Code von Benedikt K. (µc.net): der Taktausgang lässt sich einstellen \:D/ \:D/ , die Kommunikation vom AVR zum Modul scheint also schon mal zu laufen. Für weitere Tests muss ich wohl erst mal das Gegenstück aufbauen...
Sehr schön, auch wenn ich mich recht früh gegen diese Module entschieden habe, verfolge ich diesen Thread gespannt weiter. Vielleicht kommt ja bald die passende Anwendung, bei der keine >150m Reichweite gefordert werden.
So, das Modul spricht mit mir! Ich hatte erst Probleme, eine Rückmeldung zu bekommen. Beim Senden geht SDO auf high, wenn man das nächste Byte schreiben kann. Auf SDO tat sich aber nichts. Hab viel rumprobiert, und mit nem Pullup an nFFS ging es dann auf einmal.
Jetzt kann ich schon mal das Statusregister auslesen und bekomme logische Wert zurück:
RGIT=1 -->nächstes Byte kann gesendet werden
EXT=1 -->externer Interrupt ausgelöst (wenn man nINT auf low gezogen hat. Außerdem muss man den Pin als Interrupt einstellen, sonst wäre er VDI)
Nun muss aber endlich ne Empfangsstelle her...
Auf der Page von Integration http://www.integration.com/ scheinen die die gleichen Module nur als IC's zu vertreiben.
Zumindest die Dokumentation ist wesentlich besser.
Schaut euch mal das:
http://www.integration.com/docs/IA_MSC-UGSB1.pdf
Datasheet an.
Ist zwar für PIC aber in C geschrieben.
Ich hab endlich mein zweite Modul eingebaut. Und siehe da: Verbindung steht!
Ich verwende 15cm Draht als Antenne. Reichweite damit 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.
Meine Sendeschaltung:
http://img63.imageshack.us/img63/5415/rfm12pcsenderkm0.th.jpg (http://img63.imageshack.us/my.php?image=rfm12pcsenderkm0.jpg)
Mega8, MAX232, RFM012, 7805. Diese Platine soll meine Funkstation am PC sein, um Daten mit meinen Robotern auszutauschen.
Ganz schön beachtlich, was so ein Billig-Teil schafft!!
jon
Guten Tag,
Habe da mal eine Frage ist es mit den Modulen auch möglich auf beiden Seiten Relais zu steuern?? so das man aus dem einen eine Fernbedinung macht die eine Rückmeldung vom empfänger bekommt und die Fernbedinung hat 2 Tasten für zb. auf und zu ist dies möglich und wenn ja wie realisiere ich so etwas ??? Ich muß zugeben ich habe von dieser Materie garkeine Ahnung.
AlterBursch
25.04.2007, 11:54
Ich hab endlich mein zweite Modul eingebaut. Und siehe da: Verbindung steht!
Wie siehts aus, kannst du das ganze nicht etwas genauer in einem Artikel dokumentieren. Zum Beispiel mit Bascom Quellcode und Schaltbild?
Habe da mal eine Frage ist es mit den Modulen auch möglich auf beiden Seiten Relais zu steuern
Das wird sicher gehen.
Du brauchst ja ohnehin eine Microcontroller um die Bausteine zum Senden zu bewegen.
Was spricht also dagegen vom gleichen Microcontroller ein Relais aus- und einschalten zu lassen ?
Ohne Controller nur mit dem Funkmodul wird es nicht funktionieren, da die Chips über SPI konfiguriert werden müssen.
Mag jetzt vieleicht etwas doof klingen, aber könnte mir jemand vieleicht per mail oder PM sagen wie man das ganze Handhabt. Wie gesagt habe von Funk 0 Ahnung und mein Funkspezi ist für 2 Wochen in Urlaub. Wäre sehr nett wenn mir da jemand weiterhelfen könnte.
MfG
Refi
Kann mir bitte jemand hier weiterhelfen ??? is für micht wirklich dringend
Du, so ab Mitte Mai hätte ich Zeit für neue Entwicklung, ist auch nicht so teuer ... also entweder findest Du über Deine Idee einen Einstieg in die Elektronik und uC-Programmierung - oder Du beauftragst so jemanden wie mich, es für Dich zu tun.
Dein Hilferuf wirkt eher abschreckend.
"... Relais zu steuern?? so das man aus dem einen eine Fernbedinung ..."
Das ist ein typischer Fall für Einkauf von Fertigmodulen bei Reichelt, Conrad, Westfalia und Co. ...
@Refizul
Die Funkmodule RFM 01(Empfänger), RFM 02(Sender) und RFM 12(Sender+Empfänger) werden durch eine sogenannte SPI Schnittstelle angesteuert.
Diese benötigt beim RFM 02- 5 Signale.
nSel = Wählt das RFM 02 aus
SDI = seriell data in = Serieller Dateneingang
SCK = seriell Clock = Taktung für die SDI Schnittstelle
nIRQ = interrupt Request = Interruptanfrage aus dem RFM 02
FSK = frequency shift keying = Modulationseingang
Beispiel RFM02:
Um den Chip zur Arbeit zu bewegen, müssen verschiedene interne Register des Chips, durch die SPI Schnittstelle (nSel, SDI, SCK) mit Werten vorbelegt werden.
Diese spielt man zweckmässigerweise mit einem Microcontroller in den Chip ein.
Der Microcontroller erzeugt dann auch das Bitmuster, das dann übertragen werden soll.
Der Microcontroller (ich werd da nen ATMEGA 8 verwenden) kann auch irgendwelche Gebereingänge abfragen und dann als Datenwort über den RFM 02 Chip übertragen.
An der Gegenstelle befindet sich wieder ein Funkempfänger (z.B. RFM 01) der dieses Signal aufnimmt, an den Microcontroller weitergibt, der dann an einem- mehreren seiner Ausgänge ein - mehrere Relais über eine Treiberstufe ansteuern kann.
Da Du das Spielchen ja in beiden Richtungen betreiben willst, kommt für Dich eigentlich nur der RFM 12 Chip in Frage.
Allerdings müssen dann die beiden Microcontroller ein Handshake aushandeln, wer denn nun Senden darf und wer Empfänger ist.
Darüber möchte ich mich aber jetzt nicht auslassen, das kannst Du ja mal bei Wikipedia nachlesen.
Ohne einen programmierbaren Microcontroller (oder einen anderen programmierbaren Baustein z.B. CPLD) wird dein Vorhaben schwierig bis unmöglich.
Wenn Du keine Möglichkeit hast so einen Microcontroller zu programmieren, solltest Du dich nach anderen, einfacher gestrickten Funkmodulen umschauen, die ohne vorherige Programmierung arbeiten.
Allerdings hast Du dann natürlich nicht die vielen Möglichkeiten, die diese Funkmodule bieten.
Möchtest Du trotz allem diese Funkmodule einsetzen würde ich Dir das Studium der verschiedenen Datenblätter für diese Module ans Herz legen, da sollten dann die meisten deiner Fragen zu klären sein.
Hallo Leute,
hab soeben die ersten Tests an meinem RFM 02 vorgenommen.
Zunächst noch ein paar Hints:
Wenn man den Taktausgang CLK des RFM 02 verwenden will, braucht man an diesem Pin einen Pull Up Widerstand, sonst kommt da nichts raus.
Der Port eignet sich auch gut dazu, um den Fehler des Quarzoszillators zu messen und die Lastkapazitäten des Quarzes richtig einzustellen.
Ich möchte den Port auch verwenden, um mir einen zusätzlichen Quarz für den Microcontroller zu sparen.
Den FSK Port des RFM hab ich vorerst mal auf den TXD Port des Microcontrollers gehängt, diesen aber nicht aktiviert und per Software auf "Low" geschaltet.
Bei mir hat folgende Initialisierungsreihenfolge geklappt:
1. Configuration Setting
2. Frequency Setting
3. Output Power Command
4. Data Rate Command (Ich lass den Chip über nIRQ laufen)
5. Low Batt + Sync Command
6. PLL Setting Command
7. Power Managment Command
Den Synthesizer (es) und den Power Amplifier (ea) schalte ich erst kurz vor dem Senden ein.
Meine Senderoutine läuft, wie schon geschrieben, im INT 0 des Microcontrollers ab. Dieser Interrupt wird über das nIRQ Signal des RFM02 gesteuert. Dadurch ist die Datenübertragungsgeschwindigkeit unabhängig vom Prozessortakt des µC.
Aktueller Stand:
Mein RFM 02 sendet was! Aus dem CLK Port kommen Impulse der eingestellten Frequenz. Auf dem nIRQ liegen Impulse für 2400Bit/s an. Der Controller sendet Bitmuster mit 2400Bit/s an den Eingang SDI des RFM 02.
Als nächstes versuch ich den Empfänger (RFM01) zum laufen zu bringen, dann kann ich erst sagen, ob die versendeten Daten auch richtig moduliert wurden.
Für die Frequenzeinstellung hab ich eine Tabelle berechnet, die für die Kanäle 1...69 des 433MHz Bandes die zugehörigen Tuningwörter vorgibt:
flash unsigned int ui_frequ[69]={1230,1240,1250,1260,1270,1280,1290,1300,1310,132 0,1330,1340,1350,1360,1370,1380,1390,1400,1410,142 0,1430,1440,1450,1460,1470,1480,1490,1500,1510,152 0,1530,1540,1550,1560,1570,1580,
1590,1600,1610,1620,1630,1640,1650,1660,1670,1680, 1690,1700,1710,1720,1730,1740,1750,1760,1770,1780, 1790,1800,1810,1820,1830,1840,1850,1860,1870,1880, 1890,1900,1910};
Der Frequenzbereich beginnt somit bei 433,075 MHz und endet bei 434,775MHz.
Die Tabelle macht ein 25kHz Kanalraster.
Die unteren Kanäle sollten bei großem Signalhub nicht genutzt werden, um nicht unter 433,050MHz mit dem unteren Seitenband zu kommen.
Ich hoffe meine Ergebnisse helfen euch bei eueren Entwicklungen weiter.
"... Relais zu steuern?? so das man aus dem einen eine Fernbedinung ..."
Das ist ein typischer Fall für Einkauf von Fertigmodulen bei Reichelt, Conrad, Westfalia und Co. ...
Hatte ich auch gedacht nur muß es Compact sein und ich brauch auf beiden seiten Relais und Sender und Empfänger. und so etwas gibt es leider nicht zu Kaufen.
Aber was ich da so lese Hilft mir schon etwas weiter. Jetzt muß ich nur noch Schlauer werden ^^
Ein Bascomcode der funktionieren soll ist auf http://www.mikrocontroller.net im Codebereich:
http://www.mikrocontroller.net/attachment/23066/rf12.zip
Ich hab meine Funkstrecke zwischen einem RFM 01 und einem RFM 02 zum laufen gekriegt.
Heute hab ich mal die Kanaleinstellung geproggt.
Dabei hab ich festgestellt, das die AFC des Empfängers auch in der kleinsten Einstellung einen ziemlich weiten Fangbereich hat. +/- 2Kanäle lassen sich noch einwandfrei empfangen (25kHz Kanalraster).
Hat jemand von Euch noch eine Idee wie man den Fangbereich kleiner kriegt, ohne die AFC ganz abzuschalten ?
Die Reichweite meines Versuchsaufbaus beträgt ca. 140m im Freien bei 2400 b/sek .
Die Antennen sind noch nicht optimiert und die angeschlossenen Versorgungsdrähte noch ziemlich lang, da sollte noch mehr gehen.
Mit dem Code aus obiger Adresse gemacht, oder haste einen eigenen Bascom-Code?
Mit dem Code aus obiger Adresse gemacht, oder haste einen eigenen Bascom-Code?
Weder - Noch.
Hab einen eigenen Code mit Codevision AVR in C geschrieben.
vklaffehn
17.05.2007, 01:53
Moin!
Kann man den C-Code evtl kriegen? :-)
MfG Volker
@vklaffehn
Klar kann man den Code kriegen.
Du hast PN.
Wichtig:
Der Code ist aber nur für den privaten Gebrauch freigegeben - komerzielle Nutzung schließe ich ausdrücklich aus !
In den Routinen ist eine CRC Überwachung mit eingebaut.
Der Empfänger gibt nur fehlerfreie Frames an der seriellen Schnittstelle zum PC raus (38400,8,N,1).
Das Ende eines Frames wird durch ein <LF> (Line Feed) erkannt.
Die Sequenz -AA AA AA 2D D4- im Sender braucht der FiFo Puffer im Empfänger zur Synchronisation. Es darf im Sender nicht weggelassen werden ! Im Empfänger taucht die Sequenz aber nicht mehr auf !
Im Sender ist die Frequenzabstimmung noch nicht fertig. Ist vorerst auf 434.000 MHz fest eingestellt.
Der Empfänger lässt sich zur Zeit noch auf alle Kanäle des ISM Bandes einstellen.
Die AFC des Empfängers ist aber so breitbandig, das man nur jeden 3ten Kanal auch tatsächlich gleichzeitig nutzen kann.
Das lässt sich aber leicht durch ändern der Tabelle die in der Variable ui_frequ hinterlegt ist.
Vielleicht bringt es auch etwas, wenn man die Empfängerbandbreite etwas kleiner macht - hab ich aber noch nicht probiert.
Die Frequenzeinstellung der Empfängers wird über einen 6-poligen DIP-FIX Schalter an PORTC,0...5 vorgenommen.
Im Sender ist auch eine A/D Wandler Abfrage mit drin, das Ganze soll mal eine Telemetrie Übertragung werden wenns fertig ist.
2x Spannung, 2x Temperatur läuft schon. Drehzahl muss ich noch schreiben - ist vorerst mal fest auf 50.000 gesetzt.
Wenn mal alles fertig ist, werd ich die Routinen und Schaltpläne auf unserer Vereins- Homepage veröffentlichen.
schlomöter
26.08.2007, 13:44
Hallo könnte ich eventuell auch den Source haben?
Beste Grüße
A.Lehmann
@wkrug dafür gibt es ne lizens z.b. http://creativecommons.org/licenses/by-nc-sa/2.0/de/ die ich z.b. nutze.
Ich habe die EAGLE lib mal erweitert um die Dinger auch auf ner Buttomlayer Platine nutzen zu können.
http://www.grautier.com/grautier/index.php?/archives/48-Meine-Eagle-LIBs-fuer-RFM01,-RFM02,-RFM12-und-Microchip-rfRX0xxx.html#extended
Christopher1
07.09.2007, 20:23
Hey,
ich habe mir auch die Funkmodule geholt (RFM01 und RFM02),
gibt es hier jemanden der mir einen (wenn möglich kommentierten) einfachen Code für Bascom geben könnte ? Irgendwie komm ich mit dem DB garnicht klar...
Moin Moin,
ich hab das Datenblatt schon ein paar mal gelesen, doch einige Dinge verstehe
ich noch nicht.
Hier sind vier Punkte, deren Bedeutung mir nicht ganz klar ist.
Der Bergriff des PLL ist ungefähr klar, es geht mehr darum, wie der mit den
Kanälen zusammenhängt und was diese genau bedeuten.
-pll high resolution => multiple channel
-center frequency fo the sytheziser
-bandwith of the baseband signal path
-unterschied vom tx data register und dem fifo im buffered mode
und was da jew. für modi hinterstecken
Außerdem ist mir auch nicht klar, welche commands ich unbedingt brauche und welche nicht.
Denn so wie ich das sehe können mir Dinge wie Wakeup oder powermanagement erstmal egal sein.
Die Essenz meiner Fragen ist, dass ich kein Konzept habe, weil ich nicht sicher bin,
was es da alles für Modi´s gibt und mir dadurch der Zugang
zum Konstrukt dieses Systems fehlt.
Wenn mir da jemand helfen kann - Danke nä!?
The Man
-pll high resolution => multiple channel
Eine PLL in Deutsch phasenstarre Rückkopplung ist eine Schaltung um einen Oszillator auf eine gebene Eingansfrequenz abstimmen zu können.
Wenn man nun den Ausgang des Oszillators, oder die Hilfsfrequenz über programmierbare Teiler führt erhält man einen digital abstimmbaren Oszillator.
In diesem Fall wird das zur Erzeugung der Trägerfrequenz benutzt.
-center frequency fo the sytheziser
Die Funkmodule arbeiten mit Frequenzmodulation.
Das heisst bei einer "0" wird die Oszillatorfrequenz etwas nach unten gezogen, bei einer "1" etwas nach oben (kann man auch ungekehrt machen). Die Frequenz in der Mitte zwischen diesen beiden Punkten ist die "Center Frequency" bzw. Trägerfrequenz.
-bandwith of the baseband signal path
Das könnte 2 bedeutungen haben, je nach Kapitel.
Zum einen könnte der Frequenzhub, also die maximale Verstimmung um die Trägerfrequenz herum gemeint sein (vermute ich mal).
Zum anderen könnte die maximale Übertragungsrate auf der seriellen Schnittstelle gemeint sein.
-unterschied vom tx data register und dem fifo im buffered mode
und was da jew. für modi hinterstecken
Das sind ja eigentlich zwei paar Stiefel.
Das TX Data Register ist ein Register, das die zu sendenden Bytes bzw. Bits aufnimmt.
Der FiFo im Empfänger, ist ein Zwischenspeicher, der erstmal eine anzahl von Bits aufnimmt, bevor er eine Meldung (z.B. Interrupt) rausgibt, das er eine gewisse Anzahl von Bits (üblicherweise 8) empfangen hat.
Wenn der FiFo im Empfänger aktiviert ist, arbeitet der Chip im buffered Mode, weil da ja einzelen Bits zwischengespeichert also gepuffert werden.
Da du diese Frage in einem Zusammenhang gestellt hast, vermute ich mal, das Du einen RFM12 benutzen möchtest.
Hallo,
könnte ich den C-Code auch bekommen, bitte.
LG
Vajk
also erstmal Danke an wkrug für die detailierte Antwort!
Eines würde mir noch erheblich weiterhelfen und zwar wenn mir jemand
eine Liste der Commands posten könnte, die ich zum Bertrieb azf jeden Fall brauche. Und solche die sekundär sind wie wakeup oder powemanagement.
Danke
also erstmal Danke an wkrug für die detailierte Antwort!
Eines würde mir noch erheblich weiterhelfen und zwar wenn mir jemand
eine Liste der Commands posten könnte, die ich zum Bertrieb azf jeden Fall brauche. Und solche die sekundär sind wie wakeup oder powemanagement.
Danke
Würde mir auch weiterhelfen. Ich sitze schon die ganze Nacht an den 01/02 Modulen und das einzige was bisher läuft, ist das sich die 5 AFC Bits im Status des Empfängers beruhigen, wenn ich den Sender einschalte. Der Fifo füllt sich aber nicht. Soll ich meinen Code mal posten? Ist in Proton PICBasic.
Gruß Meik
Hat sich soeben erledigt. Läuft jetzt wie verrückt mit RFM01 und RFM02(Man sollte es kaum glauben, was ein einziges Bit alles ausmacht).
Die Reichweite habe ich noch nicht getestet. Mir sind da auch einige Bits noch nicht so ganz klar. Insbesondere vom RFM01 das al und das ml Bit. Ebenso die Auswirkungen der Einstellungen der AFC Registers. Da werde ich aus dem Datenblatt nicht so richtig schlau.
nikolaus10
16.09.2007, 22:34
Hallo
Berichte deine Erfahrungen ruhig genauer.
Haben alle etwas davon.
Wieso leuft es jetzt und vorher nicht ?
MFG
Christopher1
16.09.2007, 23:04
Ja das wär nicht schlecht, denn die Informationen über diese Module sind ja recht rar.
Hallo
Wieso leuft es jetzt und vorher nicht ?
MFG
Nun denn. Ich hatte beim Sendemodul im Config-Register die POR Werte aus dem Datenblatt eingetragen. Diese haben das Modul dazu veranlasst au 868 MHz zu Senden. Das konnte nicht gehen. Im Anhang habe ich ein kleines Programmpärchen für Sender/Empfänger im PicBasic Format. Ist noch Rohware, da ich am Wochenende erst wieder zum Basteln komme. Aber es läuft und überträgt den Text "Geht"
Christopher1
17.09.2007, 18:01
Schade das es nicht Bascom ist :?
Naja ich guck mir den Code mal an und versuche daraus einen für Bascom zu machen (bin leider Anfänger ;-) ).
Jeder hat mal angefangen. Ich auch und da war ich noch jünger als du jetzt. Der PicBasic Dialekt ist aber garnicht so unterschiedlich zum Bascom Dialekt. Da hättest du mit einem C-Code mehr Probleme beim anpassen.
Christopher1
17.09.2007, 19:27
Jop da muss ich durch ;-)
Kennst du im Netz eine Seite wo die Befehle von PicBasic erklärt sind ?
Irgendwie finde ich nix und ich weiß nicht mal was das Symbol bedeuten soll :-(
Auf picbasic.org kann man sich eine Demo runterladen. In der Hilfe sind alle Befehle erklärt. Ein bisschen Englisch sollte man halt können.
Symbol bedeutet, daß ein Port.Pin mit einem Namen belegt wird, der anschlißend so im Prg. genutzt werden kann. Beispiel:
Symbol SDI = PORTB.7 bedeutet, daß wenn immer ich im Programm SDI benutze, eigentlich PORTB.7 da steht. Ist übersichtlicher.
Meik
Ich habe heute ein RFM12 Modul zum Senden bekommen. Was ich allerdings nicht hinbekomme, ist der Low Duty Cycle Modus der Empfängers(RFM01). Hat hier schon jemand Erfahrung über die Config und den Ablauf des Ganzen?
Meik
Habe was Nettes gefunden. Bei http://www.integration.com gibt es bei den
Design Resources zwei CD-Inhalte herunterzuladen, die gerappelt voll mit
Dokumentationen, Application Notes, Beispielprojekten mit Schaltbildern
und Layouts usw. sind. Der Hammer ist ein kleines Windows-Progrämmchen,
mit dem man Parameter wie Mittenfrequenz, Bandbreite usw. einstellt und
dann die passenden Hex-Werte für die Steuerregister angezeigt bekommt.
Das erspart die Bitfieselei mit dem Datenblatt.
Die dort beschriebenen ICs 4220/4320/4420 sind weitestgehend kompatibel
mit den RFxx, sodaß man prima damit arbeiten kann, zumal die
Dokumentation erheblich genauer und umfangreicher ist als bei Hope.
Man muß sich allerdings registrieren (kost nix), um an die Downloads zu
kommen, aber es lohnt sich. Ein wenig Geduld ist auch nötig, weil die
Seiten nicht sehr flott sind.
Deren ICs würden mir sogar für bestimmte Anwendungen besser gefallen,
weil die einen sog. Standalone-Modus haben, bei dem man sich nicht mit
der Programmierung rumprügeln muß, wenn man z.B. nur den Zustand von 4
Tasten zu übetragen hat - sind nur leider hier nicht zu bekommen.
Gruß, Klaus
thewulf00
15.11.2007, 16:47
Ich habe heute diesen Beitrag gefunden und feststellen müssen, dass bei der Suche nach RFM12, RF12 oder RF* der kombinierte Sender/Empfänger bei Pollin nicht mehr zu haben ist. Bin ich zu dumm oder ist der nicht mehr im Progamm?
Gibt im Moment wohl nur die 01/02. Transceiver scheinen gerade aus zu sein. Suchbegriff: rfm
Oder schau mal hier: http://www.mikrocontroller.net/topic/80796#new
stevensen
09.12.2007, 23:58
Hallo an alle,
@meik
ich habe mir vor längerer Zeit auch mal die RFM01/Rfm02 gekauft und habe sie leider noch nicht zum Laufen gebracht. Deine Beispiele in Picbasic hatte ich auch schon mal gefunden und wollte sie in Bascom übertragen. Ist mir aber noch nicht geglückt. Denn ich habe da noch ein paar Unklarheiten.
Was genau macht z.B dieser Befehl?
Shin Sdi , Scl , Msbpre , [daten2 \ 8]
bzw.
Shout Sdo , Scl , Msbfirst , [daten2 \ 16]
Inden Handbüchern der Picbasic-Demo konnte ich ihn nicht finden.
Du hast Shout Sdo .... im Quellcode für den Sender Rfm02 benutzt. Wo ist der SDO beim RFm02? Oder ist das ein anderen Anschluß? Könnstest Du evtl. einen Schaltplan zeichnen?
Ich würde auch meinen Bascom code hier reinstellen, alle könnten mal drüber gucken.
Ich habe letzte Woche RMF01 und RMF02 bei Pollin bestellt und auch geliefert bekommen.
BasCom ist auch meine erste Wahl und ich habe gestern ein paar Tonnen an Dokus, Beispielcode usw. aus dem Netz gesaugt.
Sehr geholfen hat folgende Seite:
http://comwebnet.co.funpic.de/seite48.html
bei der auch der Link zu deren Forum enthalten ist, in dem Wetterstationen großes Thema sind und dort auch vielfältig dokumentiert sind.
stevensen
10.12.2007, 13:33
@pmaler
wenn Du das Empfänger/Senderpaar Rfm01/Rfm02 mit der Software des Rfm12 Tranceivers zum Laufen gebracht hast dann sag' hier Bescheid daran bin ich sehr interessiert!
Mach ich.
Hab da eine rf12.bas entdeckt. Da steht folgendes im Header:
' generated. Take care that the chip supports all fuse bytes.' ################################################## ######################
' ### RF12-Test in Bascom
' ### Basiert auf Code von Benedikt K.
' ### Joachim Fossie Bär Reiter 04/2007
' ################################################## ######################
Es wird mit SPI auf das Teilchen zugegriffen. Ich habe es mir als Weihnachts-Workshop vorgenommen.
Hallo an alle,
@meik
ich habe mir vor längerer Zeit auch mal die RFM01/Rfm02 gekauft und habe sie leider noch nicht zum Laufen gebracht. Deine Beispiele in Picbasic hatte ich auch schon mal gefunden und wollte sie in Bascom übertragen. Ist mir aber noch nicht geglückt. Denn ich habe da noch ein paar Unklarheiten.
Was genau macht z.B dieser Befehl?
Shin Sdi , Scl , Msbpre , [daten2 \ 8]
bzw.
Shout Sdo , Scl , Msbfirst , [daten2 \ 16]
Inden Handbüchern der Picbasic-Demo konnte ich ihn nicht finden.
Du hast Shout Sdo .... im Quellcode für den Sender Rfm02 benutzt. Wo ist der SDO beim RFm02? Oder ist das ein anderen Anschluß? Könnstest Du evtl. einen Schaltplan zeichnen?
Ich würde auch meinen Bascom code hier reinstellen, alle könnten mal drüber gucken.
Tach auch.
Shin = Shift in. Das ist der Befehl, um die Daten seriell einzulesen.
Shout = Shift out. Um Daten seriell auszugeben.
Sdi bezeichnet den Port und PIN des seriellen Eingangs. Sdo den des Ausgangs und Scl ist die Clock Leitung. Diese sind am Anfang des Programms definiert. Man könnte die Port.Pin Angabe auch direkt in der SHIN bzw. den SHOUT schreiben, aber so ist es übersichtlicher. SDI des PIc wird mit dem SDO des RFM Moduls verbunden, SDO des PIC mit SDI des RFM´s und SCL mit SCK.
MSBFIRST ist eine Anweisung an den Compiler, das Programm so zu stricken, daß die Daten mit dem höchsten Bit zuerst ausgegeben werden. daten2 ist die Vaiable, die die zu sendenden bzw. zu empfangenen Daten beinhaltet und \16 bedeutet, daß 16 Bits der Variable gesendet bzw. empfangen werden sollen. Diese Angabe ist bei dem Compiler nötig, wenn Bits <>8 verarbeitet werden sollen. Wie das bei Bascom ausschaut, weiss ich leider nicht.
Wenn noch Unklarheiten bestehen, immer fragen.
Meik
stevensen
10.12.2007, 16:56
Hallo meik,
vielen Dank für die Antwort. Mittlerweile bin ich wegen der shin und shout auch fündig geworden. In erster Linie wollte ich wissen bei welcher Flanke etc die Daten übernommen werden aber das weiß ich jetzt, glaub ich zumindest.
Wegen dem SDO usw, habe ich wohl was verwechselt. Dann sind die Ports des Pic gemeint, also Sdo des Chip an Sdi des RFm02. Bei den AVRs werden die Miso, Mosi etc genannt. naja dann muß ich mal schauen ob ich was gebacken kriege. also danke nochmal
Hallo da,
ich wollte diesen Thread nochmal aufgreifen. Ic habe jetzt meine DMX Komunikation stehen und will möglichst wireless werden. Es macht in meinen Augen einfach keinen Sinn, für meinen privaten Bereich mehr Geld für Stecker und Kabel auszugeben, wenn ich´s wireless preiswerter haben kann.
Das Problem ist eben nach wie vor die Dinger ans laufen zu kriegen. Außerdem müsste ich für die 250 kps des DMX im Analogmodus arbeiten. Wo ist da der UNterschied zum Digitalmodus?
BTW, die intergation.com Seite ist schätze ich mal nicht die richtige. Finde jedenfalls den Zusammenhang nicht. Hat jemand die Programme, von denen ktg da sprach?
mfg,
The Man
@The Man
So trifft man sich wieder...
Der Unterschied zwischen dem analogen und Digitalen Modus ist, das bei Analog Modus aussen ein RC Filter angeschaltet werden muß.
Wobei ich jetzt nicht ganz sicher bin, ob der benötigte R nicht schon im Chip enthalten ist.
Lad't dir die Beschreibung vom RF01 und RF02 bei hope-rf runter.
Das Datenblatt von Pollin ist nur ein, nicht ganz richtiger, Ausschnitt daraus.
Bei 250kBit/s wird es aber mit der Reichweite nicht besonders üppig.
Ich würd mit nem Controller die Übertragungsrate auf niedrigere Werte für den Funk runtersetzen, dann funkts auch weiter.
Ich habe jetzt diverse Datenblätter durchgeforstet. Ich finde nur Beschreibungen dazu, wie man das Gerät in FSK betreibt.
Es gibt offenbar die zwei Varianten RFx und RFMx. Wobei die RF´s nur der reine Chip´s sind, während die RFM´s mit Grundplatine und eingen Widerständen daherkommen.
Gibt es irgendwo detailiertere Beschreibungen? Ich kann einige Fragen mit den auffindbaren Datenblättern nicht beantworten.
Ist der FSK und ASK Pin der selbe?
Wo kommt im ASK Modus der Kondensator hin?
Wie wird der berechnet?
In welchem Befehl lege ich die Betriebsart fest?
(bei einem der Befehle ist nur eine Tabelle der Ü-Raten im FSK Modus)
Gruß,
The Man
Hast Du wirklich das Datenblatt vom RF01 angeschaut, oder doch wieder das vom RFM01?
Beim RF01 steht sinngemäß:
Ein 10kOhm Widerstand für den Analog Modus ist eingebaut.
Ein externen Kondensator ( Wert steht nicht dabei - ist wohl von der Datenübertragungsrate abhängig ) soll an den Pin CFIL angeschlossen werden.
Der Chip, der hinter dem Modul steht gibts bei Integration http://www.integration.com es sind die Chips 4220 /4320 /4420
hey
hat jemand ein bascom code der funzt für die RFM01 und RFM02??
In der Elektor Januar 2009 gabs einen Artikel mit Bascom Software über die RFM Module, allerding s für die mit 868MHz.
Da da nur ein paar Bytes bei der Initialisierung anders sind, sollte der Code auch für die 433MHz Module verwendbar sein.
Link:
http://www.elektor.de/jahrgang/2009/januar/bei-uns-hat-s-gefunkt!.769040.lynkx?tab=4
Wenn Du da keinen Account hast, kann ich Dir die Soft runterladen und per E-Mail schicken.
Du solltes aber auch die Zusammenschaltung zwischen Microcontroller und RFM Modul so machen , wie es in ELEKTOR vorgeschlagen ist.
ich habs mal runtergeladen aber der Code is ja für RFm12
is des schwer den auf rfm01/02 zu ändern??
Kann ich nicht sagen, hab ich noch nicht gemacht.
Die Initialisierungssequenzen kannst Du aber auch von unserer Modellflieger- Page runterladen.
http://www.toeging.lednet.de/flieger/profi/telemetrie/telemetrie.htm
Der Code ist zwar in "C" , sollte aber mit der SPI von BASCOM auch gehen.
Code Sender:
// Das Sendemodul RFM 02 initialisieren
void init_rfm02(void)
{
volatile unsigned char uc_frequ[2]; /* Frequenz tuningword */
uc_frequ[1]=ui_frequ[uc_kanal]/256;
uc_frequ[1]|=0b10100000;
uc_frequ[0]=ui_frequ[uc_kanal]%256;
/* Configuration Setting: 433MHz, CLK 5MHz, 11,5pf Kapaz., +/-60kHz */
#asm ("cbi portb,nsel");
sendbyte(0b10001110);
sendbyte(0b01100000);
#asm ("sbi portb,nsel");
#asm ("nop");
/* Frequency Setting: eingestellter Kanal*/
#asm ("cbi portb,nsel");
sendbyte(uc_frequ[1]);
sendbyte(uc_frequ[0]);
#asm ("sbi portb,nsel");
#asm ("nop");
/* Output Power Command: Max Power */
#asm ("cbi portb,nsel");
sendbyte(0b10110000);
#asm ("sbi portb,nsel");
#asm ("nop");
/* Data Rate Command: 2400 bit/s */
#asm ("cbi portb,nsel");
sendbyte(0b11001000);
sendbyte(0b10001111);
#asm ("sbi portb,nsel");
#asm ("nop");
/* Low Batt + Sync Command: enable Sync Circuit */
#asm ("cbi portb,nsel");
sendbyte(0b11000010);
sendbyte(0b00100000);
#asm ("sbi portb,nsel");
#asm ("nop");
/* PLL Setting Command: 0xD240 up to 19,2kbit/s*/
#asm ("cbi portb,nsel");
sendbyte(0b11010010);
sendbyte(0b01000000);
#asm ("sbi portb,nsel");
#asm ("nop");
/* Power Managment Command= Enable Clock; disable Synthesizer; disable pow. Ampl. */
#asm ("cbi portb,nsel");
sendbyte(0b11000000);
sendbyte(0b00100000);
#asm ("sbi portb,nsel");
}
Zum senden muss dann noch das entsprechende Kommando kommen:
/* Power Managment Command= Enable Clock; enable Synthesizer; enable pow. Ampl. */
#asm ("cbi portb,nsel");
sendbyte(0b11000000);
sendbyte(0b00111000);
#asm ("sbi portb,nsel");
#asm ("nop");
/*Sender Start Byte senden*/
#asm ("cbi portb,nsel");
sendbyte(0b11000110);
GICR|=(1<<6);/*Interrupt 0 freigeben*/
/* Der Rest der Sendung läuft nun in der Interupt 0 Routine ab */
// External Interrupt 0 service routine sende Bits zum RFM 02
interrupt [EXT_INT0] void ext_int0_isr(void)
{
volatile unsigned char uc_buffer;
uc_sendbit--;
uc_buffer=(uc_sendbuffer[uc_sendbyte])&(1<<uc_sendbit);
if (uc_buffer == 0)
{
#asm ("cbi portb,sdi");/*Eine 0 wird gesendet*/
}
else
{
#asm ("sbi portb,sdi");/*Eine 1 wird gesendet*/
}
/* Alle 8 Bits schon übertragen ? */
if (uc_sendbit==0)
{
uc_sendbyte++;
uc_sendbit=8;
}
if (uc_sendbyte>(strlen (uc_sendbuffer)))
{
/* Ende der Übertragung */
uc_sendbyte=0;
uc_sendbit=8;
GICR&=0b10111111;/*Interrupt 0 sperren*/
/* Übertragung durch setzen des nSEL Ports beenden */
#asm ("sbi portb,nsel");
#asm ("nop");
/* Power Managment Command= Enable Clock; disable Synthesizer; disable pow. Ampl. */
#asm ("cbi portb,nsel");
sendbyte(0b11000000);
sendbyte(0b00100000);
#asm ("sbi portb,nsel");
sendung_aktiv=0;
uc_overflow=0; /* Zeitüberwachung zurücksetzen */
}
}
Beim Empfänger schaut das so aus:
// Empfange Daten vom RFM 01
interrupt [EXT_INT0] void ext_int0_isr(void)
{
unsigned char uc_i=0;
unsigned char uc_buffer=0;
unsigned char uc_check=0;
uc_timeout=0; /* Timeout Zähler zurücksetzen */
/* Die ersten 16 Bit des Statuswortes übergehen */
#asm ("cbi portb,nsel");
sendbyte(0b00000000);
sendbyte(0b00000000);
for(uc_i=0;uc_i<8;uc_i++)/* 8 Bits auslesen */
{
if ((PINB&(1<<3))!=0) /* SDO abfragen = PortB,3 */
{
uc_buffer=(uc_buffer<<1)| 0x01;
}
else
{
uc_buffer=(uc_buffer<<1);
}
clockpulse();
}
#asm ("sbi portb,nsel"); /* nSel Leitung abschalten */
#asm ("nop");
// Hingen noch Reste im Puffer ? oder Puffer Überlauf -> Dann löschen
if((uc_buffer=='$')||(uc_receivebyte>125))
{
uc_receivebyte=1;
uc_receivebuffer[0]='$'; /* Das Erste Byte des Empfangspuffers mit $ beschreiben*/
uc_receivebuffer[1]=0; /* Ein Stringende anfügen*/
}
else
{
uc_receivebuffer[uc_receivebyte]=uc_buffer;
uc_receivebyte++;
uc_receivebuffer[uc_receivebyte]=0; /* Stringende anfügen */
};
if (uc_buffer==10) /* Line Feed wurde empfangen*/
{
reset_fifo();
uc_check=checksum();
if (uc_check==0)
{
newstring=1;
};
uc_receivebyte=0;
}
}
//RFM01 initialisieren
void init_rfm01(void)
{
volatile unsigned char uc_frequ[2]; /* Frequenz tuningword */
/* Frequenzwortermittlung aus der Kanalangabe */
uc_frequ[1]=ui_frequ[uc_kanal]/256;
uc_frequ[1]|=0b10100000;
uc_frequ[0]=ui_frequ[uc_kanal]%256;
/* Configuration Setting: 433MHz, CLK on, 11,5pf Kapaz., 67kHz */
#asm ("cbi portb,nsel");
sendbyte(0b10001001);
sendbyte(0b01101100);
#asm ("sbi portb,nsel");
#asm ("nop");
/* Low Batt Clock Divider Command: clock 5MHz */
#asm ("cbi portb,nsel");
sendbyte(0b11000010);
sendbyte(0b11000000);
#asm ("sbi portb,nsel");
#asm ("nop");
/* Frequency Setting: 434MHz (je nach Kanal) */
#asm ("cbi portb,nsel");
sendbyte(uc_frequ[1]);
sendbyte(uc_frequ[0]);
#asm ("sbi portb,nsel");
#asm ("nop");
/* Receiver Setting Command: VDI= Digital RSSI Out, -103dB, receiver disabled */
#asm ("cbi portb,nsel");
sendbyte(0b11000000);
sendbyte(0b10000000);
#asm ("sbi portb,nsel");
#asm ("nop");
/* Receiver Setting Command: VDI= Digital RSSI Out, -103dB receiver enabled */
#asm ("cbi portb,nsel");
sendbyte(0b11000000);
sendbyte(0b10000001);
#asm ("sbi portb,nsel");
#asm ("nop");
/* FIFO Command: Enable FIFO, IT level=8, Sync. Patt + VDI, stop FIFO */
#asm ("cbi portb,nsel");
sendbyte(0b11001110);
sendbyte(0b10001001);
#asm ("sbi portb,nsel");
#asm ("nop");
/* FIFO Command: Enable FIFO, IT level=8, Sync. Patt + VDI, start FIFO */
#asm ("cbi portb,nsel");
sendbyte(0b11001110);
sendbyte(0b10001011);
#asm ("sbi portb,nsel");
#asm ("nop");
/* Data Filter Command: */
#asm ("cbi portb,nsel");
sendbyte(0b11000100);
sendbyte(0b10101100);
#asm ("sbi portb,nsel");
#asm ("nop");
/* Data Rate Command: 2400 bit/s */
#asm ("cbi portb,nsel");
sendbyte(0b11001000);
sendbyte(0b10010001);
#asm ("sbi portb,nsel");
#asm ("nop");
/* AFC Command: Enable AFC, +3/-4, offset at VDI high */
#asm ("cbi portb,nsel");
sendbyte(0b11000110);
sendbyte(0b10111111);
#asm ("sbi portb,nsel");
#asm ("nop");
}
Die Frequenz Tuningwörter kommen aus einer Tabelle, die dann mit dem entsprechenden Kommando Verodert wird:
Zuordnung Kanäle - Dip Fix - Frequenz
Dip Fix:Kanal:Frequenz
Dip Kanal Frequenz
xxx 01 433.075 MHz
00 02 433.100 MHz
xxx 03 433.125 MHz
xxx 04 433.150 MHz
01 05 433.175 MHz
xxx 06 433.200 MHz
xxx 07 433.225 MHz
02 08 433.250 MHz
xxx 09 433.275 MHz
xxx 10 433.300 MHz
03 11 433.325 MHz
xxx 12 433.350 MHz
xxx 13 433.375 MHz
04 14 433.400 MHz
xxx 15 433.425 MHz
xxx 16 433.450 MHz
05 17 433.475 MHz
xxx 18 433.500 MHz
xxx 19 433.525 MHz
06 20 433.550 MHz
xxx 21 433.575 MHz
xxx 22 433.600 MHz
07 23 433.625 MHz
xxx 24 433.650 MHz
xxx 25 433.675 MHz
08 26 433.700 MHz
xxx 27 433.725 MHz
xxx 28 433.750 MHz
09 29 433.775 MHz
xxx 30 433.800 MHz
xxx 31 433.825 MHz
10 32 433.850 MHz
xxx 33 433.875 MHz
xxx 34 433.900 MHz
11 35 433.925 MHz
xxx 36 433.950 MHz
xxx 37 433.975 MHz
12 38 434.000 MHz
xxx 39 434.025 MHz
xxx 40 434.050 MHz
13 41 434.075 MHz
xxx 42 434.100 MHz
xxx 43 434.125 MHz
14 34 434.150 MHz
xxx 45 434.175 MHz
xxx 46 434.200 MHz
15 47 434.225 MHz
xxx 48 434.250 MHz
xxx 49 434.275 MHz
16 50 434.300 MHz
xxx 51 434.325 MHz
xxx 52 434.350 MHz
17 53 434.375 MHz
xxx 54 434.400 MHz
xxx 55 434.425 MHz
18 56 434.450 MHz
xxx 57 434.475 MHz
xxx 58 434.500 MHz
19 59 434.525 MHz
xxx 60 434.550 MHz
xxx 61 434.575 MHz
20 62 434.600 MHz
xxx 63 434.625 MHz
xxx 64 434.650 MHz
21 65 434.675 MHz
xxx 66 434.700 MHz
xxx 67 434.725 MHz
22 68 434.750 MHz
xxx 69 434.775 MHz
Alle DIP FIX mit gültigen Werten versehen !
23 68 434.750 MHz
24 68 434.750 MHz
25 68 434.750 MHz
26 68 434.750 MHz
27 68 434.750 MHz
28 68 434.750 MHz
29 68 434.750 MHz
30 68 434.750 MHz
31 68 434.750 MHz
************************************************** **/
flash unsigned int ui_frequ[32]={1240,1270,1300,1330,1360,1390,1420,1450,1480,151 0,1540,1570,1600,1630,1660,1690,1720,1750,1780,181 0,1840,1870,1900,1900,1900,1900,1900,1900,1900,190 0,1900,1900};
Den kompletten Code findest Du auf der angegebenen Seite.
Da die Beschaltung hier anders als bei der ELEKTOR Variante ist, musst Du gucken, was zu ändern ist.
hey
danke aner ich kenne mich mit c überhaupt nicht aus leider werd es aber warscheinlich bald lernen
bei dem Code von Elektor steht ja iwie nich dran ob des sender oder Empfänger ist!
Ich hab Dir ja auch die wirklich wichtigen Sachen rausgeklaubt
sendbyte(0b11000000) bedeutet
An das RFM Modul wird das Byte ( binär ) 11000000 über die Funktion sendbyte ( das ist meine selbst geschriebene SPI Routine ) übergeben.
Das dürfte auch mit Bascom kein Problem sein - oder ?
Ist ja auch Kommentiert und viel in Assembler, der ja auch in BASCOM so funktionieren sollte.
"Den" funktionierenden BASCOM Code wird es nicht geben.
Es sind nun mal sehr verschiedene Arbeitsmodi und Einstellungen bei den RFM Modulen möglich.
Das geht vom Einstellen der Sendeleistung, über den Frequenzhub zur Art der Übermittlung, mit Baudrate, FiFo Nutzung und so weiter.
Man muß sich also erstmal überlegen was man will und welche Datenübertragungsrate und Reichweite nötig ist.
Erst dann kann man entscheiden welche Parameter für die konkrete Anwendung sinnvoll sind.
Zu jedem Quellcode gehört somit auch ein Schaltplan, sonst wird's schwierig.
Du könntest aus dem Elektor Beispiel die SPI Routinen übernehmen, gucken wie die Beschaltung der Module ist und dann die Initialisierungsbytes aus unserem System übernehmen.
Unsere Telemetriegeschichte ist auf Reichweite getrimmt, also maximale Sendeleistung bei nur 2400Bit/sek.
Wenn das nicht passt die entsprechenden Bytes umbiegen - Fertig.
ah ok
ich werd mal schauen was ich zusammen bekomme
werd mich bei fragen/probleme wieder melden
Powered by vBulletin® Version 4.2.5 Copyright ©2024 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.