www.mikrocontroller.net

Forum: HF, Funk und Felder 3 Byte über Funk zwischen 2 AVR übertragen


Important announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
Autor: Mathias S. (merzi1993)
Datum:

Diesen Beitrag bewerten:
lesenswert
nicht lesenswert
Hallo,

nach langem Suchen im Forum bin ich noch immer keinen Schritt weiter.
Ich bin auf der Suche nach einer günstigen Methode (<20€) 3 Byte 
zwischen 2 AVR zu übertragen, d.h. einer sendet und der andere empfängt 
diese 3 Byte.

Die AVR sind ca. 3m entfernt.

Außerdem sollte es eine kompakte Lösung sein, d.h. sie sollte nicht zu 
viel Platz benötigen. Eine große Antenne wäre somit auch nicht die 
richtige Lösung.

Ich habe da irgendwie an eine Übertragung mit Bluetooth gedacht, nur 
finde ich nicht die richtigen Module dafür.

Oder würden 433MHz Funkmodule eine bessere Lösung darstellen?

IR wäre auch eine mögliche Lösung, jedoch habe ich auf der Sendeseite 
schon eine IR-Diode verbaut, welche Signale von einer Fernbedienung 
empfängt und daher bin ich mir nicht sicher, ob dies ohne Probleme 
laufen würde.


Gruß
Mathias

Autor: Helmut Lenzen (helmi1)
Datum:

Diesen Beitrag bewerten:
lesenswert
nicht lesenswert

Autor: Sebastian (Gast)
Datum:

Diesen Beitrag bewerten:
lesenswert
nicht lesenswert
Ebay-Artikel Nr. 120897348781

Autor: Andi D. (xaos)
Datum:

Diesen Beitrag bewerten:
lesenswert
nicht lesenswert
Mathias S. schrieb:
> IR wäre auch eine mögliche Lösung, jedoch habe ich auf der Sendeseite
> schon eine IR-Diode verbaut, welche Signale von einer Fernbedienung
> empfängt und daher bin ich mir nicht sicher, ob dies ohne Probleme
> laufen würde.
>

bluetooth module kosten wesentlich mehr, das kannst du vergessen. rf12 
sind auch müll, da die keinen protokol stack drinnen haben (mmusst du 
alles selber machen).
Am einfachsten wäre eine infrarotstrecke -> nimm einfach eine andere 
wellenlänge und gut ;)

Autor: Helmut Lenzen (helmi1)
Datum:

Diesen Beitrag bewerten:
lesenswert
nicht lesenswert
Andi D. schrieb:
> Am einfachsten wäre eine infrarotstrecke -> nimm einfach eine andere
> wellenlänge und gut ;)

Ach und da braucht man kein minimales Protokoll?

Und du meinst er soll eine andere Infrarot Wellenlaenge nehmen?

Andi D. schrieb:
> rf12
> sind auch müll, da die keinen protokol stack drinnen haben (mmusst du
> alles selber machen).

Dazu gibt es hunderte fertiger Protokoll Stacks im Netz.

Autor: Mathias S. (merzi1993)
Datum:

Diesen Beitrag bewerten:
lesenswert
nicht lesenswert
Helmut Lenzen schrieb:
> RFM12 ist dein Freund
>
> http://www.mikrocontroller.net/articles/RFM12

Im Artikel steht, dass die SPI-Schnittstelle für RFM12 benötigt wird, 
diese habe ich aber schon für eine andere Funktion verwendet..



Sebastian schrieb:
> Ebay-Artikel Nr. 120897348781

Nur wie teile ich einem solchen Modul mit wer Sender und wer Empfänger 
ist?


Andi D. schrieb:
> Am einfachsten wäre eine infrarotstrecke -> nimm einfach eine andere
> wellenlänge und gut ;)

IR würde mir auch am meisten zusagen, ein fertiges Protokoll wäre aber 
sehr vorteilhaft, da ich keine Ahnung habe wie ich ein solches schreiben 
soll... :)

Autor: g457 (Gast)
Datum:

Diesen Beitrag bewerten:
lesenswert
nicht lesenswert
> Im Artikel steht, dass die SPI-Schnittstelle für RFM12 benötigt wird,
> diese habe ich aber schon für eine andere Funktion verwendet..

