Jak najlepiej skonfigurować nieużywane linie GPIO – różnice w zaleceniach producentów

Udostępnij

Niepodłączone linie GPIO to pozornie błahy szczegół projektu, który może jednak powodować zwiększony pobór prądu, niestabilność systemu lub podatność na zakłócenia EMC. Różni producenci mikrokontrolerów zalecają odmienne podejścia do ich konfiguracji – od aktywnego rezystora „pull-down” aż po analogowy tryb wejściowy. Przyjrzyjmy się, jakie są te różnice i jak dobrać właściwe ustawienia w praktyce.

Pozostawienie linii GPIO mikrokontrolera w stanie pływającym, czyli floating (niepodłączonym do określonego potencjału) może prowadzić do przypadkowych przełączeń, zwiększonego poboru prądu w buforach wejściowych czy nawet do wprowadzania zakłóceń do pobliskich ścieżek PCB. W nowoczesnych układach o niskim poborze energii problem ten jest szczególnie istotny, ponieważ w skrajnych przypadkach mikrokontroler może wybudzać się niepotrzebnie z trybu uśpienia lub nie osiągać deklarowanego poboru prądu w trybie czuwania.

Różne podejścia producentów do inicjalizacji nieużywanych I/O – przegląd przykładowych zaleceń

STMicroelectronics (STM32)

STMicroelectronics przeważnie zaleca, aby nieużywane piny GPIO mikrokontrolerów STM32 konfigurować jako wejścia analogowe, choć w niektórych dokumentach dodaje także informację o możliwości wymuszenia określonego stanu logicznego przez zewnętrzny lub wewnętrzny pull-down/pull-up. Tryb analogowy jest tutaj nieprzypadkowy, bowiem przełączenie w tryb wejścia cyfrowego spowoduje aktywowanie wejściowego przerzutnika Schmitta, który przy częstym kluczowaniu (np. przez zakłócenia indukowane w pobliżu) będzie zwiększał pobór prądu układu. W części dokumentów można też znaleźć informację o opcjonalnym przełączeniu danej linii w tryb wyjścia cyfrowego, jednak najczęściej zalecany jest wspomniany wcześniej tryb wejścia analogowego.

Microchip (PIC, AVR)

Microchip w notach aplikacyjnych zaleca ustawienie nieużywanych linii jako wejścia z wewnętrznym lub (najlepiej) zewnętrznym podciąganiem (pull-up). Uzasadnieniem jest uzyskiwana dzięki temu lepsza odporność na zakłócenia i niższy pobór prądu. Co ważne, nieużywane linie I/O nie powinny być łączone na stałe z potencjałem masy (GND) lub zasilania (VDD), gdyż przypadkowe przełączenie ich przez program w tryb wyjścia (o przeciwnym stanie logicznym, np. linia w stanie „0” podłączona do VDD) spowoduje przepływ prądu o nadmiernie dużym natężeniu. Podobne zalecenie jest zresztą słuszne dla innych rodzin MCU.

Texas Instruments (MSP430)

W przypadku popularnej rodziny MSP430 producent kładzie największy nacisk na oszczędność energii: zaleca ustawienie nieużywanych pinów jako wyjścia w stanie niskim, ewentualnie jako wejścia z włączonym rezystorem pull-down.

Nordic Semiconductor (nRF5x, nRF52, nRF53)

Dość zaskakujące na tle powyższych informacji mogą wydawać się zalecenia firmy Nordic Semiconductor. Przykładowo wg dokumentacji układów z serii nRF9151 nieużywane linie GPIO (o numerach P0.00-P0.31), mogą pozostać całkowicie „zawieszone”, bez szczególnych wymogów co do konfiguracji programowej. Jedyne zalecenie dotyczące niewykorzystywanych linii I/O dotyczy… przylutowania ich do PCB w celu poprawy stabilności mechanicznej i skuteczności odprowadzania ciepła ze struktury krzemowej SoC.

Podsumowanie

Jak widać, nie istnieje jedno, uniwersalne dla wszystkich rodzin mikrokontrolerów zalecenie dotyczące konfiguracji nieużywanych GPIO – różni producenci przyjmują różne filozofie projektowe. W praktyce warto więc zawsze sprawdzić rekomendacje zawarte w dokumentacji producenta układu i zadbać o to, by żaden pin nie pozostał w stanie nieokreślonym bez uprzedniej weryfikacji – przestrzeganie tej zasady pozwala uniknąć wielu trudnych do zdiagnozowania problemów.

Mateusz
Mateusz
Redaktor technologiczny portalu HardwareDesigner.pl. Doświadczony konstruktor urządzeń elektronicznych i programista mikrokontrolerów, w szczególności STM32 i ESP32.

Czytaj więcej

Wybrane dla Ciebie