wtorek, 24 maja 2016

STM32F4 - Discovery - Wymiana kwarcu na płytce

W tym poście chciałbym opisać sposób w jaki należy przeprowadzić wymianę kwarcu na płytce STM32F4 Discovery.

Opis


Na samym początku należy zapoznać się z dokumentacją producenta odnośnie maksymalnej dopuszczalnej wartości kwarcu. Zgodnie z dokumentacją [1] wartość ta powinna mieścić się w zakresie od 4 do 26 MHz.

Kolejnym krokiem jest zapoznanie się z schematem podłączenia jaki został zastosowany na płytce Discovery oraz aktualną wartością umieszczonych kondensatorów w obwodzie kwarcu.

Rys. 1. Schemat części z kwarcem


Jak widać kwarc jest umieszczony pomiędzy zworką a rezystorem 220 Ohm, Drugim elementem są kondensatory wspomagające wzbudzenie układu o wartości 20pF. Po zorientowaniu się jak prezentuje się układ należy dobrać odpowiedni układ kwarcu. W związku z tym, że max dopuszczalna wartość wynosi 26MHz to umieszczony zostanie kwarc o wartości 25MHz, ponieważ taki udało mi się znaleźć najszybciej w wersji przewlekanej w sklepie TME. Wybrałem model o oznaczeniu HC49US-FF525.000. Jego dokładność wynosi +/-30ppm, co po przeliczeniu na procenty oznacza, że błąd będzie mieścił się w zakresie +/- 0,00003%. Dodatkowo dochodzi jeszcze błąd wynikający z procesu starzenia, on z kolei wynosi +/- 5ppm na rok. Ostatnim czynnikiem wpływającym na błąd będzie temperatura pracy. Najlepiej całość będzie działać w temperaturze pokojowej czyli 25 st. C.

W celu dobrania kondensatorów należy się posłużyć wzorem jaki jest dostępny w internecie. Wygląda on następująco:

C15 = C14 = 2 * CL - (CP + CI)

Gdzie: C15 i C14 kondensatory wspomagające wzbudzenie kwarcu, CL - pojemność ładująca dla zastosowanego kwarcu wynosi ona 18pF, została zdefiniowana w dokumentacji, wartość CP + CI przyjmuje się na poziomie 5-6pF.

Wobec tego wartość C15 oraz C14 będzie wynosić: 2*CL - (CP+CI) = 2*18[pF] - 5[pF] = 31[pF]. Należy zatem przyjąć wartości 30pF dla każdego kondensatora. Są one na płytce umieszczone w obudowie 0603. 

Stosowany kondensator nie wymaga dodatkowego rezystora R24, wobec tego można go zastąpić zworką. Czyli rezystorem o wartości 0OHm. 

Ostatnim elementem jest usunięcie rezystora R68, który znajduje się warstwie dolnej płytki. Brak jego usunięcia powoduje, że zegar może być brany z programatora ST-Link zamiast z kwarcu.

Drugim rezonatorem kwarcowym jaki można umieścić na płytce jest X3 czyli źródło sygnału LSE. Pozwala na zapewnienie bardzo dokładnego źródła sygnału taktującego dla zegara czasu rzeczywistego. 
W tym przypadku nie jest on umieszczony, natomiast zostały przygotowane pola lutownicze pod niego oraz pod kondensatory.

Rys. 2 Podłączenie oscylatora

Na miejsce oznaczone jako X3 umieszcza się kwarc o taktowaniu 32.768kHz. Można wybrać ten który jest umieszczony na schemacie czyli MC-306-32.768K-E3 z kondensatorami o wartości 6,8pF w obudowie 0603. Inną opcją jest wybranie innego o takiej samej częstotliwości. W moim przypadku będzie to 32.768K-12-85SMXR. Posiadają one te same wartości pojemności CL wobec tego kondensatory C16 i C27 będą tej samej wartości. 

Wymiana


Gdy już wiadomo jaki układ został wybrany to należy zabrać się za odlutowanie umieszczonych kondensatorów oraz kwarcu. Najlepszym rozwiązaniem do tego będzie stacja lutownicza na gorące powietrze. W pierwszej kolejności należy podgrzać wyprowadzenia kwarcu i wyciągnąć ten element. Kolejnym krokiem będzie odlutowanie kondensatorów. Po tej operacji należy wyczyścić pady i przylutować nowe komponenty. 

Inny sposób, jeśli nie posiada się możliwości użycia gorącego powietrza, polega na zastosowaniu zwykłej lutownicy i odsysacza. Podobnie jak poprzednio procedurę zaczyna się od odessania cyny z komponentu przewlekanego. Kondensatory natomiast można ściągnąć poprzez naprzemienne dodawanie oraz nagrzewanie poszczególnych końcówek elementu. Należy to robić w bardzo szybkim tempie przenosząc grot z jednego końca na drugi.

Obliczanie taktowania można przeprowadzić w programie CubeMx. Gdzie na początku ustawiamy odpowiednią wartość parametru HSE po czym dostosowujemy pozostałe dzielniki i prędkości. 

Bibliografia

[1] STM32F4 - Dokumentacja