ATMEGA16 läuft nicht

Gast #142294
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
Gast
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
Gast
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)
Gast
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.
Gast
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.
Gast
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.
Gast
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 ?
Gast
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)
Gast
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.
Gast
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 ?
Gast
OK. die Ports funktionieren einzeln (PORTD,PORTC,PORTB), aber für PortA
kriege ich kein genaues ergebnis. (Sprich : der Oszillator geht auch.)
Gast
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
Gast
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 ?
Gast
> 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.
Gast
> 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).
Gast
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.

...
Gast
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.)
Gast
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.

...

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 21 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.