Hallo zusammen, ich arbeite an einer RS232 Schnittstelle. Und zwar würde ich gerne eine Echo Funktion am Terminal erzeugen. Ich arbeite momentan noch am STK500 mit einem ATmega16 mit externem Oszillator (8MHZ). Die Fuses bei SUT_CKSEL hab ich daher mit EXTRCOSC_8MHZ_12MHZ_18CK_64MS eingestellt. Unterscheidet sich auch beim LED-Blink Test vom internen 1MHZ Takt - funktioniert also soweit ich annehmen kann. Ok was wohl eher das Problem ist: Der Quellcode - siehe Anhang. Im Terminal (HTerm) hab ich die gleichen Einstellung wie im Quellcode verwendet. 4800 Baud 8Bit 1 Stop Bit Was läuft da schief? Bekomme nichts angezeigt. Mit dem Code aus dem AVR-GCC-Tutorial hab ichs auch schon ausprobiert, aber irgendwie passiert nichts. Könnt Ihr mir weiterhelfen?
Zieh mal den AVR aus der Fassung und verbinde TXD und RXD, so kannst du testen ob das Terminal (PC) funktioniert.
Hatte ein ähnliches Problem mit Hterm und RS232, allerdings auf einem STM32. Quellcode hat funktioniert, Schnittstelle vom PC auch, aber es kam kein Echo zurück. Die Lösung war, bei "Send on Enter" im Hterm (Neben ASCII,Hex,Dec,Bin) "CR" einzustellen, und schon kam das Echo ohne weiteres am PC an.
Also ich habe jetzt beide Varianten ausprobiert. Leider ohne Erfolg. Da es auch mit dem Überbrücken nicht geklappt hat muss es ja eigentlich ein Terminal Problem sein. Das Flashen funktioniert ja problemlos über die Schnittstelle.. Anbei noch ein Sreenshot vom HTerm.
Achso eine Sache noch. Wenn ich das Entwicklungsboard einschalte kommt ein einzelnes Bit am Terminal an. Aber immer nur einmal beim Einschalten. Das war aber auch ohne das Überbrücken schon so..
Hi
>Das Flashen funktioniert ja problemlos über die Schnittstelle..
- Benutzt du auch die RS232 Spare Buchse vom STK?
- Portpins korrekt mit Stiftleiste RS232 Spare verbunden?
MfG Spess
Setz die COM-Port Einstellungen in der Systemsteuerung auf die von Dir verwendeten Werte.
Ok über den Jumper RXD TXD RS232 SPARE funktioniert die Überbrückung und ich erhalte mein Echo Signal. Ohne den Junper und mit Verbindung über RS232 SPARE funktioniert der Quellcode aber auch nicht.. Hat noch jemand einen Tipp für mich?
Also was mir jetzt noch aufgefallen ist: Ich hatte den gesamten Port auf Eingang stehen - somit kann zwar RXD funktionieren, nicht aber TXD. Habs nun so geändert: DDRD = (1<<PD1) | ~(1<<PD0) | ~(1<<PD2) | ~(1<<PD3); //Eingänge: RXD(PD0) INT0(PD2) INT1(PD3) - Ausgänge: TXD(PD1)
Hi >Also was mir jetzt noch aufgefallen ist: Ich hatte den gesamten Port auf >Eingang stehen - somit kann zwar RXD funktionieren, nicht aber TXD. Habs >nun so geändert: Mit Setzen der RXEN- und TXEN-Bits in UCSRB übernimmt die USART die Kontroller über die PINs. Was in DDRD steht ist irrelevant. MfG Spess
Davon abgesehen: Das hier
>DDRD = (1<<PD1) | ~(1<<PD0) | ~(1<<PD2) | ~(1<<PD3); //Eingänge:
tut imho nicht was du willst. Alles außer 1<<PD1 streichen.
Ok Fehler gefunden, Echo funktioniert. Mit der Schaltung im Anhang funktionierts. Es fehlte ein Kondensator und eine Verbindung .. Anfängerfehler. Trotzdem Danke für Eure Bemühung.
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.