ATmega1284P zerstört?

wer

Neues Mitglied
02. Juli 2012
485
0
0
Sprachen
  1. Assembler
Ich benötige schon wieder Hilfe!

Ihr erinnert Euch an meine Stromversorgung? Versorgt werden soll ein ATmega1284P samt MAX232. Jetzt habe ich die beiden ICs eingesetzt und den MC mit einem USB-Programmer (mySmartUSB light) aus dem AVR Studio heraus geflasht. Der MC war neu! Das Programm habe ich im STK500 (ebenfalls mit einem ATmega1284P, nicht der Neue) entwickelt und getestet.

Der Programmiervorgang verlief zunächst fehlerlos. Allerdings konnte ich über RS232 keine Verbindung aufbauen. Habe daraufhin den Controller wieder gezogen und in das STK500 gesteckt. Auch dort keine Verbindung!

Erst jetzt ist mir eingefallen, daß ich die Fuses nicht geändert habe. Ich benutze einen Quarz mit 19,6608 MHz. Also habe ich versucht die Fuses zu ändern.
Der Baustein hat die Werte:

Low: 0x62 High: 99 Ext: 0xFF

Diese können auch ausgelesen werden. Ich möchte programmieren:

Low: 0xFF High: 99 Ext: 0xFF

was jedoch nicht gelingt. Beim Verify wird klar, daß die Werte nicht übernommen werden.

Dann habe ich versucht, im Quellcode die Frequenz auf 1MHz zu ändern und neu zu flashen. Ich wollte wissen, ob das Programm so funktioniert. Aber ab jetzt gelingt auch das Flashen nicht mehr, weder mit dem SDK direkt, noch mit dem USB-Programmer.

Warning beim Verify:

Address 0x0230 is 0x0F should be 0x0C

Ist der MC hin? Oder habe ich was übersehen? Ich trau mich nicht, meinen alten MC in die Schaltung einzusetzen, obwohl ich überall vernünftige Spannungen messe.

Gruß, Wolfgang
 
Hallo Wolfgang,

Erst jetzt ist mir eingefallen, daß ich die Fuses nicht geändert habe. Ich benutze einen Quarz mit 19,6608 MHz. Also habe ich versucht die Fuses zu ändern.
Der Baustein hat die Werte:

Low: 0x62 High: 99 Ext: 0xFF

Diese können auch ausgelesen werden. Ich möchte programmieren:

Low: 0xFF High: 99 Ext: 0xFF

was jedoch nicht gelingt. Beim Verify wird klar, daß die Werte nicht übernommen werden.

....

Warning beim Verify:

Address 0x0230 is 0x0F should be 0x0C

Die Programmierung wird ja mit seriellm Datenstrom gemacht. Wenn du also nicht nur alles mit 0xFF oder alles mit 0x00 rausbekommst (also die Bits unterschiedlich sind) dann würde ich schonmal davon ausgehen das der ATmega noch lebt. Dann wirst du wohl irgend ein Problem mit der Schaltung haben. Entweder Störeinstrahlungen, Spannungseinbrüche, Wackelkontakt, was auch immer. Ich würde bei dem Baustein also noch nicht die Flinte ins Korn schmeißen.

Da du einen STK500 hast solltest du mal versuchen ihn damit im HV-Programming zu erreichen. Ich hab hier ja mal nen Beitrag für nen Mega644 von Cassio geschrieben. Damit bekommst du ihn auf jeden Fall wieder erreichbar. Egal welche Fuses gesetzt sind.

Gruß
Dino
 
Also was wieder mein größtes Problem ist, ist nachzuvollziehen, was überhaupt passiert ist. Was könnte denn theoretisch geschehen sein? Wegen Elektrostatik habe ich schon aufgepaßt. Der Controller steckte auf einem schwarzen ESD-Schaumstoff. Ich hab versucht, meine Finger an einem solchen Schaumstoff zu entladen, usw.

Das SPI Interface habe ich nachgemessen. Da gibt es keine Brücken. Alle Kontakte führen zu den jeweiligen Pins.

