Hallo, ich bin sehr neu auf dem Gebiet und habe das erste mal einen Chip gefust. Natürlich spricht das Ding jetzt kein Wort mehr mit mir. Vlt könnt ihr mir helfen. Ich versuche eine simple Digitaluhr zu bauen und habe daher einen 32.768khz Quarz beim Conrad besorgt. Ein Display 1x16Zeilig konnte ich schon ansprechen und war sehr glücklich ;-) Jetzt war es an der Zeit für den externen Oszilator, um eine Sekunde korrekt zu definieren und so habe ich mit dem Fusecalc (http://www.engbedded.com/fusecalc) die Config Low: 0xC9, High 0x89 eingestellt. Aufgebaut habe ich es wie im Datenblatt beschrieben: http://www.mikrocontroller.net/attachment/79603/crystal.jpg Jetzt habe ich schon selbst gemerkt, dass CKOPT eingeschaltet ist und somit die internen Kondensatoren ebenfalls aktiv sind. Daher habe ich den aufbau auch einmal ohne die 22pF aufgebaut. Ging leider auch nicht. Jetzt habe ich mehrere Fragen: 1) Kann ich den Chip mit dem derzeitig Fusesetting noch irgendwie retten? 2) War meine Überlegung grundsätzlich richtig? Also mit dem 32khz und den fuses? 3) Was wäre die korrekte fuseconfig gewesen? Viel Text und hoffentlich viel Erkenntnisse für mich. Danke fürs Lesen und bis bald Christian
Hier mal 2 Bilder. Und schon einmal danke im voraus für etwaige Hilfe. Chris
Puh. So einfach ist das jetzt nicht mehr. Dreh mal die ISP-Programmierfrequenz so tief runter, wie es nur geht. Die darf nicht höher als 1/4 deiner µC-Taktfrequenz sein. Und bei 32kHz wirds da dann mit den üblichen Einstellungen schon eng. Generell: Den 32kHz Quarz würde ich nicht als Taktversorgung des Mega verwenden. Wenn, dann kommt der als externer QUarz an den Timer 2 und taktet den Timer 2 direkt. Da aber auch dann der Takt nicht 100% exakt 32768 Hz sein wird, muss der genauso mit Kondensatoren abgeglichen werden, wie jeder andere Quarz auch. Daher meine persönliche Meinung: Bringt nicht so viel, wie es sich zunächst anhört. Da nehm ich lieber einen Baudratenquarz, mit dem ich mit einem schönen Vorteiler am Timer 1 auf einen schönen Basistakt komme, und gleiche das ganze mit dem CTC Modus sauber ab. Dann hab ich dadurch wenigstens noch eine vernünftige Arbeitsgeschwindigkeit des µC, so dass der seine Aktionen in vertretbarer Zeit erledigen kann. Und ich denke mal in Summe wird unterm Strich auch kein höherer Stromverbrauch rauskommen. Sicher, bei einer geringeren Taktfrequenz ist der Stromverbrauch geringer, dafür ist der µC aber auch langsamer und es dauert länger, bis er wieder in den Sleep kommen kann. Ich habs allerdings nicht gemessen, d.h. ich kanns nicht beweisen.
IMG_4048.JPG 4,1 MB, 0 Downloads IMG_4054.JPG 3,4 MB, 0 Downloads Ich warte auf den Tag, an dem Jemand auf die Idee kommt für so etwas ein unkomprimiertes Full-HD-Video anzuhängen.
Christian L. schrieb: > Jetzt war es an der Zeit für den externen Oszilator, um eine Sekunde > korrekt zu definieren und so habe ich mit dem Fusecalc > (http://www.engbedded.com/fusecalc) die Config > Low: 0xC9, High 0x89 eingestellt. > > Aufgebaut habe ich es wie im Datenblatt beschrieben: Wenn Du das Datenblatt richtig gelesen hättest, dann hättest Du erkannt, dass der Uhrenquarz lediglich als Taktgeber für Timer2 im asynchronen Modus gedacht ist, nicht aber als Taktversorgung für den Mega selbst. Gut, Anfängerfehler. Um den Stein wieder zum Leben zu erwecken, musst Du den Uhrenquarz abklemmen und eine Frequenz größer 1Mhz an XTAL1 schalten. Diese kann zum Beispiel aus einem Blechbüchsen-Oszillator von einer alten Grafik- oder Netzwerkkarte stammen oder Du baust Dir einen Generator mit einem CD4093, einem Widerstand 4k7 und einem Kondensator 470pF auf. Dann versuchst Du über ISP die Fuses wieder auf internen Generator zu fusen. Karl Heinz Buchegger schrieb: > Da aber auch dann der Takt nicht 100% exakt 32768 Hz sein wird, muss der > genauso mit Kondensatoren abgeglichen werden, wie jeder andere Quarz > auch. Daher meine persönliche Meinung: Bringt nicht so viel, wie es sich > zunächst anhört. Der große Vorteil eines Uhrenquarzes an Timer2 ist die vollkommen asynchrone Betriebsweise. Man kann so den internen Generator kalibrieren und den Controller zur Laufzeit mit einer beliebeigen Taktrate von ein paar kHz bis zu etwa 14Mhz laufen lassen. Das ergibt bei den klassischen Megas die größte Flexibilität des Verhältnisses von Performance und Stromverbrauch. Karl Heinz Buchegger schrieb: > Sicher, bei einer geringeren Taktfrequenz ist der > Stromverbrauch geringer, dafür ist der µC aber auch langsamer und es > dauert länger, bis er wieder in den Sleep kommen kann. Ich habs > allerdings nicht gemessen, d.h. ich kanns nicht beweisen. Das stimmt. Unterm Strich ist es energietechnisch günstiger, den Controller schneller zu takten und nur kurz laufen zu lassen. Am schnellsten kommt der Controller mit dem internen Generator in Gang, was lediglich 6 Clocks dauert. Externe Quarze brauchen -zig Millisekunden, bis der Controller stabil läuft. Der Uhrenquarz kann im Sleep weiterlaufen, den Controller wecken und verbraucht gerade mal um 10µA. Bei neueren PicoPower-AVRs nur um 1µA.
> Knut Ballhause schrieb: > Wenn Du das Datenblatt richtig gelesen hättest, dann hättest Du erkannt, > dass der Uhrenquarz lediglich als Taktgeber für Timer2 im asynchronen > Modus gedacht ist, nicht aber als Taktversorgung für den Mega selbst. > Gut, Anfängerfehler. Hallo, vielen Dank für die Rückmeldungen! Anfängerfehler ist völlig korrekt ;-) Aber darum gehts ja auch. ich verdiene mein Geld ja mit etwas anderem. Ich möchte einfach nur ein bischen basteln - und lernen! Ich werde versuchen den Mega wieder zum Leben zu erwecken und anschließend die Clock des 2. Timers extern befüttern. Danke nochmal für die Nachrichten. Gruß Christian
Knut Ballhause schrieb: > Wenn Du das Datenblatt richtig gelesen hättest, dann hättest Du erkannt, > dass der Uhrenquarz lediglich als Taktgeber für Timer2 im asynchronen > Modus gedacht ist, nicht aber als Taktversorgung für den Mega selbst. Zu meiner großen Überraschung stimmt das allerdings nicht ganz. Im Datenblatt des Mega32 ist tatsächlich angegeben, das man einen 32kHz Quarz als 'Device Clock Source' benutzen kann. Da gibt es sogar eine eigene Fuse-Stellung dafür. Entweder das, oder der entsprechende Abschnitt ist tatsächlich derart missverständlich geschrieben, dass dieser Fehler mehr als nur verzeihlich ist.
Karl Heinz Buchegger schrieb: > Knut Ballhause schrieb: > >> Wenn Du das Datenblatt richtig gelesen hättest, dann hättest Du erkannt, >> dass der Uhrenquarz lediglich als Taktgeber für Timer2 im asynchronen >> Modus gedacht ist, nicht aber als Taktversorgung für den Mega selbst. > > Zu meiner großen Überraschung stimmt das allerdings nicht ganz. Im > Datenblatt des Mega32 ist tatsächlich angegeben, das man einen 32kHz > Quarz als 'Device Clock Source' benutzen kann. Da gibt es sogar eine > eigene Fuse-Stellung dafür. > > Entweder das, oder der entsprechende Abschnitt ist tatsächlich derart > missverständlich geschrieben, dass dieser Fehler mehr als nur > verzeihlich ist. Hi, das stimmt. Deshalb habe ich das ja auch nur gemacht. Dort steht, dass wenn man die Clock mit dem 32khz extern ansteuert solle man die Clock Fuses auf 1001 setzen. Das hatte ich dann ach geamcht. leider steht dort nicht, wie man dann SUT1 und SUT2 sowie CKOPT setzen muss. Ich denke, dass ich die 4 Clock-Bits korrekt gesetzt habe und mein Fuse-Fehler dann in einem Bit der drei anderen SUT1+2 und/oder CKOPT zu suchen ist. By the way, das war meine eigentliche Frage in diesem Thread ;-) Gruß Christian
Karl Heinz Buchegger schrieb: > Zu meiner großen Überraschung stimmt das allerdings nicht ganz. Im > Datenblatt des Mega32 ist tatsächlich angegeben, das man einen 32kHz > Quarz als 'Device Clock Source' benutzen kann. Da gibt es sogar eine > eigene Fuse-Stellung dafür. Huh?! Oh, dann muss ich mich entschuldigen. Den Opa M32 hatte ich so nicht in Erinnerung. Aber im Übrigen gilt oben Gesagtes ;-). Danke für den Hinweis, Karl Heinz!
Also im Datenblatt steht es ja nun drin und ich habs auch so gefust wie angegeben. EIGENTLICH sollte es ja gehen. Hat noch irgendwer eine letzte Rückmeldung, ob es an den anderen Fuses gehangen haben kann? SUT und CKOPT? Gruß Christian
Woher weißt du, dass der M32 nicht mehr läuft? Nochmal: Die ISP-Programmierfrequnenz darf nicht höher sein, als 1/4 der Takfrequenz des Controllers. Wenn die zu hoch, dann kannst du auf den µC nicht mehr zugreifen! Und wenn dein M32 jetzt mit 32kHz läuft, dann musst du mit der ISP-Frequenz in den Keller gehen!
Mhh, wie finde ich heraus, was die Programmierfrequenz ist? Gruß Christian
Christian L. schrieb: > Mhh, > > wie finde ich heraus, was die Programmierfrequenz ist? Die kann man irgendwo in deinem Brennprogramm einstellen.
Hi, Ich benutze AVROSPII. Hier ein paar Screens: http://www.avrtools.co.kr/technote7/data/tntshop1/img_body/1/21_b71d_avrosp2_400_shot.jpg http://www.avrtools.co.kr/technote7/data/board/members/file_in_body/1/avrosp2_v543fuse.jpg http://www.avrtools.co.kr/technote7/data/board/members/file_in_body/1/avrosp2_v543_lock1.jpg http://www.avrtools.co.kr/technote7/data/board/members/file_in_body/1/avrosp_advanced.jpg http://www.avrtools.co.kr/technote7/data/board/members/file_in_body/1/avrosp2_v543_config1.jpg Meinst du das unter dem "Advanced" Panel? Unter "Configure" kann man nur die Übertragungsrate einstellen. Was davon meinst du, müsste ich verstellen? Gruß Christian
Christian L. schrieb: > Hi, > > Ich benutze AVROSPII. Wenn das alles ist, was dein Programmierprogramm kann, dann bist du jetzt Zweiter. Mit dem kann man die offenbar nicht einstellen. Such dir ein anderes Programm, welches mit dem AVR-ISP (?) umgehen kann, und bei dem man die ISP Frequenz einstellen kann.
Ist das sinnhaft, dass in den Programmierfenstern der falsche Controller angegeben ist? Du schreibst von einem Mega32, angegeben ist der Mega8535. Edit: die Signatur stimmt auch nicht, sollte für den M32 0x1E 0x95 0x02 lauten
Knut Ballhause schrieb: > Ist das sinnhaft, dass in den Programmierfenstern der falsche Controller > angegeben ist? Du schreibst von einem Mega32, angegeben ist der > Mega8535. > > Edit: die Signatur stimmt auch nicht, sollte für den M32 0x1E 0x95 0x02 > lauten Ohne Sinn: Meinst du die Screenshoots von der Koreanischen Seite, die der Thread-Ersteller wahrscheinlich nur zufällig herausgesucht und gepostet hat, um das Proggi zu zeigen? *duck & weg*
Tim S. schrieb: > Thread-Ersteller wahrscheinlich nur zufällig herausgesucht und > gepostet hat, um das Proggi zu zeigen? Hmmm...
Hallo, die Screenshots sind nicht von mir. Damit sollte nur die GUI der Software gezeigt werden. Aber sehr aufmerksam! ;-) Sonst noch wer Ideen bzgl. der Fuses SUT0 und 1 sowie CKOPT? Ansonsten schon mal vielen Dank für die vielen Rückmeldungen Gruß Christian
Christian L. schrieb: > Sonst noch wer Ideen bzgl. der Fuses SUT0 und 1 sowie CKOPT? Vergiss sie. Ist sowieso wurscht. Denn wenn du nicht mehr an den Mega rannkommst, kannst du sie auch nicht umstellen. (Und du wirst hoffentlich nicht so blöd sein, und dir einen zweiten Mega auf 32kHz fusen)
Die Dummheit der Menschen kennt ja bekanntlich keine Grenzen, aber icgh gebe mir Mühe ;-) Gruß Chris
ich hoffe Du hast dran gedacht, auf dem Breadboard kannst Du schlecht eine Quartzschaltung mit nur 22pF aufbauen. Denn das Steckbrett wird selbst schon einige 10pF haben! Entweder biegt man die Pins für den Quartz am Atmega hoch und lötet den Quartz direkt dran oder man nimmt eine externe Taktquelle. Es gibt fertige Platinen mit einer RTC zu kaufen. Mit Ds1307 oder noch besser Ds3231. Die geben den 32kHz Uhrentakt fertig aus und zusätzlich haben die eine Batterie und eine Uhr die weiter läuft. Dazu muss man sich allerdings ein wenig mit TWI oder I2C oder IIC auseinander setzen.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.