Forum: Mikrocontroller und Digitale Elektronik Mega8 bei Inbetriebnahme zerschossen?


von Joachim .. (joachim_01)


Lesenswert?

Hallo, ich hatte beim belegen des ICSP-Anschusses mehrere 
kuddelmuddelige Fehler gehabt. Die Device-ID läßt sich nicht lesen. Auch 
war einmal MISO und +5V vertauscht.

Futsch?

von Wolfgang H. (Gast)


Lesenswert?

Hi, Joachim ... schrieb:
> Hallo, ich hatte beim belegen des ICSP-Anschusses mehrere
> kuddelmuddelige Fehler gehabt. Die Device-ID läßt sich nicht lesen. Auch
> war einmal MISO und +5V vertauscht.
>
> Futsch?

Meine Auto bewegt sich nicht mehr, - es liegt auf dem Rücken.... :-)

Wenn Du an einen Pin mehr Spannung anlegst als an Vdd, dann leitet 
dessen Schutzdiode den Strom an Vdd.
Aber wenn Vdd auf Massepotential liegt, dann hast Du die "Absolute 
Maximum Ratings" bei weitem überschritten.
Setz ihn einfach in einen STK500 ein, und wenn auch dann nichts ist, 
verschwende keine Zeit, sondern kauf einen neuen.

Ciao
Wolfgang Horn

von Joachim .. (joachim_01)


Lesenswert?

Der Controller ist fest eingelötet, da passt alles. Das Einzige was 
schief lief war die Belegung des Steckers, lediglich Masse hat gepasst, 
alles andere ging wild durcheinander. Gibt der AVRISP MK II eine höhere 
Spannung als 5V raus? Eigentlich nicht, oder?

Ich habe schon einige TQFPs bis TQFP-64 von Hand eingelötet, bis jetzt 
ging das thermisch immer gut. Mit entsprechender Wärme + Entlötlitze 
habe ich zwar fleißig nachhelfen müssen - aber das ist eigentlich immer 
so. Ist schon mal jemandem beim Einlöten ein ATMega in TQFP-32 
abgebrannt oder ist bekannt, ob das Einlöten besonders kritisch ist?

Seltsam irgendwie.


@W. Horn:
Ich kenne jemandem mit deinem Namen. Hast du was mit Segelfliegen zu 
tun?

von Peter R. (pnu)


Lesenswert?

Beim Löten, und ich habe schon viele ICs gelötet, ist mir noch nie ein 
IC draufgegangen. Auch habe ich viele SMD-ICs mit der Heißluftpistole 
von der Leiterplatte weggeblasen ohne dass sie hinüber sind.
nach meinen Erfahrungen sind inbezug aufs Löten die ICs unkaputtbar.
Höchstens bei ungeregelten Lötkolben mit Höchsttemperatur kann ich mir 
so etwas vorstellen. Da ist aber viel eher die Leiterplatte hinüber.
Auch atmega8 im TQFP habe ich schon mehrmals per Heißluft von der 
Leiterplatte geblasen und wiederverwendet.

Dann drück mal die Daumen, dass nicht der MKII draufgegangen ist.

von Martin (Gast)


Lesenswert?

Joachim ... schrieb:
> Mit entsprechender Wärme + Entlötlitze habe ich zwar fleißig
> nachhelfen müssen - aber das ist eigentlich immer so.

Probier mal zusätzlich reichlich Flußmittel, dann kannst du dir die 
Entlötlitze meistens ganz sparen.

von Knut B. (Firma: TravelRec.) (travelrec) Benutzerseite


Lesenswert?

Joachim ... schrieb:
> Gibt der AVRISP MK II eine höhere
> Spannung als 5V raus? Eigentlich nicht, oder?

Der gibt keine Spannung aus, der braucht welche. Pin2 der ISP-Buchse des 
mkII muss mit Vcc der Platine verbunden werden. Dann noch Masse an 
Masse, MISO an MISO, MOSI an MOSI, SCK an SCK und /Reset an /Reset.

von Joachim .. (joachim_01)


Lesenswert?

Der ISP geht noch, habe es mit nem Arduino ausprobiert. Ich habe für 
einen ATMega8 in TQFP-32 MOSI, MISO, Reset und SCK aus nem Arduino-Plan 
für den gleichen Controller in DIP übernommen. Eigentlich unterscheiden 
sich die Controller außer in der Pinbelegung elektrisch ja nicht, oder? 
Und die Pinbelegung hab ich mir zum x-ten mal angeschaut, da kann ich 
nichts finden.


Das einzige das ich geändert habe ist der Pull-up an Reset gegen Vcc. 
Der sollte 10k haben, ich habe 4,7k eingelötet. Ob der ISP den womöglich 
nicht wegziehen kann?


Kopfkratz.

von Uwe (Gast)


Lesenswert?

Joachim ... schrieb:
> Das einzige das ich geändert habe ist der Pull-up an Reset gegen Vcc.
> Der sollte 10k haben, ich habe 4,7k eingelötet. Ob der ISP den womöglich
> nicht wegziehen kann?

das kannst du doch mit einem Spannungsmesser kontrillieren !

von Joachim .. (joachim_01)


Lesenswert?

>das kannst du doch mit einem Spannungsmesser kontrillieren !

Kontrillieren?
Yo.
Der Impuls kommt vom ISP - und dauert nur wenige Millisekunden...


Der Atmega ist neu und läuft ohne ext. Osc. Defaultmäßig wird man den ja 
wohl hoffentlich nicht brauchen, oder? Die Fuses hab ich nicht 
angerührt.

von Joachim .. (joachim_01)


Lesenswert?

Allmählich bekome ich einen Zorn auf diese Atmel-Dinger.

