Forum: Mikrocontroller und Digitale Elektronik Fuse Bits / Taktprobleme


von Daniel (Gast)


Lesenswert?

Hallo,

ich habe ein kleines Problem mit meiner "Eigenbau-Steuerung". Ich möchte 
eine spezielle Steuerung basierend auf einem Atmega644-20AU bauen. Ich 
habe ein paar Platinen fertigen lassen und die erste bereits zu 
testzwecken bestückt. Passend dazu habe ich mir einen Arduino Bootloader 
herausgesucht und den mittels AVRDUDE auf das Board gebrannt. Das 
Problem dass ich nun habe ist, dass meine Referenz-LED nicht gleichmäßig 
blinkt. Ich verwende einen externe 16MHZ Quarz mit zwei 22pf 
Kondensatoren. Ich vermute es liegt an den falsch gesetzten Fusebits

efuse: 0xFF hfuse:0x99 lfuse:0X42

mit dem Low Fuse Bit habe ich bereits ein wenig gespielt, und 
verschiedene Paramter eingetragen, doch die LED blinkt unregelmäßig alle 
3-4 Sekunden statt jede Sekunde.

Hat jemand eine Idee wie ich am besten das Problem eingrenzen kann?
Kann meine Problematik daher kommen, dass ich eventuell die 
Kondensatoren beim bestücken vertauscht habe?

Ich würde mich über Lösungsansätze freuen.

von LinReg (Gast)


Lesenswert?

Klingt für mich eher nach Reset problemen

von Einer K. (Gast)


Lesenswert?

Klingt für mich eher nach fehlenden Abblockkondensatoren.

von S. Landolt (Gast)


Lesenswert?

> lfuse:0X42
?
Das ist doch nach wie vor der interne RC-Oszillator /8.

> Low Fuse Bit habe ich bereits ein wenig gespielt
Das kann auch schnell schiefgehen.

von Daniel (Gast)


Lesenswert?

Vielen Dank für die schnellen Rückmeldungen. Könnt ihr vielleicht bitte 
etwas konkreter werden, bin noch relativ am Anfang der Elektronik 
Entwicklung :)

von Daniel (Gast)


Lesenswert?

Hallo Landolt,

ich habe im Datenblatt nachgeschaut und habe folgenden Fusebit 
beispielsweise auch probiert:

LOW: 0x7E
8.0- MHZ 1K CK + 4.1ms | Da mit 5 V betrieben

Kann es sein, dass mit uC schon kaputt ist?

von Thomas E. (thomase)


Lesenswert?

Daniel schrieb:
> 8.0- MHZ 1K CK + 4.1ms

Setz das mal auf den höchsten Wert(64ms) und schalte den BOD auf 4,3V 
ein. Wenn deine StrV nämlich zu langsam ansteigt, schwingt der 
Oszillator schon, bevor sich eine ausreichende und stabile Spannung 
aufgebaut hat und der Controller murkst undefiniert vor sich hin.

von S. Landolt (Gast)


Lesenswert?

7E startet für Quarz wohl etwas zu schnell, ich würde es mit 77 (/8) 
oder F7 (/1) versuchen,

von Daniel (Gast)


Lesenswert?

VIELEN DANK!

Ich hätte mich besser schon heute morgen gemeldet, dann hätte ich mir 
viele Stunden suchen ersparen können ;)
Den low Fuse auf F7 setzen hat geklappt. Nun funktioniert alles wie 
gewünscht, danke!

Mein Problem war also, dass der Quarz zu früh angefangen hat zu 
schwingen?!

von Einer K. (Gast)


Lesenswert?

Daniel schrieb:
> Mein Problem war also, dass der Quarz zu früh angefangen hat zu
> schwingen?!

Steht im Widerspruch zu:

Daniel schrieb:
> efuse: 0xFF hfuse:0x99 lfuse:0X42

von S. Landolt (Gast)


Lesenswert?

> Mein Problem war also, dass der Quarz zu früh angefangen
> hat zu schwingen?!

Nein, der Quarz benötigt eine gewisse Zeit, bis er stabil schwingt, und 
vorher sollte der Prozessor nicht anlaufen. Auch könnte es sein, dass 
die Betriebsspannung zu langsam ansteigt, auch in diesem Fall greift 
eine längere "start-up time", s.a. den Beitrag von Thomas Eckmann.

von Daniel (Gast)


Lesenswert?

Super 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.