Forum: Mikrocontroller und Digitale Elektronik Bekomme AT8 nicht mit 16mhz zum laufen


von Sebastian (Gast)


Lesenswert?

Hi,
ich bin verzweifelt am versuchen meinen Atmega8 mit diesem 16Mhz Quarz

http://www.reichelt.de/Quarze/16-0000-HC49U-S/3/index.html?&ACTION=3&LA=2&ARTICLE=32852&GROUPID=3173&artnr=16%2C0000-HC49U-S

zum laufen zu bringen. Der Quarz ist an Xtal1 u. 2 des Controllers 
angeschlossen und mit 2x 20pF Kondensatoren gegen Masse geschaltet. Im 
Programm habe ich ihm gesagt, dass ein 16Mhz Quarz angeschlossen ist. 
CKSEL ist auf '1111' SUT auf '11' und CKOPT ist gesetzt. Aber egal was 
ich versuche das Programm läuft nicht mit diesen Einstellungen. Nur ohne 
Quarz auf den 1Mhz internen Oszillator funktioniert es. Habe ich 
irgendetwas übersehen oder vergessen? Bitte um hilfe

Gruß Sebastian

von Tommy T. (thomas_k86)


Lesenswert?

mit 2x 20pF Kondensatoren gegen Masse geschaltet
und CKOPT ist gesetzt.

??????????????????????????
Verstehe ich da jetzt was Falsch???

CKOPT:

Damit kann man, je nach CKSEL-Einstellung einen oder zwei eingebaute 
Kondensatoren für den Oszillator aktivieren. Für Frequenzen ab 8 Mhz 
muss diese Einstellung gesetzt werden.

Bitte um Test und Aufklärung! .)

von Conny G. (conny_g)


Lesenswert?

Was genau heisst "das Programm läuft nicht"?

von Stefan S. (stefan2013)


Lesenswert?

CKOPT ist gesetzt -> CKOPT muss 0 sein

von Tommy T. (thomas_k86)


Lesenswert?

Stefan S. schrieb:
> CKOPT ist gesetzt -> CKOPT muss 0 sein

Und was ist mit den Kondensatoren?Die werden dabei doch intern ein 
geschaltet.? Also müssen diese doch aussen entfernt werden,oder wie 
jetzt?

von Megachecker (Gast)


Lesenswert?

Tommy Tomatronic schrieb:
> Und was ist mit den Kondensatoren?Die werden dabei doch intern ein
> geschaltet.? Also müssen diese doch aussen entfernt werden,oder wie
> jetzt?
schau ins Datenblatt, CKOPT erhöht bei den hohen Quarzfrequenzen die 
Amplitude, nur bei RTC-Quarz werden die Kondensatoren eingeschaltet.

Ein Atmega8L läuft nur bis 8MHz.
Ein normaler Mega8 braucht 5V Versorgung für maximale Taktfrequenz.

>Was genau heisst "das Programm läuft nicht"?
ja, das wäre ein Punkt, wo man ansetzen könnte.

von Düsendieb (Gast)


Lesenswert?

Sebastian schrieb:
> CKSEL ist auf '1111'

das heißt bei Ponyprog externe Taktquelle und das ist kein Quarz!

Gib mal bei Suche da oben "verfused" ein

von Hubert G. (hubertg)


Lesenswert?

Düsendieb schrieb:
> Sebastian schrieb:
>> CKSEL ist auf '1111'
>
> das heißt bei Ponyprog externe Taktquelle und das ist kein Quarz!
>
> Gib mal bei Suche da oben "verfused" ein

CKSEL 1111 ist ext.Quarz
Den Haken setzen bedeutet allerdings nicht eine 1 sondern eine 0.
CKSEL 0000 ist ext. Takt

siehe auch  http://www.engbedded.com/fusecalc/

von Stephan B. (matrixstorm)


Lesenswert?

Hallo.

Von den vielen ATmega8 die ich schon durch meine Haende hab wandern 
lassen,
war auch einmal einer dabei, bei dem anscheinenddie XTALs nicht 
(korrekt) gebondet waren.
Der lief auch immer nur mit internen Takt korrekt - extern ging nicht.

Im Zweifel probier mal einen neuen ATmega8 (abgekuerzt M8, nicht AT8), 
so teuer sind die nicht.
Zumal die Dinger derzeit sogar auf einem preislichen tiefstand sind:
http://www.ebay.de/itm/251005028695?ru=http%3A%2F%2Fdsa.ebay.de%2Fsch%2Fi.html%3F_sacat%3D0%26_from%3DR40%26_nkw%3D251005028695%26_rdc%3D1