Ich werde den Baustein noch einmal nachbestellen, aber 6,35€ pro MC ist halt schon Geld.

Habt Ihr Ideen? Was sollte ich noch prüfen, bevor ich den nächsten MC in die Schaltung setze?

Gruß Wolfgang
 
Diese IC´s sind besonders Empfindlich was "ESD" angeht... Da kann manchmal sogar kein ESD Schaumstoff helfen!
Kannst du die Fuses via. AVR Studio auslesen?
 
Diese IC´s sind besonders Empfindlich was "ESD" angeht... Da kann manchmal sogar kein ESD Schaumstoff helfen!
Kannst du die Fuses via. AVR Studio auslesen?
Ja, wie gesagt, dann bekomme ich die Werte:

Low: 0x62 High: 99 Ext: 0xFF

Gruß, Wolfgang
 
Bin mal dabei die Einstellungen für die HV-Programmierung zusammenzustellen:

Der ATmega1284p ist im STK500 Userguide (Tab 3-3) nicht zu finden.

Es gibt jedoch hier eine erweiterte Tabelle. Habe demnach:

  • PROG CTRL header mit PORTD und PROG DATA mit PORTB verbunden
  • OSCSEL rechts gesetzt
  • den BSEL2 Jumper gesetzt

ich habe nicht:

  • die PJMP-Jumper gesetzt
  • BSEL mit PC2 verbunden

Danach im AVR-Studio auf 'PP/HVSP mode' umgestellt und Fuses programmiert.

Ergebnis:
----------------------------------------------------------
Entering programming mode.. OK!
Writing fuses address 0 to 2.. 0xFF, 0x99, 0xFF .. OK!
Reading fuses address 0 to 2.. 0x62, 0x99, 0xFF .. OK!

WARNING: Fuse bits verification.. FAILED
Leaving programming mode.. OK!
-----------------------------------------------------------

Hab ich einen Fehler gemacht?

Gruß, Wolfgang
 
Hi Wolfgang,

Der ATmega1284p ist im STK500 Userguide (Tab 3-3) nicht zu finden.

der Mega1284 ist der große Bruder vom 644 und kann demnach genauso auf dem STK500 für HV gejumpert werden.
STK500 HV-Parallelprogrammierung eines Mega644P

Anhang anzeigen 5658 . Anhang anzeigen 5657

Da du ihn auslesen kannst scheint das ja alles auch soweit richtig zu sein.
Kann schon sein das es im inneren was zersemmelt hat. ESD heißt ja nicht das er immer komplett defekt ist.
Es kann schon sein das zB nur ein Timer nicht mehr läuft oder ein Befehl nicht mehr funktioniert oder was weiß ich.
Also richtig schöne Fehler.

Wegen Elektrostatik habe ich schon aufgepaßt. Der Controller steckte auf einem schwarzen ESD-Schaumstoff. Ich hab versucht, meine Finger an einem solchen Schaumstoff zu entladen, usw.
Nur den Finger auf so einen Schaumstoff halten reicht eigentlich nicht.

Du mußt zB einen Potentialausgleich zwischen dem MOS-Schaumstoff mit dem Mega da drauf und dem STK500 erzeugen. Das kannst du zB machen in dem du eine Verbindung zwischen GND des STK500 und dem MOS-Schaumstoff herstellst. Die Verbindung kann ruhig 1M-Ohm haben. Sie soll nur die Ladung der beiden "Gefäße" STK500 und MOS anpassen.

Wenn man es richtig machen möchte, dann legt man eine Leitung (ALLE Leitungen mit 100k-1M in Reihe) vom Erdpotential zum MOS-Schaumstoff und eine Leitung zu einem Armband am Handgelenk. Zum Lötkolben kann man auch noch eine Leitung legen. Die haben meißt vorne dafür eine Buchse.

ESD - Empfindliche elektronische Bauteile

Im Moment ziehe ich selber wegen der trockenen Winterluft auch gerne Funken mit 3-7mm Länge. Das ist der Tod von jedem Halbleiter.

Gruß
Dino
 
