Hallo community, ich arbeite gerade an einem Semesterarbeit und möchte 2 AVR Funk Evaluation Board (mit Atmega8 und RFM12)so zu synchronisieren, dass der Sender jede 2 min einem Byte an den Empfänger sendet. Die sollen im Schlafmodus gesetzt werden und nur aufwachen, um zu senden bzw zu empfangen. der Sendevorgang dauert nicht länger als 2s. Ich habe bisher geschafft, dass der Sender jede 2 min sendet. das Programm receive für den Empfänger funktioniert allgemein. ich habe die Schwierigkeit jetzt der Empfänger so zu einstellen, dass er auch jede 2 min synchron mit dem Sender funktioniert. Das Programm für "sleep_Idle" habe ich schon gefunden und muss nur noch alles genau im Hauptprogramm Schreiben. Wollte mal fragen, ob jemand so etwas schon gemacht hat, oder hat eine Idee wie ich es realisieren kann. danke sehr, Landson.
Wenn die Module nicht exact dieselbe Uhr (z.B. Funkuhr) benutzen, muß der Empfänger ständig lauschen. Der Sender sollte zunächst einige Bytes "Bitwechsel" senden, z.B 0x55, dann die beiden Synchronbytes laut Datenblatt, danach die Nachricht bekannter Länge mit einer CRC oder zumindest einer Checksum. Der Empänger "verschluckt" die 0x55-Bitwechselbytes sowie die Synchronbytes (Startkennung), danach kommen die Datenbytes. Die Auswertung muß in der SW geschehen (CRC Prüfung etc). Ich baue z.Zt. etwas ähnliches auf, bin aber noch nicht soweit. Good Luck.
Ergänzung: Nach Empfang einer Nachricht sollte das Empfangsmodul neu initialisiert und auf Receive geschaltet werden...
landson schrieb: > Wollte mal fragen, ob jemand so etwas schon gemacht hat, oder hat eine > Idee wie ich es realisieren kann. Das ist garnicht so einfach. Der RFM12 bietet aber einige Unterstützung dafür, einen stromsparenden Empfänger zu bauen. Da ist zum einen ein Timer für die längeren Wartezeiten. D.h.: Dein µC kann die meiste Zeit der 2 Minuten komplett im Tiefschlaf verharren und im RFM12 läuft nur dieser Timer, der auch kaum Strom braucht. Ist die Wartezeit vorbei (sinnvollerweise etwas kürzer als der vereinbarte Zyklus), weckt der RFM12 deinen µC per Interrupt. Jetzt kannst du den RFM12 umprogrammieren und auf Empfang gehen. Auch dafür gibt's eine stromsparende Variante, die nicht ständig den Empfänger laufen läßt, sondern sozusagen "stotternd". Bei sinnvoller Festlegung der Stotterparameter und der Sendewiederholungen kann man so auch nochmal einiges an Energie sparen. Aber alle diese Spielchen können letztlich nicht verhindern, daß die Zeiten von Sender und Empfänger mittelfristig auseinanderlaufen werden, was zur Folge hat, daß man immer kürzer ganz tief schlafen kann, weil man immer längere Zeit lauschen muß. Es ist also sinnvoll, den Inhalt des Broadcasts so zu gestalten, daß sich der Empfänger bei erfolgreichem Empfang eines Paketes auch gleich neu synchronsieren kann. D.h. konkret: Die Nummer der Wiederholung muß im Paket stehen.
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.