Forum: Mikrocontroller und Digitale Elektronik ATMEGA32 Einzellne Pins durchgebrannt ?


von Doubleyou W. (doubleyou)


Angehängte Dateien:

Lesenswert?

Hallo,

ich hab ein kleines Problem mit einem ATMEGA32 und einem 
Experementierboard. Ich habe 8x LED´s am PortC angeschlossen. Die LED´s 
haben alle einen 470 Ohm Vorwiderstand. Die Platine hat einen 
Spannungsregler auf 5V. Also fließen durch die LED´s max. 10mA. Die 
müssen ja auch nicht hell leuchten. Ich wollte nun die LED´s mit 
folgendem Code testen.
1
.include "m32def.inc"  
2
      
3
        ldi r16, 0xFF       
4
        out DDRC, r16       
5
ende:
6
        ldi r16, 0x00 
7
        out PORTC, r16     
8
        rjmp ende
1
#include <avr/io.h>
2
#include <util/delay.h>
3
4
5
int main()
6
{
7
  while(1)
8
  {  
9
  DDRC  = 0xFF;
10
  PORTC = 0x00;
11
  }
12
}

Bei beiden Programmierungen leuchten nur LED 1;2;7;8 die LED´s 3;4;5;6
leuchten nicht und sind nicht gegen Masse durchgeschalten. Ich hab zu 
beginn ausversehen mal
1
PORTC = 0xFF;
 angegeben dadurch müsste Plus auf Plus geschalten sein, da ein High am 
Ausgang anliegt. Aber kann deswegen der ATMEGA durchgebrannt sein ?

Mit freundlichen Grüßen

Doubleyou

von wtzm (Gast)


Lesenswert?

JTAG Fuse nicht deaktiviert?

von M. M. (miszou)


Lesenswert?

Hi

JTAG hast du nicht deaktiviert.

Gruß MISZOU

von Ben (Gast)


Lesenswert?

hehe das hab ich auch schon gebracht... der port C liegt sooo schön für 
datenleitungen am IC und ich wunder mich stundenlang wieso da nur müll 
rauskam.

von Doubleyou W. (doubleyou)


Angehängte Dateien:

Lesenswert?

Hmm, ich hab nun mal die Fuses so gesetzt wie oben im Bild. Nur leider 
schein ich nun kein Zugriff mehr auf die ISP-Interface zu haben.

Mit freundlichen Grüßen

DoubleU

von Stefan B. (stefan) Benutzerseite


Lesenswert?

Du hast die AVR Fuses für Taktquelle auf "Ext. Crystal/Resonator Low 
Freq." umprogrammiert.

Wenn du keine passende externe Taktquelle angeschlossen hast, bist du 
ausgesperrt.

4 MHz o.ä. Quarz und zwei passende Lastkondensatoren besorgen und wie im 
AVR Tutorial anschliessen. Dann ist der Atmega32 wieder zugänglich.

von Doubleyou W. (doubleyou)


Angehängte Dateien:

Lesenswert?

Hallo,

wenn ich die Einstellungen wie hier habe, kann ich es Programmieren. 
Liegt es vielleicht doch am IC ?

Mit freundlichen Grüßen

DoubleU

von Karl H. (kbuchegg)


Lesenswert?

Doubleyou W. schrieb:
> Hallo,
>
> wenn ich die Einstellungen wie hier habe, kann ich es Programmieren.

Ist das die Einstellung, mit der dein Prozessor grundsätzlich 
funktinioert? Dann nimm den Haken bei JTAGEN weg und der PORT C sollte 
sich wieder ganz normal verhalten.

> Liegt es vielleicht doch am IC ?

Mit ziemlicher Sicherheit nicht.

von Stefan B. (stefan) Benutzerseite


Lesenswert?

Dann mach es doch so. Und nach dem Programmieren schaltest du JTAG 
wieder ab, damit du die LEDs an PORTC steuern kannst.

Die Schaltung aus Beitrag "ATMEGA32 Einzellne Pins durchgebrannt ?" 
wird aber nicht funktionieren, weil unvollständig (Vcc für µC fehlt, 
Quarz fehlt).

von Doubleyou W. (doubleyou)


Lesenswert?

Also ich hab ja nun beide varianten versucht.

Wenn ich JTAG das Häckchen wegmache, dann kann ich den Microkontroller 
nicht mehr über ISP-Schnittstelle erreichen. Somit kann ich das obige 
Programm nicht aufspielen und testen. Hinzuzufügen ist, das ich einen 
externen Quarz mit 16MHz habe.

