Hallo. Mein ATMEGA16 funktioniert nicht. Selbst angeschlossene LEDs leuchten nicht auf, wenn ich diese direkt BEIM RESET anschalte (Quellcode dafür 100% OK). ergo : Die Ports werden gar nicht gesetzt, was ein Rundgang mit dem Spannungsmesser und Oszillographen bewiesen hat. Nun gege ich von der Annahme aus, dass der Chip überhaupt nicht mit der Programmverarbeitung beginnt. Programmieren lässt er sich seltsamerweise aber. (?) Zur schaltung: Einen Stromlaufplan kann ich leider nicht vollständig zur Verfügung stellen, da Target 3001! in der freien Version nur 100 Pins zulässt und das Layout mehr oder weniger gezeichnet wurde :-|. Als Spannungsversorgung schließe ich ein Netzteil (13,5V 265ma) an den Spannungswandler, zu beiden Seiten durch 10µF gepuffert. Da der eine Kondensator so und so Leiterbahntechnisch direkt neben Vcc und GND liegt, habe ich auf den 100nF verzichtet. ARef, XTAL1 und XTAL2 habe ich komplett unbeschalten gelassen, da im Datenblatt steht : ARef wäre egal, und im Internet, dass man das beim internen Oszi mit XTAL1 und 2 auch tun könnte. Kurzschluss, etc. ist natürlich nicht vorhanden, auf diese Möglichkeiten hin, sowie auf Funktionalität anderer Baugruppen wurde hinreichend getestet. Ist nun mein AT defekt, muss ich diese Pins auch noch beschalten, ist der Kondensator ungeschickt, oder ist es irgend etwas anderes ??? Vielen Dank an alle, die sich diesen langen Text durchgelesen haben, und mir trotzdem helfen wollen. ;-) MfG Christoph
Ja. SInd alle original werkseitig eingestellt. In ein paar minuten schreib ich die einstellung (muss erst nachschauen)
So.... hier sind sie : Locks : alle 0 OCDEN 0 JTAGEN 1 SPIEN 1 CKOPT 0 EESAVE 0 BOOTSZ1 1 BOOTSZ0 1 BOOTRST 0 BODLEVEL 0 BODEN 0 SUT1 0 SUT0 1 CKSEL3 1 CKSEL2 1 CKSEL1 1 CKSEL0 0 PS: könnte mir einer folgende Fuses näher erläutern ??? BOOTRST BOOTSZ1/0 EESAVE CKOPT OCDEN JTAGEN - muss ich den Ausschalten, um PC2-5 zu verwenden
Ja, es liegen 5V an. Außerdem geht von RESET an Vcc(+5V) ein 10KOhm wiederstand und an GND ein 47pF Kondensator
Nein. ab nur den einen. Kann der etwa defekt sein ? Ich hab aber bis jetz nichts "schlimmes" mit dem angestellt. Immer wenn er nicht in der Fassung ist, war er in antistatischem Schaumstoff, und einen Kurzschluss gabs auch nicht. (genauso wie überspannung)
an PortA hab ich den 74HC541N als Treiber. Danach gehen die Ausgänge über je einen 180 Ohm Wiederstand an zwei 7segment Anzeigen parallel(segmente untereinander verbunden). Die gemeinsamen Kathoden gehen an den Kollektor von NPN-Transistoren, deren Emitter an GND liegt. Die Basis ist mit je einem 3,0KOhm wiederstand an PortC.0 und C.1 angeschlossen. Ohne den ATMEGA eingesetzt funktioniert das tadellos, wenn ich die Leitung künstlich auf wunschpegel setze.
AVcc und AGND sind korrekt angeschlossen. DDRA ist 0xFF (Ausgänge) DDRC ist 0xFF (ebenfalls) PORTA ist 0b10101010 (4 sollten auf alle Fälle leuchten) PORTC ist 0b00000010 (linke 7segment anzeige. PORTC.1 = 5V) LEDs in 7segment anzeige sind siehe oben über einen Puffer und Vorwiederstand an Vcc.
Versuchs mal mit nem anderen PORT. kann sein dass du irgendwie denport C zerschossen hast.
Einen anderen Port kann ich nicht verwenden. Der Chip sitzt auf seinem Thron (Sockel) in einer fertig aufgebauten Platine. Mir ist nicht bewusst, dass ich den PortC zerschossen habe. Der Chip ist keine Woche alt, und vor dieser Platine nie im Einsatz gewesen. Könnte den die Schaltungsanordnung wie oben beschrieben den PortC durchrauchen ?. Aber erst mal grundsätzlich : oben hab ich gefragt, ob es OK ist, XTAL1 und XTAL2 unbeschaltet zu lassen, genauso wie ARef. Ich vermute nämlich immernoch stark, dass der ATMEGA gar nichts macht, wenn ich saft anlege.
Einen freien Port auf HIGH setzen bringt nichts, da sich der ATMEGA scheinbar nicht regt. (programmieren lässt er sich), doch bei jeder inbetriebnahme macht er nichts. Kann das daran liegen, dass die 10µF zu groß sind, und ich den 10uF neben dem Chip gegen einen 100nF austauschen sollte ?
Kann es dann villeicht an der JTAGEN Fuse liegen, dass die den PORTC reserviert ? Die ist laut PONYProg nämlich 1 (Häkchen im Kästchen)
ich hab gedacht, dass du ihn auf low setzt weil du JTAGEN - muss ich den Ausschalten, um PC2-5 zu verwenden geschrieben hast. setz ihn halt mal auf 0.
ob der µC läuft kannst du so testen: byte in das eeprom schreiben (per software auf dem µC) und dann das eeprom mit ponyprog auslesen.
Könnte es sein, dass ich die Falsche Datei unter .include angeben (AVR-Studio Assembler) ich schreibe immer : .include m16def.inc aber es gibt auch noch m{161,162,163,169}def.inc und in jeder steht eine andere Register - IO register belegung Auf meinem Chip steht genau : "ATMEGA 16" "16PI" "0439J" welche soll ich verwenden ?
setze einfach mal nen anderen port auf high und heb n oszi / spannungsmesser dran.
Könnte mir einer bitte ein Codebeispiel schreiben, wie man ein Byte in den EEPROM schreibt ? (Hab gerade kein Datenblatt zur Hand)
OK. die Ports funktionieren einzeln (PORTD,PORTC,PORTB), aber für PortA kriege ich kein genaues ergebnis. (Sprich : der Oszillator geht auch.)
Du hast oben gesagt, AVCC ist "korrekt angeschlossen". Wie ist es genau angeschlossen, einfach mit VCC verbunden?
Hi Christoph, >Kann es dann villeicht an der JTAGEN Fuse liegen, dass die den PORTC >reserviert ? Die ist laut PONYProg nämlich 1 (Häkchen im Kästchen) "Häkchen im Kästchen" heißt _aktiv_ und _aktiv_ heißt Null !!! hth Gunter
AVcc ist mit Vcc verbunden. Das JTAGEN-Problem (soweit wie es ein Problem war) ist gelöst. Die Ports B,C,D funktionieren einwandfrei, jedoch einzig udn allein bei Port A tritt beim beschreiben mit dem Bitmuster 10101010 an sämtlichen Ausgängen eine Spannung von ~0,5V auf. Hat der Port A etwa auch noch eine Funktion, die man erst abschalten muss ?
> Hat der Port A etwa auch noch eine Funktion, > die man erst abschalten muss ? Jein. Port A wird von AVCC gespeist, nicht von VCC. Deswegen spricht das beschriebene Sympton sehr stark dafür, dass AVCC bei dir eben doch nicht richtig angeschlossen ist.
> AVcc ist mit Vcc verbunden.
Sorry, hatte das übersehen. Dann weiß ichs auch nicht (ich würde aber
die AVCC-Verbindung nochmal überprüfen, sicher ist sicher).
Mach erstmal die 100nF-Keramik-C's dran. Ohne die wird dein Spannungsregler schwingen. Und weitere 100nF direkt an den AVR. Und dann poste mal dein Programm, vielleicht ist es ja doch nicht 100% in Ordnung. ...
Hardwareaufbau weiter kontrollieren (LED-Verpolung ?), wenn Software "anscheinend" okay, dann probiers erstmal damit.
Das Teil funzt nun. Ich hatte zwei Drahtbrückenenden, die nebeneinander liegen falsch eingelötet, und damit AVcc mit GND verbunden. Jetzt läuft alles wunderbar. Ich sehe diesen Thread hiermit als geschlossen an. (Problem gelöst) PS: @ ...HanneS... Der Spannungwandler ist mit 10µF beschaltet, wovon einer wegen der Nähe zum AVR den 100nF ersetzt. (s.o.)
> und damit AVcc mit GND verbunden.
Hättest du mal besser gleich nachgemessen, nach so vielen Hinweisen. ;)
10µF ist sicherlich ein Elko. Der kann den 100nF Keramik nicht ersetzen, da er zu langsam ist. Ohne die Keramik-C's kann es gehen, muss aber nicht. Manche Spannungsregler schwingen dann. ...
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.