PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Warum klappt IR-Komunikation nicht?



Dani-Bruchflieger
17.05.2007, 20:57
Hi,

bin ratlos. Seit kurzem kann ich meinen Asuro nicht mehr verstehen. Hab zuerst den IR-Transceiver getestet - sendet und empfängt tadellos.
Dann meinen gepimpten Asuro (Normaler Mega8 wird per ISP Programmiert, weil der orginale einen Fehler hat) ein Programm geflasht, das ständig die Werte der Linienverfolgung ausgibt. Diese Daten werden vom IR-Dongle nicht empfangen (Hyperterm. bleibt leer) Habe dann eine IR-Testkarte an den Asuro gehalten - er sendet ganz brav und fleißig. (IR-Indikatorkarte das Testfeld flackert...) Also ist mit beiden Geräten doch eigentlich alles OK. ?
IR-Dongle -Loopbacktest = io.
Asuro sendediode = sendet.
- Warum kommen aber am HT keine Daten an (nicht mal Datenmüll)?

EDH
17.05.2007, 22:08
wenn der transceiver prinzipiell funktioniert, aber imhyperterminal nix angezeigt wird könnte es sein, dass selbiges irgendwie falsch eingestellt ist...

oder probiers mal mit nem anderen terminal programm, obs da vieleicht geht.

cappy
17.05.2007, 22:10
Hallo!!
Hast du mal probiert, den Transreciever auf ein weisses Blatt zu richten,
und dann im Hyperterminal einfach mal ein paar Tasten zu drücken?

Wenn alles richtig eingestellt ist, sollten dann die gleichen Buchstaben wieder zurückkommen.


MfG
Cappy

Dani-Bruchflieger
17.05.2007, 23:01
Hi,

Das ist ja das seltsame - der Transceiver funzt egal wohin ich ihn richte. Halte ich eine TV-Fernbedienung davor kommen wirre Zeichen, und auch, wenn ich ihn unter die LS-Lampe halte, kommen wirre Zeichen. den loopbacktest besteht er auch wenn ich ihn nur in den Raum halte. Hab eher probleme es irgendwie hinzukriegen, daß er den loopback mal nicht schafft... ](*,)

cappy
17.05.2007, 23:43
Moin.
Nächste Frage währe, wie EDH vorhin auch schon
gefragt hat, ist dein Hyperterminal richtig eingestellt?
2400 8N1.....
Hast du mal andere Terminal- Soft probiert?
Ist der Transciever Seriell oder USB?

MfG
Cappy

ehenkes
18.05.2007, 00:03
Was ist denn genau passiert, kurz bevor es nicht mehr funktionierte?

Dani-Bruchflieger
18.05.2007, 09:45
Hi,
es ist der rs232<->ir Adapter, der dabei war. HT steht auf 24008n1 ohne HWFlußsteuerung. Habe auch ein anderes Terminal ausprobiert.
Habe aber auch mal eine Adapterplatine mit dem MAX232 hergenommen und eine Verbindung vom Prozessorpin TXT hergestellt - da mußte ich dann auf 48008n1 umstellen, damit der korrekte text erscheint - könnte es sein, daß das zu schnell für die IR-Übertragung ist?
Änderungen:
Meinem Asuro habe ich 4NiMH Akkus gegönnt, und diese als Pack mit meinem Ladegerät geladen, mit dem ich auch die Akkupacks meiner Modellflugzeuge lade - weil es immer schon nach 100mAh "fertig" piepste hab ich den deltapeak vom 3 auf 4mV erhöht und nach 700mAh beendet (sind 800-er Zellen). Danach hatten die 4 Zellen eine Spannung von 5,9V, was ich aber nicht gleich nachgemessen hatte. Darum hab ich auch den Jumper gesteckt gehabt (sind ja Akkus). Diese Überspannung ist meinem Orginal Asuro-µC nicht gut bekommen, denn es scheint, daß es ihm die Stabilisierung der internen Referenzspannungen beschädigt hat, da er -egal ob aus Netzteil oder von vollen Batterien gespeist - schon nach kurzer Zeit VL gemeldet hat und stehen blieb.
Daraufhin hab ich einen "normalen" Mega8-µC genommen und diesen eingesteckt. Habe dann noch den Reset-Pin des µC von VCC getrennt und statt dessen mit 10kOhm dazwischen an VCC angeschlossen sowie einem 100nF Kondensator geben Masse. Den Kondensator am Vref 4,7nF hab ich auch gegen einen 100nF ausgetauscht (ich hatte gehofft, daß der orginale damit doch noch läuft) und mir einen 6pol. ISP Anschluß am Asuro angebracht, mit dem ich nun meine Programme direkt in den µC flashen kann.
Das einzige wäre noch, daß der Mega8 zur Zeit vom internen Oszillator per 8MHz getrieben wird. Da der aber recht ungenau sein soll, könnte ich den ja mal umstellen - nur müßte ich dazu mal wissen, ob der Resonator ein Quartz ist oder nur ein RC-Glied oder was auch immer?

