PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : ATtiny2313 Fuse Bit Reset



dachluke
09.12.2009, 16:12
Hallo zusammen!

Ich bin noch nicht so lange in diesem Forum aktiv, weil ich bislang nur den x52 Microcontroller benutzt habe. Jetzt bin ich aber quasi auf den AVR umgestiegen und schnüffele schon lange das Forum durch.
Ist ne super Sache und hat mir den Einstieg stark erleichtert!

Ich habe mir dann das bekannte Pollin-Testboard gekauft und einen Satz üblicher AVRs. V.a. der ATtiny2313 gefällt mir wegen der seriellen Schnittstelle.

Also habe ich ein erstes einfaches Testprogramm geschrieben und per PonyProg über ISP programmiert. Geht wunderbar.

Dann war ich mutig und hab mal an den Fuses gespielt und natürlich "verfust". Nach den Texten hier im Forum und den Warnungen musste ich gleich lachen. Eigentlich kann ich nämlich schon Datenblätter lesen... :-)

Ich habe den Chip auf die 128kHz inkl. Teiler durch 8 gesetzt und damit mein ISP ausgehebelt, weil so die üblichen ISP-Takte zu schnell für den Chip sind.
Ich habe viele Tricks aus diesem Forum getestet (AVRdude mit langsamer Geschwindigkeit bzw. irgendwelche undokumentiere INI-Einträge in anderen Programmen). Leider hat nichts funktioniert.

Ich habe mich daher mal einen Abend hingesetzt und so ein "Notrettungstool" selber hingeschrieben.
Es generiert eine ganz langsame Verbindung mit der der Kontroller wieder mithalten kann und versucht dann das low fuse byte auf den Fabrikwert zu setzen.

Also bei mir hat das funktioniert und mein ATtiny2313 ist wieder unter den Lebenden und lässt sich wieder wie üblich benutzen.

Ich habe gedacht, dass ggf. noch andere Interesse haben und habe es Euch mal (inkl. Source) ins Netz gestellt:
http://www-user.rhrk.uni-kl.de/~junglas/unfuse/attiny2313unfuse.html

Ist zwar etwas holprig und für meine Hardware geschrieben, aber ggf. anpassbar.

Viel Erfolg!

/\/\arcus

p.s. danach habe ich es geschafft die Fuses invertiert zu programmieren. Der Kontroller hatte daraufhin keinen Systemtakt mehr und lief nicht mehr. Mit einem eigenständigen Oszillator von Hand an den Quarzeingang gesteckt ging der dann auch wieder.
Aber ich sollte jetzt etwas vorsichtiger sein... :-s

TomEdl
09.12.2009, 18:52
Hallo und herzlich Willkommen im Forum!

Sehr schön, da hast du dir ja toll zu helfen gewusst! :)

Nebenbei: Nicht nur der 2313 "kann" serielle Schnittstelle", fast alle AVR's haben eine Hardware-UART implementiert und falls nicht, kann mans ja immer noch per Software machen. ;)

Grüße aus Österreich
Thomas

dachluke
11.12.2009, 00:35
Hallo!

Ich habe schon einige Datenblätter durchgeschmökert (als ET-Student sagen die mir mehr als manche Bücher). Ich habe hobbymäßig gerne 8032-Versionen eingesetzt und kann Assember darauf recht flüssig schreiben. Dennoch gefallen mir die AVRs inzwischen deutlich besser, auch wenn der Befehlssatz (als RISC) hier und da etwas dünn ist.

Egal, ich habe mir ja dieses Pollin-Board besorgt und der AVR, der mir am besten passt, ist damit der 2313. Ich glaube es ist der Kleinste mit einem UART? Zumindest der Kleinste, der auf dieses Testboard passt.

Mich hat es einfach in der Ehre gekränkt einen uC durch olle Fusebits "zerstört" zu haben... [-(
Drum habe ich dieses "Testprogramm" geschrieben. Theoretisch kann man es schnell auf beliebige AVR Typen umbauen, aber da die Fusebits bei vielen verschiedenen AVRs etwas unterschiedlich sind, habe ich die Software aus Sicherheitsgründen auf den T2313 eingeengt.
Eigentlich müsste man nur 2 Konstanten ändern und man könnte jeden beliebigen AVR benutzen... oder eine Auswahl einbauen o.ä.

Ich würde mich zumindest freuen, wenn es jemandem helfen sollte. Wenn nicht ists mir auch egal, mir hat es 2 Euro gespart - und Spaß gemacht! :-b

Tschüss
/\/\arcus

oberallgeier
11.12.2009, 09:47
Hallo, /\/\arkus,

willkommen im Forum. Das ist ja ein richtig gutes Projektchen, das Du da geschmiedet hattest! Ich nehme (m)einen Programmer. Ich habe mehrere, zwei davon können auch Takte ausgeben. Aber so oft verfuse ich meine Käfer nicht mehr. Da sieht man wieder, dass Bequemlichkeit auch Innovation behindern kann.

... einige Datenblätter durchgeschmökert ... der mir am besten passt, ist damit der 2313 ... glaube ... Kleinste mit einem UART ...Na ja, was sich halt so "klein" nennt. Hier hast Du eine Übersicht (http://www.atmel.com/dyn/products/param_table.asp?family_id=607&OrderBy=part_no&Direction=ASC) über die Palette der AVRs - und da steht ob mit oder ohne UART und gaaaanz rechts auch die Bauform. Aber MLF 32 (http://www.atmel.com/dyn/products/packagecard.asp?family_id=607&part_id=4198&package_id=429&green=1)(oder höher) wirst Du vielleicht (erstmal) nicht verlöten wollen *ggg*.

Besserwessi
11.12.2009, 13:20
Ich habe anfangs auch den 2313 (damals noch als 90S2313) benutzt. Die Lage der Versorgungsanschlüsse ist aber nicht so das ware, und man hat noch keine Option zu mehr Speicher.

Das Pollin Board sollte auch mit einem Mega48 klarkommen. Der ist nur unwesentlich teurer (wenn überhaupt) und man hat auch gleich einen AD- wandler, Hardware multiplication und die Option auch Versionen mit mehr Speicher zu bekommen.