Wzbudzenie drgań rezonatorów kwarcowych 32768 Hz

Wzbudzenie drgań rezonatorów kwarcowych 32768 Hz

Wiele aplikacji mikrokontrolerów korzysta z wbudowanego generatora sygnału zegarowego niskiej częstotliwości jako taktowania RTC. Nic w tym dziwnego, bowiem cały rdzeń może tkwić w uśpieniu i pobierać przy tym znikomo małą ilość energii, zaś odmierzanie czasu przebiega niezależnie. Problemy pojawiają się podczas prób wzbudzenia kwarcu do oscylacji.

Kolejny problem zdiagnozowany podczas realizacji praktycznych układów daje się zauważyć w przypadku takich „pacjentów”, jak np. popularny mikrokontroler STM32F103RBT6. Pracuje on w układzie, który okresowo nadaje pakiet danych poprzez GPRS, a podczas realizacji tego zadania wymaga się minimalizacji poboru prądu. Oprócz zegara wysokiej częstotliwości (HSE), służącego do taktowania rdzenia, w tej aplikacji używany jest również sygnał zegarowy o niskiej częstotliwości (LSE) do odmierzania czasu. Całość jest zasilana z ogniw 18650 ze stabilizatorem o napięciu wyjściowym 3 V.

Pierwsza wersja otoczenia „zegarkowego” rezonatora kwarcowego, ukazana została na rysunku 1. Producent mikrokontrolera, firma ST, przestrzega przed używaniem kwarców o pojemności 12,5 pF, dopuszcza natomiast te o pojemności nie większej niż 7 pF. W nocie katalogowej znajduje się piękny wzór pozwalający obliczyć pojemność kondensatorów przy rezonatorze kwarcowym. Według moich obliczeń kondensatory 4,7 pF powinny być idealne do kwarcu LFXTAL016178 o pojemności obciążenia 6 pF.

Rysunek 1. Schemat ideowy typowego podłączenia rezonatora kwarcowego

Po podłączeniu program przechodzi do uruchomienia LSE i… zatrzymuje się. Kwarc nie wytwarza drgań. Dopiero po przytknięciu sondy oscyloskopu do wejścia generatora kwarcowego oscylacje się pojawiają. Druga płytka wypada jeszcze gorzej, kwarc w ogóle nie rusza. Próbuję wymienić zarówno kwarc - na inny egzemplarz, jak i kondensatory - na takie o lekko odmiennej pojemności, jednak bez rezultatu. Układ rusza, kiedy jest jeszcze gorący po lutowaniu, lecz godzinę później dramat powraca: generator znów traci zdolność do samodzielnego wzbudzania oscylacji rezonatora kwarcowego.

Szukam więc winnych: gdzie zrobiłem błąd? Projektuję elektronikę już od wielu lat, różne rzeczy widziałem, niejedną pomyłkę popełniłem, lecz taka sytuacja nie zdarza mi się często: producent podaje wzory do obliczeń, stosuję się do nich, po czym uruchomienie układu kończy się kompletną klapą. Akurat układ STM32F103RBT6 ma generator kwarcowy o niskiej transkonduktacji, której na dodatek nie można w żaden sposób regulować, więc będzie on wybitnie czuły na wszelkie niedoskonałości układowe. Odszukałem zatem dokument o oznaczeniu AN2867, traktujący właśnie o projektowaniu oscylatorów dla mikrokontrolerów ST, po czym zacząłem go szczegółowo wertować.

Pierwszą rzeczą, jaką zauważyłem, są bardzo restrykcyjne wymagania dotyczące obwodu drukowanego. Przykład takiej poprawnie zaprojektowanej płytki znajduje się na rysunku 2.

Rysunek 2. Przykład zalecanej topografii płytki drukowanej

Odległość między rezonatorem w obudowie THT a mikrokontrolerem wynosząca dosłownie 2...3 mm (na rysunku nie uwidoczniono skali) oraz elementy w obudowach 0603 lub nawet 0402 wyglądają pięknie. Tymczasem moja rzeczywistość okazała się nieco inna i obejmowała kwarc w relatywnie dużej obudowie SMD, elementy 1206 (wymóg klienta) oraz druk dwustronny (rysunek 3).

Rysunek 3. Układ elementów i położenie ścieżek na płytce omawianego układu

Nie ma tu mowy o tak małych odległościach między podzespołami, jak wspomniane wcześniej, ponieważ same komponenty są po prostu duże. W moim projekcie jako ekranowanie dla kwarcu dałem płaszczyznę miedzi na dolnej warstwie, tymczasem ST bardzo poważnie traktuje wykonywanie „otoczek” z masy zarówno wokół samego rezonatora, jak i współpracujących z nim elementów. Co ciekawe, układ z rysunku 2, podany jako przykład poprawnego projektu, nie spełnia tych wymogów i to może się wydawać podejrzane.