MfG

von Rudolph (Gast)


Lesenswert?

Der Quarz hat ein CL von 32pF und Du versuchst den gerade mit ~12pF zu 
betreiben. Kann funktionieren, muss aber nicht.

von Sebastian (Gast)


Lesenswert?

Hi,
also zum programmieren benutzte ich galep5. da habe ich einen haken bei 
ckopt gemacht. ob das in dem programm jetzt 0 oder 1 bedeutet weiß ich 
ich ehrlich gesagt nicht, habe jedoch beides ausprobiert. in das feld 
für cksel habe ich '1111' eingetragen bei SUT '11' also laut dieser 
seite

http://halvar.at/elektronik/kleiner_bascom_avr_kurs/fuse_lock_bits_2/

externer quarz mit maximaler startup time. alle anderen fusebits habe 
ich nicht verändert.

mit "programm läuft nicht" meine ich, dass auf dem lcd nur noch wirre 
zeichen angezeigt werden. mit ein bisschen rumgespiele an den o.a. fuses 
bin ich einmal dazu gekommen das das lcd meine anzeige ausgibt, jedoch 
reagieren dann die tasten dann nicht mehr richtig und die anzeige im 
display ist irgendwie komisch blass. auch mit anderen M8 funzt es nicht. 
als bezeichnung steht übrigens "atmega8-16PU" drauf, falls das 
weiterhilft. das programm ist im prinzip nur eine simple pwm an den 
beiden dafür vorgesehenen ausgängen. mit 4 tastern lässt sich jeweils 
die helligkeit um 10% erhöhen oder verringern, was dann auf dem lcd als 
balkendiagramm ausgegeben wird. die pwm's gehen jeweils auf eine 
konstantstromquelle die jeweils 2X 10W LEDs treiben. zeitkrtische 
befehle werden eigentlich nicht verwendet. ob der quarz auch zu 
schwingen anfängt kann ich grad leider nicht testen, hab kein oszi hier.

Rudolph schrieb:
> Der Quarz hat ein CL von 32pF und Du versuchst den gerade mit
> ~12pF zu
> betreiben. Kann funktionieren, muss aber nicht.

sry, verstehe ich nicht was du damit meinst.

Gruß Sebastian

von Karl H. (kbuchegg)


Lesenswert?

Sebastian schrieb:
> Hi,
> also zum programmieren benutzte ich galep5. da habe ich einen haken bei
> ckopt gemacht. ob das in dem programm jetzt 0 oder 1 bedeutet weiß ich
> ich ehrlich gesagt nicht,

Das ist schlecht.
Wenn du hast, dann häng einen neuen fabrikfrischen M8 an den Programmer 
und lies die Fuses aus.
Im Datenblatt stehen die Defaults dabei. D.h. durch Vergleich mit dem 
Datenblatt kann man feststellen, wie das der Programmer handhabt. Ob er 
eine eingeschaltete Fuse als 0 oder als 1 anzeigt.

> mit "programm läuft nicht" meine ich, dass auf dem lcd nur noch wirre
> zeichen angezeigt werden. mit ein bisschen rumgespiele an den o.a. fuses

das verwirrt mich ehrlich gesagt ein bischen.
Denn wenn du an den Fuses falsch drehst, sperrst du dich ganz schnell 
aus dem M8 aus. Und dann geht gar nichts mehr. Du kannst ihn nicht mehr 
programmieren, du kannst die Fuses nicht mehr lesen oder schreiben und 
er arbeitet dann auch nicht mehr.
Dann bleibt nur noch High-Voltage Programmierung um ihn wiederzubeleben.


Blindes rumprobieren bringt dich nicht weiter.
Stell die Taktfrequenz fest, solange du auf den M8 noch zugreifen 
kannst. Eine simple Schleife in der man mit _delay_ms( 500 ) eine LED 
ein ausschaltet reicht schon, um die reale Taktfrequenz für diese Zwecke 
feststellen zu können.

von Rudolph (Gast)


Lesenswert?

Sebastian schrieb:
>> Der Quarz hat ein CL von 32pF und Du versuchst den gerade mit
>> ~12pF zu
>> betreiben. Kann funktionieren, muss aber nicht.
>
> sry, verstehe ich nicht was du damit meinst.

Dann mach Dich doch erstmal ein wenig schlauer, wie man Quarze überhaupt 
benutzt, warum da überhaupt Kondensatoren dran sind und welche Werte die 
warum haben sollten.

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.