Uwagi dotyczące korzystania z wewnętrznych rezystorów podwyższających / obniżających

11

Pracuję z mikrokontrolerami STM32. Te mikrokontrolery mają opcję ustawienia pinów wejściowych jako pociągania w górę lub w dół:

wprowadź opis zdjęcia tutaj

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?

Whiskyjack
źródło
2
Korzystam z wewnętrznego pu / pd, kiedy tylko mogę i nie miałem problemów z sofar. Więc jeśli nie masz ważnego powodu, aby nie używać wbudowanego menu rozwijanego w górę / w dół, możesz po prostu ich użyć. Powodem, dla którego nie można polegać na wewnętrznej pu / pd, może być to, że do wejścia podłączony jest długi przewód, który może łączyć się z innymi liniami powodując nieoczekiwane zachowanie. Wewnętrzny pu / pd jest dość słaby (aby zaoszczędzić prąd) i łatwiej go zakłócać niż na przykład rezystor 10 kohm.
Bimpelrekkie
22
Mała uwaga: może nie działać jako podciąganie podczas resetowania mikrokontrolera. Jeśli więc obwód zewnętrzny jest w zależności od tego, czy jest on ciągle rozłączany, możesz mieć problem podczas uruchamiania. Jeśli to tylko czytane przez mikro, to nie jest problem.
pjc50,
1
@ pjc50 powinieneś zamieścić to jako odpowiedź, nie zauważyłem twojego komentarza, dopóki nie opublikowałem mojej odpowiedzi.
Jason S
1
Jeśli nie możesz zaufać rezystorowi podciągającemu w mikrokontrolerze, nie możesz zaufać niczego w tym kontrolerze. To, co chcesz wiedzieć, to czy jest to przydatne
Passerby
1
@ Whiskeyjack: Należy rozważyć zmianę tytułu pytań. Może „Uwagi dotyczące korzystania z wewnętrznych rezystorów podwyższających / obniżających” lub coś w tym rodzaju.
Rev 1.0

Odpowiedzi:

15

Tak ... Możesz ... To sprawdzona funkcja. Jeśli widzisz strukturę pinów w instrukcji STM32 Reference, możesz zobaczyć, że ma wymagane komponenty -

STM32 Struktura pinów

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.

Swanand
źródło
1
Zgadza się, ale wciąż w trakcie resetowania jest tristes, prawda?
seetharaman
1
Odpowiedziałem na pytanie „Czy mam ufać rozwijanej funkcji mikrokontrolera?” a teraz samo pytanie się zmieniło: - / A wraz z nowym pytaniem odpowiedź Bence Kaulicsa jest bardziej dokładna!
Swanand
Pytanie: czy użycie zestawu wewnętrznych rezystorów podwyższających / obniżających spowoduje rozgrzanie układu?
Caleb Reister
16

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Ω

wprowadź opis zdjęcia tutaj

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.

Bence Kaulics
źródło
12

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.

Jason S.
źródło
10

Jak powiedzieli inni, wewnętrzne podciągania i podciągania są w porządku, o ile:

  • pamiętasz je skonfigurować,
  • są wystarczająco silni,
  • nie kończy się to na walce z zewnętrznym pociągnięciem, i
  • napięcie przy uruchomieniu i resecie nie jest ważne.

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.

Richard
źródło
1
Jeśli chodzi o prądy przelotowe, pomocne może być ujęcie z perspektywy, zauważając, że dla większości mikrokontrolerów poziomy są ogólnie znacznie poniżej wszystkiego, co mogłoby spowodować uszkodzenie urządzenia, ale mogą być rzędu wielkości powyżej najlepszego urządzenia prądy uśpienia obudowy. W niektórych przypadkach takie prądy nie mają znaczenia; w innych są absolutnym zabójcą.
supercat
1
+1 dla „napięcie przy uruchomieniu i resecie nie ma znaczenia”. Musisz zagwarantować, że reszta obwodu będzie w stanie bezpiecznym i spokojnym podczas uruchamiania mikro. Jest to trudniejsze niż się wydaje, gdy weźmiesz pod uwagę, że resetowanie lub szybki cykl zasilania mogą pozostawić resztę obwodu w nieokreślonym stanie lub pozostawić włączony i działający bez nadzoru mikro.
Graham
3

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 .

Scott Seidman
źródło
Oczywiście, niektóre (wiele?) Mikrokontrolerów ma wyprowadzenia typu open-drain specjalnie dla I2C, które możesz skonfigurować
Thomas
1
Nie widziałem nic oprócz słabych podciągnięć / upadków, @Thomas
Scott Seidman