Plausibilitätsprüfung: Verwendung des DS3231 als Taktquelle für uC

Der DS3231 ist ein RTC-Chip mit einem integrierten temperaturkompensierten Oszillator und einem 32-kHz-Ausgang.

Ich möchte diesen Chip in einem kleinen Uhrenprojekt verwenden, das ich entwerfe, weil ich ein paar herumliegen habe. Da es den 32-kHz-Ausgang hat, möchte ich diesen als Haupttaktquelle für den Mikrocontroller (PIC18F4550) verwenden und den diskreten XTAL überspringen, um Platz und Stückliste zu sparen.

Alle Beispiele, die ich gefunden habe, verwenden einen Kristall mit höherer Geschwindigkeit, um den Hauptmikrocontroller anzusteuern, und ignorieren den 32-kHz-Ausgang der RTC, obwohl die 32-kHz-Ausgabe manchmal zum Ansteuern anderer Schaltkreise verwendet wird.

Dies lässt mich an meiner Designentscheidung zweifeln, aber ich habe nichts gefunden, was direkt sagt, dass ich es nicht tun kann. Gibt es Fallstricke, über die ich Bescheid wissen sollte, bevor ich das Board fabriziere? Mir ist klar, dass ich mit dieser Methode keine zweite Taktquelle habe, um den Oszillator abzustimmen. Ich habe vor, es zu prototypisieren.

Hier ist mein Schema:

Geben Sie hier die Bildbeschreibung ein

(Der TPS-Chip ist ein 3,3-V-Regler, der direkt an die 9-V-Batterie angeschlossen ist. EN sollte /EN lauten)

Überprüfen Sie, ob Ihr PIC diese Art von extrem langsamer Uhr unterstützt, aber wenn dies der Fall ist, sollte dies funktionieren. Offensichtlich wird die Ausführung bei 32 kHz sehr langsam sein.
Unter der Annahme, dass der PIC nichts Besonderes wie DRAM hat, das regelmäßig aktualisiert werden muss, denke ich nicht, dass die Taktrate zu viel ausmacht. Mir ist noch kein PIC begegnet, der nicht synchron ist.
Alles, was es tun wird, ist die Anzeige von Uhrzeit/Datum auf 7- und 16-Segment-Anzeigen, also werde ich sehr überrascht sein, wenn 32 kHz nicht ausreichen.

Antworten (1)

Dieser PIC und alle anderen mir bekannten PIC18 haben einen internen Oszillatorblock. Es ist kein externer Quarz erforderlich, auch wenn Sie nicht über den 32-kHz-Ausgang verfügen. Die einzige Zeit, in der Sie einen externen XTAL oder eine Uhr verwenden müssten, wäre:

  1. Um mehrere Geräte mit derselben Uhr zu synchronisieren,
  2. Wenn Sie eine ganz bestimmte Frequenz benötigen (für serielle Kommunikation usw.) oder
  3. Wenn Sie mehr Genauigkeit benötigen, die der interne Oszillator bieten würde.

Sie konfigurieren diesen INTOSC-Block, indem Sie Bits im OSCCON-Register setzen. Sie können aus acht Werten von 31 kHz bis 8 MHz wählen, um die Systemuhr laufen zu lassen.

Setzen Sie im OSCCON-Register das SCS1-Bit, um den internen Oszillatorblock zu verwenden. Stellen Sie dann die IRCF2:IRCF0-Bits ein, um Ihre Frequenz auszuwählen. Dieses Bild stammt aus Abschnitt 2.4.1 des Datenblatts:

INTOSC

Dies ist praktisch, da Sie eine langsame Frequenz für einen geringeren Stromverbrauch auswählen und diese dann bei Bedarf erhöhen können.

Sie könnten natürlich den 32-kHz-RTC-Ausgang verwenden, aber es ist möglicherweise nur eine unnötige Komplexität. Denken Sie auch daran, dass der PIC18F4550 aufgrund der Art und Weise, wie er sein USB-Modul taktet, eine andere Oszillatorarchitektur als andere PIC18 hat. Dies hindert Sie nicht daran, das 32-kHz-Signal zu verwenden, erfordert jedoch eine andere Konfiguration, an die Sie möglicherweise gewöhnt sind.