www.mikrocontroller.net

Forum: Compiler & IDEs Probleme mit USART (ATmega8515)


Autor: Joachim (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

Hat jemand Erfahrung mit dem ATmega8515L und dessen USART ?
Ich wollte eine eigentlich recht einfache Test-Routine schreiben, die
ein wenig Text zum PC schickt. Dort habe ich ein Terminal-Programm
laufen. Es kommt zwar was an, aber nur Datenmüll. Irgendwas scheint da
nicht zu stimmen mit der Baud-Rate bzw. den sonstigen Parametern. Ich
bekomme immer einen Framing-Error angezeigt (im PC Terminal Programm).
9600 BPS, 8 Datenbits, 1 Stopbit, keine Parität, so war das
Terminal-Programm eingestellt und der ATmega8515 (siehe Anhang) auch.
Trotzdem kommt nichts an. Ich finde den Fehler einfach nicht (mangelnde
Erfahrung). Zwischen PC und ATmega8515L war selbstverständlich ein
MAX232 Treiber geschaltet. Einen 4 MHz Quarz
habe ich auch verwendet. Hätte also funktionieren müssen.

Gruß,
Joachim

Autor: Matthias (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi

das hier

void rs232_init(void)
{
  UBRRL = 25;      //Baudrate 19200
  UCSRA|=2;      //Doppelte Baudrate
  UCSRB=0x18;      //RX und TX erlaubt
}

Initalisiert USART eines ATMega8515 auf 38400 8N1 bei 8MHz Takt. Alles
andere was du in deiner Routine machst ist unnötig.
Insbesondere das ändern von DDR und Port-Register würd ich lassen.

Bist du dir auch sicher das der AVR mit 4MHz läuft? Ab Werk ist nämlich
der interne RC-Oszi eingeschaltet und der läuft mit 1MHz.

Du kannst deine Routine also auch mal mit 2400Baud testen. Wenns dann
geht weist du an was es liegt.

Matthias

Autor: Joachim (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Matthias,

Besten Dank für den Tip mit dem internen RC-Oszillator. Ich habe mal
die Baud Rate auf 2400 BPS runtergestellt, wie du vorgeschlagen hast -
und siehe da, es hat sofort funktioniert. Nach dem Aktivieren des
externen 4MHz Quarzes hat die Sache dann natürlich auch mit den
gewünschten 9600 BPS funktioniert. Mir ist das bisher entgangen, dass
sich da beim ATmega8515 im Vergleich zum AT90S8515 etwas geändert hat,
was die Taktung anbelangt. Bisher gab es ja keinen internen Oszillator.
Aber man lernt halt nie aus.
Eine Kleinigkeit geht aber leider immer noch nicht. Aber das liegt eher
am Compiler. Den printf Befehl kann ich leider nicht verwenden. An der
FH ging das immer. Dort wird aber ein ganz anderer Prozessor Typ
verwendet (80C166 von Siemens). Die hatten die Verwendung des printf
Befehls offensichtlich vorgesehen. Aber das lässt sich ja leicht
umgehen, indem man eine eigene Prozedur schreibt, die das gleiche
erledigt. Nun bin ich mal gespannt ob der ATmega8515 mehr aushält als
der AT90S8515. Von dem sind mir schon 2 Stück kaputtgegangen
(vermutlich wegen ESD). Immer nach dem Umprogrammieren in der Schaltung
war er futsch - sprich einzelne Port-Ausgänge haben einfach nicht mehr
funktioniert. Mal sehen wie sich der ATmega8515 da aus der Affäre
zieht. Bisher läuft er noch einwandfrei.

Nochmals Dankeschön,
Gruß,
Joachim

Autor: Peter Fleury (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>Immer nach dem Umprogrammieren in der Schaltung
>war er futsch - sprich einzelne Port-Ausgänge haben einfach nicht
>mehr funktioniert.

Wie sieht deine ISP Schaltung aus ?  Sind diese ISP-Pins normalerweise
als Ausgang oder Eingang beschaltet ?

Autor: Joachim (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Peter,

Die ISP Pins haben eigentlich sonst keine Funktion. Sie dienen nur dem
Programmierzweck bei meiner Beschaltung. Ich hab die Beschaltung mal
als GIF-File upgeloadet. Vielleicht ist ja doch irgendwo noch was
falsch. Zu den Defekten kann ich nur sagen: Jedes mal, wenn ich den ISP
Stecker aufgesteckt hab und den Controller umprogrammiert hab - was
auch funktioniert hat, war der AT90S8515 danach kaputt. Allerdings hab
ich wohl den Fehler gemacht, dass das Parallel-Kabel schon am PC
angeschlossen war während dem Aufstecken des ISP-Connectors. Und der PC
war natürlich schon eingeschaltet. Möglicherweise kommt es daher. Es
kann aber auch sein, dass es ein ESD Problem ist. Beim Anschließen kann
es schon passiert sein, dass ich den ein oder andern Pin mal berührt
hab.
Bin aber mal gespannt, was andere für Erfahrungen auf diesem Gebiet
gemacht haben.

Gruß,
Joachim

Autor: Matthias (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi

ist das ein Adapter ohne Treiber-IC? War deine Zielschaltung zum
Zeitpunkt des Ansteckens schon an Spannung? Mit welcher Spannung läuft
dein AVR?

Matthias

Autor: Joachim (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Matthias,

Ja das stimmt. Es handelt sich um einen Adapter ohne Treiber-IC. Die
Zielschaltung hatte zum Zeitpunkt des Ansteckens auch bereits Spannung
(PC ebenfalls). Der AVR läuft in meiner Zielschaltung mit 5V. Da die
parallele Schnittstelle am PC ebenfalls 5V hat dürfte es eigentlich
keine Probleme geben. Ist aber wohl doch so. Vermutlich kam es auch so
zum Defekt. Allerdings ist mir der Grund nicht ganz klar. Hängt das mit
dem Anschließen des Connectors zusammen (gibt es da evtl. kurzzeitige
Spannungsspitzen ?)

Gruß,
Joachim

Autor: Matthias (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi

vom Prinzip spricht eigentlich nichts dagegen. Ich (tm) bevorzuge aber
trotzdem die Variante mit Treiber-IC und arbeite seit Jahren damit
problemlos.

Matthias

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.