Forum: Mikrocontroller und Digitale Elektronik Atmega 32 Fuse Bits


von U. S. (corpsman)


Lesenswert?

Guten Morgen allerseits,

Ich bin sozusagen Neuling in der Mikrocontroller Programmierung.

Ich habe mir das Atmel Eval Board von Pollin und einen geeigneten USB 
Prgrammer von ulrichradig.de gekauft und zusammen gelötet.

Danach habe ich mit Hilfe der Tutorial's hier bei 
http://www.mikrocontroller.net die "Tool" chain zum Programmieren mit 
meinem Linux zusammengebastelt. Auch das hat funktioniert.

Voller Übermut habe ich mich dann ans Programmieren gesetzt. Nach 
anfänglichen Versuchen leuchteten LED's und Taster reagierten.

Also dachte ich mir fange ich mal Richtig an und lese mich in das Thema 
Fuse bits ein.

Genau 1 Versuch Später musste ich feststellen, dass man den ATMEGA32 
tatsächlich recht einfach mit den Fuse Bits killen kann. Obwohl laut 
Datenblatt die SPIEN via ISP nicht deaktiviert werden kann, hat mein 
avrdude das wohl geschafft. Da ich die JTag Schnittstelle auch 
deaktiviert hatte, dürfte ich den Mikrokontroller nun wohl auf den Müll 
werfen müssen.

Oder hat jemand von euch noch eine Idee ?

Nebenbei wollte ich mal wissen, wenn ich die SPI Schnittstelle aktiviere 
(was ich machen muss, weil ich ja via ISP Programmiere, wie ich jetzt 
gelernt habe). Kann ich dann die PINS PB7, PB6 und PB5 nicht mehr 
weiters nutzen, außer eben für weitere SPI Geräte ? Und was ist mit PB4 
(SS) bei den dsPIC's kann man den deaktivieren und als normalen 
Digitalen I/O Pin nutzen.

Vielen Dank für eure Geduld mit mir.

Gruß

corpsman

von spess53 (Gast)


Lesenswert?

Hi

>hat mein avrdude das wohl geschafft.

Da verwechselst du Ursache und Wirkung. Wenn der Controller, z.B. durch 
verstellte Taktquelle, nicht gelesen werden kann stimmt natürlich auch 
der angezeigte Zustand der Fuses nicht.

MfG Spess

von Frank K. (fchk)


Lesenswert?

Uwe Schächterle schrieb:

> Genau 1 Versuch Später musste ich feststellen, dass man den ATMEGA32
> tatsächlich recht einfach mit den Fuse Bits killen kann. Obwohl laut
> Datenblatt die SPIEN via ISP nicht deaktiviert werden kann, hat mein
> avrdude das wohl geschafft. Da ich die JTag Schnittstelle auch
> deaktiviert hatte, dürfte ich den Mikrokontroller nun wohl auf den Müll
> werfen müssen.

Du hast mit Sicherheit die falsche Taktquelle ausgewählt. Das ist die 
AVR-typische Aussperr-Falle. Besorge Dir einen 8 MHZ Quarzoszillator (so 
einem im 14-pol Blechgehäuse, der +,- und den Taktausgang hat), und 
hänge den Taktausgang an OSC1. Dann müßtest Du wieder programmieren 
können.

Mit einem geeigneten Programmiergerät, das den Hochvolt-Programmiermodus 
kann, kannst Du JEDEN AVR wieder zurücksetzen, egal wie verprogrammiert 
er ist. So wirds ja auch bei den älteren PICs gemacht - da kannst Du 
Dich ja auch nicht aussperren, egal wie blöd Du Dich auch anstellen 
magst.

> Nebenbei wollte ich mal wissen, wenn ich die SPI Schnittstelle aktiviere
> (was ich machen muss, weil ich ja via ISP Programmiere, wie ich jetzt
> gelernt habe). Kann ich dann die PINS PB7, PB6 und PB5 nicht mehr
> weiters nutzen, außer eben für weitere SPI Geräte ? Und was ist mit PB4
> (SS) bei den dsPIC's kann man den deaktivieren und als normalen
> Digitalen I/O Pin nutzen.

