Considerações ao usar resistores pull-up / down internos

11

Estou trabalhando com microcontroladores STM32. Esses microcontroladores têm a opção de definir o pino de entrada para cima ou para baixo:

insira a descrição da imagem aqui

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?

Whiskeyjack
fonte
2
Eu uso o pu / pd interno sempre que posso e não tive problemas sofar. Portanto, a menos que você tenha um motivo válido para não usar o pull-up embutido, você pode apenas usá-los. Um motivo para não confiar no pu / pd interno pode ser o fato de a entrada ter um fio longo conectado a ele, que pode acoplar-se a outras linhas, causando um comportamento inesperado. O pu / pd interno é bastante fraco (para economizar corrente) e é mais facilmente perturbado do que, por exemplo, um resistor de 10 kohm.
Bimpelrekkie
21
Uma pequena observação: ele pode não funcionar como um pullup enquanto o microcontrolador está sendo reiniciado. Portanto, se houver circuitos externos, dependendo de serem desativados o tempo todo, você pode ter um problema na inicialização. Se está apenas sendo lido pelo micro, isso não é um problema.
Pjc50
1
@ pjc50 você deveria ter postado isso como resposta, não notei seu comentário até depois de postar minha resposta.
Jason S
1
Se você não pode confiar no resistor pull-up em um microcontrolador, não pode confiar em nada nesse controlador. O que você quer saber é se é útil embora
Transeunte
1
@ Whiskeyjack: Você deve mudar o título das perguntas. Talvez "Considerações ao usar resistores internos de pull-up / down" ou algo assim.
Rev1.0

Respostas:

15

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 -

Estrutura de pinos STM32

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.

Swanand
fonte
1
Certo, mas ainda durante a redefinição é tristado, certo?
Seetharaman
1
Respondi à pergunta "Devo confiar no recurso suspenso do microcontrolador?" e agora a própria pergunta mudou: - / E com nova pergunta, a resposta de Bence Kaulics é mais precisa!
Swanand
Pergunta: o uso de vários resistores de pull / down internos fará com que o chip aqueça?
Caleb Reister #
16

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.

30 kΩ50 kΩ

insira a descrição da imagem aqui

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.

Bence Kaulics
fonte
11

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.

Jason S
fonte
10

Como outros já disseram, pull-ups e pull-downs internos são bons desde que:

  • você se lembra de configurá-los,
  • eles são fortes o suficiente,
  • você não acaba lutando contra eles com um puxão externo, e
  • a tensão na inicialização e na reinicialização não é importante.

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.

Richard
fonte
1
No que diz respeito às correntes de passagem, pode ser útil colocar as coisas em perspectiva, observando que, para a maioria dos microcontroladores, os níveis geralmente estão muito abaixo de qualquer coisa que possa causar danos ao dispositivo, mas eles podem ter ordens de magnitude acima das melhores do dispositivo. caso correntes de sono. Em alguns casos, essas correntes não importam; em outros, eles são um assassino absoluto.
Supercat 22/11
1
+1 para "a tensão na inicialização e na redefinição não é importante". Você precisa garantir que o restante do seu circuito esteja em um estado seguro e inativo enquanto o micro estiver inicializando. Isso é mais difícil do que parece, quando você considera que uma reinicialização ou um ciclo de energia rápido pode deixar o restante do seu circuito em um estado indeterminado ou deixá-lo ligado e funcionando sem que o micro fique de olho nele.
Graham
3

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.

Scott Seidman
fonte
Certamente, alguns microcontroladores (muitos?) Possuem pinos de dreno aberto especificamente para I2C que você pode configurar #
Thomas
1
Eu não vi nada, mas fracos pull ups / baixos, @Thomas
Scott Seidman