Forum: Mikrocontroller und Digitale Elektronik Funkverbindung zwischen AVRs !


von Elektrofuzzi (Gast)


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.

von OldBug (Gast)


Lesenswert?

CC1000 von ChipCon...

Arbeitet recht zuverlässig und es gibnt Ref-Designs für AVRs.

Gruß,
Patrick...

von Sebastian Wille (Gast)


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

von OldBug (Gast)


Lesenswert?

Klar, kein Problem!
Ich habe mich da echt durchkämpfen müssen...

Hast Du Messequipment? Welches?

von Sebastian Wille (Gast)


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

von Sebastian Wille (Gast)


Lesenswert?

Hier der Anhang, sorry...

von Sebastian Wille (Gast)


Lesenswert?

Hat er gerade wohl nicht angenommen...

von Sebastian Wille (Gast)


Angehängte Dateien:

Lesenswert?

Was lange währt...

von OldBug (Gast)


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

von Sebastian Wille (Gast)


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

von Mike (Gast)


Lesenswert?

Schau doch mal in die Elektor 12/03 dort findest Du eine simple
bidirektionale RS232-Verbindung mit ER400TRS Transceivern von LPRS
http://www.lprs.co.uk/pdf_directory/23861049807229.pdf
Kostenpunkt ca. 55Euro/Stück

von OldBug (Gast)


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

von Sebastian Wille (Gast)


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

von A. Arndt (Gast)


Lesenswert?

Hi Mike,

wie sind die Erfahrungen mit dem Dingern (Easy) in bezug auf die
Antenne, abstimmen ?

Gruss
A. Arndt
... und wo kriegt man sie zu kaufen...?

von OldBug (Gast)


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

von Sebastian Wille (Gast)


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

von OldBug (Gast)


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

von Sebastian Wille (Gast)


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

von Sebastian Wille (Gast)


Lesenswert?

Hallo Patrick,

ich wollte nochmal fragen, ob Du mir die Einstellungen vielleicht noch
zusenden könntest?

Ich würde mich wirklich sehr freuen, vielen Dank! :-)

Sebastian

von OldBug (Gast)


Angehängte Dateien:

Lesenswert?

Oh, sorry, ich hatte den Thread aus den Augen verloren...
Du findest die Config im Dateianhang...

von OldBug (Gast)


Angehängte Dateien:

Lesenswert?

Und hier das ganze nochmal für TX...

von OldBug (Gast)


Angehängte Dateien:

Lesenswert?

...

von A. Arndt (Gast)


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

von Sebastian Wille (Gast)


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

von OldBug (Gast)


Lesenswert?

Oha, keine ahnung... aber so einige Hundert meter schon...

von Sebastian Wille (Gast)


Lesenswert?

Hi Patrick,

naja, ich komm' ja nur auf so 5m im Moment. Aber gut zu wissen, daß
weit höhere Reichweiten möglich sind. Das motiviert weiterzumachen,
danke! :-)

Sebastian

von Sebastian Wille (Gast)


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

von Sebastian Wille (Gast)


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

von OldBug (Gast)


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!

von Sebastian Wille (Gast)


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

von OldBug (Gast)


Lesenswert?

Ja, ich polle das CAL_Complete bit. Genauso, wie in der AppNote...
Aber da sind noch mehr, mit Beispielen für AVR, PIC und MSP430...

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.