Probleme bei IRDA

Gast #73330
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.
Angehängte Dateien:
Gast #73332
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
Gast #73333
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
Gast #73334
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
Angehängte Dateien:
Gast #73335
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
Gast #73337
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
Gast #73338
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?
Gast #73339
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
Gast #73341
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
Gast #73343
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

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