Wenn ich bei JTAG ein Häckchen setze, dann kann ich den Microkontroller 
über ISP-Schnistelle erreichen, aber der PortC verhält sich immer noch 
nicht korrekt.

Also ich hab hier momentan 2x ein ATMEGA32 den wo ich nicht mehr 
ansprechen kann muss ich erstmal wieder zugänglich machen, wie mir das 
im Beitrag zuvor geraten wurde.

Mit freundlichen Grüßen

DoubleU

von Karl H. (kbuchegg)


Lesenswert?

Was du da beschreibst, ist völlig unlogisch.

JTAG hat nichts mit der Fähigkeit des ISP Programmierens zu tun.

Du gehst hoffentlich so vor:

Du hast einen Prozessor, der grundsätzlich funktioniert.
Von dem liest du als allererstes die Fuses aus.
Damit hat dein Fuseprozessor die momentane Konfiguration
Dann schaltest du die JTAGEN Fuse um. Und nur diese!
Dann schreibst du die Konfiguration zurück.

Alles muss wie gehabt weiter funktionieren. Nur eben mit dem 
Unterschied, dass die Pins am PORT C ihre JTAG Funktion verloren haben.

von Doubleyou W. (doubleyou)


Lesenswert?

Stefan B. schrieb:

> Die Schaltung aus Beitrag "ATMEGA32 Einzellne Pins durchgebrannt ?"
> wird aber nicht funktionieren, weil unvollständig (Vcc für µC fehlt,
> Quarz fehlt).

Das oben ist nicht die komplette Beschaltung, Ich dachte ich hab 
vielleicht die LED´s schon nicht richtig beschaltet, deswegen hab ich 
oben nur einen kleinen auszug.

Reset
XTAL2
XTAL1
AREF
AVCC
AGND
VCC
GND

sind auf dem Board alle mitbeschaltet. Ich habe den Schaltplan momentan 
nicht in Digitalerform da, sonst hätte ich ihn mit angehängt.

Mit freundlichen Grüßen

DouleU

von Stefan B. (stefan) Benutzerseite


Lesenswert?

Doubleyou W. schrieb:

> Ich habe den Schaltplan momentan
> nicht in Digitalerform da, sonst hätte ich ihn mit angehängt.

Es ist unerheblich in welcher Form der Schaltplan vorhanden ist, 
Hauptsache es ist einer vorhanden.

Ein handgemalter Schaltplan eingescannt oder abfotografiert ist besser 
als keiner.

Zur Not tut es auch ein gutes (=richtig ausgeleuchtetes und scharfes) 
Foto des Aufbaus.

Die Fuses (Low Freq.!) passen nicht zum 16 MHz Quarz!

von holger (Gast)


Lesenswert?

Schreib mal

MCUCSR |= 1<<JTD;

ganz an den Anfang deines Programmes.
So schaltest du JTAG auch aus.

von Gast (Gast)


Lesenswert?

MCUCSR |= 1<<JTD;

Is schon wieder April ?

von Doubleyou W. (doubleyou)


Angehängte Dateien:

Lesenswert?

Ich hatte gerade ein Problem zwei weitere Bilder anzuhängen. Hier sind 
Sie:

http://nopaste.at/img/200910bedceda108.jpg
http://nopaste.at/img/2009101d8bc1c1c7.jpg

von Stefan B. (stefan) Benutzerseite


Lesenswert?

Kontrolliere die Stellung der Jumper/Schalter an S8
Kontrolliere was an SV4-1 bis SV4-8 hängt.

von Doubleyou W. (doubleyou)


Lesenswert?

Die Schalter an S8 sind alle auf ON sind also durchgeschalten. An 
S4-1/SV4-8 ist nichts angeschlossen. Dort ist eine nicht angeschlossene 
Buchse.

von (prx) A. K. (prx)


Lesenswert?

Ich bin ein bischen verwirrt - erst funktioniert er garnicht mehr 
(09:32), dann funktioniert er mit anderen Fuses wieder (10:46)?

Jedenfalls ist ein 16MHz Quarz etwas viel für den Oszillator, wenn der 
auf CKOPT=1 (unprogrammed) eingestellt wird. Steht ja auch deutlich 
dran, dass diese Einstellung für <= 8MHz gut ist

von Doubleyou W. (doubleyou)


Lesenswert?

