HILFE UART FUNKTIONIERT NICHT

Gast #235553
Lesenswert?

Guten Abend,

ich habe ein großes Problem mit der UART am ATMEGA8535.
Von der Mikrocontroller.com Seite habe ich mirein DEMO Board für den
AT90S8535 gekauft.
Da funktioniert die UART ohne probleme. Daraufhin habe ich den
Controller entfernt und den ATMEGA8535 draufgesteckt.
Siehe da, die UART hat da auch funktioniert(senden und empfangen ok).
Wenn ich jetzt den ATMEGA8535 auf mein anderes, selber gebautes BOARD
stecke dann funktioniert die UART nicht. Ich kann am Terminalprog. nur
Müllempfangen.
Desweiteren habe ich dann den ATMEGA8535 von meinem BOARD entfernt und
mit dem AT90S8535 bestückt--> siehe da da hat die UART auch
funktioniert.
Nur wenn ich den ATMEGA8535 auf meinem selber gemachtes BOARD stecke,
dann funktioniert UART überhaupt nicht!
Im Anhang befindet sich mein Testprogramm (geschrieben in C mit
CodeVisionAVRD).Der RS232 Baustein ist identisch mit dem anderen
Board.
Am MAX232 habe ich 4 Kondensatoren angeschlossen(100nF).
Die UART Beschaltung habe ich von dem Demo Board auf der
www.mikrocntroller.com Seite genauso aufgebaut.
Ich verstehe da die Welt nicht mehr.
Angehängte Dateien:
Persönliche Seite #235554
Lesenswert?

Na, wenn beide Controller in Deinem Board nicht funktionieren, aber im
gekauften Board funktionieren, dann ist ziemlich eindeutig das Problem
nicht in der Software, sondern in Deinem Board zu suchen.

a) Nicht jeder "MAX232" kommt mit 100nF-Kondensatoren aus; mal ins
Datenblatt exakt der verwendeten Variante gesehen? Verwendet das
gekaufte Board auch nur 100nF-Kondensatoren?

b) Wie wird der Takt auf Deinem Board/dem gekauften Board erzeugt?
Quarzoszillator unter Zuhilfenahme des µC-eigenen Treibers (passiver
Quarz an xtal1 und xtal0), Verwendung des µC-eigenen RC-Oszillators
oder gar integrierter Quarzoszillator? Welche Taktfrequenz auf welchem
Board?

c) Wie wird die Stromversorgung Deines Boards geglättet?
Gast #235555
Lesenswert?

Hallo,

ich verwende definitiv den gleichen Max232. Die MAX232 habe ich auch
ausgetauscht. An dem kann es nicht liegen.
Die Kondensatoren stimmen auch.
Ne, der AT90S8535 habe ich mal auf mein selbergebautes Board
draufgesteckt. Da hat die RS232 prima funktioniert.
Nur Wenn ich dem ATMEGA8535 auf das Board stecke, dann klappt die RS232
verbindung nicht richtig. Das Terminalprog. empfängt nur Müll!
Ich vewende in Beiden Boards den gleichen QUarztyp. Also kann es daran
auch nicht liegen.
Ich weiss halt nun nicht mehr weiter!
Gast #235556
Lesenswert?

Hallo,

ich verwende definitiv den gleichen Max232. Die MAX232 habe ich auch
ausgetauscht. An dem kann es nicht liegen.
Die Kondensatoren stimmen auch.
Ne, der AT90S8535 habe ich mal auf mein selbergebautes Board
draufgesteckt. Da hat die RS232 prima funktioniert.
Nur Wenn ich dem ATMEGA8535 auf das Board stecke, dann klappt die
RS232
verbindung nicht richtig. Das Terminalprog. empfängt nur Müll!
Ich vewende in Beiden Boards den gleichen QUarztyp. Also kann es daran
auch nicht liegen.
Ich weiss halt nun nicht mehr weiter!
Gast #235559
Lesenswert?

Warum die Fuse Bits.
Oben habe ich doch schon erähnt, dass ich den ATMEGA8535 auf dem DEMO
BOARD von der mikrocontroller.net Seite schon erfolgreich getestet
habe. Da funktioniert die UART ja auch ohne probleme.
Das heisst es kann ja gar nicht an den Fuses liegen, oder?
Gast #235560
Lesenswert?

