Forum: Compiler & IDEs Uartproblem (ATMega8)


von Linus Meier (Gast)


Lesenswert?

Im Vorfeld möchte ich anmeken das ich noch ein absoluter neuling auf dem
gebiet der Mikrocontroller bin.
Aber hier mein Problem:
Ich habe die Schaltung des Uart-Tutorials dieser seite an meinen Avr
drangehängt. Soweit so gut.Dann hab ich das passende programm
übertragen und wollte schaun ob etwas ausgegeben wird("Test!") aber
Fehlanzeige obgleich obwohl eine angehängte Kontroll-led sehrwohl
aktivität zeigte. Nachdem ich das Program etwa zum  vierten mal neu
transferiert hatte machte es auch endlich was es sollte.
Doch einen Tag später funktionierte wiedereinmal gar nichts ohne das
ich irgendetwas verändert habe.

Woran könnte das liegen?

Ps: ich benuze AT-Prog und Avr Studio 3.56

von Stefan_h (Gast)


Lesenswert?

Hi,

Hatte mal ähnliche Probleme mit einem 90AT2313.

Bei mir lags daran, daß ich den RxD-Pin nicht auf Input und den Txd-Pin
nicht auf Output gesett hatte. zusätzlich noch die Pulup´s gesetzt und
probleme waren weg!

lg,

Stefan

von Joerg Wunsch (Gast)


Lesenswert?

Umm, die UART-Pins werden aber automatisch definiert.  Wenn die UART
eingeschaltet ist, sind die entsprechenden Pins nicht für die normale
Portfunktion verfügbar.

von Stefan_h (Gast)


Lesenswert?

Hi,

Hab im Datenblatt nochmal nachgelesen, die Richtung (input/outout) wird
vom Controller automatisch gesetzt. Die Pullup´s sollte man selbst
setzt. So ist es halt beim 90AT2313er.

lg,

Stefan

von Joerg Wunsch (Gast)


Lesenswert?

Naja, wer braucht normalerweise bei einer UART pullups?  Da gehört
ja sowieso ein Treiber davor (MAX232 o. ä.).  Lediglich wenn man
statt dieses Treibers mit paar einfachen Transistoren arbeiten will
(negieren muß man das Signal selbst dann, wenn man außerhalb der
RS-232 Specs mit 0/+5 V Pegel arbeiten will, was sehr oft gut
gehen kann), kann man vielleicht den Kollektorwiderstand durch einen
pullup ersetzen.  Dann sollte man aber nachrechnen, ob dessen geringe
Stromergiebigkeit zusammen mit der Schaltungskapazität nicht überhaupt
noch die gewünschte Datenrate hergibt.

von Stefan_h (Gast)


Lesenswert?

Hi,

Ich gebe mich geschlagen, bei mir allerdings handelte es sich um die
Kommunikation zwischen 2 Controllern mittels UART. deshalb benötigte
ich die Pullups.

lg,

Stefan

von Joerg Wunsch (Gast)


Lesenswert?

Warum eigentlich?  Du verknüpfst doch einen Ausgang mit dem Eingang
des anderen dann fest?

Wenn beide Controller SPI können, kommt man damit allerdings
schneller.

von Stefan_h (Gast)


Lesenswert?

Eigentlich sollte es gehen, aber ich hatte das Problem, wenn ich den
Pinn berürt hatte ist es gegangen wenn nicht, dann nicht immer.

Fals ich das richtig verstanden habe, muß man jedoch den Txd-pin auf
output setzten:

laut Datenblatt des 90AT2313´ers:"When TXEN is set, the UART
Transmitter will be connected to PD1, which is forced to be an output
pin regardless of the setting of the DDD1 bit in DDRD."

lg,

Stefan

von Joerg Wunsch (Gast)


Lesenswert?

Nein, steht ja genau dort: Wenn TXEN an ist, dann ist der Pin
zwangsweise auf Output gestellt, egal was DDRD.1 sagt.

von Stefan_h (Gast)


Lesenswert?

Werd mal wieder English-pauken:-))

lg,

Stefan

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.