Forum: Mikrocontroller und Digitale Elektronik µC defekt durch Programmierung?


von Christoph H. (webturtle)


Lesenswert?

Eine Sache die micht wurmt muss ich mal den Spezialisten als Frage 
stellen:

Mein Projekt:
Ich habe einen AVR Net-IO von Pollin. Darin habe ich einen Atmega1284 
auf den eine veränderte Version von Ulrich Radigs Webserver aufgespielt 
ist.
Es geht mir darum um die Steuerung diverser Funksteckdosen und RGB 
Streifen.
Konkret hängt da noch ein RFM12 dran das mir von den Schaltern die 
Signale empfängt und diese dann an eine original Fernbedienung der 
Pollin Dosen ausgibt.
Auf dem einem Mac der eh immer an ist bin ich dabei eine WebApp fürs 
iPhone zu machen (Ideen aus Ulis Forum) um die Sache auch über iPhone 
und Browser zu steuern.

Nun muss des öfteren der µC neu programmiert werden um die Anfragen 
auszuwerten und darauf zu reagieren.
Am Sonntag um 22:50 reagierte er nach der Programmierung nicht mehr. 
Natürlich habe ich einen Fehler im Coder vermutet und eine Stunde 
gesucht.
Bis mir auffiel dass nach der Programmierung die Meldung: "unequal at 
0x0002" erschien.
Auch ein kleines Testprogramm konnte ich nicht mehr aufspielen. Immer 
unequal an der gleichen Stelle.

Ich habe dann eine Stunde eine abgespeckte Version für einen Atmega644 
erstellt und den Chip gewechselt. Diesen konnte ich direkt fehlerfrei 
programmieren.

Darauf habe ich mir einige neue 1284 geordert und gerade eben einen 
eingebaut.
Ich konnte ihn direkt bespielen und alles ist wieder beim alten.

Nun meine Frage: Kann ich den µC durch zu häufiges programmieren 
zerstört haben?
Ich dachte die Schreibzyklen wären > 10.000 mal.
Wenn dem so sein sollte muss ich da in Zukunft wohl besser aufpassen. 
Die 1284 sind ja nicht ganz billig?

Oder muss ich den Fehler an anderer Stelle suchen.
Ich werde, so die Zeit es mir mal wieder erlaubt, die Tage einen Aufbau 
machen um den defekten 1284 zu testen. (Nur das nötigste und SPI 
anschliessen)

Gruss Chris

von Oliver (Gast)


Lesenswert?

Christoph Hoell schrieb:
> Ich dachte die Schreibzyklen wären > 10.000 mal.

So ist es.

Oliver

von Lehrmann M. (ubimbo)


Lesenswert?

Christoph Hoell schrieb:
> Nun meine Frage: Kann ich den µC durch zu häufiges programmieren
> zerstört haben?

Nein. Du wirst ihn eher verpolt oder verfust haben.

Christoph Hoell schrieb:
> Die 1284 sind ja nicht ganz billig?

für das was sie leisten sind sie tatsächlich teuer.

von Christoph H. (webturtle)


Lesenswert?

Lehrmann Michael schrieb:
> Christoph Hoell schrieb:
>> Nun meine Frage: Kann ich den µC durch zu häufiges programmieren
>> zerstört haben?
>
> Nein. Du wirst ihn eher verpolt oder verfust haben.
>
Er ist seit 15.11. in der Schaltung.
Die Fuses wurden einmal zu Anfang gesetzt.
Und am Sonntag abend waren sie noch so wie sie sein sollten. Logisch, 
denn ich war ja nie mehr auf dem Reiter zur Fuse Programmierung.
Und da er so lange eingebaut war und lief, ich auch nichts an oder 
abgeschlossen habe schliesse ich eine Verpolung aus.
Ich begann am Sonntag morgen gegen 10 Uhr damit daran zu arbeiten. Habe 
ihn sicher 20 bis 25 mal programmiert. Und dann war auf einmal Ende.

> Christoph Hoell schrieb:
>> Die 1284 sind ja nicht ganz billig?
>
> für das was sie leisten sind sie tatsächlich teuer.

Eben. Aber mir ist kein µC bekannt der als PDIP besser geeignet wäre und 
günstiger ist.
Zum Glück ist kein SMD drauf, denn hätte ich jetzt erst recht die 
Arschkarte....

von Carsten S. (dg3ycs)


Lesenswert?

Christoph Hoell schrieb:
> Er ist seit 15.11. in der Schaltung.
> Die Fuses wurden einmal zu Anfang gesetzt.
> Und am Sonntag abend waren sie noch so wie sie sein sollten. Logisch,
> denn ich war ja nie mehr auf dem Reiter zur Fuse Programmierung.
> Und da er so lange eingebaut war und lief, ich auch nichts an oder
> abgeschlossen habe schliesse ich eine Verpolung aus.
> Ich begann am Sonntag morgen gegen 10 Uhr damit daran zu arbeiten. Habe
> ihn sicher 20 bis 25 mal programmiert. Und dann war auf einmal Ende.

Es kann auch sein das der AVR beim Programmieren ungeplant verfust 
wurde, durch ein Störereigniss während des Schreibzugriffes...
Dieses "Verfusen" beim normalen Programmieren ist eine echte 
Schwachstelle wo ich immer noch nicht verstehe wieso die da keine 
Abhilfe schaffen.