Hat eigentlich überhaupt schonmal wer'n AVR kleinbekommen ohne wirklich brutal vorzugehen?
(außer solche Sachen wie Netzspannng direkt durchzujagen und so;))

Zum Thema: laß mal die Lockbits auslesen...
 
Hat eigentlich überhaupt schonmal wer'n AVR kleinbekommen ohne wirklich brutal vorzugehen?
(außer solche Sachen wie Netzspannng direkt durchzujagen und so;))
Jupp. Weiß nicht mehr, Tiny13 oder Mega88. 32KHz Clock + /8 Teiler. Über ISP geht dann nix mehr, da hilft nur noch HVPP/HVSP.
Lustigerweise, zerflasht hab ich noch keinen Chip, obwohl ich immer die selben Chips zum Debuggen nutze (die schon zig tausende Male neu geflasht worden sind)
 
Aso :)
Nope, noch nicht geschafft. Selbst 10V am ADC Pin (kurzzeitig) hat er überlebt. War mit der Messspitze abgerutscht.
 
Hi,

also ich hab es bisher nicht geschafft einen zu schrotten und ESD-mäßig gehe ich auch nicht grad zimperlich mit denen um. Nur bei einem Mega8535 (oder war es nen Mega32) hat sich ein IO-Pin verabschiedet. Ich glaub den hab ich aus Versehen mal kurzgeschlossen oder überlastet. Sonst laufen trotz hundertfacher Programmierung noch alle problemlos. Also ganz so mimosig sind die nicht. Ich grabbel da auch mal an den Pins rum ohne ESD-Armband oder anderes Zeigs.

Gruß
Dino
 
Vielleicht habe ich da besondere Talente?

Ich verdächtige eher meine Schaltung. Zwei kaputte Controller hintereinander sind doch sehr verdächtig. Ich kann doch jetzt nicht einfach den Dritten reinsetzen?
Wie geht man denn jetzt mit Sinn und Verstand an die Sache ran?

Gruß, Wolfgang
 
Hi Wolfgang,

Ich verdächtige eher meine Schaltung. Zwei kaputte Controller hintereinander sind doch sehr verdächtig. Ich kann doch jetzt nicht einfach den Dritten reinsetzen?
Wie geht man denn jetzt mit Sinn und Verstand an die Sache ran?

zuerst mal sehen ob die Betriebsspannung paßt. Das kann man vom Betrag her mit einem Digitalmultimeter machen. Damit dann erstmal sehen ob an den entsprechenden Pins die Spannung da ist wie sie sein soll. Das kann man mit Vcc und mit GND machen.

- Multimeter Minus an GND und die Vcc-Pins durchtesten.
- Multimeter Plus an Vcc und die GND-Pins durchtesten.

Dann die dynamische Komponente der Betreiebsspannung. Wie sieht es im Einschaltmoment aus? Hat der Spannungswandler einen Überschwinger über 5,5-6V und vernichtet damit den Atmel? Das geht allerdings nur mit nem Oszilloskop. Als Schutz kann man auch einen Widerstand von 22-47 Ohm zwischen deine Schaltung und dem Netzteil reinsetzen wenn sie nicht viel Strom zieht (nur nen paar LEDs oder nen LCD). Wenn deine Schaltung dann nen Elko mit 220-470µF hat, dann werden kurze Spannungsspitzen schonmal glattgehobelt (quasi ein Tiefpaß). Evtl noch nen 5,1-5,6V Z-Diode um Spannungsspitzen kurzzuschließen.