Das Programm, das ich momentan aufgespielt habe, mißt die Werte der Fototransistoren (linienfolgeeinheit) und gibt die Werte per IR aus. Ich habe es hier aus dem RN - darum sollte es ja auch nicht an einer falschen Programmierung der Baudrate liegen.
Den Orginalen Asuro µC hab ich auch mal ausprobiert, aber beim Versuch ihn zu flashen kam immernur der Timeout. (gefunden hat er ihn zwar, aber beim Schreiben der ersten Seite kam nur tttttttttttttttttt...)

ehenkes
18.05.2007, 10:25
Dani Bruchpilot ;-)

radbruch
18.05.2007, 13:42
Mal eine vielleicht blöde Frage: Wie parametrierst du die Schnittstelle des asuros? Soweit ich weis ist das Parametrieren beim orginalen ATMega8 ein Bestandteil des Bootladers, weil das kann er ja schon beim Einschalten.

Mein Transceifer hat auch in allen Richtungen seine eigenen Zeichen empfangen, aber die Kommunikation zum asuro funktionierte trotzdem. Allerdings hatte das Ding einen Wärme- bzw. Kältefehler, deshalb habe ich inzwischen den USB-Tranceifer angeschafft. Außer einem Wackler am Stecker funktioniert der tadellos.

mic

Dani-Bruchflieger
18.05.2007, 14:47
Hi Mic,

ist ein Argument - muß ich nochmal selbst so ein Programm mit Bascom machen, wo ich das konkret mit einprogge, hatte zwar auch schon mal versucht, und nur die Baudrate festgelegt, aber da hatte ich auch keinen Erfolg. Muß da mal die komplette Config einschreiben... Werde aber heute nicht dazu kommen...
Ne Ahnung, als was der Resonator läuft - wegen Fuses setzen?

damaltor
18.05.2007, 14:58
standartmäßig läuft der interne oszillator mit einem (!) Mhz. wenn du noch keine fuses gesetzt hast, ändert sich das natürlich auch nicht.

die infrarotkommunikation ist RELATIV zum prozessortakt. aus 36 kHz gepulstem licht werden also 4,5 kHz - da wird zwar was gesendet (testkarte) aber viel zu langsam als dass irgend etwas als signal gewertet und empfangen wird.

also zuerst fuses setzen!

Dani-Bruchflieger
18.05.2007, 15:51
Hi,
ja ne is klar. ;)
Hab ihn zur Zeit auf internen 8MHz laufen. Allerdings hatte ich schonmal das Problem, daß ein Mega8 (eventuell hab ich den einen wieder erwischt) doppelt so schnell lief, wie in den Fuses eingestellt. (Timer brauchte nur halbe Zeit, die er eigentlich rechnerisch laufen sollte, darum bin ich der Meinung das jener µC damals mit 16 statt 8MHz lief). Könnte diesen Prozessor jetzt wieder erwischt haben, da ich ihn nicht gekennzeichnet hatte, aber jetzt wenn ich mit Kabel und Max232a Baustein eine Verbindung herstelle, auf 4800 Baud gehen muß, statt auf 2400, um eine korrekte Anzeige zu erhalten. Eventuell ist diese Baudrate zu hoch für die IR-Übertragung des Asuro. ???
Darum wollte ich die Fuses auf ext. Taktung umstellen - aber ich weiß nicht, ob das gelbe 3beinige Teil als Quartz mit Koppelkondensatoren oder nur RC-Schwingkreis einzustellen ist. Obwohl, wenn ich daneben liege, hab ich ja alles da, um ihn per Oszillator zu betakten und umzustellen. - Werde hoffendlich morgen dazu Zeit haben und das mal ausprobieren.

