mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik ATMEGA32 Einzellne Pins durchgebrannt ?


Autor: Doubleyou W. (doubleyou)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht 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.
.include "m32def.inc"  
      
        ldi r16, 0xFF       
        out DDRC, r16       
ende:
        ldi r16, 0x00 
        out PORTC, r16     
        rjmp ende
#include <avr/io.h>
#include <util/delay.h>


int main()
{
  while(1)
  {  
  DDRC  = 0xFF;
  PORTC = 0x00;
  }
}

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
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

Autor: wtzm (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
JTAG Fuse nicht deaktiviert?

Autor: M. M. (miszou)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi

JTAG hast du nicht deaktiviert.

Gruß MISZOU

Autor: Ben (Gast)
Datum:

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

Autor: Doubleyou W. (doubleyou)
Datum:
Angehängte Dateien:

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

Autor: Stefan B. (stefan) Benutzerseite
Datum:

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

Autor: Doubleyou W. (doubleyou)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

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

Mit freundlichen Grüßen

DoubleU

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

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

Autor: Stefan B. (stefan) Benutzerseite
Datum:

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

Autor: Doubleyou W. (doubleyou)
Datum:

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

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

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

Autor: Doubleyou W. (doubleyou)
Datum:

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

Autor: Stefan B. (stefan) Benutzerseite
Datum:

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

Autor: holger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Schreib mal

MCUCSR |= 1<<JTD;

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

Autor: Gast (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
MCUCSR |= 1<<JTD;

Is schon wieder April ?

Autor: Doubleyou W. (doubleyou)
Datum:
Angehängte Dateien:

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

Autor: Stefan B. (stefan) Benutzerseite
Datum:

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

Autor: Doubleyou W. (doubleyou)
Datum:

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

Autor: A. K. (prx)
Datum:

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

Autor: Doubleyou W. (doubleyou)
Datum:

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

Autor: Doubleyou W. (doubleyou)
Datum:

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

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

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

Autor: A. K. (prx)
Datum:

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

Autor: DoubleU (Gast)
Datum:

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

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.