mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik ATMEGA16 läuft nicht


Autor: Christoph Wagner (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Autor: Thomas (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Fuse bits gecheckt ?

Autor: Christoph Wagner (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ja.

SInd alle original werkseitig eingestellt. In ein paar minuten schreib
ich die einstellung (muss erst nachschauen)

Autor: Siggi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Servus
Liegen am Reset 5 V an nach der Programmierung?

Autor: Christoph Wagner (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Autor: Christoph Wagner (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ja, es liegen 5V an. Außerdem geht von RESET an Vcc(+5V) ein 10KOhm
wiederstand und an GND ein 47pF Kondensator

Autor: Thomas (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
hast du noch einen anderen Mega16 er zum testen ?

Autor: Christoph Wagner (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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)

Autor: Thomas (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Was hast du fr wiederstände an deinen LEDs dran ? vielleicht hast du
deine Ports ja schon gegrillt.

Autor: Thomas (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
hast du auch AVCC und AGND spannung dran ?

Autor: Thomas (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
DDR Richtig gesetzt ?
PORTS richtig gesetzt ?
LEDs über widerstand an VCC oder an GND ?

Autor: Christoph Wagner (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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.

Autor: Christoph Wagner (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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.

Autor: Thomas (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Versuchs mal mit nem anderen PORT.
kann sein dass du irgendwie denport C zerschossen hast.

Autor: Thomas (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
sett mal einen freien port auf high und mess die spannung.

Autor: Christoph Wagner (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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.

Autor: Christoph Wagner (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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 ?

Autor: Thomas (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ich hab bei meinem XTAL1, XTAL2 , ARef immer unbeschaltet.

Autor: Christoph Wagner (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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)

Autor: Thomas (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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.

Autor: Thomas (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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.

Autor: Christoph Wagner (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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 ?

Autor: Thomas (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
die m16def.inc ist die richtige.

Autor: Thomas (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
setze einfach mal nen anderen port auf high und heb n oszi /
spannungsmesser dran.

Autor: Christoph Wagner (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Könnte mir einer bitte ein Codebeispiel schreiben, wie man ein Byte in
den EEPROM schreibt ? (Hab gerade kein Datenblatt zur Hand)

Autor: Christoph Wagner (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
OK. die Ports funktionieren einzeln (PORTD,PORTC,PORTB), aber für PortA
kriege ich kein genaues ergebnis. (Sprich : der Oszillator geht auch.)

Autor: Chris (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Du hast oben gesagt, AVCC ist "korrekt angeschlossen". Wie ist es
genau angeschlossen, einfach mit VCC verbunden?

Autor: Gunter (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Autor: Christoph Wagner (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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 ?

Autor: Chris (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> 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.

Autor: Chris (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> 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).

Autor: ...HanneS... (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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.

...

Autor: madmaxx (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hardwareaufbau weiter kontrollieren (LED-Verpolung ?), wenn Software
"anscheinend" okay, dann probiers erstmal damit.

Autor: Christoph Wagner (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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.)

Autor: Chris (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> und damit AVcc mit GND verbunden.

Hättest du mal besser gleich nachgemessen, nach so vielen Hinweisen. ;)

Autor: ...HanneS... (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.