Forum: Mikrocontroller und Digitale Elektronik Atmega32 UART geht nicht


von Hirbel H. (leo)


Lesenswert?

Hallo,
ich hab nen Atmega32 und versuche schon seit ner weile das Uart zum
leben zu erwecken.
Ich hab mir die fleury Libs runtergeladen und das dazugehörigen
Testprogramm hab ich in den µC geladen.
Aber es kommt nur müll im Terminal an, woran liegt das? hab alles
richtig eingestellt 9600-8-n-1, so wie im code beschrieben...
Ich benutze ein takt von 18,432 MHZ, ist das das Problem? Aber im
Datenblatt wird der Takt ja auch beschrieben....ausserdem funktioniert
der Takt von 7,3728 MHZ auch nich (also kommt auch nur müll an)..
Der µC is auch auf externer Oscillator gestellt und die frequenz liegt
auch wirklich an...ich verstehs einfach nich :(

Kann mir jemand helfen??

von A.K. (Gast)


Lesenswert?

18MHz sind etwas jenseits der Spezifikation, aber wenn du es auch mit 7
probiert hast, wird das nicht der Grund sein.

Aber ohne Code und Schaltung wird das nichts mit dem Rätselraten.

von Hirbel H. (leo)


Lesenswert?

wenn du im datenblatt guckst, dann findest du ne tabelle wo auch der
takt für die 18 mhz für die werte von UBRR stehn...

die schaltung stimmt, alles anderefunktioniert, der max202 arbeitet
auch korrekt (es hängt da gleichzeitig noch ein at90s8515 dran, und der
geht ohne probleme...)

von Hans (Gast)


Lesenswert?


von A.K. (Gast)


Lesenswert?

In dieser Tabelle stehen auch 20MHz drin - nur ist beim Mega32 bereits
bei 16MHz das Ende der Fahnenstange erreicht. Neuere Typen können bis
20MHz, daher wohl die Tabelle.

von Hirbel H. (leo)


Lesenswert?

als bei mir läuft alles PERFEKT (bis aufs UART) mit den 18,432 MHz

von Hirbel H. (leo)


Lesenswert?

hab das alles genauso, baudrate is auch richtig berechnet...

von A.K. (Gast)


Lesenswert?

Wenn alles richtig ist, dann funktioniert es offensichtlich. Warum
fragst du also?

von Hirbel H. (leo)


Lesenswert?

was soll das?
Ich frag weil ich hilfe brauch, wenn du meinst es liegt an den 18 mhz,
dann irrst du denn mit 7 mhz gehts auch nich, also ein bissl
konstruktiver.

von A.K. (Gast)


Lesenswert?

Ich bin ein bischen sarkastisch geworden, weil du bislang lediglich
verbreitest hast "ich habe alles richtig gemacht, aber es funktioniert
nicht". Auf die Nachfrage nach konkreter Information kam bislang
nichts. Was erwartest du? Die Kristallkugeln sind leider immer grad in
Reparatur oder sonstwie nicht verfügbar.

von Rahul (Gast)


Lesenswert?

@A.K: Was macht ihr bloß alle immer mit Euren Kristallkugeln? Baseball
spielen? Meine geht regelmässig in die Wartung (wo sie sich natürlich
gerade mal wieder aufhält...) und dann wird sie täglich poliert...

@Leo:Ich habe deinen Fehler gefunden. Verrate aber nicht, wo er sich
befindet!

von Hirbel H. (leo)


Lesenswert?

was soll ich denn noch erzähln?
Ich fang mal von vorne an:
Ich hab zwei µC einen at90s8515 und nen mega32. Beide hangen an EINEM
max202, von dort geht es in den pc.
Der 90s sendet per UART mit 19200-8-n-1 daten zum terminal, alles gut
und fein..
Das gleiche soll der Mega machen, macht er aber nich.
Ich bin mir sicher das alles richtig angeschlossen ist, weil der rest
auf dem Mega einwandfrei läuft, nur eben das UART nich, es kommt zwar
was an am terminal, aber nur mist, nicht die zeichenkette die ich
gesendet hab.

von Marco S. (masterof)


Lesenswert?

abo

von Hannes L. (hannes)


Lesenswert?

"Master of abo" hat die Lösung... - Wetten?

;-)

> Beide hangen an EINEM
> max202, von dort geht es in den pc.

- Wie hast du die TX-Leitungen der beiden AVRs gegeneinander
  entkoppelt?
- Funktioniert es denn wenigstens, wenn nur ein AVR am MAX202
  angesclossen ist?

...

von @Hirbel (Gast)


Lesenswert?

Gegenfrage: Wenn du dir so sicher bist dass alles 100% richtig
verdrahtet ist und deine 100% richtig ist, warum funktioniert's dann
nicht?

Also überprüf sowohl die Hardware als auch die Software, und wenn du
die Hardware zu 100% ausschließen kannst, warum stellst du dann nicht
mal deine Software hier rein, es kann ja dann nur noch daran liegen.

von thkais (Gast)


Lesenswert?

Die Initialisierung des UART passt?

von Hirbel H. (leo)


Angehängte Dateien:

Lesenswert?

entkoppelt hab ich garnix, denn das ziel ist, beider µC miteinander
übers UART zu verbinden...als test hab ich den max angeschlossen...
der 90s8515 funktionert und sendet problemlos der mega nicht!
auch wenn ich den 90s8515 entferne und nur der mega am max hängt, kommt
ebenfalls nur müll am terminal an....


