www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Sichere IR-Verbindung


Autor: Phillip (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich muss 2 AVRs (ATmega8) über Infrarot miteinander verbinden, d.h. ich
brauche eine bidirektionale Kommunikation ohne Master und Slave.
Das TWI Interface würde mir gut gefallen, aber es hat eben die
Einteilung in Master und Slave...
Die Verbindung mus zudem noch relativ sicher sein. aber das ist nicht
das Problem, eine CRC Routine habe ich bereits.

Autor: Rufus T. Firefly (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Dann sieh' Dir mal das IrDA-Protokoll* an. Dafür gibt es fertige
Sender- und Empfängerbausteine - ein weiterer Vorteil wäre die
Möglichkeit, eventuell auch mit anderen IrDA-Geräten (PDA, PC etc.) zu
kommunizieren.

*) www.irda.org

Autor: Phillip (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Dran habe ich shcon gedacht...
Ich benötige allerdings keine so hohe Geschwindigkeit und vor allem
habe ich schon ein paar IRF274 IR-Dioden und TSOP1736 herumliegen die
ich verwenden möchte.

Autor: tex (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
vieleicht eine total blöde Idee, aber warum eigentlich nicht via RS232?
einen Phototransistor (mit verstärker) an den RX eine IR- Diode an den
TX?
Nicht in der Luft zerreissen bitte! Ist nur eine Idee!

Autor: Rufus T. Firefly (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
"keine so hohe Geschwindigkeit"?

IrDA kann, wie beispielsweise von Palm-PDAs realisiert, auch mit
verhältnismäßig langsamen Baudraten (< 115200) betrieben werden. Ich
weiß jetzt gerade "offhand" nicht, bis zu welcher Baudrate das
heruntergeht, meine aber 19200 in der Liste der angebotenen Raten
gesehen zu haben.

Du könntest ja das IrDA zugrundeliegende Protokoll
(Datensicherungsschicht) mit Deinen Sende- und Empfangsdioden
realisieren; niemand zwingt Dich, dazu spezielle IrDA-Transmitter zu
verwenden.

Autor: Phillip (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ok...
Rs232 gefällt mir gar nichtmal so schlecht...
Man kann es ja auch mit Paritätsbit verwenden.
Kan man einfach so eine Sendediode mit einem Transistor an Rx
anschliessen und den TSOP an Tx?

Autor: Rufus T. Firefly (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Philip: Im Prinzip ja, aber es empfiehlt sich, einen höherfrequenten
Träger mit den seriellen Daten zu modulieren. Dann ist es auf der
Empfängerseite einfacher, das Nutzsignal von Störungen ('ne Lampe
reicht!) zu trennen.

Dieses Konzept wird auch in üblichen IR-Fernbedienungen angewendet.

Autor: Zotteljedi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Apropos Störungen, Nutzsignal und trennen. Ich wollte letzens einen
RC5-Empfänger mit einem 36 kHz TSOP basteln, und bin schier
verzweifelt, warum das Ding manchmal Interrupts bekommen hat, obwohl
ich nichts gemacht habe. Es ist meine Schreibtischlampe,
Leuchtstoffröhre. Nur als Vorwarnung, bevor jemand am gleichen Problem
ein paar Tischkanten verschleißt.

Der Fernseher, zu dem die Fernbedienung eigentlich gehört, hat sich
übrigens von der Lampe nicht stören lassen, selbst wenn man voll in
sein "Auge" reinleuchtet kann er die Fernbedienung einwandfrei
erkennen und richtig schalten. Vielleicht war mein TSOP auch einfach
kaputt bzw. nicht schmalbandig genug, und es gibt besseres.

Autor: thkais (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Zotteljedi:
Ich habe seit Jahren eine IR-Fernbedienung auf Basis eines TSOP laufen.
Störimpulse bekommt man immer rein, auch wenns noch so schmalbandig
wäre. Die Kunst ist eben, diese Störungen vom Nutzsignal zu trennen.
@Phillip:
Der I2C-Bus ist durchaus nicht in "Master" und "Slave" getrennt.
Jeder Baustein darf auch Master sein.
Dein Problem ist allerdings, daß Du dann zwei Signale (Takt und Daten)
übertragen mußt - und das würde sehr aufwendig werden.
Der in den üblichen Fernbedienungen verwendete Träger um die 35-40 kHz
eignet sich nur zum Übertragen von kleinen Datenmengen. Bei einer
Baudrate von 9600 Baud würden pro Bit nur ca. 4 Impulse der
Trägerfrequenz übrigbleiben - das ist zuwenig.
Schau Dir mal den LM567 an, das ist ein PLL der auch als Tondekoder
verwendet werden kann.

Autor: Peter Dannegger (peda)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Zotteljedi,

Dein TSOP ist völlig in Ordnung, aber er kann doch nicht wissen,
welches Protokoll Du verwendest.

Es ist also allein Deine Auswertesoftware, die nicht in Ordnung ist.

Schau dir z.B. mal meine Routine in der Codesammlung an. Die macht
diverse Tests, um falsche Impulslängen und falsche Datenpakete zu
unterdrücken.



Peter

Autor: Zotteljedi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> Dein TSOP ist völlig in Ordnung, aber er kann doch nicht wissen,
> welches Protokoll Du verwendest.

Ich war viel mehr verwundert, daß die Lampe überhaupt eine Reaktion
hervorgerufen hatte. Mir war nicht so klar, daß die genau (bzw. unter
anderem auch) bei 36 kHz rumstört.

Vielleicht bastel ich mir für den nächsten Versuch einen optischen
Tiefpaßfilter ('ne Socke drüberziehen oder sowas)...

Vom nächsten Lotterie-Gewinn wird eh erstmal ein Oszi gekauft, wenn man
nur ein Multimeter zum Debuggen hat, dann sieht jedes Problem wie
Gleichstrom aus.

Autor: Phillip (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wen ich aufmodulieren will, benötige ich aber eine externe Schaltung (Rx
Ausgang NAND 36kHz Signal) oder ich mache es intern indem ich mit einem
Timer ein 36Khz Signal generiere und den Ausgangspin entweder aktiviere
oder deaktiviere.

Autor: Zotteljedi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ein externer NE555 ist doch kein Problem, mit C = 10 nF, Ra = 2,2 kOhm
und Rb = 1 kOhm recht nah dran (35,5 kHz), wenn eins der Bauteile
trimmbar ist könnte das gut hinhauen. Kurzes googeln scheint zu zeigen,
daß das praxistauglich ist.

Autor: Peter Dannegger (peda)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
"Ein externer NE555 ist doch kein Problem"

Nö, aber nur völlig überflüssig.

Schau Dir mal T1 an, da gibt es einen Modus "toggle pin on compare".

Also einfach das Toggle ein- oder ausschalten.

Und dann z.B. im Manchestercode senden. Die IR-Empfänger haben nämlich
eine interne AGC um sich wechselnden Lichtverhältnissen anzupassen. Die
kann aber irritiert werden, wenn lange Zeit nur 1 oder 0 gesendet wird.


Peter

Autor: Phillip (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wo gibt`s ein Beispiel zum Manchestercode oder einem anderen sicheren
Übertragungscode, ev. mit CRC?

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
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
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 bestätigst du, die Nutzungsbedingungen anzuerkennen.