Forum: Mikrocontroller und Digitale Elektronik RFM 12 Senden-Empfangsproblem


von Lukas (Gast)


Lesenswert?

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)

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


Lesenswert?

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?

von Lukas (Gast)


Lesenswert?

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)...

von R. W. (quakeman)


Lesenswert?

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

von Lukas (Gast)


Lesenswert?

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

von R. W. (quakeman)


Lesenswert?

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/

von Lukas (Gast)


Lesenswert?

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
Noch kein Account? Hier anmelden.