PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Atmega16 16MHz Ext-Oszillator Fusebits??



linuxer7
31.10.2010, 21:06
Hallo Leute.

Bitte entschuldigt wenn ich es ins falsche Forum schreibe, aber ich bin der Neue, und sollte es falsch sein gelobe ich Besserung. O:)

Ich habe ein Problem.
Ich habe von einem Bekannten einen Atmega16 bekommen. Laut Datenblatt kann der mit 16Mhz getaktet werden. Ich hatte noch einen 16Mhz Oszillator herumliegen und wollte nun in bascom die Fusebits setzen und ein kleines Programm schreiben um die Hardware zu testen. (blinki) Einfach ein Port ein und wieder ausschalten.

Ich habe keinen Schimmer wie ich die Fusebits setzten soll.
Ich finde keine 16Mhz Einstellung.
Die Schaltung läuft mit dem internen 1Mhz Takt ohne Probleme, aber ich will ja mit 16 Mhz über den externen Oszillator fahren.

Könntet Ihr mir bitte etwas Starthilfe geben?

Gruß
Thomas

Besserwessi
31.10.2010, 21:34
Zuerst sollte man sicher sein, das es wirklich ein externer Oszillator (d.h. mit Stromversorgung, typisch mit 4 Pins) und nicht nur ein externer Resonator (Quarz) ist.

Bei den Fuses muss man dann nur noch externer Takt einstellen, unabhängig von der Frequenz. Verschiedenen Einstellungen je nach Frequenz gibt es beim internen Takt und für Quarze / Resonatoren.
Die Frequenz muss man dann im Programm eintragen damit der Compiler Wartezeiten richtig berechnen kann.

linuxer7
31.10.2010, 22:17
Hallo Besserwessi.

Das Ding hat 3 Beine ist Quadratisch (Pin 1 Fehlt eh unwichtig weil NC ) von Valvo S5460
16.000
9017T
Meiner Meinung ist das ein Oszillator. Lt. einem Datenblatt von Reichelt, Ähnlicher Typ,
- Pin 1 NC
- Pin 7 GND
- Pin 8 Takt (OUT)
- Pin 14 VCC
Gemessen gegen GND an Pin 13 meines ATMEGA16 messe ich 15,99 MHz.

Mein kleines Prog.

################################
$regfile = "m16def.dat"
$framesize = 32
$swstack = 32
$hwstack = 32
$crystal = 1000000
$baud = 4800

Config Portd.6 = Output 'Ein Pin wird als Ausgang konfiguriert PC0 (also Pin0 von Port C)

Do
Portd.6 = 1
Print "Aus" 'Pin wird auf High, also 5V geschaltet
Waitms 1000
Portd.6 = 0 'Pin wird auf Low, also 0V geschaltet
Print "Ein"
Waitms 1000
Loop

End
#################################

Momentan habe ich da wieder 1Mhz eingetragen.
Bei den Fusebits steht :

100001:Int. RC Osc. 1 MHz; Start-up time: 6 CK + 64 ms; [CKSEL=0001 SUT=10]; default value

Was muss ich da einstellen?

Gruß
Thomas

chr-mt
31.10.2010, 22:45
Was muss ich da einstellen?
Die Antwort hat Besserwessi schon gegeben:

Bei den Fuses muss man dann nur noch externer Takt einstellen, unabhängig von der Frequenz.

In AVR Studio heißen diese Einstellungen beim Mega16:
Ext. Clock; Start-up time: 6 CK + 0 ms
Ext. Clock; Start-up time: 6 CK + 4 ms
Ext. Clock; Start-up time: 6 CK + 64 ms

Welche du da nimmst ist ziemlich egal, mit der langsamsten Einstellung (+64mS) kannst du eigentlich nichts falsch machen.

Gruß
Christopher

linuxer7
31.10.2010, 22:51
Hallo Christopher

Leider konnte ich diese Parameter ..

Ext. Clock; Start-up time: 6 CK + 0 ms
Ext. Clock; Start-up time: 6 CK + 4 ms
Ext. Clock; Start-up time: 6 CK + 64 ms

..nicht aus Besserwessis Antwort heraus lesen.

Es funktioniert nun Prächtig.

Werde euch weiter empfehlen :)

Danke !!!

Gruß
Thomas

chr-mt
31.10.2010, 23:02
Es funktioniert nun Prächtig.
Na dann, viel Spaß beim Basteln. 8)