Forum: Mikrocontroller und Digitale Elektronik RFM12 Empfang (nicht schon wieder.)


von Torsten B. (torty)



Lesenswert?

Hallo Gemeinde
Vielen wird es schon zum Hals raus hängen, aber nach mehreren Wochen 
habe ich einfach keine Ideen mehr, warum mein RFM12 Empfänger seinem 
Namen nicht gerecht werden möchte.

Ich habe mal den Code von Sender und Empfänger angehängt, wobei der 
Sender mit allergrößter Wahrscheinlichkeit funktioniert.
Sowohl das Logik Log, als auch mein alter SpecAnalyzer bestätigen das.

Wenn der Sender in Betrieb ist, bekomme ich auch das RSSI bzw ATS Bit im 
Statusregister gesetzt aber das FIFO bleibt leer.

Die Codeschnipsel habe ich aus verschiedenen Quellen (Forum und WWW) 
entnommen. Die InitParameter sind aus dem Pollin Beipackzettel.

Immerhin eine Art Fernwirkung ...

Eventuell bin ich nach der langen Zeit einfach zu Betriebsblind...

Ich habe für alle, die die Schn... zu diesem Thema noch nicht gestrichen 
voll haben auch mal die mal Logig Logs angehängt. Vielleicht erkennt ja 
einer von Euch, was da faul ist.

Eigentlich sollte der Empfänger die "A"s einfach nur empfangen und in 
die Dummy Variable kopieren.
Ist nicht sehr sinhaft, aber zum Testen reichts.

Zusatzinfos:
Prozessor: ATMega328P @ 8 MHz (Wattuino von watterott.com)
Vss: 1 LiPo Zelle


Danke für Eure Hilfe
Torsten

von Steffen H. (avrsteffen)


Lesenswert?

Welche RFM12? 433Mhz oder 868Mhz? Und ohne deinen Code wird es auch 
schwierig zu helfen.

Steffen

von Torsten B. (torty)


Lesenswert?

Sorry: 433 MHz
aber der Code hängt dran.

von Steffen H. (avrsteffen)


Lesenswert?

Ja, bin blind. Hab ich auch gerade gesehen.

von Steffen H. (avrsteffen)


Lesenswert?

Hast du es mal mit diesem Code versucht?
Beitrag "Beispielprogramm für RFM12 433MHz Funk-Module"

von Torsten B. (torty)


Lesenswert?

Nicht komplett übernommen, aber auch bereits gelesen und auch Elemente 
daraus geklaut.
Hast Du den schon mal probiert und Erfolg gehabt ?

Wollte halt nicht alles kopieren, weil selber essen dick macht ;-)
Bilde mir immer ein, dass ich es besser verstehe, wenn ich es selber 
mache.

Könnte ich aber dieses WE mal probieren.

von Steffen H. (avrsteffen)


Angehängte Dateien:

Lesenswert?

Also ich habe in deinem Code gesehen, dass du den Transmitter auf 
430.9MHz Mittenfrequenz einstellen willst. Bitte denke an die freie 
Nutzung der Frequenzen (siehe Anhang).

Torsten B. schrieb:
> Hast Du den schon mal probiert und Erfolg gehabt ?
Ja, ich habe auch erst selber rumexperimentiert. Leider ohne Erfolg. Hab 
meine Module schon für tot erklärt. Dann den Code von Benedikt 
ausprobiert und siehe da:
"Wiederauferstehung" oder "Meine Module funken also doch"

Erst dann hab ich mich an meine Eigenentwicklung gemacht, in Assembler, 
da ich C nicht beherrsche.


Steffen

von Torsten B. (torty)


Lesenswert?

Hi das mit den Kanälen ist ein wichtiger und guter Hinweis. Danke!

Wahrscheinlich hast Du Recht. Wahrscheinlich komme ich so doch schneller 
zum Ziel.

Danke
Torsten

Falls doch noch jemandem was einfallen sollte ....

Habe übrigens gerade mal in der TX Routine die Anzahl der gesendeten A's 
auf vier erhöht. Sende also jetzt ...."AAAA"....
Ich dachte, das es bei einem A keinen FIFO Interrupt gibt und deshalb 
nicht rauskommt.
Bringt aber leider nichts :-(

von Torsten B. (torty)


Lesenswert?

Hallo Nochmal

Habe jetzt mal ganz stumpf den Code von Benedikt auf meinen ATMEGA328P 
geschoben, nachdem ich die PinNo und die Frequenz angepasst hatte.

Ich hätte nicht damit gerechnet, aber es läuft und mein LogikLog sagt 
auch, dass der Code für Kommunikation sorgt :-))))

Was jetzt allerdings mysteriös ist, ...

Wenn ich den ISP Stecker abziehe, weil ich ja eine "Drahtlose Verbindung 
haben möchte. Stoppt der ganze Mist. Dir Rekonstuktion ist folgendes:

1. PowerOn mit 6Pin ISP Header --> ISP OK
2. ISP Header im Betrieb abziehen --> ISP stoppt
3. ISP im Betrieb wieder aufstecken --> ISP läuft NICHT wieder an
4. Batterie ab und wieder dran --> ISP OK

Habe zu diesem ISP/SPI Problem schon mal einen Beitrag hier gelesen, 
aber ich kann ihn im Augenblick nicht wiederfinden.