ISP ist grundsätzlich nur aktiv, wenn /RESET auf Low ist. Ist /RESET auf 
Hi, sind's normale Portpins. Diese Tatsache kannst Du nutzen und per 
Multiplexer oder HC125/HC126 die entsprechenden Pins entweder auf ISP 
oder auf Deine Peripherie schalten.

/SS wird für ISP nicht gebraucht, sondern nur für SPI im Slave Modus 
Lies das Datenblatt!

von U. S. (corpsman)


Lesenswert?

> Du hast mit Sicherheit die falsche Taktquelle ausgewählt. Das ist die
> AVR-typische Aussperr-Falle. Besorge Dir einen 8 MHZ Quarzoszillator (so
> einem im 14-pol Blechgehäuse, der +,- und den Taktausgang hat), und
> hänge den Taktausgang an OSC1. Dann müßtest Du wieder programmieren
> können.

OK der Pin ist auf meinem Evalboard nicht belegt, das könnte dann ein 
Licht am Ende des Tunnels sein g

ich muss am OSC1 einfach ein Rechtecksignal anlegen ?
mit Blechgehäuse Quarz meinst du so was : 
https://www.distrelec.de/oszillator-8-mhz/iqd/lf-spxo003161/667177/fr;jsessionid=80C956C4D55A5DCF036C842F1066FA9E.chdist140

Auf dem EvalBoard ist ja ein 16 MHZ Quarz drauf nur ist der an XTAL2 und 
XTAL1 angeschlossen, den kann ich aber nicht einfach "Umbiegen", da der 
ja nen Sinus macht...

von Thomas E. (thomase)


Lesenswert?

Uwe Schächterle schrieb:
> OK der Pin ist auf meinem Evalboard nicht belegt, das könnte dann ein
> Licht am Ende des Tunnels sein g

Wo hast du den denn gefunden? Den Pin OSC1 gibt es gar nicht.

Der externe Takt wird an XTAL1 angeschlossen.

Uwe Schächterle schrieb:
> XTAL1 angeschlossen, den kann ich aber nicht einfach "Umbiegen", da der
> ja nen Sinus macht...

Der macht gar nichts, weil er nicht aktiviert ist.

mfg.

von corpsman (Gast)


Lesenswert?

mit osc1 meinte ich Pin 28 ich ging davon aus dass Frank K. sich 
verschrieben hatte..

von U. S. (corpsman)


Lesenswert?

So es hat ein Weilchen gedauert,

Vielen Dank erst mal für die Hilfe.

Der Anschluss eines externen TTL Quarzes hat es gebracht, ich habe mich 
tatsächlich ausgesperrt gehabt.

Nun geht der Atmega32 wieder und ich habe was dazu gelernt.

Vielen dank.

von Thomas (kosmos)


Angehängte Dateien:

Lesenswert?

@U. Schächterle: Bist du komplett Windows frei? Wollte dir kurz zeigen 
wie das im AVR Studio aussieht wenn man einen kompatiblen Programmer 
benutzt, ausversehen den falschen Takt oder Taktquelle zu wählen ist 
dort fast unmöglich. Auch gibts bei wichtigen Fuses wie eben SPIEN einen 
Hinweis, das dann ein weiteres Programmieren ohne HV-Parallel Prog nicht 
mehr möglich ist.

von U. S. (corpsman)


Angehängte Dateien:

Lesenswert?

Jup,

ich bin komplett Windows Frei, und froh darüber.

Ich entwickle auch Software, diese kann man aber von Linux aus 
Crosscompilen.

Zum Berechnen der Fuse Bits habe ich : http://www.engbedded.com/fusecalc

Das Problem war, dass ich dummerweise die Bits invertiert gesetzt hatte.

Mein Glück dabei war, dass der µ-Kontroller, tatsächlich das SPIEN Bit 
nicht via ISP zurücksetzen lässt. Sonst hätte ich mir diesen J-Tagen 
Adapter bauen müssen...

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.