Dann sieh dir deine Schaltung an.
- Hast du irgendwo IO-Pins in die du zuviel Spannung reinschickst? (>Vcc oder <0V)
- Schließt du irgendwo IO-Pins die Ausgang sein sollen nach Vcc oder GND kurz oder hast eine zu große Last dran? (Kondensator an nem Ausgang = Ladestrom = zuviel Strom).
- Hast du irgendwo induktive Komponenten (Motor, Relais) die ohne Freilaufdiode sind? Induktionsspannungen?
- Liegt die Schaltung auf ner leitenden Unterlage? Manche Gummisorten sind leitfähig. Schwarze Pappkartons könnten leitfähige Oberflächen haben (Festplattenkartons mit ESD-Beschichtung)
- Hast du einen Potenitalausgleich (GND) zwischen allen komponenten? Manche kleinen Stecker-Schaltnetzteile erzeugen eine recht hohe Fremdspannung am Ausgang (kommt von der kapazitiven Kopplung des Schaltwandlertrafos). Das merkt man an den Fingern wenn man mal den Stecker leicht auf die Haut legt (brizzelt ein wenig). Für Menschen ungefährlich aber für ICs ... Naja ... nicht so doll. Also erst alles zusammenklemmen und dann Steckernetzteil in die Steckdose.

Das ist das was mir im Moment so aus dem Stehgreif einfällt.

Gruß
Dino
 
zuerst mal sehen ob die Betriebsspannung paßt. Das kann man vom Betrag her mit einem Digitalmultimeter machen. Damit dann erstmal sehen ob an den entsprechenden Pins die Spannung da ist wie sie sein soll. Das kann man mit Vcc und mit GND machen.

- Multimeter Minus an GND und die Vcc-Pins durchtesten.
- Multimeter Plus an Vcc und die GND-Pins durchtesten.

Das hab ich schon gemacht, bevor ich die ICs eingesetzt habe.

Dann die dynamische Komponente der Betreiebsspannung. Wie sieht es im Einschaltmoment aus? Hat der Spannungswandler einen Überschwinger über 5,5-6V und vernichtet damit den Atmel?

Hmm! Ich hatte ja schon beim ersten Test der Spannungsversorgung LM2678 das Phänomen, daß die Ausgangsspannung von der Versorgungsspannung abhing. Habe dann eine LED als Minimallast dran gehängt und dann eine 'stabile' Ausgangsspannung bekommen. Allerdings weiß ich nicht, ob es nicht kurzfristig doch noch durchhaut.

Sind nicht eigentlich die Kondensatoren ausgangsseitig dazu da, das abzupuffern?

Gruß, Wolfgang
 
Ich hab die Schaltung mal mit auf die Arbeit genommen, dort steht ein Oszilloskop.

Hoffentlich habe ich richtig gemessen.

PRINT_00.jpg

Kurzer Impuls kann man dazu nicht mehr sagen, oder? Hab ich doch noch einen Fehler in meiner Stromversorgung, oder ist das normal?
Was mich noch irrtiert, ist, daß das deutlich weniger als 5V sind, die dann am Ende anliegen. Das Multimeter sagt 4,98V.

Gruß, Wolfgang
 
Autsch 0.o
Die kurzzeitig bis zu 12V tun dem Chip zumindest bestimmt weh, wenns für den nicht schon ein einmaliges Erlebnis war :/

Ich kenn jetzt dein DSO nicht (ich kenn generell keins), nur mein billiges China Teil. Und das musste ich erst kalibrieren um exakte Werte zu bekommen. Das vorzugsweise mit einer Batterie um so wenig Störeinflüsse zu haben (ich hab 2x LiPO Akkus genommen, 9V Zelle geht auch). Dann im Menü dementsprechend eingestellt dass Multimeter und Skop übereinstimmten.
Aber ich betone noch mal, das ist billige China Ware und kann sich kaum DSO nennen. Aber mir reicht es. Gut möglich dass das bei guten DSO's garnicht möglich oder notwendig ist.

Davon ab, zum Ende hin wenn er sich denn mal einigermaßen eingependelt hat haut der Wandler ja trotzdem noch eine Restwelligkeit von knapp 1V raus. Das ist nicht grad wenig 0.o
Also normal sieht das für mich nicht aus. Selbst mein erster selbstgebauter Schaltwandler hatte n besseren Output... Ich vermute dass der Spannungswandler einen weg hat (oder falsch angeschlossen ist). Aber warte da lieber mal noch Kommentare von den Leuten ab die sich wirklich damit auskennen ;)
 
Hi,

