Forum: Mikrocontroller und Digitale Elektronik RS232 (Programmierung in C) funktioniert nicht ganz


von Dago (Gast)


Angehängte Dateien:

Lesenswert?

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?

von troll (Gast)


Lesenswert?

Zieh mal den AVR aus der Fassung und verbinde TXD und RXD, so kannst du 
testen ob das Terminal (PC) funktioniert.

von Eduard O (Gast)


Lesenswert?

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.

von Dago (Gast)


Angehängte Dateien:

Lesenswert?

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.

von Dago (Gast)


Angehängte Dateien:

Lesenswert?

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..

von spess53 (Gast)


Lesenswert?

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

von MWS (Gast)


Lesenswert?

Setz die COM-Port Einstellungen in der Systemsteuerung auf die von Dir 
verwendeten Werte.

von Dago (Gast)


Lesenswert?

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?

von Dago (Gast)


Lesenswert?

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)

von spess53 (Gast)


Lesenswert?

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

von döner (Gast)


Lesenswert?

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.

von Dago (Gast)


Angehängte Dateien:

Lesenswert?

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.

von Dago (Gast)


Angehängte Dateien:

Lesenswert?

Padon, mit dieser.

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
Noch kein Account? Hier anmelden.