Funkverbindung zwischen AVRs !

Gast #58291
Lesenswert?

Hi,

Ich interessiere mich gerade für Funkmodule für meinen AVR, und habe
mir überlegt, ob von euch schon einer Erfahrung mit dem Sende-Modul
STX433saw und dem Epmfangsmodul ERX-01 bzw. EBCNBK von Funkmodule.com
hat.

Ich brauche 2-wege-Kommunikation, und daher müsste ich wohl einen
Empfänger und Sender pro avr anschliessen.

Falls ihr etwas darüber (oder etwas besseres) wisst, dann lasst es mich
bitte wissen.
Gast #58293
Lesenswert?

Hallo Patrick,

arbeitest Du mit den CC1000-Chips noch?

Ich arbeite mit dem Modul von "steve" (Herzstück: CC1000):

http://www.compotek.de/
http://www.compotek.de/html/news/index.php3?news_id=48

Ich habe alles zusammengelötet und die Doku und Beispiele ewig gewälzt:
Und ich bekomme tatsächlich eine Funkverbindung zustande: Allerdings
nur max. 1m.

Ich denke, ich konfiguriere die Register falsch. Ich verwende zwar das
SmartRF-Studio, aber trotzdem ist mir noch nicht jedes Register 100%ig
klar.

Falls es bei Dir besser klappt, wäre es toll, wenn Du mir vielleicht
helfen könntest! :-)

Sebastian
Gast #58295
Lesenswert?

Hi Patrick,

vielen Dank! :-)

Messequipment? Bitte nicht lachen: Nur ein Multimeter, nichtmal Oszi.
Ich will mir zwar ein Digi-Speicher-Oszi anschaffen, weiß aber noch
nicht genau, welches.

Meine "Schaltung" sieht so aus: Ein Mega8 mit Schalter,
USART-Interface und dem CC1000-Modul. Je nach dem wie der Schalter
steht, sendet die Schaltung immer ein Byte bzw. versucht eben eines zu
empfangen und es auf dem USART auszugeben.

Ich hab' mein Programm mal angehängt. Die CC1000-Register kann ich
schreiben und auslesen. Und irgendwie klappt auch alles schon ein
bisschen. Aber - wie gesagt - viele Details sind mir immer noch unklar.
Zuwas brauche ich FSAHPEx?!? Welche "Lock Indicator"-Einstellung ist
am sinnvollsten? usw.

Verwendest Du auch das Modul von compotek (bzw. hast Du es von
"steve")?!? Oder selbstgebaut?

Vielen Dank schonmal! :-)

Sebastian
Gast #58299
Lesenswert?

Achherrje...

Du hast ja so ziemlich alles vergessen, was man für die Kommunikation
und das timing und überhaupt benötigt :)

Hm, ich habe das alles in C gemacht, und für nen MSP430, aber ich
denke, die Probleme liegen eher in elementaren Fehlern.

Heute bekomme ich das nicht mehr auf die Reihe, aber ich werde auf
jedenfall mal was zusammenstellen...

Gruß,
Patrick...
Gast #58300
Lesenswert?

Hi Patrick,

ist es so schlimm? ;-)

Das Timing bestimmt doch der CC1000, oder? In meinen In- und
Output-Routinen warte ich aber immer bis DCLK High bzw. Low ist,
insofern müßte das Timing eigentlich stimmen, oder?

Im Moment werden halt nur 1 und 0 nacheinander ausgegeben (noch keine
Bytes), das stimmt... Die Preamble habe ich zur Zeit auch noch nicht
implementiert.

Vielen Dank auch schonmal für Deine Mühen! :-)

Sebastian
Gast #58302
Lesenswert?

Die Präambel ist das wichtigste an der ganzen sache!
Damit Schwingt der freilaufende Filter ein, sonst kann der Dekoder die
Einsen und Nullen nicht sauber erkennen!

Nach der Präambel muss dann auch auf jeden fall der freilaufende Filter
"festgesetzt" werden, sonst kommts da wieder zu störungen.

Ahja, übernehmen solltest Du bei steigender Flanke und übergeben bei
fallender.

Kann der AVR das erkennen?

Gruß,
Patrick...
Gast #58303
Lesenswert?

Hi Patrick,

daß die Präambel wichtig ist, war mir klar. Meine Idee: Ich sende
permanent Einsen und Nullen: So kann sich der Empfänger einpendeln und
mir danach eben Einsen und Nullen nacheinander ausgeben.

Nun sagst Du etwas von "Filter festsetzen". Das ist mir noch nicht
ganz klar. Muß ich die Länge des Einschwing-Vorgangs selber abpassen
und dann irgendein Register setzen (nach z.B. 20ms)?

Das mit der steigenden und fallenden Flanke scheint zu klappen. Ich
warte halt immer so lange, bis mein Pin low bzw. High ist und setze
dann das Programm fort.

Laufen Deine Module auch mit 868MHz? Sind die Baugleich mit denen von
compotek?

Danke!

Sebastian
Gast #58305
Lesenswert?

Also: nach dem Erfolgreichen erkennen mehrerer 0xAA oder 0x55 (das ist
die Präambel, die länge ist relativ egal, es sollten glaub ich
mindestens 4 Bytes erkannt werden), muss der Filter festgesetzt werden.
Such mal im Datenblatt nach averaging freerunning filter oder so
ähnlich.
Meine Module arbeiten ebenfalls auf 868MHz, und sie sind auch
weitestgehend Baugleich mit denen von Compotek... So fern man sich an
die Anweisungen von Smart RF-Studio hält, kann man ja auch fast nichts
anderes Bauen. Ich habe allerdings kein Antennen-Matching eingebaut!

