www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Probleme bei IRDA


Autor: Julius Krebs (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Seit Stunden versuche ich ein vernünftiges IR-Signal zur Kommunikation
mit einem Palm zu erzeugen. Leider werden nur etwa 2/3 der Daten
fehlerfrei angenommen. Ich habe unzählige Veränderungen vorgenommen,
doch nichts wollte helfen. Dazu ein paar Worte: Um sicherzugehen, dass
der Übertragungsmodus an beiden Geräten (Palm105 und atmega16) korrekt
eingestellt ist habe ich das invertierte UART-Signal abgegriffen und
direkt an den seriellen Eingang des Palms angeschlossen. Das Ergebnis
war einwandfrei. Die für die Infrarotübertragung notwendige
Trägerfrequenz von 18khz (gemessen mit einem Multimeter) ist mit einer
Abweichung von 0,01khz  akzeptabel. Erzeugt wird diese übrigens
Mithilfe der Compareoutputfunktion eines 8bit-Timers. Kombiniert werden
beide Signale mit einem einfachen UND-Gatter in Form von zwei
Standarttransistoren.
Ich hoffe, dass Schaltplan und Programmcode ausreichen um der
Fehlerquelle auf die Schliche zu kommen.

Autor: Julius Krebs (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Der Code hat leider nicht mehr reingepasst

Autor: leo9 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Du modulierst die LED während einer "0" mit 18kHz. Ich fürchte aber
dass der Palm nach IrDa sendet (zu Beginn eienr "0" einen kurzen
IR-Puls).

Ich habs kurz mit einem Palm Vx und einem TFDS4500 als Empfänger
probiert. Bei einem Hotsync sendet der Palm alle Sekunden ein Paket
nach obiger Codierung.

Dass ein Teil deiner Daten funktioniert liegt vermutlich daran dass bei
manchen Bits eine UART-"0" mit einer 18kHz-"1" zusammentreffen, und
der Palm offensichtlich recht "fremdimpulsimmun" ist.

grüsse leo9

Autor: Julius Krebs (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo leo9,

Leider habe ich nicht ganz verstanden was du meinst. Was genau habe ich
mir unter der "Codierung" vorzustellen?

"Dass ein Teil deiner Daten funktioniert liegt vermutlich daran dass
bei
manchen Bits eine UART-"0" mit einer 18kHz-"1" zusammentreffen,
und
der Palm offensichtlich recht "fremdimpulsimmun" ist"

Ob nun eine 0 mit einer 1 oder einer 0 zusammentrifft ist doch
eigentlich egal, oder?

Vielleicht hilft ein kleiner Auszug aus den vom Palm aufgenommenen
Daten weiter:
01234567890003446&880122$%678901“45679012341678801224466880023$4&’890

Autor: leo9 (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Julius,

anbei findest du ein paar Signale, oben die 18kHz, dann den UART
prinzipiell und UART mit Datenbeispiel. Darunter "dein" IR-Signal und
ganz unten das IR-Signal wie es meinem Dafürhalten nach für IrDa
ausschauen müsste.

grüsse leo9

Autor: Markus (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Julius:
Wie bist Du denn auf die 18kHz gekommen? IRDA arbeitet doch mit
verschiedenen Geschwindigkeiten und wenn Du z.B. mit 19200bps arbeitest
hättest Du ja bei 18kHz Trägerfrequenz ziemliche Probleme.

Markus

Autor: Michael (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Julius
schau mal, ob dein Multimeter auch Frequenzen bis mind. 40kHz messen
kann, sonst könnten die 18kHz eventuell ein Aliasing-Problem sein.

Autor: Markus (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Michael:
Die üblichen Multimeter können schon bis 200kHz messen - aber Irda
benutzt keinen Träger. Wie man auf dem Bild von leo9 schön sehen kann,
werden bei SIR (das "langsame" Irda bis 115200bps) einfach nur kurze
Impulse mit 30% der Bitdauer geschickt.

Markus

Autor: Julius Krebs (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ok, das Prinzip ist mir Dank der guten Skizze klargeworden. Das heißt
dann wohl im Klartext, dass ich auf das hardwareintegrierte UART
verzichten muss.
Kennt jemand IRDA spezifische UART-Bibliotheken?

Autor: leo9 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@ Julius:
kommt drauf an, wie schnell dus brauchst. Für pic hab ich das ganze mal
in assembler verbrochen. Jetzt brauch ichs aber auch für einen avr,
allerdings mit CodeVision-Compiler.
In den nächsten ein, zwei Wochen sollte das dann spielen.

grüsse leo9

Autor: edi.edi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
hi,

dein UART kann bleiben nur bei IRDA ist ein bittiming von 1/16
ueblich...
ich habe mal den chip HSDL7000 / 7001 mit erfolg eingesetzt.

ciao
ed

Autor: leo9 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@ ed:

Für nur Senden kann ich deine Aussage unterstützen, sobald aber
Datenempfang auch notwendig ist scheidet der normale UART leider aus
(das Sampling passiert etwa in "Bit-Mitte" und da ist das IR-Signale
schon wieder aus).

grüsse leo9

Autor: edi.edi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
hallo Leo9,

wahrscheinlich kennst Du den HSDL7000 nicht....er macht aus dem 1/16
bittime wieder ein 16/16 signal.

schau Dir evtl das Datenblatt an

ciao
ed

Autor: leo9 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@ ed:
Du bekommst 100 Punkte und ich ziehe meine Aussage zurück, ich bin
davon ausgegangen dass du IR-Sender und Empfänger bezeichnest. Dass es
sich um Signal-Wandler handelt habe ich nicht erwartet.

grüsse leo9

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.