Ich hab das ganze ja auch mal durchgemessen. Ich hab an PC1/PC2&PC7/PC8 
die gewünschte 0V anliegen, da der IC die Pins gegen Masse durchschaltet 
an PC3/PC4&PC5/PC6 liegen jedoch 3,3V bis 5V an ein Pin hat nur 3,3V 
keine Ahnung warum.

Ich glaub ich leg die Platine weg und bau mir ne neue :P Ich will euch 
ja nicht mit so einem Problem auf die Nerven gehen. Irgendwo ist da wohl 
ein Wurm vergraben werd bestimmt noch drauf kommen.

von Doubleyou W. (doubleyou)


Lesenswert?

A. K. schrieb:
> Ich bin ein bischen verwirrt - erst funktioniert er garnicht mehr
> (09:32), dann funktioniert er mit anderen Fuses wieder (10:46)?

Ich hab hier Vorort zwei ATMEGA32 IC´s an dem IC wo ich die Fuses JTAG 
über PonyProg deaktiviert habe geht garnichts mehr.

> Jedenfalls ist ein 16MHz Quarz etwas viel für den Oszillator, wenn der
> auf CKOPT=1 (unprogrammed) eingestellt wird. Steht ja auch deutlich
> dran, dass diese Einstellung für <= 8MHz gut ist

das heißt bei CKOPT=1 das Häckchen wieder wegnehmen ?

von Karl H. (kbuchegg)


Lesenswert?

Ja.
Solange du nicht an den CKSEL Fuses rumspielst, kannst du nicht viel 
kaputt machen.

Aber denk IMMER an die Grundregel Nummer 1:
Ehe du an den Häkchen rumspielst, lass Ponyprog die aktuelle 
Fuseeinstellung vom Prozessor auslesen!
Das ist ganz wichtig und würde ich auch dann auf jeden Fall machen, wenn 
Ponyprog behauptet, das von sich aus schon zu tun.

Das ist einer der wichtigsten Tips überhaupt:
Ehe du etwas veränderst, IMMER zuerst das aktuell vorhandene vom Chip 
auslesen lassen. Egal welcher Chip, egal welche Software.

Sonst landest du ganz schnell in der Falle, dass du nicht nur diese 1 
Fuse veränderst, sondern alle anderen ebenfalls. Genau das dürfte dir 
bei deinem ersten Chip passiert sein und du hast ihn unbeabsichtigt auf 
externen Takt (und damit ist kein Quarz gemeint) umgestellt.

von (prx) A. K. (prx)


Lesenswert?

Dein erstes Fuse-Bild zeigt keinen Haken, also CKOPT=1, was eine 
Einstellung für <= 8MHz ist. Das Schaltbild zeigt einen 16MHz Quarz. Im 
Text steht, das sei die nicht funktionierende Konfiguration. Passt also 
zusammen.

Wenn man die Fuses erst einmal versemmelt hat, dann ist ist etwas 
schwieriger, sie wieder gerade zu biegen, denn mit ISP geht das ohne 
Tricks nicht mehr. 16MHz Quarz durch 3-8MHz ersetzen könnte helfen.

von DoubleU (Gast)


Lesenswert?

Hoi,

nun geht alles lag also doch am den JTAG. Ich hab mir nochmal das 
Datenblatt angeschaut. Und hab diesmal erst alles auf den Quarz 
eingestellt und erst dannach den JTAG weggenommen. Beim erstenmal hab 
ich das aufeinmal gemacht und hab wahrscheinlich den Fehler gemacht, auf 
den mich "Karl heinz Buchegger" aufmerksam gemacht hat.

>Aber denk IMMER an die Grundregel Nummer 1:
>Ehe du an den Häkchen rumspielst, lass Ponyprog die aktuelle
>Fuseeinstellung vom Prozessor auslesen!
>Das ist ganz wichtig und würde ich auch dann auf jeden Fall machen, wenn
>Ponyprog behauptet, das von sich aus schon zu tun.

>Das ist einer der wichtigsten Tips überhaupt:
>Ehe du etwas veränderst, IMMER zuerst das aktuell vorhandene vom Chip
>auslesen lassen. Egal welcher Chip, egal welche Software.

Bei dem Vorgang ist wohl was schief gegangen.

Also danke nochmal an all, jetzt kann ich Produktiv weiter machen. Ich 
hoffe ich habe eure Nevern nicht zu arg strapaziert.


Mit freundlichen Grüßen

Doubleyou

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
Noch kein Account? Hier anmelden.