Guten Mittag :) bei Farnell bin ich über einen IRDA-Transceiver gestolpert, der mich rätseln lässt, ob man an den RX und TX Pins einfach RS232 eines AVRs anschließen kann. Leider enthält das Datenblatt [1] nicht wirklich Informationen zum eigentlichen Protokoll ... Ich vermute aber, so direkt lässt sich der Transceiver nicht für RS232 missbrauchen? *edit*: Ah, hier hab ich was gefunden! :) http://www.ti.com/lit/an/slaa044/slaa044.pdf Und einen kleinen Käfer von Microchip, der IRDA Decoder und Encoder für UARTs macht ... http://www.ti.com/lit/an/slaa044/slaa044.pdf Nice^^ Grund für meine Frage ist: Bei einem Mini-Projekt bräuchte ich noch eine einfache Schnittstelle, um Daten bidirektional zu übertragen. Platz hab ich so gut wie überhaupt keinen mehr, aber so ein IRDA-Transceiver würde noch Platz finden. Das ganze ist in einem Mini-Gehäuse eingebaut und Platz für einen ISP-Stecker ist auch nicht mehr (zumindest kommt man dann nicht mehr hin, wenn es zusammengebaut ist), weshalb ich damit geliebäugelt habe, ob man mit einem RS232-Bootloader den AVR nicht auch über IR flashen könnte. Vermutlich wäre die Kombination aus einem 38kHz Sender und einem 38kHz Empfänger (mit Demodulator) besser geeignet als die spezialisierten IRDA-Transceiver? (Ich hab gelesen, die verwenden keinen Träger sondern 100µs-Impulse). VG Mampf [1]: http://de.farnell.com/vishay/tfbs4650-tr1/transceiver-irda/dp/1328403RL
:
Bearbeitet durch User
Gruselig, dass ich hier zufällig immer immer über Beiträge zu dem Thema stolpere, mit dem ich mich gerade beschäftige. Ich bastel auch gerade an einer bi-direktionalen IR-Übertragung. Ich habe jetzt zwei Tage mit der 38kHz-Geschichte rumexperimentiert. Ich bin nicht sicher, woran es im Detail liegt, aber mehr als etwa 140 bytes/s (zumindest in der Größenordnung) bekomme ich zwischen zwei Arduinos nicht hin und wieder zurück geschickt. Ich habe das per SoftwareSerial gemacht und das funktioniert mit 1200 Baud gut und bis zu 4000 Baud ok. Ich werde da heute Abend nochmal etwas Zeit investieren, aber wenn ich da nicht weiter komme, tendiere ich auch zu IrDA. Würde mich auch interessieren, ob man die einfach an einen Arduino-Pin klemmen kann. Ich hab mich damit noch gar nicht beschäftigt. Die 38kHz-Sache habe ich bevorzugt, weil ich einen Conrad vor der Tür habe und ich quasi in Hausschuhen kurz reinspringen konnte. IrDA-mäßig hatten die leider nix da.
:
Bearbeitet durch User
Md M. schrieb: > Ich bin nicht sicher, woran es im > Detail liegt, aber mehr als etwa 140 bytes/s (zumindest in der > Größenordnung) bekomme ich zwischen zwei Arduinos nicht hin und wieder > zurück geschickt. vermutlich ist der Filter für die 38kHz viel zu träge für eine schnellere Übertragung. Wir wohl einen Grund haben warum es bei IrDA anders gemacht wird.
Peter II schrieb: > vermutlich ist der Filter für die 38kHz viel zu träge für eine > schnellere Übertragung. Habs befürchtet.
Mampf F. schrieb: > Leider enthält das Datenblatt [1] nicht wirklich Informationen zum > eigentlichen Protokoll ... kein Problem: https://de.wikipedia.org/wiki/Infrared_Data_Association
Md M. schrieb: > Ich habe jetzt zwei Tage mit der > 38kHz-Geschichte rumexperimentiert. Ich probier es mit der Kombi MCP2120 (IRDA Codec) + TFBS4650 (IRDA Phy) ... Das soll - laut Microchip - wunderbar mit RS232 bis 115kBaud funktionieren :)
Mampf F. schrieb: > Ich probier es mit der Kombi MCP2120 (IRDA Codec) + TFBS4650 (IRDA Phy) > ... Das soll - laut Microchip - wunderbar mit RS232 bis 115kBaud > funktionieren :) Notiert.
Die üblichen 38kHz-Fernbedienungs-Standards (RC5, RECS80,..) sind für robuste (aber nicht sichere) IR-Übertragungen über Entfernungen um 10m bei jedem Umgebungslicht gemacht. Ein aktiver HI-Pegel wird in einem Burst von min. 5-15 Trägerperioden übertragen. D.h. ein Bit wird da meist um die 20 Perioden lang sein, da kommt man schon unter 2000Baud raus, bei 10Bit/Byte also max. 200Bytes über den Daumen. Für hohe Datenraten bei halbwegs sicherer Übertragung muß man sich was anderes einfallen lassen. Vielleicht einfach mal die Trägerfrequenz verzehnfachen.
batman schrieb: > robuste (aber nicht sichere) IR-Übertragungen Hätte mir persönlich ja gereicht. > kommt man schon unter 2000Baud raus, bei 10Bit/Byte also max. 200Bytes > über den Daumen. Das ist halt etwa das, was ich bräuchte, nur leider ohne Reserve. Für die paar Taler wollte ich es aber trotzdem probieren, zumal ein entspanntes Wochenende anstand. > Vielleicht einfach mal die Trägerfrequenz > verzehnfachen. Die dafür gemachten Empfänger haben ja leider einen Filter integriert. Ich glaube bevor ich da zu viel selbst bastel, steige ich wahrscheinlich auch einfach auf was fertiges in Richtung IrDA um.
Ja wenn dir der Meter reicht, auf den IrDA ausgelegt ist. Ich glaub aber, es gibt entsprechende Receiver-Chips auch für einige 100kHz, genau wie für 38kHz.
Es gibt bei den Receiver-Typen übrigens deutliche Unterschiede bei der minimalen Burst-Länge, s. Datenblatt. Wenn es nur um eine Verdopplung der Rate geht, reicht ein Typ mit 5 statt 10 Trägerpulsen/Burst.
batman schrieb: > Ja wenn dir der Meter reicht, auf den IrDA ausgelegt ist. Völlig. Im Moment überbrücke ich 20cm, sehr viel mehr werden es nicht werden. > Ich glaub > aber, es gibt entsprechende Receiver-Chips auch für einige 100kHz, genau > wie für 38kHz. Hm. Hast recht. Da werd ich nochmal suchen. Danke.
Oh, hab gesehen, die STM32 haben einen IRDA-Modus in jedem USART ... Dann werd ich doch den F103er wieder verwenden :) Der AVR hatte eh zu wenig Pins ... Kann mir jetzt den externen Battery-backed RTC und den IRDA Encoder/Decoder sparen ... Mei, wieso hatte ich das Projekt nochmal mit einem AVR angefangen ;-) Achja, wegen den 5V, die ich brauch ... Aber jetzt hab ich immerhin endlich das Datenblatt gefunden, in dem steht, welche I/Os 5V-tolerant sind.
:
Bearbeitet durch User
Hallo, zur Info: Du kannst auch diese IR-Demodulatoren direkt an einen RX Eingang anschliessen wie ein IrDA Empfänger, siehe: http://www.vishay.com/doc?82667 The TSDP34138 may be used for continuous reception of data according to RS-232 at 4800 bps in noise free environments. Auf der Sendeseite muss das UART Signal aber auf eine Trägerfrequenz moduliert werden, damit das funktioniert. >vermutlich ist der Filter für die 38kHz viel zu träge für eine >schnellere Übertragung. Die Bauteilgrenzen sind ganz klar im Datenblatt abzulesen: www.vishay.com/docs/82459/tsop48.pdf Minimum burst length 10 cycles/burst After each burst of length 10 to 70 cycles a minimum gap time is required of ≥ 12 cycles Maximum number of continuous short bursts/second 800 Werden diese Grenzen ignoriert, so aktiviert sich der AGC (Automatic Gain Control) und deaktiviert den Ausgang, weil ein periodisches Störsignal vermutet wird.
>Aber jetzt hab ich immerhin >endlich das Datenblatt gefunden, in dem steht, welche I/Os 5V-tolerant >sind. Laut Datenblatt kann man bis 8V an diese Pins anlesen (Max: VDD + 4.0)
Md M. schrieb: > Mampf F. schrieb: >> Ich probier es mit der Kombi MCP2120 (IRDA Codec) + TFBS4650 (IRDA Phy) >> ... Das soll - laut Microchip - wunderbar mit RS232 bis 115kBaud >> funktionieren :) > > Notiert. Ach zum Teufel mit dem MCP2120, ich habe mein neues Lieblings-IC entdeckt: http://www.nxp.com/documents/leaflet/75015676.pdf I²C, SPI <-> GPIO, IrDA, UART. 3.3V, 5V-tolerant. Das erspart mir mindestens einen µC in meinem Projekt.
Zum Microchip: - die SW-Baudratenumschaltung funktioniert nicht, wenn z.B. eine Neonröhre draufflackert.... - entweder 8 Bit oder Parity. Beide zusammen geht wohl nicht.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.