Uzasadnieniem dla szczególnych wymagań dotyczących ekranowania podzespołów było zmniejszenie ich wrażliwości na zewnętrzne zakłócenia elektromagnetyczne. Tyle że mój układ był wystarczająco odporny, gdyż w ogóle się nie włączał! Gdyby na wejściu oscylatora pojawiały się zakłócenia, miałyby one szanse zainicjować drgania kwarcu, jednak do tego etapu w ogóle nie dochodziło. Przyjrzałem się zatem samemu układowi oscylatora, który znajduje się na rysunku 4. Ot, zwykły generator w układzie Pierce’a, nic odkrywczego. Rezystor REXT jest stosowany w sytuacjach, w których mogłoby dochodzić do przesterowania kwarcu, jednak w generatorach LSE z reguły się ich nie stosuje.

Rysunek 4. Schemat ideowy generatora kwarcowego

Charakterystyka przejściowa tego tworu powinna wyglądać tak, jak na rysunku 5. Jeżeli inwerter znajdował się w obszarze nasycenia, niewiele mogło mu pomóc. Trzeba byłoby go skłonić do wejścia w obszar liniowy, kiedy to zachowywał się jak zwykły wzmacniacz odwracający, gdyż tylko wtedy miałyby szansę powstawać jakieś oscylacje. Mój układ z jakichś powodów nie chciał utrzymać inwertera w obszarze liniowym.

Zainteresował mnie rezystor RF, ponieważ powinien on przecież linearyzować inwerter - ujemne sprzężenie zwrotne, które realizuje, do tego właśnie dąży. Według schematu z rysunku 5 powinien się on znajdować wewnątrz mikrokontrolera. Tymczasem tabela 1 sugeruje, że ten rezystor należy podłączyć dodatkowo, jakby nie był wbudowany w strukturę układu.

Przeprowadziłem więc szybki test: odlutowałem wszystkie elementy współpracujące z generatorem LSE i do jego wejścia podłączyłem regulowany zasilacz poprzez rezystor 10 MΩ. Gdyby RF istniał w układzie, próg przerzutu inwertera w oscylatorze wypadałby przy napięciu innym niż połowa napięcia zasilającego (rysunek 5). Tymczasem obserwacja napięcia na wyjściu tegoż inwertera przy zmieniającym się napięciu wejściowym potwierdziła, że RF nie jest wbudowany w układ, ponieważ charakterystyka przejściowa wykazuje bardzo strome przejście właśnie w połowie napięcia zasilającego. Bingo!

Rysunek 5. Charakterystyka przejściowa inwertera w generatorze

Idąc za ciosem, dodałem RF samodzielnie. Stosowałem już kiedyś tę sztuczkę, gdy ATtiny24 nie chciał wzbudzać drgań w „zegarkowym” rezonatorze kwarcowym, lecz tutaj nie chciałem uciekać się do podobnej metody, ponieważ miałem na uwadze, że ten rezystor jest już wbudowany. Po modyfikacji schemat wygląda jak na rysunku 6.

Rysunek 6. Schemat ideowy po modyfikacji

Na próbę wlutowałem rezystor 10 MΩ w obudowie 0805 pod rezonatorem kwarcowym w kilku egzemplarzach tego układu, wykonanych na potrzeby testowania prototypów. Efekt okazał się wspaniały: wszystkie układy zadziałały idealnie od pierwszego uruchomienia, zmierzona częstotliwość drgań LSE wynosiła tyle, ile trzeba (brak odstrojenia od częstotliwości rezonansowej kwarcu), ponadto uruchomienie LSE następuje w niezauważalnie krótkim czasie. Tymczasem nota katalogowa zakłada typowy czas potrzebny do uruchomienia LSE na poziomie 3 s. Pobór energii przez układ nie zmienił się z kolei ani trochę. Nie zauważyłem też jakiejś wyjątkowej podatności LSE na zakłócenia elektromagnetyczne. Mówiąc krótko - jeden rezystor zmienił wszystko na lepsze.

Michał Kurzela, EP

Bibliografia:

  1. AN2867. Application note: Oscillator design guide for STM8AF/AL/S, STM32 MCUs and MPUs
Artykuł ukazał się w
Elektronika Praktyczna
kwiecień 2024

Elektronika Praktyczna Plus lipiec - grudzień 2012

Elektronika Praktyczna Plus

Monograficzne wydania specjalne

Elektronik październik 2024

Elektronik

Magazyn elektroniki profesjonalnej

Raspberry Pi 2015

Raspberry Pi

Wykorzystaj wszystkie możliwości wyjątkowego minikomputera

Świat Radio listopad - grudzień 2024

Świat Radio

Magazyn krótkofalowców i amatorów CB

Automatyka, Podzespoły, Aplikacje październik 2024

Automatyka, Podzespoły, Aplikacje

Technika i rynek systemów automatyki

Elektronika Praktyczna październik 2024

Elektronika Praktyczna

Międzynarodowy magazyn elektroników konstruktorów

Elektronika dla Wszystkich listopad 2024

Elektronika dla Wszystkich

Interesująca elektronika dla pasjonatów