Początkujący mogą wyobrazić sobie układ RP2040 jako „płytę główną telefonu bez ekranu, baterii ani przycisków” — posiada on podstawowe funkcje, ale nie może działać bez tych elementów. Te obwody sprzętowe uzupełniają układ o niezbędne funkcje, takie jak „zasilanie, zegar, wskaźnik stanu i interfejsy”, przekształcając Pico z „samego układu” w „gotową do użycia płytkę rozwojową”.
Raspberry Pi Pico jest wyposażone w kilka obwodów peryferyjnych dla układu RP2040, w tym: zewnętrzny układ pamięci Flash (W25Q16JV), kryształowy oscylator zegara, elementy pasywne, takie jak kondensatory filtrujące zasilanie, złącze USB, przycisk resetowania oraz diodę LED. Większość dostępnych pinów układu RP2040 jest wyprowadzona po obu stronach płytki rozwojowej Pico, natomiast cztery piny są zarezerwowane dla funkcji wewnętrznych, takich jak sterowanie wbudowaną diodą LED, zasilanie płytki rozwojowej oraz wybór trybu BOOT.
Schemat ideowy Raspberry Pi Pico przedstawiono poniżej; składa się on z obwodu zewnętrznego oscylatora kwarcowego, obwodu wyboru trybu BOOT, obwodu wejściowego zasilania, obwodu pomiaru napięcia zasilania, obwodu sterującego diodą LED, obwód interfejsu debugowania, obwód rozszerzenia pinów oraz obwód peryferyjny układu scalonego. Poniżej omówimy je po kolei.
Rysunek 1.4 Schemat obwodu płytki rozwojowej Raspberry Pi Pico
Mówiąc najprościej, obwód peryferyjny płytki rozwojowej Pico składa się z następujących elementów:
- Obwód oscylatora kwarcowego: obwód złożony z oscylatora kwarcowego o częstotliwości 12 MHz (oznaczonego na schemacie jako X1) oraz niewielkich elementów, takich jak kondensatory. Działa on jak „metronom” dla układu — jego działanie oraz komunikacja z urządzeniami peryferyjnymi wymagają precyzyjnego „rytmu czasowego”, a obwód ten dostarcza stabilny „sygnał taktujący” o częstotliwości 12 milionów cykli na sekundę, zapewniając dokładność synchronizacji operacji układu (na przykład synchronizacja 1-milisekundowego błysku diody LED opiera się całkowicie na tym sygnale taktującym w celu obliczenia czasu).
- Obwód wyboru trybu BOOT: Zasadniczo jest to niewielki obwód wyposażony w przycisk BOOTSEL, pełniący rolę „przełącznika trybu rozruchu” dla układu, który po uruchomieniu ma dwa tryby pracy:
- Tryb normalny: uruchamia zapisany program;
- Tryb BOOT: Stan flashowania oprogramowania układowego to „tryb ładowania programu” urządzenia Pico: po podłączeniu Pico do komputera przy przytrzymanym przycisku BOOTSEL urządzenie przełączy się w ten stan (bez uruchamiania starego programu), po czym zostanie rozpoznane przez komputer jako urządzenie pamięci masowej. Wystarczy przeciągnąć do niego zapisany program (oprogramowanie układowe), aby zainstalować nowe funkcje dla Pico.
- Obwód wejściowy zasilania: Jest to obwód odpowiedzialny za zarządzanie zasilaniem (np. układ zasilający U2 na schemacie). Można go podłączyć do źródła zasilania USB (5 V) lub baterii (2–5 V), a obwód ten stabilnie przekształca napięcie wejściowe na 3,3 V wymagane przez układy scalone; filtruje również zakłócenia napięcia, aby zapobiec uszkodzeniu układów scalonych w wyniku wahań napięcia.
- Obwód pomiaru napięcia zasilania: Kompaktowy obwód zaprojektowany do wykrywania napięcia zasilania. Działa jako „wbudowany woltomierz” płytki i umożliwia pomiar napięcia wejściowego w czasie rzeczywistym (na przykład w przypadku zasilania z baterii informuje o ich wyczerpaniu), co ułatwia monitorowanie stanu zasilania.
- Obwód sterujący diodą LED: Mały obwód służący do sterowania wbudowaną diodą LED. Układ może sterować stanem włączenia/wyłączenia tej diody LED za pośrednictwem pinu GPIO25 w celu sygnalizacji stanu (np. miganie podczas działania programu, stałe świecenie po podłączeniu zasilania).
- Obwód interfejsu debugowania: Odnosi się to do złącza DEBUG (złącze 3-pinowe) pokazanego na schemacie, które pełni funkcję „portu diagnostycznego” płytki. Jeśli program jest uszkodzony lub płytka nie działa prawidłowo, podłączenie narzędzia do debugowania do tego interfejsu pozwala sprawdzić wewnętrzny stan pracy układu i zlokalizować miejsce, w którym program uległ uszkodzeniu.
- Obwód przedłużający piny: Obwód przekształcający piny układu scalonego w piny złącza (oznaczone na schemacie jako CON_PICO_40W). Piny samego układu RP2040 są zbyt małe, aby można było podłączyć do nich przewody bezpośrednio; obwód ten rozszerza piny układu na standardowe piny złącza, umożliwiając użycie przewodów typu DuPont do bezpośredniego podłączenia do tych złączy w celu połączenia elementów zewnętrznych, takich jak czujniki i silniki.
- Obwód peryferyjny układu: Obwód złożony z niewielkich elementów, takich jak kondensatory filtrujące i rezystory, rozmieszczonych wokół układu. Na przykład kondensatory filtrujące mogą odfiltrować zakłócenia w zasilaniu, aby zapewnić bardziej stabilne zasilanie układu; rezystory mogą chronić piny przed przepaleniem w wyniku nadmiernego prądu oraz zapobiegać nieprawidłowemu działaniu układu spowodowanemu zakłóceniami zewnętrznymi lub wahaniami prądu.
1. Obwód zasilający
Rysunek 1.5 Schemat obwodu zasilania
Raspberry Pi Pico może być zasilane z zewnętrznego źródła zasilania lub za pomocą kabla micro-USB, a w tym przypadku na uwagę zasługują dwie linie zasilające:
- Linia VBUS: Jest to zasilanie z magistrali microUSB o napięciu 5 V. Jeśli Raspberry Pi Pico nie jest zasilane przez złącze microUSB, w tym punkcie nie będzie dopływu zasilania.
- Linia VSYS: Jest to linia zasilania dla układu zasilacza DC-DC, o zakresie napięcia wejściowego 1,8–5,5 V. Wbudowany układ RT6150B może przekształcić napięcie wejściowe na +3,3 V i przekazać je do układu MCU.
Cała konwersja napięcia zasilania jest realizowana przez układ zasilacza DC-DC RT6150B. Układ RT6150A/B jest wysokowydajnym, przełączającym konwerterem mocy o stałej częstotliwości, który może pracować przy napięciu wejściowym wyższym, niższym lub równym napięciu wyjściowemu. Układ ten charakteryzuje się niskim statycznym poborem mocy (częstotliwość przełączania jest ustawiona na 1 MHz, a prąd statyczny w trybie oszczędzania energii wynosi zaledwie 60 μA), kompaktowymi rozmiarami, możliwością wyboru trybów pracy (z kontrolą aktywacji trybu oszczędzania energii PSM) oraz inne zalety; jest powszechnie stosowany w modułach zasilających do produktów przenośnych oraz ręcznych przyrządów pomiarowych i mierników.
Wprowadzenie do układu scalonego zarządzania zasilaniem RT6150
(1) Parametry układu i projekt obwodu referencyjnego
Rysunek 1.6 Parametry i projekt obwodu referencyjnego układu zasilającego RT6150
(2) Schemat referencyjny trasowania płytki drukowanej
Rysunek 1.7 Schemat referencyjny trasowania PCB dla układu zasilającego RT6150
W tym przypadku pin GPIO23 urządzenia Raspberry Pi Pico jest podłączony do strony PS układu zasilającego, a tryb pracy tego układu można przełączać poprzez sterowanie poziomem wysokim i niskim na wyjściu GPIO23:
- PS = 0: tryb PFM (modulacja częstotliwości impulsów), wartość domyślna, zapewnia optymalną wydajność pracy układu. Jest to „wysoko wydajny tryb oszczędzania energii”, który gwarantuje, że układ zasilający działa z maksymalną wydajnością, co wystarcza do codziennego użytku.
- PS= 1: W trybie PWM (modulacja szerokości impulsu) odpowiada to trybowi „Stabilna fala przy dużym obciążeniu”, który zapewnia płynniejsze dostarczanie mocy i umożliwia zasilanie cięższych urządzeń; włączenie tego trybu podczas próbkowania ADC (przetwarzanie analogowo-cyfrowe) zapewni większą dokładność danych.
Układ RP2040 w Raspberry Pi Pico wymaga dwóch źródeł zasilania: 3,3 V (dla wejść/wyjść) oraz 1,1 V (dla napięcia rdzenia cyfrowego układu). Ponieważ układ RP2040 posiada zintegrowany regulator LDO 3,3 V–1,1 V, nie ma potrzeby martwić się o zasilanie napięciem 1,1 V.
2. Obwód oscylatora kwarcowego zegara
Rysunek 1.8 Obwód oscylatora kwarcowego zegara
Układy scalone nie mogą funkcjonować bez precyzyjnego „rytmu czasowego” — na przykład zadania takie jak miganie diody LED w odstępach 1-sekundowych lub transmisja danych zsynchronizowana z czujnikiem opierają się na stabilnym „sygnałem zegara”. Obwód ten pełni rolę „zewnętrznego precyzyjnego metronomu” dla Pico, którego zadaniem jest zapewnienie stabilnego odniesienia czasowego dla układu RP2040. Poniżej przedstawiono jego główne elementy i ich funkcje:
W tym przypadku wybrano oscylator kwarcowy w obudowie SMD3225-4P o częstotliwości 12 MHz. Kondensatory o pojemności 15 pF po obu stronach oscylatora kwarcowego zapewniają bardziej stabilną częstotliwość oscylacji, a rezystor o wartości 1 kΩ podłączony szeregowo w ścieżce XOUT służy do ograniczenia prądu, co pozwala zapobiec skróceniu żywotności oscylatora kwarcowego lub jego uszkodzeniu spowodowanemu przeciążeniem. W przypadku wyboru innych oscylatorów kwarcowych wartości te mogą wymagać dostosowania.
Gdy nie są wymagane ścisłe wymagania dotyczące synchronizacji, zegar układu RP2040 można ustawić tak, aby był zasilany z oscylatora wewnętrznego.
3. Obwód wyboru trybu BOOT
Rysunek 1.9 Obwód wyboru trybu BOOT
Obwód ten składa się z dwóch kluczowych modułów funkcjonalnych układu Pico: jednym z nich jest obwód wyboru trybu BOOT, który kontroluje „stan uruchomienia”, a drugim jest obwód pamięci Flash służący do przechowywania programów — ten pierwszy umożliwia przełączanie między stanami „uruchomienia istniejącego programu” a „załadowania nowego programu”, natomiast ten drugi pełni rolę „wbudowanego małego dysku twardego” urządzenia Pico, służącego do przechowywania programów. Ich konkretne funkcje opisano szczegółowo poniżej:
- Wbudowaną pamięć flash QSPI o pojemności 2 MB można (ponownie) zaprogramować za pośrednictwem portu debugowania szeregowego lub w specjalnym trybie urządzenia pamięci masowej USB.
- Górna część to obwód wyboru trybu BOOT. Przycisk przełączania trybu uruchamiania jest połączony szeregowo z rezystorem 1 kΩ z pinem QSPI_SS układu RP2040. Ten rezystor szeregowy gwarantuje, że zawartość pamięci Flash zostanie wykonana po naciśnięciu przycisku resetowania w trybie BootLoader.
Po włączeniu zasilania układu RP2040 pin QSPI_SS automatycznie przyjmuje domyślny stan podciągnięcia do poziomu logicznego 1, a układ RP2040 sprawdza wartość tego wejścia/wyjścia podczas procesu uruchamiania; gdy QSPI_SS ma wartość logiczną 0, układ RP2040 przechodzi w tryb BootLoader.
- Jeśli przycisk BOOTSEL nie zostanie naciśnięty podczas resetowania lub włączania zasilania: urządzenie przechodzi w tryb normalny, a mikrokontroler uruchamia zapisany program z pamięci Flash.
- Gdy przycisk BOOTSEL zostanie naciśnięty podczas resetowania lub włączania zasilania, mikrokontroler przechodzi w tryb BootLoader w celu „zaprogramowania nowego oprogramowania”; w tym momencie urządzenie Pico pojawi się na komputerze jako „pendrive USB”, a oprogramowanie układowe można zaktualizować po prostu poprzez przeciągnięcie i upuszczenie na nie pliku programu w formacie uf2.
Przez krótki czas po włączeniu zasilania stan pinu QSPI_SS nie może być zagwarantowany, co można zapewnić poprzez dodanie rezystora podciągającego. W przypadku pamięci Flash W25Q128 zewnętrzny rezystor podciągający nie jest konieczny, dlatego jest on oznaczony jako NO-FIT i można go pominąć podczas lutowania.
Poniżej przedstawiono schemat obwodu pamięci Flash, którego zasilanie działa przy tym samym napięciu, co pin zasilania 3,3 V układu. Piny układu W25Q128 są podłączone do pinów QSPIx układu RP2040. W pobliżu pinu zasilania (VCC) pamięci Flash W25Q128 umieszczono kondensator filtrujący o pojemności 2,2 μF oraz 100 nF, aby zapewnić stabilne napięcie zasilania 3,3 V dla układu W25Q128JVSIQ.
4. Obwód pomiarowy zasilania
Rysunek 1.10 Obwód pomiaru napięcia zasilania
Obwód ten stanowi „moduł monitorowania napięcia zasilania” urządzenia Pico, który wykorzystuje funkcję przetwornika analogowo-cyfrowego (ADC) układu scalonego do pomiaru napięcia zasilania urządzenia Pico w czasie rzeczywistym (na przykład w celu sprawdzenia poziomu naładowania baterii). Najpierw zapoznajmy się z podstawami działania przetwornika analogowo-cyfrowego (ADC) układu RP2040, a następnie przyjrzyjmy się funkcji tego obwodu:
Przetwornik analogowo-cyfrowy (ADC) układu RP2040 jest „narzędziem do pomiaru sygnałów ciągłych” (takich jak poziomy napięcia) i posiada 5 kanałów pomiarowych:
- 4 kanały odpowiadają 4 pinom od GPIO26 do GPIO29;
- Jednym z nich jest „czujnik temperatury” wbudowany w układ, który może mierzyć temperaturę układu bez żadnych zewnętrznych elementów;
- Istnieje również pin ADC_VREF, który służy jako „punkt odniesienia” dla pomiaru napięcia przez przetwornik ADC (domyślnie 3,3 V; określa on zakres napięcia, jaki może mierzyć przetwornik ADC).
Piny przetwornika ADC są wewnętrznie zabezpieczone diodami odwróconymi i charakteryzują się 12-bitową rozdzielczością (co odpowiada podziałowi zakresu 0–3,3 V na 4096 małych kroków w celu uzyskania dokładniejszego pomiaru napięcia).
Tak zwany obwód pomiaru napięcia zasilania wykorzystuje pin GPIO29 (odpowiadający kanałowi ADC3) do pomiaru napięcia zasilania (VSYS) urządzenia Pico:
- Kondensator C3: filtruje sygnał napięciowy w celu ustabilizowania mierzonego napięcia i zapobiegania zakłóceniom wpływającym na wyniki pomiaru;
- Rezystory R5 i R6: dzielą napięcie VSYS (maks. 5,5 V) na 1/3 (ponieważ przetwornik ADC może mierzyć tylko do 3,3 V, podzielone napięcie mieści się w zakresie pomiarowym);
- Element Q1: zapobiega przedostawaniu się napięcia z pinu przetwornika ADC do obwodu zasilającego po wyłączeniu urządzenia Pico, pełniąc funkcję ochronną;
Wreszcie, pin GPIO29 pobiera próbkę „podzielonego napięcia VSYS”, a po konwersji można uzyskać aktualne napięcie zasilania (na przykład w przypadku zasilania z baterii można monitorować poziom naładowania baterii).
5. Obwód peryferyjny układu scalonego
Rysunek 1.11 Obwód peryferyjny układu scalonego
Układ RP2040 pełni rolę „głównego mózgu” urządzenia Pico, jednak do samodzielnego działania wymaga „wsparcia zabezpieczającego” — poniższy obwód peryferyjny działa jako „moduł pomocniczy”, który uzupełnia układ o niezbędne funkcje, takie jak „komunikacja, zasilanie oraz ochronę przed zakłóceniami”, umożliwiając układowi stabilną pracę i realizację funkcji, w tym połączenia USB oraz akwizycji danych przez przetwornik analogowo-cyfrowy (ADC), które są konkretnie podzielone na następujące części:
- Sekcja komunikacji USB: Dwa piny sygnałowe interfejsu USB (USB_DP / USB_DM) muszą być połączone z interfejsem USB szeregowo z rezystorami o wartości 27 Ω — rezystory te pełnią funkcję „zabezpieczeń i optymalizatorów”: nie tylko zapobiegają przepaleniu się elementów spowodowanemu nadmiernym prądem podczas zwarć, ale także umożliwiają płynniejszą transmisję sygnału i redukują zakłócenia, pozwalając na wykorzystanie USB zarówno do programowania oprogramowania układowego, jak i do podłączania zewnętrznych urządzeń USB.
- Zasilanie układu – wewnętrzne wejście zasilania LDO: Wewnątrz układu znajduje się „przetwornica napięcia”, która obniża napięcie o 3.3 V do 1,1 V w celu zasilania głównych obwodów. Kondensatory o pojemności 2,2 µF umieszczone obok pinów wejściowych i wyjściowych pełnią rolę „regulatorów napięcia”, filtrując wahania napięcia w celu zapewnienia stabilnego zasilania na poziomie 1,1 V oraz zapobiegania nieprawidłowemu działaniu układu spowodowanemu niestabilnym napięciem.
- Wejście zasilania urządzeń peryferyjnych GPIO: Mały kondensator o pojemności 100 nF znajdujący się obok pinu GPIO pełni funkcję „filtra przeciwzakłóceniowego”, który odfiltrowuje zakłócenia w zasilaniu, zapewniając większą stabilność pinu GPIO podczas zasilania elementów zewnętrznych lub transmisji sygnałów.
- TESTEN: Jest to pin przeznaczony do testów fabrycznych, który jest bezpośrednio podłączony do przewodu uziemiającego i nie wymaga żadnej obsługi ze strony użytkownika.
- Zasilanie odniesienia przetwornika analogowo-cyfrowego (ADC): Domyślnie przetwornik ADC wykorzystuje wbudowane napięcie 3,3 V układu Pico jako „skalę pomiarową” do wykrywania napięcia; jeśli wymagana jest wyższa dokładność próbkowania, można podłączyć dedykowany zewnętrzny układ referencyjny napięcia (taki jak LM4040), ale w tym przypadku przetwornik ADC będzie mógł mierzyć napięcia tylko w zakresie od 0 do 3,0 V.
- Zasilanie przetwornika analogowo-cyfrowego (ADC) – pin ADC_AVDD: Dostarcza napięcie 3,3 V do modułu przetwornika analogowo-cyfrowego, wykorzystując stabilne napięcie wyjściowe 3,3 V z poprzedzającego układu zarządzania zasilaniem.
6. Obwód sterujący diodą LED
Rysunek 1.12 Obwód sterujący diodą LED
Służy do testowania pinu GPIO25 układu RP2040, a jego włączaniem i wyłączaniem można sterować za pomocą programu.
7. Obwód interfejsu debugowania
Rysunek 1.13 Obwód interfejsu debugowania
Obwód ten pełni funkcję „portu debugowania programu” dla Pico — gdy napisany przez Ciebie program działa nieprawidłowo (np. płytka nie reaguje lub działa nieprawidłowo), może pomóc w rozwiązywaniu problemów i bezpośrednim wgrywaniu kodu, oferując większą elastyczność niż standardowe wgrywanie przez USB. Jego konkretne funkcje opisano poniżej:
Istnieją dwa sposoby przeprogramowania pamięci Flash w Pico:
- Tryb normalny: przeciągnij i upuść plik uf2 przez USB (proste, ale z ograniczonymi funkcjami);
- Ten port debugowania SWD (interfejs DEBUG): umożliwia reset systemu, wczytywanie i uruchamianie kodu oraz „interaktywne debugowanie” (tj. podgląd wewnętrznego stanu pracy układu podczas działania programu w celu dokładnej lokalizacji błędów programu) bez konieczności naciskania jakichkolwiek przycisków.
Dodatkowo:
- Piny debugowania SWDIO i SWCLK układu RP2040 mają wbudowane rezystory podciągające o wartości 60 kΩ, więc nie są wymagane żadne dodatkowe rezystory;
- Jednak w codziennej praktyce częściej używa się terminu „debugowanie przez port szeregowy USB”, co oznacza najprostszą metodę pobierania i debugowania programów, a podejście oparte na USB jest wystarczające dla większości początkujących.
8. Obwód rozszerzający piny
Rysunek 1.14 Obwód rozszerzenia pinów
Piny są tutaj wyprowadzone przez 2 zestawy otworów „1×20Pin” (każdy zestaw zawiera 20 otworów na piny), a odstęp między sąsiednimi otworami wynosi 2,54 mm — jest to powszechny standardowy odstęp dla elementów elektronicznych, kompatybilny ze standardowymi przewodami typu DuPont i płytkami rozszerzeń.
Zaletą tej konstrukcji jest jej „podwójne przeznaczenie”: można ją albo podłączyć bezpośrednio do elementów, takich jak czujniki i diody LED, za pomocą przewodów typu DuPont w celu przeprowadzenia eksperymentów, albo przylutować Pico do niestandardowej płytki drukowanej, co ułatwia integrację Pico z własnymi gotowymi projektami (takich jak małe roboty i urządzenia do monitorowania środowiska).
9. Opis punktów testowych
W urządzeniu Raspberry Pi Pico dostępnych jest 6 punktów testowych (TP1 do TP6):
Rysunek 1.15 Opis funkcji Schemat punktów testowych (TP1–TP6) dla Raspberry Pi Pico
Te „punkty testowe (TP1–TP6)” to zarezerwowane „zapasowe małe interfejsy” na płytce Pico — zazwyczaj główne interfejsy, takie jak Micro-USB i piny, są wystarczające, ale gdy trzeba przeprowadzić testy seryjne w celu sprawdzenia, czy płytka rozwojowa działa prawidłowo, czy główny interfejs jest uszkodzony lub czy wymagane są specjalne operacje, punkty testowe mogą tymczasowo zastąpić niektóre funkcje. Funkcje poszczególnych punktów testowych są następujące:
- TP1, TP2, TP3: Są to „zapasowe porty USB” — jeśli port Micro-USB na płytce jest uszkodzony, można użyć tych trzech punktów testowych do podłączenia sygnałów USB w celu zastąpienia funkcji oryginalnego portu USB;
- TP4: Nie nadaje się do użytku zewnętrznego; należy go zignorować.
- TP5: Odpowiada GPIO25 (pin wbudowanej diody LED), ale nie zaleca się jego używania — ponieważ jego napięcie może wahać się jedynie między 0 V a napięciem włączającym diodę LED, co stanowi zbyt wąski zakres, a wykorzystanie go jako wyjścia może powodować problemy;
- TP6: Jest to „punkt wyzwalający alternatywny tryb BOOT”. Jeśli przycisk BOOTSEL nie działa prawidłowo, podczas włączania zasilania urządzenia należy zewrzeć TP6 z linią masy, a Pico przejdzie w tryb flashowania „programowania metodą przeciągnij i upuść”.
Raspberry Pi Pico jest wyposażone w kilka obwodów peryferyjnych dla układu RP2040, w tym: zewnętrzny układ pamięci Flash (W25Q16JV), kryształowy oscylator zegara, elementy pasywne, takie jak kondensatory filtrujące zasilanie, złącze USB, przycisk resetowania oraz diodę LED. Większość dostępnych pinów układu RP2040 jest wyprowadzona po obu stronach płytki rozwojowej Pico, natomiast cztery piny są zarezerwowane dla funkcji wewnętrznych, takich jak sterowanie wbudowaną diodą LED, zasilanie płytki rozwojowej oraz wybór trybu BOOT.
Schemat ideowy Raspberry Pi Pico przedstawiono poniżej; składa się on z obwodu zewnętrznego oscylatora kwarcowego, obwodu wyboru trybu BOOT, obwodu wejściowego zasilania, obwodu pomiaru napięcia zasilania, obwodu sterującego diodą LED, obwód interfejsu debugowania, obwód rozszerzenia pinów oraz obwód peryferyjny układu scalonego. Poniżej omówimy je po kolei.
Rysunek 1.4 Schemat obwodu płytki rozwojowej Raspberry Pi Pico
Mówiąc najprościej, obwód peryferyjny płytki rozwojowej Pico składa się z następujących elementów:
- Obwód oscylatora kwarcowego: obwód złożony z oscylatora kwarcowego o częstotliwości 12 MHz (oznaczonego na schemacie jako X1) oraz niewielkich elementów, takich jak kondensatory. Działa on jak „metronom” dla układu — jego działanie oraz komunikacja z urządzeniami peryferyjnymi wymagają precyzyjnego „rytmu czasowego”, a obwód ten dostarcza stabilny „sygnał taktujący” o częstotliwości 12 milionów cykli na sekundę, zapewniając dokładność synchronizacji operacji układu (na przykład synchronizacja 1-milisekundowego błysku diody LED opiera się całkowicie na tym sygnale taktującym w celu obliczenia czasu).
- Obwód wyboru trybu BOOT: Zasadniczo jest to niewielki obwód wyposażony w przycisk BOOTSEL, pełniący rolę „przełącznika trybu rozruchu” dla układu, który po uruchomieniu ma dwa tryby pracy:
- Tryb normalny: uruchamia zapisany program;
- Tryb BOOT: Stan flashowania oprogramowania układowego to „tryb ładowania programu” urządzenia Pico: po podłączeniu Pico do komputera przy przytrzymanym przycisku BOOTSEL urządzenie przełączy się w ten stan (bez uruchamiania starego programu), po czym zostanie rozpoznane przez komputer jako urządzenie pamięci masowej. Wystarczy przeciągnąć do niego zapisany program (oprogramowanie układowe), aby zainstalować nowe funkcje dla Pico.
- Obwód wejściowy zasilania: Jest to obwód odpowiedzialny za zarządzanie zasilaniem (np. układ zasilający U2 na schemacie). Można go podłączyć do źródła zasilania USB (5 V) lub baterii (2–5 V), a obwód ten stabilnie przekształca napięcie wejściowe na 3,3 V wymagane przez układy scalone; filtruje również zakłócenia napięcia, aby zapobiec uszkodzeniu układów scalonych w wyniku wahań napięcia.
- Obwód pomiaru napięcia zasilania: Kompaktowy obwód zaprojektowany do wykrywania napięcia zasilania. Działa jako „wbudowany woltomierz” płytki i umożliwia pomiar napięcia wejściowego w czasie rzeczywistym (na przykład w przypadku zasilania z baterii informuje o ich wyczerpaniu), co ułatwia monitorowanie stanu zasilania.
- Obwód sterujący diodą LED: Mały obwód służący do sterowania wbudowaną diodą LED. Układ może sterować stanem włączenia/wyłączenia tej diody LED za pośrednictwem pinu GPIO25 w celu sygnalizacji stanu (np. miganie podczas działania programu, stałe świecenie po podłączeniu zasilania).
- Obwód interfejsu debugowania: Odnosi się to do złącza DEBUG (złącze 3-pinowe) pokazanego na schemacie, które pełni funkcję „portu diagnostycznego” płytki. Jeśli program jest uszkodzony lub płytka nie działa prawidłowo, podłączenie narzędzia do debugowania do tego interfejsu pozwala sprawdzić wewnętrzny stan pracy układu i zlokalizować miejsce, w którym program uległ uszkodzeniu.
- Obwód przedłużający piny: Obwód przekształcający piny układu scalonego w piny złącza (oznaczone na schemacie jako CON_PICO_40W). Piny samego układu RP2040 są zbyt małe, aby można było podłączyć do nich przewody bezpośrednio; obwód ten rozszerza piny układu na standardowe piny złącza, umożliwiając użycie przewodów typu DuPont do bezpośredniego podłączenia do tych złączy w celu połączenia elementów zewnętrznych, takich jak czujniki i silniki.
- Obwód peryferyjny układu: Obwód złożony z niewielkich elementów, takich jak kondensatory filtrujące i rezystory, rozmieszczonych wokół układu. Na przykład kondensatory filtrujące mogą odfiltrować zakłócenia w zasilaniu, aby zapewnić bardziej stabilne zasilanie układu; rezystory mogą chronić piny przed przepaleniem w wyniku nadmiernego prądu oraz zapobiegać nieprawidłowemu działaniu układu spowodowanemu zakłóceniami zewnętrznymi lub wahaniami prądu.
1. Obwód zasilający
Rysunek 1.5 Schemat obwodu zasilania
Raspberry Pi Pico może być zasilane z zewnętrznego źródła zasilania lub za pomocą kabla micro-USB, a w tym przypadku na uwagę zasługują dwie linie zasilające:
- Linia VBUS: Jest to zasilanie z magistrali microUSB o napięciu 5 V. Jeśli Raspberry Pi Pico nie jest zasilane przez złącze microUSB, w tym punkcie nie będzie dopływu zasilania.
- Linia VSYS: Jest to linia zasilania dla układu zasilacza DC-DC, o zakresie napięcia wejściowego 1,8–5,5 V. Wbudowany układ RT6150B może przekształcić napięcie wejściowe na +3,3 V i przekazać je do układu MCU.
Cała konwersja napięcia zasilania jest realizowana przez układ zasilacza DC-DC RT6150B. Układ RT6150A/B jest wysokowydajnym, przełączającym konwerterem mocy o stałej częstotliwości, który może pracować przy napięciu wejściowym wyższym, niższym lub równym napięciu wyjściowemu. Układ ten charakteryzuje się niskim statycznym poborem mocy (częstotliwość przełączania jest ustawiona na 1 MHz, a prąd statyczny w trybie oszczędzania energii wynosi zaledwie 60 μA), kompaktowymi rozmiarami, możliwością wyboru trybów pracy (z kontrolą aktywacji trybu oszczędzania energii PSM) oraz inne zalety; jest powszechnie stosowany w modułach zasilających do produktów przenośnych oraz ręcznych przyrządów pomiarowych i mierników.
Wprowadzenie do układu scalonego zarządzania zasilaniem RT6150
(1) Parametry układu i projekt obwodu referencyjnego
Rysunek 1.6 Parametry i projekt obwodu referencyjnego układu zasilającego RT6150
(2) Schemat referencyjny trasowania płytki drukowanej
Rysunek 1.7 Schemat referencyjny trasowania PCB dla układu zasilającego RT6150
W tym przypadku pin GPIO23 urządzenia Raspberry Pi Pico jest podłączony do strony PS układu zasilającego, a tryb pracy tego układu można przełączać poprzez sterowanie poziomem wysokim i niskim na wyjściu GPIO23:
- PS = 0: tryb PFM (modulacja częstotliwości impulsów), wartość domyślna, zapewnia optymalną wydajność pracy układu. Jest to „wysoko wydajny tryb oszczędzania energii”, który gwarantuje, że układ zasilający działa z maksymalną wydajnością, co wystarcza do codziennego użytku.
- PS= 1: W trybie PWM (modulacja szerokości impulsu) odpowiada to trybowi „Stabilna fala przy dużym obciążeniu”, który zapewnia płynniejsze dostarczanie mocy i umożliwia zasilanie cięższych urządzeń; włączenie tego trybu podczas próbkowania ADC (przetwarzanie analogowo-cyfrowe) zapewni większą dokładność danych.
Układ RP2040 w Raspberry Pi Pico wymaga dwóch źródeł zasilania: 3,3 V (dla wejść/wyjść) oraz 1,1 V (dla napięcia rdzenia cyfrowego układu). Ponieważ układ RP2040 posiada zintegrowany regulator LDO 3,3 V–1,1 V, nie ma potrzeby martwić się o zasilanie napięciem 1,1 V.
2. Obwód oscylatora kwarcowego zegara
Rysunek 1.8 Obwód oscylatora kwarcowego zegara
Układy scalone nie mogą funkcjonować bez precyzyjnego „rytmu czasowego” — na przykład zadania takie jak miganie diody LED w odstępach 1-sekundowych lub transmisja danych zsynchronizowana z czujnikiem opierają się na stabilnym „sygnałem zegara”. Obwód ten pełni rolę „zewnętrznego precyzyjnego metronomu” dla Pico, którego zadaniem jest zapewnienie stabilnego odniesienia czasowego dla układu RP2040. Poniżej przedstawiono jego główne elementy i ich funkcje:
W tym przypadku wybrano oscylator kwarcowy w obudowie SMD3225-4P o częstotliwości 12 MHz. Kondensatory o pojemności 15 pF po obu stronach oscylatora kwarcowego zapewniają bardziej stabilną częstotliwość oscylacji, a rezystor o wartości 1 kΩ podłączony szeregowo w ścieżce XOUT służy do ograniczenia prądu, co pozwala zapobiec skróceniu żywotności oscylatora kwarcowego lub jego uszkodzeniu spowodowanemu przeciążeniem. W przypadku wyboru innych oscylatorów kwarcowych wartości te mogą wymagać dostosowania.
Gdy nie są wymagane ścisłe wymagania dotyczące synchronizacji, zegar układu RP2040 można ustawić tak, aby był zasilany z oscylatora wewnętrznego.
3. Obwód wyboru trybu BOOT
Rysunek 1.9 Obwód wyboru trybu BOOT
Obwód ten składa się z dwóch kluczowych modułów funkcjonalnych układu Pico: jednym z nich jest obwód wyboru trybu BOOT, który kontroluje „stan uruchomienia”, a drugim jest obwód pamięci Flash służący do przechowywania programów — ten pierwszy umożliwia przełączanie między stanami „uruchomienia istniejącego programu” a „załadowania nowego programu”, natomiast ten drugi pełni rolę „wbudowanego małego dysku twardego” urządzenia Pico, służącego do przechowywania programów. Ich konkretne funkcje opisano szczegółowo poniżej:
- Wbudowaną pamięć flash QSPI o pojemności 2 MB można (ponownie) zaprogramować za pośrednictwem portu debugowania szeregowego lub w specjalnym trybie urządzenia pamięci masowej USB.
- Górna część to obwód wyboru trybu BOOT. Przycisk przełączania trybu uruchamiania jest połączony szeregowo z rezystorem 1 kΩ z pinem QSPI_SS układu RP2040. Ten rezystor szeregowy gwarantuje, że zawartość pamięci Flash zostanie wykonana po naciśnięciu przycisku resetowania w trybie BootLoader.
Po włączeniu zasilania układu RP2040 pin QSPI_SS automatycznie przyjmuje domyślny stan podciągnięcia do poziomu logicznego 1, a układ RP2040 sprawdza wartość tego wejścia/wyjścia podczas procesu uruchamiania; gdy QSPI_SS ma wartość logiczną 0, układ RP2040 przechodzi w tryb BootLoader.
- Jeśli przycisk BOOTSEL nie zostanie naciśnięty podczas resetowania lub włączania zasilania: urządzenie przechodzi w tryb normalny, a mikrokontroler uruchamia zapisany program z pamięci Flash.
- Gdy przycisk BOOTSEL zostanie naciśnięty podczas resetowania lub włączania zasilania, mikrokontroler przechodzi w tryb BootLoader w celu „zaprogramowania nowego oprogramowania”; w tym momencie urządzenie Pico pojawi się na komputerze jako „pendrive USB”, a oprogramowanie układowe można zaktualizować po prostu poprzez przeciągnięcie i upuszczenie na nie pliku programu w formacie uf2.
Przez krótki czas po włączeniu zasilania stan pinu QSPI_SS nie może być zagwarantowany, co można zapewnić poprzez dodanie rezystora podciągającego. W przypadku pamięci Flash W25Q128 zewnętrzny rezystor podciągający nie jest konieczny, dlatego jest on oznaczony jako NO-FIT i można go pominąć podczas lutowania.
Poniżej przedstawiono schemat obwodu pamięci Flash, którego zasilanie działa przy tym samym napięciu, co pin zasilania 3,3 V układu. Piny układu W25Q128 są podłączone do pinów QSPIx układu RP2040. W pobliżu pinu zasilania (VCC) pamięci Flash W25Q128 umieszczono kondensator filtrujący o pojemności 2,2 μF oraz 100 nF, aby zapewnić stabilne napięcie zasilania 3,3 V dla układu W25Q128JVSIQ.
4. Obwód pomiarowy zasilania
Rysunek 1.10 Obwód pomiaru napięcia zasilania
Obwód ten stanowi „moduł monitorowania napięcia zasilania” urządzenia Pico, który wykorzystuje funkcję przetwornika analogowo-cyfrowego (ADC) układu scalonego do pomiaru napięcia zasilania urządzenia Pico w czasie rzeczywistym (na przykład w celu sprawdzenia poziomu naładowania baterii). Najpierw zapoznajmy się z podstawami działania przetwornika analogowo-cyfrowego (ADC) układu RP2040, a następnie przyjrzyjmy się funkcji tego obwodu:
Przetwornik analogowo-cyfrowy (ADC) układu RP2040 jest „narzędziem do pomiaru sygnałów ciągłych” (takich jak poziomy napięcia) i posiada 5 kanałów pomiarowych:
- 4 kanały odpowiadają 4 pinom od GPIO26 do GPIO29;
- Jednym z nich jest „czujnik temperatury” wbudowany w układ, który może mierzyć temperaturę układu bez żadnych zewnętrznych elementów;
- Istnieje również pin ADC_VREF, który służy jako „punkt odniesienia” dla pomiaru napięcia przez przetwornik ADC (domyślnie 3,3 V; określa on zakres napięcia, jaki może mierzyć przetwornik ADC).
Piny przetwornika ADC są wewnętrznie zabezpieczone diodami odwróconymi i charakteryzują się 12-bitową rozdzielczością (co odpowiada podziałowi zakresu 0–3,3 V na 4096 małych kroków w celu uzyskania dokładniejszego pomiaru napięcia).
Tak zwany obwód pomiaru napięcia zasilania wykorzystuje pin GPIO29 (odpowiadający kanałowi ADC3) do pomiaru napięcia zasilania (VSYS) urządzenia Pico:
- Kondensator C3: filtruje sygnał napięciowy w celu ustabilizowania mierzonego napięcia i zapobiegania zakłóceniom wpływającym na wyniki pomiaru;
- Rezystory R5 i R6: dzielą napięcie VSYS (maks. 5,5 V) na 1/3 (ponieważ przetwornik ADC może mierzyć tylko do 3,3 V, podzielone napięcie mieści się w zakresie pomiarowym);
- Element Q1: zapobiega przedostawaniu się napięcia z pinu przetwornika ADC do obwodu zasilającego po wyłączeniu urządzenia Pico, pełniąc funkcję ochronną;
Wreszcie, pin GPIO29 pobiera próbkę „podzielonego napięcia VSYS”, a po konwersji można uzyskać aktualne napięcie zasilania (na przykład w przypadku zasilania z baterii można monitorować poziom naładowania baterii).
5. Obwód peryferyjny układu scalonego
Rysunek 1.11 Obwód peryferyjny układu scalonego
Układ RP2040 pełni rolę „głównego mózgu” urządzenia Pico, jednak do samodzielnego działania wymaga „wsparcia zabezpieczającego” — poniższy obwód peryferyjny działa jako „moduł pomocniczy”, który uzupełnia układ o niezbędne funkcje, takie jak „komunikacja, zasilanie oraz ochronę przed zakłóceniami”, umożliwiając układowi stabilną pracę i realizację funkcji, w tym połączenia USB oraz akwizycji danych przez przetwornik analogowo-cyfrowy (ADC), które są konkretnie podzielone na następujące części:
- Sekcja komunikacji USB: Dwa piny sygnałowe interfejsu USB (USB_DP / USB_DM) muszą być połączone z interfejsem USB szeregowo z rezystorami o wartości 27 Ω — rezystory te pełnią funkcję „zabezpieczeń i optymalizatorów”: nie tylko zapobiegają przepaleniu się elementów spowodowanemu nadmiernym prądem podczas zwarć, ale także umożliwiają płynniejszą transmisję sygnału i redukują zakłócenia, pozwalając na wykorzystanie USB zarówno do programowania oprogramowania układowego, jak i do podłączania zewnętrznych urządzeń USB.
- Zasilanie układu – wewnętrzne wejście zasilania LDO: Wewnątrz układu znajduje się „przetwornica napięcia”, która obniża napięcie o 3.3 V do 1,1 V w celu zasilania głównych obwodów. Kondensatory o pojemności 2,2 µF umieszczone obok pinów wejściowych i wyjściowych pełnią rolę „regulatorów napięcia”, filtrując wahania napięcia w celu zapewnienia stabilnego zasilania na poziomie 1,1 V oraz zapobiegania nieprawidłowemu działaniu układu spowodowanemu niestabilnym napięciem.
- Wejście zasilania urządzeń peryferyjnych GPIO: Mały kondensator o pojemności 100 nF znajdujący się obok pinu GPIO pełni funkcję „filtra przeciwzakłóceniowego”, który odfiltrowuje zakłócenia w zasilaniu, zapewniając większą stabilność pinu GPIO podczas zasilania elementów zewnętrznych lub transmisji sygnałów.
- TESTEN: Jest to pin przeznaczony do testów fabrycznych, który jest bezpośrednio podłączony do przewodu uziemiającego i nie wymaga żadnej obsługi ze strony użytkownika.
- Zasilanie odniesienia przetwornika analogowo-cyfrowego (ADC): Domyślnie przetwornik ADC wykorzystuje wbudowane napięcie 3,3 V układu Pico jako „skalę pomiarową” do wykrywania napięcia; jeśli wymagana jest wyższa dokładność próbkowania, można podłączyć dedykowany zewnętrzny układ referencyjny napięcia (taki jak LM4040), ale w tym przypadku przetwornik ADC będzie mógł mierzyć napięcia tylko w zakresie od 0 do 3,0 V.
- Zasilanie przetwornika analogowo-cyfrowego (ADC) – pin ADC_AVDD: Dostarcza napięcie 3,3 V do modułu przetwornika analogowo-cyfrowego, wykorzystując stabilne napięcie wyjściowe 3,3 V z poprzedzającego układu zarządzania zasilaniem.
6. Obwód sterujący diodą LED
Rysunek 1.12 Obwód sterujący diodą LED
Służy do testowania pinu GPIO25 układu RP2040, a jego włączaniem i wyłączaniem można sterować za pomocą programu.
7. Obwód interfejsu debugowania
Rysunek 1.13 Obwód interfejsu debugowania
Obwód ten pełni funkcję „portu debugowania programu” dla Pico — gdy napisany przez Ciebie program działa nieprawidłowo (np. płytka nie reaguje lub działa nieprawidłowo), może pomóc w rozwiązywaniu problemów i bezpośrednim wgrywaniu kodu, oferując większą elastyczność niż standardowe wgrywanie przez USB. Jego konkretne funkcje opisano poniżej:
Istnieją dwa sposoby przeprogramowania pamięci Flash w Pico:
- Tryb normalny: przeciągnij i upuść plik uf2 przez USB (proste, ale z ograniczonymi funkcjami);
- Ten port debugowania SWD (interfejs DEBUG): umożliwia reset systemu, wczytywanie i uruchamianie kodu oraz „interaktywne debugowanie” (tj. podgląd wewnętrznego stanu pracy układu podczas działania programu w celu dokładnej lokalizacji błędów programu) bez konieczności naciskania jakichkolwiek przycisków.
Dodatkowo:
- Piny debugowania SWDIO i SWCLK układu RP2040 mają wbudowane rezystory podciągające o wartości 60 kΩ, więc nie są wymagane żadne dodatkowe rezystory;
- Jednak w codziennej praktyce częściej używa się terminu „debugowanie przez port szeregowy USB”, co oznacza najprostszą metodę pobierania i debugowania programów, a podejście oparte na USB jest wystarczające dla większości początkujących.
8. Obwód rozszerzający piny
Rysunek 1.14 Obwód rozszerzenia pinów
Piny są tutaj wyprowadzone przez 2 zestawy otworów „1×20Pin” (każdy zestaw zawiera 20 otworów na piny), a odstęp między sąsiednimi otworami wynosi 2,54 mm — jest to powszechny standardowy odstęp dla elementów elektronicznych, kompatybilny ze standardowymi przewodami typu DuPont i płytkami rozszerzeń.
Zaletą tej konstrukcji jest jej „podwójne przeznaczenie”: można ją albo podłączyć bezpośrednio do elementów, takich jak czujniki i diody LED, za pomocą przewodów typu DuPont w celu przeprowadzenia eksperymentów, albo przylutować Pico do niestandardowej płytki drukowanej, co ułatwia integrację Pico z własnymi gotowymi projektami (takich jak małe roboty i urządzenia do monitorowania środowiska).
9. Opis punktów testowych
W urządzeniu Raspberry Pi Pico dostępnych jest 6 punktów testowych (TP1 do TP6):
Rysunek 1.15 Opis funkcji Schemat punktów testowych (TP1–TP6) dla Raspberry Pi Pico
Te „punkty testowe (TP1–TP6)” to zarezerwowane „zapasowe małe interfejsy” na płytce Pico — zazwyczaj główne interfejsy, takie jak Micro-USB i piny, są wystarczające, ale gdy trzeba przeprowadzić testy seryjne w celu sprawdzenia, czy płytka rozwojowa działa prawidłowo, czy główny interfejs jest uszkodzony lub czy wymagane są specjalne operacje, punkty testowe mogą tymczasowo zastąpić niektóre funkcje. Funkcje poszczególnych punktów testowych są następujące:
- TP1, TP2, TP3: Są to „zapasowe porty USB” — jeśli port Micro-USB na płytce jest uszkodzony, można użyć tych trzech punktów testowych do podłączenia sygnałów USB w celu zastąpienia funkcji oryginalnego portu USB;
- TP4: Nie nadaje się do użytku zewnętrznego; należy go zignorować.
- TP5: Odpowiada GPIO25 (pin wbudowanej diody LED), ale nie zaleca się jego używania — ponieważ jego napięcie może wahać się jedynie między 0 V a napięciem włączającym diodę LED, co stanowi zbyt wąski zakres, a wykorzystanie go jako wyjścia może powodować problemy;
- TP6: Jest to „punkt wyzwalający alternatywny tryb BOOT”. Jeśli przycisk BOOTSEL nie działa prawidłowo, podczas włączania zasilania urządzenia należy zewrzeć TP6 z linią masy, a Pico przejdzie w tryb flashowania „programowania metodą przeciągnij i upuść”.