- 12V Akku mit 280 Ah bauen         
Ergebnis 1 bis 6 von 6

Thema: AT90D2313 mit 32768Hz Quarz

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1

    AT90D2313 mit 32768Hz Quarz

    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.

  2. #2
    Erfahrener Benutzer Lebende Robotik Legende Avatar von PICture
    Registriert seit
    10.10.2005
    Ort
    Freyung bei Passau in Bayern
    Alter
    72
    Beiträge
    11.077
    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
    Code:
      +-----------------------+
      |                  ___  |
      |   32768Hz  8p +-|___|-+        _   _
      |        _      |   2M  |      _| |_| |_
      | |\    | |  || | |\    | |\
      +-| >O-|| ||-||-+-| >O--+-| >O---------->
        |/    |_|  ||   |/      |/

  3. #3
    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

  4. #4
    Erfahrener Benutzer Lebende Robotik Legende Avatar von PICture
    Registriert seit
    10.10.2005
    Ort
    Freyung bei Passau in Bayern
    Alter
    72
    Beiträge
    11.077
    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

  5. #5
    Erfahrener Benutzer Robotik Einstein Avatar von Jaecko
    Registriert seit
    16.10.2006
    Ort
    Lkr. Rottal/Inn
    Alter
    41
    Beiträge
    2.009
    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.
    #ifndef MfG
    #define MfG

  6. #6
    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.

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

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

12V Akku bauen