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?
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).
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.
>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.
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
Er wollte nur herausfinden ob deine Schaltung überhaupt richtig
funktioniert.
Da nicht die richtigen Signale ausgegeben werden, stimmt irgendwo
irgendetwas nicht.
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
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.
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.
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?
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.
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.