:vollkommenauf: :fie: also wenn ich das richtig interpretiere ...

20ms/div und 2V/div scheint eingestellt zu sein.
Demnach ist die Spannung wohl die oben angezeigten 87ms über 6V.
Der Impuls scheint etwa 130ms zu dauern und erst dann auf etwa 5V zu sein :vollkommenauf:
Armer Atmel :bawling: :flute: Also so aus der Erinnerung sind über 6V tödlich.

Was mir auch noch auffällt ist dieses "Gewusel" auf dem Strich nachdem der Impuls abgeklungen ist.
Das scheinen Schwingungen zu sein. Entweder ist der Ausgang sehr schlecht gesiebt oder der ganze Schaltwandler schwingt ganz mächtig. Es sieht auf jeden Fall ungewöhnlich aus.

Also dem Atmel gebe ich bei dem Impuls keine große Überlebenschance. Bei nem 9V-Block hätte man da evtl noch drüber diskutieren können aber dein LM2678 kann 5A liefern. Ich hab hier bei ner 5eur-Power-LED an nem nicht funktionierenden Wandler auch nur noch ein kurzes Aufblitzen des Bonddrahtes zu LED-Chip gesehen :rolleyes: Kommt schonmal vor :p

Nagel dir das Teil an die Wand, leg es an nen Autoakku, hab Spaß mit der CPU-Leiche. Zu mehr wird es wohl nicht mehr zu gebrauchen sein. Evtl kannst du ihn ja noch platzen lassen und die Innereien ansehen :cool: Silvester ist auch nicht billiger :rolleyes:

Gruß
Dino
 
Dino: Ich hab jetzt nicht so genau verstanden, womit ich Spaß haben soll, dem MC oder dem LM2678, und vor allem wie?

Ich hab jetzt noch mal folgendes gemacht: Ich hatte die Stromversorgung ja vorher schon mal auf einer kleinen Platine aufgebaut. Die hab ich jetzt auch noch mal an das Oszilloskop gehängt:

PRINT_01.jpg

Die Restwelligkeit ist hier ähnlich übel. Der Einschaltvorgang erfolgt hier aber anders. In meiner Zielschaltung schalte ich das ganze über den Pin 7 (On/Off) des LM2678 ein. Hier schalte ich den Ausgang ein.

Und hier schalte ich den Eingang:

PRINT_02.jpg

Interessant! Kann mir das einer erklären? Was mache ich mit dieser Restwelligkeit? Ich hatte die Grundschaltung im Datenblatt in so fern abgeändert, als ich eingangsseitig nicht mehr 3 Elkos a 15µF, sondern einen 47µF verwendet habe. Ausgangsseitig habe ich nicht mehr 2 mal 180µF, sondern einen 390µF Elko eingesetzt.

Gruß, Wolfgang
 

Über uns

  • Makerconnect ist ein Forum, welches wir ausschließlich für einen Gedankenaustausch und als Diskussionsplattform für Interessierte bereitstellen, welche sich privat, durch das Studium oder beruflich mit Mikrocontroller- und Kleinstrechnersystemen beschäftigen wollen oder müssen ;-)
  • Dirk
  • Du bist noch kein Mitglied in unserer freundlichen Community? Werde Teil von uns und registriere dich in unserem Forum.
  •  Registriere dich

User Menu

 Kaffeezeit

  • Wir arbeiten hart daran sicherzustellen, dass unser Forum permanent online und schnell erreichbar ist, unsere Forensoftware auf dem aktuellsten Stand ist und der Server regelmäßig gewartet wird. Auch die Themen Datensicherheit und Datenschutz sind uns wichtig und hier sind wir auch ständig aktiv. Alles in allem, sorgen wir uns darum, dass alles Drumherum stimmt :-)

    Dir gefällt das Forum und unsere Arbeit und du möchtest uns unterstützen? Unterstütze uns durch deine Premium-Mitgliedschaft!
    Wir freuen uns auch über eine Spende für unsere Kaffeekasse :-)
    Vielen Dank! :ciao:


     Spende uns! (Paypal)