Ja ich verwende auch am Quarz die gleichen Kondensatoren
(gleiche Typen = 22pF)
Die restliche Schaltung von meinem selbergebautem Board funktioniert
ja.
Ich habe ja schon wie gesagt den AT90S8535 draufgesteckt und die RS232
funktioniert da ja auch super!
Warum sollte ich da was nachmessen? Ich habe nur statt den AT90S8535
den ATMEGA8535 eingesetzt. Und im Programmcode habe ich die include
Datei "mega8535.H" verwendet.
Gast #235562
Lesenswert?

Ok ich werde mal ein Oszi beschaffen. Wie sollte ich da beim messen
vorgehen. Was ist relevant? Wie bewerte ich dann die Signale?
Fakt ist, dass der MAX232 schon richtig funktioniert bzw. korrekt
beschaltet wurde, sonst würde ja der AT90s8535 nicht auf meinem
selbergebautem Board funktionieren!!!
#235565
Lesenswert?

> Wie sollte ich da beim messen vorgehen. Was ist relevant?
> Wie bewerte ich dann die Signale?

Hmmm... Also bevor man die Prüfspitze irgendwo dranhält, macht man sich
Gedanken, welche Spannung bzw. welches Signal man an diesem Punkt der
Schaltung erwartet. Dann ist auch die Bewertung des Messwertes/Signals
kein Problem. Das setzt natürlich voraus, dass man die Schaltung
versteht und nicht nur irgendwoher abgekupfert hat.

Ein guter Ansatzpunkt sind erstmal die Spannungen am MAX232. Mit einem
Multimeter kann man erstmal messen, wie hoch die von der Ladungspumpe
erzeugten Spannungen sind (positiv und negativ). Welche Pins des MAX232
das sind, erfährst du im Datenblatt (ich bin jetzt zu faul, da
nachzusehen). Liegen diese Spannungen deutlich unter 8V (plus und
minus), dann sind definitiv die Kondensatoren zu klein.

Hat eigentlich jeder Schaltkreis seinen eigenen Abblock-Kondensator?
Also neben dem AVR auch der MAX232? Ein Abblockkondensator ist ein
Keramik-C von 100nF zwischen Vcc und GND. Er ist so dicht wie möglich
an den Stromversorgungspins anzubringen.

...
Gast #235568
Lesenswert?

> Achja, ein 8MHz-Quarz ist für die serielle Schnittstelle
> ziemlich ungeeignet. Es kann zeitweise funktionieren, muss
> aber nicht. Für RS232 gibt es nunmal nicht umsonst die
> "krummen" Baudratenquarze.

Das stimmt nicht. Mit 8Mhz kann man problemlos Baudraten bis 38400
erzeugen, der Fehler beträgt bei dieser Rate gerade mal 0.2%. Nur bei
28k8 ist der Fehler mit 2.1% etwas höher, hier könnten Probleme
auftauchen.
Gast #235571
Lesenswert?

So, ich hab mal mit dem Oszi die ganze Sache mal untersucht. Ich konnte
an meiner selbergebauten Schaltung nichts feststellen.

Es ist schon komisch, dass wenn ich den AT90s9535 auf die Schaltung
stecke, dass da die UART super läuft.
Gast #235572
Lesenswert?

So, ich hab mal mit dem Oszi die ganze Sache mal untersucht. Ich konnte
an meiner selbergebauten Schaltung nichts feststellen.

Es ist schon komisch, dass wenn ich den AT90s9535 auf die Schaltung
stecke, dass da die UART super läuft.
#235574
Lesenswert?

Nun nochmal sachlich...

> So, ich hab mal mit dem Oszi die ganze Sache mal untersucht. Ich
> konnte an meiner selbergebauten Schaltung nichts feststellen.

Was hast du mit dem Oszi untersucht?
Zeig doch mal dein Messprotokoll.
Poste mal den (tatsächlichen!) Schaltplan, zähle mal auf, welche
Messpunkte du untersucht hast. Nenne dabei den Messpunkt, das von dir
erwartete Messergebnis (mit Begründung, warum du dort das und nix
anderes erwartest) und das tatsächlich gemessene Messergebnis. Und das
mit beiden AVRs. Vielleicht kann man damit den Fehler finden.

Ich spekuliere sogar darauf, dass du den Fehler selbst findest, wenn du
systematisch an die Sache heran gehst.

Viel Erfolg...
...HanneS...

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren