Tester DS3231

    Zadání: Budeme přesně měřit předpokládanou frekvenci krystalu 32768,0Hz modulu [DS3231]. Pak čip zahřejeme – stačí přiložit prst – dojde k teplotnímu dritfu (třeba jen 0.025Hz) tuto malinkou změnu frekvence detekujeme. Vyvoláme nucenou teplotní kompenzaci a ověříme, jestli proběhla.
    pico_DS3231_tester.ino [k náhledu] [ke stažení

    Dílčí úkol: Přesné měření frekvence mikrokontrolerem. Procesor RP2040 s PIO stavovými automaty jako reciproční frekvenční čítač. Řešení jsem našel, ale úplně snadná cesta to nebyla viz článek [reciproční frekvenční čítač].

Jak oddělit zrno od plev

    Chceme ověřit, že křemíkové srdce DS3231 tepe na správné frekvenci a změřit, že čip má funkční teplotní kompenzaci. Potřeboval jsem přesný čas do pár drobných projektů, vylovil jsem ze šuplíku pár kusů modulů a pak jsem zjistil, že některé vůbec nejsou tak přesné jak by měly být. Ne každý čip je originál a ne každý klon je funkčním klonem.

    DS3231 má vyvedený pin 32K, kde se po zapnutí napájení objeví aktuální takt krystalu. V ideálním světě by byl přesně 32768.0 Hz

Ideální hodinový takt byl-li by, byl by takto krásný.

    Tedy připojím k čítači, zahřeju s vidím, jestli se frekvence srovná... Ale to je zdlouhavé a není to plně prokazatelné a opakovatelné měření. Navíc, kdo má na stole čítač frekvence?
Postavme tester DS3231. Čip má automatickou teplotní kompenzaci každý 64 sekund nebo ji lze vyvolat příkazem.
reálná frekvence na které tepe krystal uvnitř čipu

Tester DS3231 na Raspberry Pi Pico (RP2040)

    Modul testujeme bez baterie. Po připojení RP2040 k USB dostane napájení. Tím bude zajištěno, že první automatická teplotní kompenzace přijde za 64 sekund. Za tu dobu stihneme měření. Tester komunikuje textově do sériového terminálu.

Připojení modulu ZS-042 nebo HW-084 k Raspberry Pi Pico
  32K ... GP17    (pin číslo 22)
  SWQ ... nepřipojujeme
  SCL ... GP5     (pin číslo 7)
  SDA ... GP4     (pin číslo 6)
  GND ... GND     (pin číslo 38)
  VCC ... 3V3 Out (pin číslo 36)

Další info k logice programu a měření obsahují podrobné komentáře viz [pico_DS3231_tester]. Je nezbytné mít vyřešený reciproční frekvenční čítač viz [blog].

Mezi asi dvaceti hodinovými moduly jsem našel šest vadných, co měly už při startu ujetou frekvenci a pak jeden, který nereagoval na teplotní kompenzaci a jak se zahřál, tak už měl frekvenci mimo už od začátku.


úspěšný test



selhání s frekvencí mimo toleranci

frekvence plave už od začátku


Novější Starší