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