Probiere den µC mal mit einem HV fähigen Programmer, das sollte den dann 
wiederbeleben wenn es ein verfusen war. Bei diesem Bausteinpreis lohnt 
sich sogar über die Anschaffung eines HV fähigen Brenners nachzudenken, 
zumal das sicher nicht dein letzter verfuster Baustein sein wird wenn du 
weiterhin einiges mit AVR machst!
>

>> Christoph Hoell schrieb:
>>> Die 1284 sind ja nicht ganz billig?
>>
>> für das was sie leisten sind sie tatsächlich teuer.
>
> Eben. Aber mir ist kein µC bekannt der als PDIP besser geeignet wäre und
> günstiger ist.
Naja, dann hast du aber nicht wirklich geschaut. Es gibt durchaus noch 
eine Menge mehr µC hersteller und zumindest Atmels größter Konkurent in 
deutschen Hobbykreisen hat noch einen wesentlich größeren Anteil seiner 
Produkte AUCH im PDIP. Und das meist günstiger als diesen...
Wenn man natürlich nur bei Atmel schaut und bei Microchip nur an den 
fast 20JAhre alten 16F84 (16c84)denkt, klar dann findet man nichts...

> Zum Glück ist kein SMD drauf, denn hätte ich jetzt erst recht die
> Arschkarte....
Das ist ja auch mit DER Grund warum ich mittlerweile AVR so wenig wie 
möglich einsetze. Ich arbeite fast nur noch in SMD und wenn dann mal 
wieder das FuseBit falsch gesetzt ist oder sonst etwas passiert dann ist 
das Blöd. OK, wenn der Proz HV-SP unterstützt und man alle für HV-SP 
nötigen Leitungen auch rausgeführt hat (rausführen konnte), dann geht es 
ja noch, aber wehe wenn nicht! (Wo ich in der gewerblichen entwicklung 
tätig war gab es ganz andere Vorgaben zum Prozessor...)
Natürlich, man bekommt die Probleme gelöst, aber warum wenn man sich das 
Risiko sparen kann und auch noch geld dabei spart ;-) Von der 
Verfügbarkeit mal abgesehen

Gruß
Carsten

von Peter D. (peda)


Lesenswert?

Du kannst beim Mega1284 nur den Takt verfusen.
Hast Du ihn auf langsam gestellt, mußt Du eben im Programmierer auch den 
SPI-Takt runtersetzen.
Hast Du ihn auf extern gestellt, dann ~1MHz an XTAL1 einspeisen.

Einen HV-Programmierer braucht man nicht.

Allerdings sollte man einen ordentlichen SPI-Programmierer nehmen, z.B. 
AVRISPMKII.
Mir ist damit noch nie eine Fuse unabsichtlich verdreht worden.
Auch sind die Einstellungen im AVRStudio im Klartext, da kann man kaum 
ein Häckchen falsch setzen.

Nur die LPT- und COM-Programmer mit Bit-Banging sind berüchtigt für alle 
möglichen Probleme, z.B. Fuses verstellen ohne Befehl.

Wenn Du keinen ordentlichen Programmierer hast, brenn nen Bootloader 
rein.
Ein Bootloader kann nur den Flash schreiben, aber niemals die Fuses.


Peter

von Christoph H. (webturtle)


Lesenswert?

Ich habe diesen diesen Programmer:
http://www.klaus-leidinger.de/mp/Mikrocontroller/AVR-Prog/AVR-Programmer.html
Als Software nutze ich AVR OSP II in der neusten Version.

Eben hab ich den Chip nur mit Abblockkondensatoren und SPI Anschlüssen 
auf einem Steckbrett gecheckt.

Die Fuses sind genau wie sie sein sollen. umindest lese ich das aus.

Aber beim beschreiben kommt immer der gleiche Fehler wie oben schon 
angegeben.

Seltsam seltsam....

Zu den Alternativen:
Es ist zur Zeit wirklich so, dass ich nur bei Atmega geschaut habe.
Ich mach das ja erst seit etwas über einem Jahr und da will ich jetzt 
nicht mit anderen Chips nochmal bei 0 anfangen.

Zudem bin ich ja auch durch das AVR Net IO in der Auswahl zusätzlich 
eingeschränkt.
Ich kann ja sowas jetzt nicht noch komplett selbst entwickeln.

Aber danke für die Tips. So ein HV Programmer wäre wirklich mal noch ne 
Anschaffung wert.

Chris

von Peter D. (peda)


Lesenswert?

Christoph Hoell schrieb:
> Aber danke für die Tips. So ein HV Programmer wäre wirklich mal noch ne
> Anschaffung wert.

Wie schon gesagt, brauchst Du nicht.

Lies mal die Signatur, wenn die nicht stimmt, dann geht alles andere 
auch nicht.
Wenn das klappt, setz mal die Fuses auf intern RC mit 8MHz und versuch 
dann den Flash zu schreiben.

Bei einem externen Quarz unbedingt darauf achten, daß man den 
Full-Swing-Mode benutzt!
Ansonsten schwingt der Quarz nur sporadisch. Dann hilft nur, einen 
externen Takt einzuspeisen, z.B. von einem 2. AVR.


Peter

von Christoph H. (webturtle)


Lesenswert?

Ich teste das vorgeschlagene noch.
Ich bin nur noch nicht dazu gekommen. Hoffe am Wochenende ist Zeit 
dafür.

Nicht dass ihr denkt ich würde keine Meldung mehr geben.

Chris

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.