Hallo,
im STK 500 läuft der atmega 162 prima:
LED1 Betriebsanzeige
LED2 Impulsanzeige
LED3 Warnanzeige
Nun habe ich zum Testen den µC auf ein Steckbrett nach obigem Schaltplan
aufgebaut. Es tut sich aber gar nichts. Spannung von 5V liegt an.
Kann mir jemand einen Tipp geben, was ich falsch gemacht habe?
Vielen Dank
Thomas
Hallo,
hier nochmal der geänderte Schaltplan.
Bei den Fuses hatte ich noch CKDIV8 und JTAG rausgenommen.
Habe auch unter Minimalbeschaltung Atmega geschaut. Wenn der µC Saft hat
müsste er doch laufen......
Gruß
Thomas
@magnetus
habe ich im manual für das STK500 gelesen. Da sitzen noch Transistoren
dran, damit die LED immer die selbe Betriebsspannung haben.
Aber man kann doch trotzdem mit dem µC LED direkt ansteuern? Das heißt
dass in meinem Beispiel zumindest irgendeine LED angehen muss.
Habe mal die Spannungen an den Portpins gemessen: Im STK 500 4,4V High,
LED aus.
Beim µC auf dem Steckbrett ist aber keiner der PIN s auf High, obwohl an
VCC 5 V anliegen..... wenn ich ihn ins STK 500 stecke, arbeitet er aber
ganz normal...
ich fürchte ich steh da mächtig auf dem Schlauch ;-((
Gruß
Thomas
Thomas schrieb:> Da sitzen noch Transistoren> dran, damit die LED immer die selbe Betriebsspannung haben.
Denselben Betriebsstrom.
Thomas schrieb:> Habe mal die Spannungen an den Portpins gemessen: Im STK 500 4,4V High,> LED aus.
Kann von den Transistoren kommen.
Wo ist der Code ? Im recht unwahrscheinlichen Fall würden die Pins
Tristate gesteuert, d.h. aktiv Low oder offen, das würde so ein
Fehlerbild ergeben.
Vielleicht schwingt der Quarz nicht richtig an, Du könntest mal den
internen Osci aktivieren, wenn's dann läuft liegt der Fehler nicht an
der Schaltung oder Software..
Gruß
Mark
Hallo,
habe jetzt den externen Quarz entfernt und die Fuse auf int Oszi
gestellt.
Aber der µC macht immer noch nichts!!!!
Unter Minimalbeschaltung habe ich bei
www.rn-wissen.de/index.php/Atmel_Controller_Mega8
gesehen, wie jemand den Atmega 8 nur mit VCC, GND, Reset-10k-VCC drei
LEDs zum Leuchten bringt.
Was braucht denn der Atmega 162 anderes?? Im Datenblatt habe ich
definitiv nur gefunden, dass er von 1.8 V bis 5.5 V betrieben werden
kann.
es muss doch was ganz Fundamentales sein, was hier nicht funktioniert.
Habe auch berücksichtigt, dass ein µC kaputt sein könnte und zweimal
ausgetauscht.
Es geht einfach nicht.;-((
Hat irgendjemand eine Idee, was ich noch probieren könnte??
Gruß
Thomas
Im STK ist der Reset definiert.
Ich glaube nicht, dass es reicht, am Reset nur einen Pullup-widerstand
anzuschließen. Da sollte mindestens noch ein 1 µF- Kondendator dran.
Damit ein Reset über den PIN bei jedem Spannungeinschalten auch
durchgeführt wird. Im STK ist eine Pulldown-Kondensator vorgesehen...
Vielleicht ist es das ja schon.
Lass doch mal eine Kontroll_LED in der äußeren While-Schleife blinken.
Entsprechend verzögern.
Aber sag mal, führst Du da eine int32-Berechnung durch? Wofür ist die
gut, wenn Da nur ein paar LED-blinken sollten.
Viel Erfolg
Hast du ein Multimeter?
Falls ja, verbinde die Minus-Leitung (schwarz, COM) mit Pin 20 (GND) des
Atmega162. Dann messe mit der Plus-Leitung (rot) folgende Spannungen und
berichte die Messwerte:
Pin 40:
Pin 9:
Pin 37:
Pin 38:
Pin 39:
Pinlayout wie in
http://www.atmel.com/dyn/resources/prod_documents/doc2513.pdf
Benutzt du BOD (siehe Fuses)?
Wenn ich das richtig überblicke, dann fehlt bei deiner Beschaltung noch
was.
Bei mir hat es sich damals genauso verhalten. STK geht, extern nicht.
Siehe auch hier: Beitrag "MEGA164P läuft nicht an"
Na, ist kein Wunder, schau' Dir den Code nochmal an, genau wie ich
vermutet hab' :D
Die PortA-Pins werden über DDRA gesteuert. Damit sind sie entweder Low
oder offen. Damit funktioniert eine Led gegen GND natürlich nicht. Warum
eigentlich diese eher ungewöhnliche Verwendung des DDR-Registers ?
Es gibt Dinge bei denen Tri-State Sinn macht, aber in dieser Schaltung
nicht.
Wer hat den Code geschrieben ? Wär' der von Dir, hätte es Dir eigentlich
sofort klar sein müssen, wo's hakt.
@cskulkw
habe keinen 105er (1µF);-( Tuts zum probieren auch ein 0.1µF?
Die int32 Berechnung brauche ich für die Erzeugung von Harmonischen die
ziemlich genau
mit extern gemessenen Harmonischen übereinstimmen sollen (Resonanz)
@Serieller
PIN40 5,05 V
PIN9 5,05 V
ohne LEDs:
PIN37 0,7 V
PIN38 0,5V
PIN39 1,2 V
mit LEDs:
PIN37 0,2 V
PIN38 0,05 V
PIN39 0,43 V
@ Daniel
der µC steckt richtig rum! Habe ihn nur deswegen gedreht, weil er in
einem
Platinenlayout (nicht gepostet) so günstiger zum routen liegt.
@Serieller
Habe das Datenblatt ausgedruckt, die Pinansicht vergrößert und an die
Wand genagelt;-))
Danke für die Antworten
Thomas
@MWS
bin Anfänger,Autodidakt und das ist einer meiner ersten Codes. War ganz
stolz, dass er innerhalb des STK 500 genau das macht was ich möchte.
Deswegen ist mir leider überhaupt nicht klar, dass ich hier Tri-state
verwendet habe. Musste mir den Begriff auch erst mal im Wiki durchlesen
;-((
Muss mir jetzt nochmal im Tutorial anschauen wie man eine LED ohne
Tri-state
schaltet. Oder hast Du einen Tipp ?
vielen Dank
Gruß
Thomas
Thomas schrieb:> Deswegen ist mir leider überhaupt nicht klar, dass ich hier Tri-state> verwendet habe.
Du hast doch PortB auch richtig angesteuert, deswegen musste man fast
von Absicht ausgehen ;-)
Das DDR = Data Direction Register legt fest, ob's der Portpin Ein- oder
Ausgang ist. Der klassische Weg eine Led zu schalten, ist den Portpin
über DDRx auf Ausgang und per PORTx den Zustand, High oder Low zu
setzen.
Tristate dagegen ist: Offen - Low - High
Wenn man so etwas braucht, dann kann man über den Weg über's
DDR-Register machen, etwas daß Du offenbar unabsichtlich gemacht hast.
Register PORTA wird nirgends initialisiert, ist aber nach dem Reset auf
0. Ein Schreiben einer 1 auf ein Bit des DDRA bewirkt, daß der
entsprechende Pin Ausgang wird, also Low, ein Schreiben einer 0 daß der
Ausgang offen wird.
Er wird so aber nie High, d.h. Leds von VCC auf Portpin leuchten, aber
Leds von Portpin gegen GND nie.
Thomas schrieb:> Oder hast Du einen Tipp ?
Ja, statt hier:
@MWS
Super!!!! Vielen Dank für die ausführliche Erklärung!
Werde heute abend mal den Code entsprechend anpassen und dann schaun was
passiert. Müsste aber, so wie Du es erklärt hast, laufen...
Gruß
Thomas
Es läuft!!
Ursache war die der fehlerhafte Implementierung der LED Steuerung, wie
MWS festgestellt hatte. Die von ihm vorgeschlagene Lösung hat das
Problem behoben.
Vielen Dank an alle die geholfen haben,
Gruß
Thomas