cappy
18.05.2007, 18:22
Hallo Dani.
Jetzt mal noch ne Frage......
Auf dem Prozessor is aber schon der Bootloader von Arexx drauf, oder?
Ich weiß, klingt blöd, kann ja aber vorkommen.

Wenn du nen 16 Mhz Prozessor hast, kann das aber schon sein, das die Schnittstelle
nicht mit den Raten des Prozessors klarkommt.
Kannst ja im HT mal 4800 probieren...

Grüßle Cappy

damaltor
18.05.2007, 20:13
ein atmega8L (!) kann doch nur 8 mhz, für 16 mhz brauchst du einen atmega8 (ohne L).

das dreibeinige teil ist ein quarz mit koppelkondensatoren.

es könnte evtl schon daran liegen, dass die internen 8 mhz sehr stark (!) temperaturabhängig ist, hab mal mit nem oszi bei 10 grad etwa 7,9 und bei 40 grad 8,3 (!) mhz gemessen. das reicht schon um die serielle übertragung aus dem takt zu bringen. bei dir tippe ich aber darauf, dass es ein atmega8 ist der mit 16 mhz läuft; deshalb klappt es zwar mit kabeln bei 4800 baud, allerdings nicht mit der infrarotübertragung, denn der transceiver wertet AUSSCHLIESSLICH 36kHz-signale aus. und die sind unabhängig von der baudrate, sondern nur abhängig vom prozessortakt.

Dani-Bruchflieger
18.05.2007, 21:38
Hi dalmator,

Hab ja auch einen Mega8 ohne L eingesockelt...
Allerdings die Sache mit den 36kHz hab ich noch nicht so richtig verstanden. Der µC gibt doch mit einer Baudrate aus. Allerdings hängt die IR-Diode noch am OC2 des µC....

damaltor
18.05.2007, 22:14
soweit, so gut. 2400 baud bedeutet, dass pro sekunde 2400 bit übertragen werden.

ein bit kann null oder eins sein.
eine eins wird übertragen, indem eine 2400stel sekunde lang das licht AUS ist.
eine null wird übertragen, indem das licht eine 2400stel sekunde lang 36000mal pro sekunde blinkt (also 15 mal innerhalb dieser 2400stel sekunde).

wenn nun der prozessor mit doppelter geschwindigkeit (16mHz) läuft, dann passieren zwei sachen:
erstens: es werden 4800 zeicen pro sekunde übertragen. das ist nicht so wild, mit kabeln kann man die zeichen empfangen, halt mit 4800 baud.
zweitens: die led blinkt doppelt so schnell. nicht mehr 36000 mal pro sekunde, sondern 72000mal pro sekunde. der empfänger auf dem transceiver erwartet jedoch 36000mal pro sekunde blinkendes licht, und reagiert deshalb nnicht auf das zu schnelle blinken.

das blinken ist übrigens dazu da, um störungen durch konstantes infrarotlicht zu verhindern... das ist wohl ironie des schicksals =)

ach ja... ich heisse damaltor

Dani-Bruchflieger
18.05.2007, 22:25
Hi damaltor,
kannst dich nicht umbenennen? das andere klingt besser... ;)
OK. Spaß beiseite.
Danke für die Erläuterungen. Glaube das hab ich jetzt gerafft. Und das mit der Taktung werd ich ausprobieren.

Edit:
Hab jetzt umgestellt auf ext Quartz. Und sofort kamen die erwarteten Ausgaben auf dem Terminal ganz sauber an :) \:D/
Ich glaube, ich muß mir diesen AVR markieren, damit mir so eine Pleite nicht nochmal passiert...

damaltor
19.05.2007, 13:05
sehr schön... das ist doch klasse.