Der erste ließ sich nicht ansprechen, nach viel hin und her und dem 
herunterschalten des ISP-Takts ging wenigstens das. Nun wollte ich
einen Port schalten aber das Mistding muckst sich nicht. Habe zum Testen 
von internen auf ext. Oszillator umgeschaltet und Quarz angehängt. Nun 
ist der Ofen ganz aus. Wie kann ich den Mega8 wieder erreichen?

Ganz ehrlich: Mit PICs habe ich diesen Mist den ich in zwei Wochen mit 
AVRs erlebe, nicht in fünf Jahren erleben müssen. Warum produziert ein 
Hersteller so einen technologischen Unfug - und kann sich damit auch 
noch am Markt halten? Sprich: Warum finden die Kunden dieses kranke 
Konzept auch noch so toll, daß 80% aller Bastler sich mit diesem Klops 
herumplagen?

Auf der wilden Sau davonreiten könnte ich.

von Bob (Gast)


Lesenswert?

Ich könnte jetzt das gleiche über die PIC schreiben....

Meist ist es nicht der µP, sondern der User.

Prüfe nochmals die Leitungen durch, aber nicht nur
die auf der Platine. Je nach dem wie die Flachband-
Kabel am Stecker befestigt sind gibt es dort z.T.
nette Überraschungen, wackle mal am Kabel.

Ich kann nur aus Erfahrung sagen Zugentlastungsbügel
sind sehr hilfreich! Sonst halt ein neues Kabel
verwenden.

von Hubert G. (hubertg)


Lesenswert?

Bis du der Meinung das ein externer Oszillator und ein Quarz das gleiche 
ist?
Leg einen Takt auf XTAL1 an und stell die Fuse wieder auf internen 
Oszillator.
Dann schau dir das Datenblatt mal genau durch.

von Uwe (Gast)


Lesenswert?

Habn noch nie einen Zerschossen und arbeite schon seit fast 8 Jahren 
damit. Kommt hauptsächlich auf die Software und den Programmieradaptzer 
drauf an.
Wollte auch schon öfter mal was mit DSPICs machen und hab mir den ICD2 
nachgebaut. Mit einer Softwareversion (MPLAB) gings dann ne Woche dann 
hat sich das Ding nen update gezogen und nach ner Minute ist der 
Debugger hängen geblieben. Hab nen downgrade gemacht aber es wurde schon 
die neue Firmware draufgeladen auf den (ICD2) usw. irgendwann ging es 
wieder. Bis ich ein Update brauchte wegen neuem Controller. Naja hätte 
mir wohl doch nen Originalen ICD2 kaufen müssen (will sagen schuld 
eigene). Hast du denn Originalequipment von Atmel ?
Und wenn man nen PIC verpolt anschließt ist der sicherlich auch futsch.
Wenn man den Taktgenerator vom PIC so konfiguriert das er nicht mehr 
geht (falls soetwas geht) und du hast nicht das richtige 
programmiergerät funzt der warscheinlich auch nicht mehr. (es sei denn 
die haben wie DSPICs nen failsafe OSC).
Wenn du das Richtige Programmiergerär von Atmel hast kannst du mit HV 
bzw. mit einem Parallelem Programiergerät den Atmel auch retten (selbst 
wenn du den Reset Pin wegprogramiert hast).
Ansonsten muß nen Quarz Oszillator ran (nicht nur nen Quarz)

von Joachim .. (joachim_01)


Lesenswert?

Uff. Hab mit nem zweiten Mega 1MHz auf nem Port gelegt und ihn wieder 
aus der Bewußtlosigkeit holen können.

Ich glaub ich brauch jetzt erstmal nen Kaffee.

Joachim - live von der Front.

von Joachim .. (joachim_01)


Lesenswert?

Hmm. Nachdem die Fuse-Bits lesbar sind und sich der Mega8 auch sonst 
ordentlich verhält hab' ich jetzt ein neues Problem. 'Hello World' will 
nicht. Die gleichen Zeilen und noch viel mehr funktionieren auf dem 
Mega328 und 2560, auf mehreren Mega8 passier aber leider gar nichts.

Den Quarzoscillaotor hab ich geprüft, wenn ich das Quarz entferne geht 
das Lesen der Fusebits nicht mehr. Reicht das als Kontrolle?

Ich habe in AVR-Studio den Controller umgestellt, so wie ich es immer 
mache. Gibt es einen gravierenden Unterschied zwischen ATMega8 und 
ATMega328? Irgendwas zusätzlich freigeben vielleicht? Benutze AVRISP Mk 
II und AVR-Studio 5.



#include <avr/io.h>
#define F_CPU 16000000UL
#include <util/delay.h>
int main(void)
{
    DDRD |= (1 << PD0);
    while(1)
    {
        PORTD |= (1 << PD0);
        _delay_ms(400);
        PORTD &= ~(1 << PD0);
        _delay_ms(400);
    }
}


Die Fuses:

WTDON = [ ]
SPIEN = [X]
EESAVE = [ ]
BOOTSZ = 1024W_0C00
BOOTRST = [ ]
CKOPT = [ ]
BODLEVEL = 2V7
BODEN = [X]
SUT_CKSEL = EXTHIFXTALRES_16KCK_64MS

HIGH = 0xD9 (valid)
LOW = 0xBF (valid)


LB = NO_LOCK
BLB0 = NO_LOCK
BLB1 = NO_LOCK

LOCKBIT = 0xFF (valid)

von Uwe (Gast)


Lesenswert?

Du mußt dem Compiler schon mitteilen für welchen AVR du das Programm 
Compilieren willst, da er sonst nicht weiß wo die Perepherie ist (z.B. 
der Timer für die Delayfunktion)

von Joachim .. (joachim_01)


Lesenswert?

Das war's!

Danke.

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.