Bei der schaltung kann ja nur was mit der rx tx leitung nicht stimmen
und die hab ich 100 mal kontrolliert...die software ist aus einer
fleury lib, im anhang dabei..

von Hannes L. (hannes)


Lesenswert?

RAR kann ich nicht online ansehen und will ich nicht speichern. Ich müll
mir nicht die Platte zu, nur um Jemandem zu helfen. Nimm also ein
Format, das der Browser ohne zusätzliche Plugins darstellen kann, wenn
du auf meine Meinug wert legst.

(das war kein Scherz)

...

von Dirk D. (dirkd)


Lesenswert?

Hast Du die Fuses für den Mega32 richtig eingestellt?

Auslieferungszustand ist IMHO interner RC-Oszi. mit 1 MHz

von Hirbel H. (leo)


Lesenswert?

jo, läuft mit externen oszillator

von Rahul (Gast)


Lesenswert?

@Hannes: Wen interessiert schon deine Meinug?

 (unterm Tisch verkriech...)

von Hirbel H. (leo)


Angehängte Dateien:

Lesenswert?

schlecht geschlafen, oder wieso so aufbrausend

von Hannes L. (hannes)


Lesenswert?

> entkoppelt hab ich garnix,

Könnte es sein, dass mangels Entkopplung die TX-Pins beider AVRs
gegeneinander "gekämpft" hatten und der "Schwächere" bereits
"verloren hat"? (Der Mega32 ist vom Design älter und daher vermutlich
schwächer.)

Die TX-Pins sind (Push/pull-) Ausgänge, die mögen nicht
zusammengeschaltet werden. Das gibt einen Kurzschluss, bedi dem meist
einer nicht überlebt.

...

von Hirbel H. (leo)


Lesenswert?

ööööhm, du meinst der mega is defekt?
denn ohne den 90s gehts nämlich auch nich

von Michael Wilhelm (Gast)


Lesenswert?

Als der AT90S8515 vor 7 bis 8 Jahren rauskam, hat bei Atmel noch niemand
an den Mega32 gedacht. Evtl. war man gerade dabei, die ganze Megaserie
zu designen.

MW

von Hannes L. (hannes)


Lesenswert?

Sorry, ich hatte nur halb gelesen und war auf Mega8515 aus. Der
AT90S8515 ist natürlich älter.

Trotzdem halte ich es für möglich (und recht wahrscheinlich), dass der
Mega32 das Parallelschalten des TX-Pins mit dem 8515-TX-Pin nicht
überstanden hat. Denn das ist ein Kurzschluss. Man schaltet zwei
Ausgänge nicht ohne Entkopplung zusammen.

> schlecht geschlafen, oder wieso so aufbrausend

Wer ist damit gemeint?

...

von Hirbel H. (leo)


Lesenswert?

hmm um die miteinander kommuniziern zu lassen, wie muss ich das dann
beschalten? rx an tx und umgekehrt?

von Michael Wilhelm (Gast)


Lesenswert?

@ Hannes, ich vermute, deine Vermutung ist richtig.

@ Leo, das nächste mal 2 Dioden von TXD zum Max, danach einen Pull
Down, dann kann elektrisch nichts mehr passieren.

Aber irgendwie komisch, ich dachte die Megas können mehr Source als die
alten Classik.

MW

von Bjoern B. (tishima)


Lesenswert?

Ja natürlich muss

8515      Mega32
RX     -  TX
TX     -  RX
GND    -  GND

mfg,
Bjoern

von Marco S. (masterof)


Lesenswert?

@HanneS

habe heute leide keine passende Idee.

Gruß Marco

von @Hirbel (Gast)


Lesenswert?

Wie war das vorhin, deine Hardware ist 100% richtig? Warum fragst Du
dann noch nach der Beschaltung? Das nächstemal vielleicht nicht gleich
sagen dass alles 100% stimmt... tztztz...

von Hirbel H. (leo)


Lesenswert?

du wiederholst dich kann das sein?
die Beschaltung war auch 100% richtig und alles hat funktioniert, nur
hab ich nicht damit gerechnet das der alte 90s meinen mega zerstört...
somit hat zwar immernoch alles funktioniert, bis zu dem zeitpunkt, als
ich das UART implementieren wollte....

von Rahul (Gast)


Lesenswert?

Um zu testen, ob es wirklich den USART-Pin gehimmelt hat, sollte man den
Mega32 ohne den 90S8515 in der Schaltung betreiben und den
entsprechenden Pin togglen. Wenn da nichts passiert, ist der Pin hin.

von Hirbel H. (leo)


Lesenswert?

alles schon gemacht, der pin is hin, µC ausgetauscht, UART funktioniert.

von Hannes L. (hannes)


Lesenswert?

> die Beschaltung war auch 100% richtig und alles hat funktioniert,
> nur
> hab ich nicht damit gerechnet das der alte 90s meinen mega
> zerstört...

Du erzählst Unfug!
Die Beschaltung kann nicht richtig sein, wenn die Ausgänge zweier
Controller ohne jegliche Strombegrenzung zusammengeschaltet werden.
Deine Rechthaberei ist hier fehl am Platz.

Und das ist der Beweis dafür:

> alles schon gemacht, der pin is hin, µC ausgetauscht, UART
> funktioniert.

Nicht der 8515 hat den Mega32 beschädigt, sondern die falsche
Beschaltung, für die nicht der AVR, sondern allein du verantwortlich
ist/bist.

Fehler machen wir alle mal, aber man sollte auch dazu stehen und daraus
lernen. Dabei geht es hier nicht um Schuld, sondern um Ursache und
Vermeidung in der Zukunft...

...

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.