mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik UART-Ausgabe auf Platine fehlerhaft


Autor: Floyd (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo zusammen!
Habe einen Mikrocontroller auf dem STK500 programmiert und auch 
getestet. Jetzt wollte ich eine Platine basteln, doch ich komm nicht 
ganz weiter.
Im ersten Schritt wollte ich eine einfache Stringausgabe realisieren. 
Ist der Controller auf dem STK500, erfolgt die Übertragung fehlerfrei. 
Setze ich den Mikrocontroller auf meine Platine kommt der String 3mal 
halb und dann beim 4.mal ganz an.

Hat einer von Euch schon mal so ein Problem gehabt? Und wie kann ich es 
lösen?

Gruß
  Floyd

Autor: Michael U. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

laß mich raten: Baudrate etwas daneben, weil auf dem STK mit Quarz und 
auf der Platine mit internem Oszi oder so?
Pegelwandler mit MAX232? Spannungen stimmen?

Ansonsten Schaltplan und Programm posten, dieses Forum zerstört offenbar 
Glaskugeln... ;))

Gruß aus Berlin
Michael

Autor: Floyd (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Als Taktgeber habe ich schon beides ausprobiert: Einen externen 8Mhz 
Quarz sowie den internen RC. Die Quelle war auf der Platine die gleiche, 
wie auf dem STK.
Als Spannungswandler habe ich einen HIN202 - den Max gab es zu diesem 
Zeitpunkt nicht mehr... Hab die Spannungen auch mit einem Multimeter 
durchgemessen; die sind ok.

Hab mir die Übertragung noch mal genauer angesehen und festgestellt, 
dass der String nicht immer nach dem gleichen Muster im Terminal 
erscheint. Es soll aus Testzwecken nur "Hallo" ausgegeben werden. Das 
Resultat hat folgendes Aussehen "Ha Ha Ha Ha Hallo Hallo Ha Ha Ha Hallo 
Hallo...". Ich lass die Ausgabe in einer Endlosschleife laufen. Demnach 
kommt der String in unregelmäßigen Abständen sogar vollständig an.

Der Schaltplan liegt leider auf einem anderen Rechner. Werde ihn morgen 
mal posten. Freue mich aber selbstverständlich über weitere Anregungen.

Wünsche Euch einen schönen Abend
  Floyd

Autor: Thomas (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Poste mal Deine Sende-Routine. Vielleicht sendest Du zu schnell ohne zu 
warten (  while ( ! ( UCSR0A & (1<<UDRE0)) ); ). Dann wird der letzte 
Sendevorgang nicht ordentlich beendet, sondern vom nächsten ersetzt. Das 
bedeutet, dass der nächste Vorgang den vorigen überhohlt.

Gruß,
Thomas

http://www.naventics.net

Autor: Floyd (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Guten Morgen
Nachdem ich das Posting gelesen habe, dachte ich schon "Ja, dass wird es 
sein", doch ein Blick in meinen Quellcode hat ergeben, dass ich diese 
while-Schleife schon eingebunden hatte.
Habe den Fehler nach einer nahezu unendlichen Anzahl von Versuchen 
ermitteln können. Es lag am Sockel! Da ich keinen 40poligen zur 
Verfügung hatte, habe mir einen aus zwei niederpoligen 
zusammengebastelt. Leider sind durch den Verlust der Stege keine 
optimalen Pinausrichtungen möglich gewesen, so dass es zu internen 
Spannungen gekommen ist -> nicht alle Pins waren permanent verbunden. 
Das Resultat habt Ihr ja oben gesehen.

Danke den fleißigen Lesern und Helfern.

Habt einen schönen Donnerstag.
  Floyd

Autor: Rahul, der Trollige (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>Habt einen schönen Donnerstag
Heute ist Mittwoch...

Schönes Wochenende!

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.