É realmente uma má idéia deixar um pino de entrada do MCU flutuando?

28

Ouvi dizer que deixar um pino flutuando em um MCU quando configurado como uma entrada (vs. a saída padrão) é ruim para o pino e, eventualmente, pode causar falhas prematuras. Isso é verdade? NB, na minha instância, o pino está flutuando em algum lugar entre 0,3V e 1,3V devido a um sinal de vídeo recebido. Às vezes, isso cai na zona de ninguém de 0,8V - 2,0V ao operar a partir de 3,3V.

Thomas O
fonte
1
Você verificou a folha de dados e a documentação da família MCU? Eles devem ter algumas respostas bem definidas e você pode ver como os pinos são implementados internamente.
XTL
@XTL, examinei-os, mas não encontrei nenhuma referência a ele. Eles dizem que os pinos flutuantes podem entrar em estados indefinidos, mas não mencionam se isso pode causar problemas.
Thomas O
Há uma diferença entre uma entrada digital flutuante e uma entrada definida como analógica. Parece que esta é uma entrada analógica.
Martin
@ Martin Eu não consigo fazer do pino uma entrada analógica. Eu tenho uma fatia de tempo de ~ 125ns para cada pixel no vídeo (relógio de instruções de 25ns), portanto não posso gastar mais um nanossegundo.
Thomas O
2
Qual MCU você está usando que padroniza todos os pinos para a saída ? Isso soa como uma receita para o desastre.
Connor Lobo

Respostas:

31

Problema:
Deixar um pino configurado como uma entrada flutuante é perigoso simplesmente porque você não pode ter certeza do estado do pino. Como você mencionou, por causa do seu circuito, seu pino às vezes era BAIXO ou às vezes na terra de ninguém ou às vezes podia ir para ALTO.

Resultado:
essencialmente, a entrada flutuante definitivamente causará operação irregular do chip ou comportamento imprevisível. Percebi que algumas fichas congelaram simplesmente movendo minha mão para mais perto do tabuleiro (eu não estava usando uma pulseira antiestática) ou alguns teriam um comportamento de inicialização diferente cada vez que o tabuleiro ligava.

Por que:
isso acontece simplesmente porque, se houver ruído externo nesse pino, o pino oscilará, o que drenará a energia, pois os portões lógicos do CMOS drenam a energia quando trocam de estado.

Solução: a
maioria dos micros hoje em dia também possui pullups internos, o que pode impedir que esse comportamento ocorra. Outra opção seria configurar o pino como uma saída para que não afete os internos.

IntelliChick
fonte
3
Se você o estiver usando como entrada, definitivamente causará entradas erráticas, mas isso realmente afeta outras partes do chip e causa problemas de inicialização?
endolith 27/11
3
Se eu estiver ignorando o pino e não o estiver usando em nenhum periférico, isso ainda causará problemas?
Thomas O
@endolith e Thomas - acho que a mikeselectricstuff respondeu isso para você! Isso poderia causar problemas simplesmente introduzindo ruído em outras partes do sistema. Eu sei que foi por causa do pino flutuante, porque assim que o configurei para uma saída, os problemas desapareceram!
IntelliChick
2
Não entendo como um pedaço de metal flutuante pode introduzir ruído em outras partes do sistema. Ele capta ruído, certamente, mas se você não está prestando atenção à entrada, isso não deve importar. Os problemas com mãos agitando nas proximidades estão realmente relacionados a entradas flutuantes não utilizadas ?
endolith 30/11/10
Os pinos flutuantes da TIL não são inofensivos. Obrigado IntelliChick e @Yann!
Nick Johnson
13

É um pouco pior do que apenas estar em um estado desconhecido ou alternar desnecessariamente. Atualmente, os circuitos digitais são principalmente do tipo CMOS, com os transistores alternando os lados alto e baixo; quando temos 1s e 0s claros, eles estão desativados ou saturados, os dois estados mais eficientes para os transistores. No meio, no entanto, há uma região de operação linear; é usado para amplificadores analógicos, mas não é tão eficiente quanto os extremos - o que significa que mais energia é desperdiçada como calor no transistor. Na pior das hipóteses, os transistores laterais alto e baixo vazam assim (porque o pino na verdade não é nem alto nem baixo), e eles podem se combinar para causar uma corrente notável no chip enquanto tentam elevar o estado interno e baixo - possivelmente fazendo o mesmo com o próximo portão em uma reação em cadeia. O calor pode se tornar um problema, mesmo que a energia não seja. As soluções da IntelliChick ainda se aplicam.

