Guten Morgen, ich versuche schon seit längerem zwei Atmega 32 mit je einem RFM12 Funkmodul dazu zu bringen sich Daten zu schicken. Sinn ist, dass am Ende der eine Messwerte an den anderen schickt, der sie wiederum an einem Display anzeigt. Eigentlich funktioniert alles (Display-Anzeige, Messwerte einlesen über AD-Wandler), bis auf dass ich es noch nicht geschafft habe einen Satz Daten über die RFMs zu übertragen. Ich habe den Code von Benedikt K. verwendet (Beitrag "Beispielprogramm für RFM12 433MHz Funk-Module"). Das Programm wird problemlos durchlaufen. Jedes mal wenn ein Datensatz (theoretisch) gesendet wurde, blinkt eine LED (und sie blinkt). Über USART empfange ich aber zur Zeit leider nichts (HTERM zeigt nur diese Rechtecke an, diese werden aber in der richtigen Anzahl empfangen. Ich gehe davon aus, dass nichts in die Empfangsvariable geschrieben wird)... Jetzt ist meine Frage: An welcher Stelle vermutet ihr das Problem? Hardware, Sofware? Angeschlossen ist alles wie folgt: uC - RFM12 MISO - SDO 10k v++ - FSK nRES - nRES (an +, bei Bedarf über Taster an GND) SS - SS SCK - SCK MOSI - SDI Das war es eignetlich schon. V++ und GND natürlich noch, und eine 17cm Drahtantenne... Softwareinitalisierung sieht so aus: #define RF_PORT PORTB #define RF_DDR DDRB #define RF_PIN PINB #define SDI 5 #define SCK 6 #define CS 7 #define SDO 0 Ansonsten stimmt der Code mit dem vom Benedikt überein. Bin über jeden Hinweis dankbar. (Ach so: Ist weder eine Studienarbeit, noch eine Hausarbeit, sondern vielmehr aus interesse und als Vorbereitung auf die folgenden Vorlesungen)
Lukas schrieb: > Über USART empfange > ich aber zur Zeit leider nichts (HTERM zeigt nur diese Rechtecke an, > diese werden aber in der richtigen Anzahl empfangen. Lass Dir mal die HEX-Werte der Rechtecke anzeigen. Stimmt denn die Baudrate und die Parity/Stopp-Konfiguration?
Nun, da ich ja einen theoretisch funktionsfähigen Programmcode genommen habe, gehe ich stark davon aus dass die Baudrate und Raritäten übereinstimmen. Die HEX Werte dieser Rechtecke sind FF (Dezimal 255)...
Lukas schrieb: > Nun, da ich ja einen theoretisch funktionsfähigen Programmcode genommen > habe, gehe ich stark davon aus dass die Baudrate und Raritäten > übereinstimmen. Nichts für Ungut, aber eine häufige Fehlerquelle ist es, sich auf fertigen Code zu verlassen. Ich empfehle dir deshalb erst mal testweise Sende und Empfangsprogramme zu schreiben die so simpel wie möglich sind. Dabei lernst du die RFM12 besser kennen und auch wo Fehlerquellen liegen können. Es macht keinen Sinn, ein Funkmodul mit fertigem Code zu betreiben ohne diesen Verstanden zu haben. Und du solltest die Funktionsweise der RFM12 im Datenblatt durchlesen und verstanden haben. Anschließend wird dir die Ansteuerung der RFM12 Module deutlich leichter fallen und du kannst auch deutlich einfacher nach Fehlerursachen suchen. Ciao, Rainer
Ja, das ist wohl die Antwort, die kein Fragensteller hören will. Aber du hast einfach Recht. Ich nehme das mal so hin und werde mich, wenn ich dann in die Module einarbeiten... Das heißt wohl Datenblätter studieren^^ Schönen Sonntag, Lukas
Du kannst als Beispiele für sehr einfache Sende- und Empfangsprogramme mal in meinem Repository unter [1] schauen. Damit hatte ich damals auch angefangen und erst als diese liefen habe ich ein Übertragungsprotokoll dafür geschrieben. Im Speziellen dürften diese vier ([2], [3], [4], [5]) Testprogramme ein guter Anhaltspunkt zum Starten sein. Ich habe diese gut dokumentiert, aber trotzdem bitte versuchen die RFM12 Einstellungen zu verstehen und nicht einfach nur blind abtippen. ;) Ciao, Rainer [1] https://quakeman.homelinux.net/viewvc/uVision/trunk/ [2] https://quakeman.homelinux.net/viewvc/uVision/trunk/Test_RFM12_RX1/ [3] https://quakeman.homelinux.net/viewvc/uVision/trunk/Test_RFM12_TX1/ [4] https://quakeman.homelinux.net/viewvc/uVision/trunk/Test_RFM12_RX2/ [5] https://quakeman.homelinux.net/viewvc/uVision/trunk/Test_RFM12_TX2/
Gut. Danke für die letzte Mail. Es hilft mir vielleicht beim Einarbeiten (das ist mehr als ich vermutet hatte).
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.