Pracuję z mikrokontrolerami STM32. Te mikrokontrolery mają opcję ustawienia pinów wejściowych jako pociągania w górę lub w dół:
Wcześniej podawałem zewnętrzny rezystor podciągający lub rozłączający wszędzie tam, gdzie jest to wymagane, ale teraz zastanawiam się, czy mogę pozbyć się zewnętrznych elementów i użyć funkcji rozkładania samego mikrokontrolera.
Czy to będzie dobra rzecz?
Czy jest jakiś przypadek użycia, w którym powinienem podjąć dodatkowe środki ostrożności lub w ogóle nie korzystać z tej funkcji?
Odpowiedzi:
Tak ... Możesz ... To sprawdzona funkcja. Jeśli widzisz strukturę pinów w instrukcji STM32 Reference, możesz zobaczyć, że ma wymagane komponenty -
Jeśli to spełni twoje wymagania, możesz zrezygnować z zewnętrznych komponentów.
Edytuj Pamiętaj, że przy wzmocnieniu Piny zostaną przywrócone. Jeśli nie utrudnia to aplikacji, to dobrze! Dlatego dobrą praktyką jest najpierw zainicjować sekcję IO, a następnie przejść do innych urządzeń peryferyjnych.
źródło
Ogólnie rzecz biorąc, doskonale jest używać wewnętrznych rezystorów podciągających lub podciągających.
Wadą jest to, że można zapomnieć włączyć ją z poziomu oprogramowania, co może powodować niewielki ból głowy. Zewnętrzne podciągnięcia zawsze będą dostępne. Nie zapomnij więc włączyć wewnętrznych i zaoszczędzić dużo powierzchni PCB poprzez zmniejszenie liczby komponentów.
Wewnętrzne rezystory podciągające i podciągające STM32 mają zwykle wartość między a . 50 k Ω30 kΩ 50 kΩ
Przed użyciem rezystorów wewnętrznych należy zawsze sprawdzić, czy aplikacja wymaga określonej wartości rezystora podwyższającego lub obniżającego. Na przykład nie używaj ich z I 2 C , ponieważ te wartości będą na to zbyt wysokie.
źródło
O ile rezystory pullup i pulldown nie są aktywne podczas resetowania (podejrzewam, że nie są, ale nie znam urządzeń STM32), podczas resetowania występuje niezdefiniowany stan pinów. Jest to jeden z głównych powodów korzystania z zewnętrznych rezystorów pullup lub pulldown.
źródło
Jak powiedzieli inni, wewnętrzne podciągania i podciągania są w porządku, o ile:
W ostatnim punkcie pamiętaj, że wejścia CMOS na średnim poziomie napięcia mogą powodować znaczny prąd przejściowy na ich parze wejściowej. Może to powodować problem w systemie niskiego poboru mocy podczas uruchamiania.
Ogólnie rzecz biorąc, zewnętrzne rezystory ściągające stworzą bardziej konserwatywny projekt.
źródło
Oprócz innych drobnych wyjątków wymienionych we wszystkich odpowiedziach, wewnętrzne rezystory podciągające są w wielu przypadkach zbyt słabe dla I²C .
źródło