Kann jemand helfen ??

Danke
Torsten

von Torsten B. (torty)


Lesenswert?

Ach ja ...
Das einen Beitrag vorher beschriebene Verhalten beobachte ich nur bei 
Empfänger. Hier kann ich übrigens auch nicht Flashen, wenn das Funkmodul 
am SPI Bus hängt. Wahrscheinlich besteht da ein zusammenhang.

Beim Sender kann ich flashen, wennn das Modul am Bus hängt und es läuft 
auch brav weiter, wenn ich den ISP Stecker abziehe.

von Torsten B. (torty)


Lesenswert?

So, ich habe jetzt mal 1,2k Serien-Widerstände in die SDO, SDI und SCK 
Leitungen eingelötet. Das mit dem Flashen klappt jetzt auch bei 
angeschlossenem SPI Teilnehmer.
Leider stoppt die Geschichte immer noch, wenn ich den ISP Header 
abziehe.
Es läuft aber weiter, wenn ich ihn einfach wieder aufstecke.

Hoffentlich kann noch jemand was nützliches beitragen.

Benedikts Code (vom Anfang des oben empfohlenen Beitrages läuft aber 
leider auch noch nicht. SDO bleibt immer auf High und es wird 
logischerweise nur 0xFF eingelesen.

Grüße
Torsten

von Steffen H. (avrsteffen)


Lesenswert?

Wie hast du denn deine Module angeschlossen? Kannst du mal eine 
Zeichnung für RX-Modul und das TX-Modul machen? Und woher bekommen die 
Module ihre Versorgungsspannung?

Bitte zeig mal deine Hardware.

Steffen

von Torsten B. (torty)


Angehängte Dateien:

Lesenswert?

Hallo Steffen
Sorry hat ein wenig gedauert aber hier jetzt meine genutzte Hardware und 
nochmal der verwendete Code (von Benedikt).
Der Strom kommt aus einem LiPo Akku und sollte daher frei von AC 
Anteilen sein, falls Deine Frage aus der Ecke kommt.

Das PDF ist die Doku vom verwendeten Board.
Die Skizze meine Lochplatine.

Hoffe, Du (oder andere) kannst erkennen, warum:

a) der Empfänger nicht empfängt (eingelesen werden nur 0x0000)
b) der Mist nur läuft, wenn der ISP Stecker aufgesteckt ist.

Danke für Eure Mühe
Torsten

von spess53 (Gast)


Lesenswert?

Hi

>b) der Mist nur läuft, wenn der ISP Stecker aufgesteckt ist.

Deutet im Allgemeinen auf eine fehlende Masseverbindung hin.

MfG Spess

von Torsten B. (torty)


Lesenswert?

Negativ
Habe ich hier auch schon 38mal gelesen. 37mal übrigens von Dir ;-)
Hab das aber auch schon 39mal durchgeklingelt und die Masse ist überall 
(BatteriePin, ISP Stecker, AVR Board, RFM Board (beide Pins).

Torsten B. schrieb:
> So, ich habe jetzt mal 1,2k Serien-Widerstände in die SDO, SDI und SCK
> Leitungen eingelötet. Das mit dem Flashen klappt jetzt auch bei
> angeschlossenem SPI Teilnehmer.
> Leider stoppt die Geschichte immer noch, wenn ich den ISP Header
> abziehe.
> Es läuft aber weiter, wenn ich ihn einfach wieder aufstecke.
>
> Hoffentlich kann noch jemand was nützliches beitragen.
>
> Benedikts Code (vom Anfang des oben empfohlenen Beitrages läuft aber
> leider auch noch nicht. SDO bleibt immer auf High und es wird
> logischerweise nur 0xFF eingelesen.

Das war eine leichte Verbesserung ...

von spess53 (Gast)


Lesenswert?

Hi

>Hab das aber auch schon 39mal durchgeklingelt und die Masse ist überall
>(BatteriePin, ISP Stecker, AVR Board, RFM Board (beide Pins).

Dann würde ich mal an den mit dem ISP verbundenen PIN nachmessen, ob 
sich beim Abziehen des ISP-Steckers Pegeländerungen ergeben.

MfG Spess

von Torsten B. (torty)


Lesenswert?

wird gemacht Danke

von Torsten B. (torty)


Angehängte Dateien:

Lesenswert?

Hab das gerade mal gemacht.

Vcc und MOSI müssen (übrigens am AVR Dragen) angeschlossen sein, damit 
der Rest läuft.

Ja, am Prozessorboard und am RFM ist Vcc auch zu messen, wenn ISP nicht 
angeschlossen ist.

Bin gerade BEtriebsblind und kann da nicht recht etwas daraus schließen 
..? :-(

von Torsten B. (torty)


Lesenswert?

Wenn ich im Quellcode SDI und SDO vertausche, dann läuft die Hardware 
auch, wenn ich den ISP Stecker abziehe.
Siehe Lgik Log oben ( nur ohne Pause)

//für RX
#define SDI    3    //2
#define SCK    1
#define CS    4
#define SDO    2    //3

Leider wird noch immer nur 0xFF empfangen.
Hatte vorhin mal gesagt, dass es 0x00 ist, aber da habe ich mich vertan.

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.