Estou trabalhando com microcontroladores STM32. Esses microcontroladores têm a opção de definir o pino de entrada para cima ou para baixo:
Anteriormente, eu usava resistores externos de pull-up ou pull-down sempre que necessário, mas agora estou pensando se posso eliminar componentes externos e usar o recurso pull-down do próprio microcontrolador.
Isso será uma boa coisa a fazer?
Existe algum caso de uso em que devo tomar precauções extras ou não usar esse recurso?
Respostas:
Sim ... Você pode ... É um recurso comprovado. Se você vir a estrutura de pinos no manual de referência do STM32, poderá ver que ela possui componentes necessários -
Se isso satisfizer seus requisitos, você poderá eliminar componentes externos.
Editar Lembre-se de que, ao ligar, os pinos serão tristados. Se isso não prejudicar sua aplicação, é bom! É por isso que é uma boa prática iniciar a seção IO primeiro e depois prosseguir com outros periféricos.
fonte
Em geral, é perfeitamente adequado usar os resistores internos de pull-up ou pull-down.
A desvantagem é que você pode esquecer de habilitá-lo a partir do software, o que pode causar um pouco de dor de cabeça. As flexões externas sempre estarão lá. Portanto, não se esqueça de ativar os internos e economizar muita área de PCB, reduzindo o número do componente.
Você deve sempre verificar se sua aplicação precisa de um certo valor de resistor de pull-up ou pull-down antes de usar os resistores internos. Por exemplo , não os use com I 2 C , pois esses valores serão muito altos para isso.
fonte
A menos que os resistores pullup e pulldown estejam ativos durante a redefinição (suspeito que não estejam, mas não estou familiarizado com os dispositivos STM32), há um estado de pino indefinido na redefinição. Esse é um dos principais motivos para usar resistores externos de pull-pull ou pulldown.
fonte
Como outros já disseram, pull-ups e pull-downs internos são bons desde que:
No último ponto, lembre-se de que as entradas CMOS no nível de média tensão podem causar uma corrente de disparo significativa em seu par de entradas. Isso pode causar um problema em um sistema de baixa energia durante a inicialização.
Em geral, resistores de tração externos apresentam um design mais conservador.
fonte
Além das outras exceções finas listadas em todas as respostas, os resistores de pull-up internos são muito fracos para I²C em muitos casos.
fonte