Die kann man auch mehrfach nutzen, /CS regelt. Eine Alternative wäre 
u.U. auch der RFM70.

> Nur wie teile ich einem solchen Modul mit wer Sender und wer Empfänger
> ist?

Indem Du das Handbuch liest. Vermutlich ists wie bei einer UART: TX 
sendet, RX empfängt.. ;-)

HTH

Autor: Mathias S. (merzi1993)
Datum:

Diesen Beitrag bewerten:
lesenswert
nicht lesenswert
g457 schrieb:
> Die kann man auch mehrfach nutzen, /CS regelt.

Ich benutze die SPI-Schnittstelle für einen LED-Treiber - TLC5922

Dieser hat kein SlaveSelect, hier würde mir nichts anderes übrig 
bleiben, als BLANK auf High zu setzen, dann würden aber alle LEDs 
ausgeschaltet sein und der TLC5922 reagiert nicht mehr auf die Signale 
von der SPI-Schnittstelle und somit kann die SPI-Schnittstelle für die 
Funkübertragung verwendet werden. Die LEDs sollen in dieser Zeit aber 
nicht ausgeschaltet werden...

Oder verstehe ich in dieser Hinsicht etwas komplett falsch?



g457 schrieb:
>> Nur wie teile ich einem solchen Modul mit wer Sender und wer Empfänger
>> ist?
>
> Indem Du das Handbuch liest. Vermutlich ists wie bei einer UART: TX
> sendet, RX empfängt.. ;-)

Das mit der UART ist mir schon klar, aber muss da nicht zuerst mal eine 
Verbindung zwischen den beiden Modulen aufgebaut werden, damit diese 
kommunizieren können?

Autor: Fhutdhb Ufzjjuz (weinbauer)
Datum:

Diesen Beitrag bewerten:
lesenswert
nicht lesenswert
Mathias S. schrieb:
> IR würde mir auch am meisten zusagen, ein fertiges Protokoll wäre aber
> sehr vorteilhaft, da ich keine Ahnung habe wie ich ein solches schreiben
> soll... :)

Werkle derzeit auch an IR-Strecke bidirektional, ist doch auch in 
Harware recht easy einiges zu machen.

Habs so gelöst, 9-Bit Datenmodus, das Bit 9 Zeigt das erste Byte an.
Dazu die Parity Bits, Maaster ist even, Slave ist odd, Hintergrund ist,
das der sendende ja auch gleich wieder empfängt, das Paritiy Error Flag 
kannst Du in der Empfangsroutine abfragen und einfach unterscheiden, ist 
das Flag gesetzt, kommt das Byte von der Gegenstelle, wenn nicht ists 
selbst gesendet.
Die Modulationsfrequenz (38KHz) lass ich mir von nem Timer im CTC-Mode 
generieren.

Empfang sieht dann so aus:
wenn Parity Error, dann von Gegenstelle,
wenn Bit 9 gesetzt Ringpuffer auf Anfang setzen
wenn Bit 9 nicht gesetzt Ringpuffer weiterschieben

Autor: Mathias S. (merzi1993)
Datum:

Diesen Beitrag bewerten:
lesenswert
nicht lesenswert
Fhutdhb Ufzjjuz schrieb:
>
> Werkle derzeit auch an IR-Strecke bidirektional, ist doch auch in
> Harware recht easy einiges zu machen.
>
> Habs so gelöst, 9-Bit Datenmodus, das Bit 9 Zeigt das erste Byte an.
> Dazu die Parity Bits, Maaster ist even, Slave ist odd, Hintergrund ist,
> das der sendende ja auch gleich wieder empfängt, das Paritiy Error Flag
> kannst Du in der Empfangsroutine abfragen und einfach unterscheiden, ist
> das Flag gesetzt, kommt das Byte von der Gegenstelle, wenn nicht ists
> selbst gesendet.
> Die Modulationsfrequenz (38KHz) lass ich mir von nem Timer im CTC-Mode
> generieren.
>
> Empfang sieht dann so aus:
> wenn Parity Error, dann von Gegenstelle,
> wenn Bit 9 gesetzt Ringpuffer auf Anfang setzen
> wenn Bit 9 nicht gesetzt Ringpuffer weiterschieben