Para pinos também conectados a ADCs, alguns microcontroladores oferecem a função de desativar o buffer de entrada digital, para evitar que esse problema e o vazamento distorçam o sinal.

Yann Vernier
fonte
As entradas não têm histerese?
endolith 29/11
3
As entradas de gatilho Schmitt fazem, mas geralmente não.
Yann Vernier #
6

Na prática, o principal efeito é o aumento do consumo de energia. Se um pino está realmente flutuando, em vez de conectado a alguma fonte de tensão indeterminada, é possível que ocorra oscilação, que além de aumentar o consumo de energia, pode introduzir ruído em outras partes do sistema. Qualquer pino que possa ser usado para uma entrada ADC ou comparadora terá a facilidade de desconectar o buffer de entrada digital para evitar esse problema. (DIDR no AVR, ADCON1 / ANSEL no PIC)

mikeselectricstuff
fonte
O que exatamente oscilaria e por quê?
endolith 30/11/10
@endolith - O buffer de entrada no pino. Pense em um buffer inversor com um capacitor entre a entrada e a saída.
Connor Wolf
@FakeName: Mas onde está o inversor? Onde está a saída que está retornando à entrada?
endolith
3
Basicamente, todos os pinos do IC IO passam por um buffer (geralmente um inversor) na matriz do IC . Como o buffer terá fios para a entrada e saída, pode haver acoplamento capacitivo entre a entrada e a saída. Por conseguinte, se a entrada for suficientemente alta impedância, uma transição na saída do inversor pode provocar a entrada do inversor para alterar, fazendo com que a saída para mudar novamente, etc ....
Connor lobo
4

Geralmente, é uma má idéia deixar o pino de entrada tão flutuante quanto isso pode causar:

a) Problemas funcionais - estado de entrada desconhecido, alternância (por exemplo, pode desencadear uma interrupção com ISR indefinido que travaria o processador)

b) Maior consumo de energia - provavelmente a porta de entrada é semelhante ao inversor CMOS. Com essa estrutura, quando a entrada está longe o suficiente de qualquer trilho (por exemplo, com meia alimentação), a corrente de passagem significativa flui constantemente.

c) Se a corrente cruzada fluir, os fenômenos conhecidos como injeção de portador quente podem realmente diminuir a vida útil do dispositivo. A porta de entrada pode ser projetada apenas para comutação normal e não condução contínua, para que o dispositivo possa falhar catastroficamente. Observe, porém, que seria necessário colocar o dispositivo nessa condição por muitas centenas de horas em temperatura elevada para que isso acontecesse.

Observe que a) eb) são problemas reais que um provavelmente encontrará. Quanto a c) é menos provável que ocorra um problema, mas por que correr riscos?

mazurnificação
fonte
3

A entrada alternará entre 0 e 1 com base em qualquer EMI. Não tenho certeza se isso fará com que a entrada falhe, mas fará com que mais energia seja usada porque as transições de 0 para 1 para 0.

Defina-o como uma saída e pronto.

Robert
fonte
1
Se eu configurá-lo para uma saída, 0 ou 1, ele aterrará o sinal de vídeo e causará uma perda de vídeo.
Thomas O
Você pode ativar um pull-up interno e terminar com ele?
endolith 30/11/10
Ativar o pull-up interno deve ser bom. O objetivo é colocá-lo em um estado conhecido e deixá-lo lá.
Robert
2

Alguns dispositivos CMOS de alta velocidade podem ser destruídos se uma entrada for deixada flutuando, mas o problema mais comum que se observa é o aumento do consumo de corrente. Nos microcontroladores da série PIC, a corrente extra é da ordem de centenas de microamperes por pino flutuante. Não é o suficiente para causar danos ao dispositivo, mas o suficiente para afetar gravemente a vida da bateria em um aplicativo que, de outra forma, consumiria 5uA. Alguns chips têm opções para desativar uma entrada digital; se uma entrada estiver desativada, ela pode ser deixada flutuando livremente.

supercat
fonte