Forum: Mikrocontroller und Digitale Elektronik UART Tutorialbeispiel auf Atmega 8 klappt nicht


von Thomas_H (Gast)


Lesenswert?

Hallo Experten,

ich möchte nun schon seit zwei Tagen das UART Beispiel aus dem Tutorial 
(http://www.mikrocontroller.net/articles/AVR-Tutorial:_UART) zum Laufen 
bringen und schaffs einfach nicht.

Ich hab das zweite Programm zum Senden ("Senden von Zeichenketten") per 
STRG C STRG V ins AtmelStudio4 kopiert, übersetzt, geflasht und den 
Strom angeschlossen.

Nun dachte ich, dass am Pin3 des Atmega8 irgendwelche Logikwechsel 
auftreten, die das T von 'Test' darstellen. Tun sie aber nicht 
(auftreten mein ich). Das Pin geht auf High und bleibt dann da.

Hat vielleicht jemand einen Tipp?

von Hmm (Gast)


Lesenswert?

Poste bitte mal den kompletten Schaltplan.
Am besten auch noch ein Bild vom Aufbau.

Verwendest Du einen Quarz? Sind die Fuses entsprechend gestellt?
Hast Du mit der Schaltung und genau diesem Aufbau mal eine Led zum 
blinken gebracht (oder auch: Hast Du die einfacheren Tutorials hier 
schon gelesen und nachvollzogen).

von Thomas H. (t0m_h)


Angehängte Dateien:

Lesenswert?

Hallo,

der Schaltplan ist genau der im Link. Es blinken keine LEDs, sondern sie 
ist immer an. Welche einfacheren Tutorials??

Im Anhang sieht man, was sich an Pin 3 des Atmega (TxD) die ersten 25s 
nach dem einschalten tut. Eingeschalten wird, wo unten Trigger steht.

von Hmm (Gast)


Lesenswert?

>der Schaltplan ist genau der im Link.

Das wird dann vermutlich nicht funktionieren. Denn es fehlt entweder ein 
Quarz (der ist nämlich in diesem Schaltplan nicht vorhanden) oder Du 
verwendest den internen RC-Oszillator (der zu ungenau ist, um damit 
serielle Schnittstellen zu betreiben). Da Du aber einen statischen Pegel 
feststellst ist höchstwahrscheinlich ersteres der Fall.

>Es blinken keine LEDs, sondern sie
>ist immer an. Welche einfacheren Tutorials??
Welche denn?`In dem Schaltplan ist nämlich garkeine LED enthalten. Also 
entspricht die Schaltung wohl doch nicht der vom Link.

Meine Frage zielte darauf, ob Du überhaupt schonmal (in den letzten 
Tagen) diesen Aufbau irgendwas hast machen lassen und ob Du mit 
einfacheren Beispielen (eben dem LED blinken) Erfahrungen mit dem uC, 
der IDE und dem Aufbau gemacht hast.

von Hmm (Gast)


Lesenswert?


von Maximilian (Gast)


Lesenswert?

Also du solltest erstmal checken ob die rs232 von deinem pc 
einsatzbereit ist
Dazu Txd mit Rxd verbinden ein Terminalprogramm (zb Hterm) aufrufen ein 
zeichen senden und sehen ob es zurückkommt.
Eventuell mit einer Led an Txd prüfen ob ein signal kommt. Dazu Baudrate 
möglicht klein 300?
Dann den gleichen test nach deinem Max323 um zu sehen ob das auch 
richtig arbeitet.
Dann sicherstellen das der avr Arbeitet. Z.b. eine led blinken lassen

von bude? (Gast)


Lesenswert?

Er wollte nur herausfinden ob deine Schaltung überhaupt richtig 
funktioniert.
Da nicht die richtigen Signale ausgegeben werden, stimmt irgendwo 
irgendetwas nicht.

von tobi (Gast)


Lesenswert?

Ich bastel auch gerad an der uart rum und hatte dasselbe problem. 
Versuch mal den wert fuer das ubrr  register dir nich per macros 
ausrechnen zu lassen, sondern schau in die tabelle im datenblatt nach 
bei welchem takt des uc und bei welcher baudrate das register welchen 
wert hat. Bei mir waren es damals bei 1Mhz und bei 4096 glaub ich der 
wert 12

von Thomas H. (t0m_h)


Angehängte Dateien:

Lesenswert?

Mal ein paar Antworten:
also ich hab schon mal was anderes mit mit einem Atmega gebaut und es 
hat auch funktioniert (Lichtschranke zum Blitz auslösen mit 
einstellbarer Zeitverzögerung)

Die erwähnten LED's hab ich wieder rausgenommen, da sie eh nicht 
geblinkt haben.

Es wird noch kein Quarz verwendet, weil ich erst mal nur die 
Pegelwechsel sehen will.

Der Atmega8 wurde direkt aus einer funktionierenden Schaltung entnommen, 
die allerdings Port D nicht verwendet.

Die ganzen üblichen Checks mit der RS232 Schnittstelle hab ich gemacht 
und sie funktionieren auch (vor dem max232 überbrückt ->echo, nach dem 
max232 überbrückt -> echo, 0V an T1in -> 8V an T1out, 5V an T1in -> -8V 
an T1out, 8V an R1in -> 0V an R1out, -8V an R1in -> 5V an R1out)

Außerdem hab ich zum Test den Max232 gar nicht angeschlossen.

Im Anhang noch das gewünschte Bild vom Aufbau. Rot ist +5V, schwarz ist 
Masse. Die Widersände stecken nur mit einem Ende im Board, um die 
Messkabel anschließen zu können.

von Karl H. (kbuchegg)


Lesenswert?

Deine Versorgungsspannung ist verkehrt angeschlossen.

Vcc ist an Pin 7, GND an Pin 8

Wenn ich deine Anschlüsse nachzähle, bist du um 1 Spalte verrutscht.
Mit ein bißchen Glück lebt der µC noch.

An den Pins 20 und 22 ist noch einmal die Versorgungsspannung 
anzuschliessen. Diese Pins hat Atmel nicht gemacht, damit du sie 
ignorierst.

Dein Blockkondensator in der Vcc/GND Schiene ist zwar nett, der 
Kondensator gehört aber DIREKT an die µC Pins. Und zwar an BEIDE 
Versorungsspanunngsanschlüsse je einer.

von Thomas H. (t0m_h)


Lesenswert?

ach du Sch***e, so ein blöder Fehler. Vielen Dank fürs genaue Hinsehen.

Bei Pin 20/22 dachte ich, man braucht es nur, wenn man den AD-Wandler 
benutzt. Im Datenblatt steht "sollte" verbunden werden. "Sollte" heißt 
nicht "muss".

Jedenfalls gehts jetzt und im Putty kommt der Text an. Nochmal vielen 
Dank an Alle fürs Mitdenken und ~helfen.

Jetzt geht's weiter mit ner mpu 6050 hat vielleicht zufällig jemand was 
in Assembler dazu rumliegen?

von Karl H. (kbuchegg)


Lesenswert?

Thomas H. schrieb:
> ach du Sch***e, so ein blöder Fehler. Vielen Dank fürs genaue Hinsehen.
>
> Bei Pin 20/22 dachte ich, man braucht es nur, wenn man den AD-Wandler
> benutzt. Im Datenblatt steht "sollte" verbunden werden. "Sollte" heißt
> nicht "muss".

"Should" in englischsprachigen Datenblättern (und Normen) bedeutet 
nicht, dass du es dir aussuchen kannst.


Auszug aus den 10 Geboten des Mose
1
Thou shalt have no other gods before me
Das heißt nicht das du zwar kannst aber nicht musst, wenn du nicht 
willst. Mit der Interpretation werden dir bibeltreue Amerikaner aber 
ganz schnell ganz heftig kommen.

von Hmm (Gast)


Lesenswert?

Nun, darüber kann man trefflich streiten.

Ein "must" oder "have to" wäre wohl ein bisschen besser gewesen; im 
Datenblatt, nicht in der Bibel.
Aber selbst im Deutschen, ist "soll" doch ein wenig! stärker als "du 
darfst, wenn Du willst".

Ein anderer Hinweis wäre der Kontext gewesen. Da steht nämlich "auch 
wenn Sie den ADC nicht verwenden". Das deutet zumindest darauf hin, das 
der Autor was anderes sagen wollte als: "Es ist völlig egal und Ihnen 
überlassen". Falls da nämlich gemeint würde, dann stünde es da. Nur so 
ein kleiner Tip für das nächste Datenblattstudium.

von Hmm (Gast)


Lesenswert?

He he, das wird lustig, wenn Du das erste Datenblatt von ST liest.

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.