Mir fällt es momentan schwer deinen Erklärungen zu folgen, aber ich werd 
mich in nächster Zeit sowieso mal mit Protokollen beschäftigen müssen.

Wie soll ich das mit "Bit 9 zeigt das erste Byte an" verstehen? : )

Autor: g457 (Gast)
Datum:

Diesen Beitrag bewerten:
lesenswert
nicht lesenswert
> Ich benutze die SPI-Schnittstelle für einen LED-Treiber - TLC5922
> Dieser hat kein SlaveSelect,

Wenn ich das richtig seh hat der zumindest ein Latch, d.h. wenn Du 
dessen SOUT (vulgo SDO/MISO) nicht brauchst um den Zustand zurückzulesen 
kannst Du die Bausteine problemlos parallel betreiben.

> Das mit der UART ist mir schon klar, aber muss da nicht zuerst mal eine
> Verbindung zwischen den beiden Modulen aufgebaut werden, damit diese
> kommunizieren können?

Auch das steht (hoffentlich:-) im Datenplatt. Der Bucht-Schopp liefert 
leider keines, ist also ein bisschen russisches Roulette.

Autor: Mathias S. (merzi1993)
Datum:

Diesen Beitrag bewerten:
lesenswert
nicht lesenswert
g457 schrieb:
> Wenn ich das richtig seh hat der zumindest ein Latch, d.h. wenn Du
> dessen SOUT (vulgo SDO/MISO) nicht brauchst um den Zustand zurückzulesen
> kannst Du die Bausteine problemlos parallel betreiben.

Warum komm ich eigentlich nicht selber auf solche Ideen? :)
Nur sollte ich mich halt ein bisschen mit RFM12 beschäftigen, wenn ich 
dieses verwenden will.



g457 schrieb:
>> Das mit der UART ist mir schon klar, aber muss da nicht zuerst mal eine
>> Verbindung zwischen den beiden Modulen aufgebaut werden, damit diese
>> kommunizieren können?
>
> Auch das steht (hoffentlich:-) im Datenplatt. Der Bucht-Schopp liefert
> leider keines, ist also ein bisschen russisches Roulette.

Ohne Datenblatt bestellen will ich auch nicht, da es mehr oder weniger 
Glückssache ist :)

Autor: Sebastian (Gast)
Datum:

Diesen Beitrag bewerten:
lesenswert
nicht lesenswert
Die verbindung zwischen den dingern ist bidirektional. Beide sind 
empfänger und sender. Kommunikation per bluetooth

was du in den einen reinschickst kommt beim anderen raus,

Autor: Mathias S. (merzi1993)
Datum:

Diesen Beitrag bewerten:
lesenswert
nicht lesenswert
Sebastian schrieb:
> Die verbindung zwischen den dingern ist bidirektional. Beide sind
> empfänger und sender. Kommunikation per bluetooth
>
> was du in den einen reinschickst kommt beim anderen raus,


Alles schön und gut, aber irgendwie muss eine Verbindung zwischen diesen 
Dingern aufgebaut werden. Ist ja schließlich das selbe wie bei Handys, 
da muss man zuerst auch mal mit dem anderen Gerät verbinden, bevor man 
irgendwelche Daten senden kann.

Autor: Helmut Lenzen (helmi1)
Datum:

Diesen Beitrag bewerten:
lesenswert
nicht lesenswert
Mathias S. schrieb:
> Im Artikel steht, dass die SPI-Schnittstelle für RFM12 benötigt wird,
> diese habe ich aber schon für eine andere Funktion verwendet..

Jeder Prozessor hat soviel SPI Schnittstellen wie er Pins hat.
Man muss nicht unbedingt eine Hardware SPI Schnittstelle nehmen man kann 
die auch durch ein paar Zeilen Software ersetzen. An jedem Prozessorpin 
wo man dran wacklen kann, kann man nehmen.

Autor: Sebastian (Gast)
Datum:

Diesen Beitrag bewerten:
lesenswert
nicht lesenswert
Bis eine Verbindung steht, akzeptieren die Boards AT Kommandos.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel




Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder GIF-Format hochladen.
Siehe Bildformate
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken erkennst du die Nutzungsbedingungen an.

webmaster@mikrocontroller.netImpressumNutzungsbedingungenWerbung auf Mikrocontroller.net