Gruß,
Patrick...
Gast #58306
Lesenswert?

Hallo Patrick,

entschuldige, daß ich mich so lange nicht gemeldet habe... Leider hatte
ich erst heute wieder Zeit, mich mit den Modulen zu beschäftigen.

Also den "free running filter" muß man wohl bei Manchester nicht
festsetzen: "If Synchronous Manchester mode ist used, the bit slicer
averaging filter can be left free-running, and does not need to be
locked manually."

Eine Datenübertragung bekomme ich ja auch hin, leider nur bis zu einer
maximalen Distanz von ca. 30cm. Es sollten wohl aber schon so 50m sein.
Wie weit kommst Du denn?

Vielleicht liegts ja auch an meiner Antenne. Ich habe eine
Lambda/4-Antenne mit 8,7cm. Verwendest Du eine spezielle Antenne?

Kannst Du mir vielleicht mal Deine Einstellung vom SmartRF-Studio
mailen? Die kann man dort ja abspeichern. Danke! :-)

Sebastian
Gast #58307
Lesenswert?

Ich verwende eine print-Loop-Antenne, ebenfalls Lamda/4.
Ich schicke Dir mal die Einstellungen am Montag zu, allerdings verwende
ich nur Sync. NRZ. Bei Manchester hast Du natürlich recht ;) allerdings
braucht man da auch eine Präambel (mehrfach 0x33CC...).

Gruß,
Patrick...
Gast #58308
Lesenswert?

Hi Patrick,

danke für Deine Info!

Präambel verwende ich natürlich trotzdem. Aber was noch seltsam ist:
Selbst wenn PA_Pow 0xFF ist, verbraucht mein Modul nur 6,4mA. Laut
Datenblatt müßte es aber um die 26mA verbrauchen. Dadurch sendet es
wahrscheinlich auch zu schwach... Weißt Du, an was das liegen könnte?

Ansonsten freue ich mich auf Montag, danke schonmal! :-)

Sebastian
Gast #58313
Lesenswert?

Hallo,

ich würde eine Sammelbestellung für die Easy-Radio-Module machen,
allerdings nur für Transciever, egal ob 868 oder 433 MHz, ich finde die
Modell einfach genial, klein , sehr simple zu programmieren und
RS-232-Standard.

Preis ca. 48,00 EUR / Stk. zzgl. Versand, je mehr es werden, desto
günstiger, ich gehe mal von 16 Stück aus.

Gruss
A. Arndt
Gast #58314
Lesenswert?

Hallo Patrick,

vielen Dank für Deine Uploads! :-))

Ich hab's gerade nur geschafft, anstatt 3,5V ganze 12V anzuschließen
--> Mist! :-(

Ich muß mir am Wochenende erst ein neues Modul zusammenlöten. Dann
melde ich mich nochmal.

Ach, und noch 'ne Frage: Wie weit kannst Du denn ca. mit Deinen
Modulen senden?

Danke!

Sebastian
Gast #58317
Lesenswert?

Hi Patrick,

so, nun habe ich ein neues Modul gelötet und es mit Deinen Parametern
getestet. Es hat mir aber leider noch nicht den Erfolg gebracht... :-(

Aber eine andere Sache habe ich gelöst: Ich hatte bisher immer bei der
Kalibrierung das CAL_Complete-Bit gepollt. Nun warte ich einfach 50ms
und siehe da, plötzlich verbraucht mein Sender auch um die 26mA.
Verrückt, oder? Denn die Kalibrierung hat auch mein Pollen
funktioniert.

Ich habe das Gefühl, irgendwo in meinem Programm steckt noch eine
Macke. Könntest Du mir vielleicht mal Deinen Code mailen oder hier
posten? Dann könnte ich mal jeden Schritt einzeln vergleichen.

Sebastian
Gast #58318
Lesenswert?

Hi,

und noch eine Erkenntnis: Wenn ich CAL_Complete nicht polle, schleichen
sich ab und zu kleine Fehler ein. Polle ich wieder, sind diese
Fehlerchen weg, es wird aber nur noch 12mA verbraucht.

Und das obwohl ich ohne Pollen 50ms warte, 34ms würden im "worst
case" aber genügen...

Sebastian
Gast #58319
Lesenswert?

Ich kann Dir die Grundsätzlichen sachen zur Verfügung stellen, aber die
gibts auch von Chipcon...
Ist alles in C genau wie bei mir.
Ich kann Dir allerdings (falls Du die Sachen von Chipcon verwenden
möchtest) bei den Startschwierigkeiten damit gerne helfen!
Gast #58320
Lesenswert?

Hi Patrick,

danke erstmal für die Antwort! :-)

Ich habe auch die AppNote 009 von Chipcon. Ich habe versucht, das
Beispiel vom C-Code in Assembler zu übersetzen.

Nun kann ich ja auch senden. Also scheint das ja geklappt zu haben.
Nur, daß ich eben nicht so weit komme (so ca. 10m bisher).

Wie hast Du das gemacht? Das Beispiel 1 zu 1 übernommen?

Und pollst Du das CAL_Complete-Bit?

Danke!

Sebastian

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren