PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : AT90D2313 mit 32768Hz Quarz



WBoy
08.02.2010, 18:04
Hallo,
schon mehrere Atmel Controller habe ich auf Testplatinen aufgebaut und zum Laufen bekommen, wie AT90S2313, ATMega8, ATiny2313.
Nun wollte ich eine genaue Sekundenanzeige haben, und habe den AT90S2313 mit einem Quarz mit 32768Hz an Pin 4 und 5 versehen. Jedes der beiden Beinchen habe ich über 22pF an Masse gelegt, so wie es in der Beschreibung steht.
Leider schwingt der Quarz nicht. Wenn ich an Pin 5 einen Oszillator von 4MHz anschließe, kann ich den Baustein programmieren und er funktioniert.
Warum klappt das nicht mit 32768Hz?
Ich denke der Baustein arbeitet von 0-10MHz.

Für eure Antworten schon im voraus vielen Dank.
Viele Grüße.

PICture
09.02.2010, 01:16
Hallo WBoy!

Ich bin zwar PIC-Benutzer, aber die AVR's unterscheiden sich nicht, wenn es um Uhrenquarz geht. So weit ich weiss, ein Uhrenquarz sollte mit seriellem Resonanz und Lastkapazität bis zum CL = 12 pF arbeiten, was bei der standart Beschaltung von µC, z.B. wegen Montagekapazitäten um 10 pF, kaum möglich ist.

Deswegen habe ich immer einen externen Uhrenquarz Oszillator (SMD) verwendet (Siehe Code). Zur genauer Abstimmung der Frequenz sollte als 8 pF Kondensator ein Trimmer (z.B. 3...10 pF) verwendet werden.

Wegen hohen Widerstand des Quarzes (bis zum 50 kOhm) müssen die Inverter aus den CMOS Familien (HC, HCT bzw. 4000) und nicht TTL sein.

MfG

+-----------------------+
| ___ |
| 32768Hz 8p +-|___|-+ _ _
| _ | 2M | _| |_| |_
| |\ | | || | |\ | |\
+-| >O-|| ||-||-+-| >O--+-| >O---------->
|/ |_| || |/ |/

WBoy
10.02.2010, 18:16
Hallo PICture,
Dein Tipp hat mir natürlich keine Ruhe gelassen und ich habe die zusätzlichen Bauteile gleich gestern Abend auf meiner Testplatine eingelötet. Zuerst habe ich nur den Oszillator mit einem Oszilloskop getestet - er hat auf Anhieb funktioniert. Dann den Ausgang mit dem Atmel Pin 5 verbunden.
Nun erst mal vielen Dank für Deine Hilfe.

Jetzt hat sich ein weiteres Problem eingestellt:
Mit 32768Hz lässt sich der Atmel nicht programmieren. Erst wenn ich den anderen externen Oszillator mit 4MHz anschließe kann ich mit PonyProg den Code downloaden.
Hast Du oder vielleicht jemand anderes noch eine Idee?
Vielleicht ist auch PonyProg in diesem Fall zu schnell, nur habe ich nicht gefunden, wie die Download-Geschwindigkeit an die Oszillatorfrequenz der Hardware angepasst werden kann. Ich verwende 2.07c Beta von PonyProg.
MFG

PICture
10.02.2010, 19:00
Hallo WBoy!

Es freut mich sehr, dass ich dir helfen konnte. Wenn der Oszillator nur für Taktquelle benutzt wird, braucht man den bufferenden Inverter nicht.

MfG

Jaecko
10.02.2010, 19:29
Es ist das Problem mit der ISP-Taktfrequenz.
Diese darf max. nur 1/4 der CPU-Frequenz sein. D.h. du müsstest theoretisch die ISP-Frequenz auf 8192 Hz runterdrehen.

WBoy
11.02.2010, 21:04
Hallo Jaecko,
Du hast den Nagel auf den Kopf getroffen. In der Hilfe von PonyProg steht unter 2.6.2 Callibration:
A special note for AVR devices. The AVR need a valid system clock to be programmed via SPI and the max frequency of the SPI bus depends on this system clock. So if you changed the fuse (even accidentally) to use low clocks like 1MHz or 32.768KHz you must change the SPIBusSpeed=VERYSLOW or ULTRASLOW to access the AVR anymore. If you have to use such low clocks I suggest to program the flash and eeprom first, and at last program the security and fuse bits.
Beim ATMega8 habe ich die Fuse Bit Kombination für "External Low-frequency Crystal" gefunden, die dafür infrage kommt. Beim AT90S2313 gibt es diese Bit Kombination leider nicht.
Ein möglicher Ausweg ist, dass ich zum Programmieren den 4MHz Oszillator verwende, anschließend den 32768Hz Oszillator für den Betrieb. Das habe ich gerade ausgetestet und funktioniert.
So betrachte ich die notwendige Hilfe erst mal als abgeschlossen und ich bin wieder am Zug. O:)

Vielen Dank für Deine Hilfe und Deine große Kenntnis.
WBoy