O que significa esses modos de entrada / saída de pinos do microcontrolador?

9

Eu comprei um stm32f103ret6 . Quando vi o manual de referência, vi que ele tinha vários modos de E / S.

Para entrada: flutuante, pull-up, pull-down
Para saída: analógica, dreno aberto, push-pull

Eu já trabalhei com MCUs AVR que têm tri-state e pull-up. Então, eu posso entender o pull-up e pull-down, mas não consigo entender os modos flutuante, analógico, dreno aberto, push-pull. O que significam esses modos e quando devo usar quais?

Brian
fonte

Respostas:

9

Flutuante: nem puxar para cima nem para baixo. Sua entrada vai efetivamente direto para o portão de um FET em algum lugar. Deve ser usado apenas com driver externo ou pull-up / down; não deixe tudo flutuando para pegar ESD.

Analógico (saída): não é muito claro a partir da folha de dados, mas eu assumiria que essa foi a saída de um DAC em algum lugar e, portanto, pode assumir uma faixa de valores de tensão.

Dreno aberto: se definido como "0", um FET será ativado para conectá-lo ao terra. Se definido como "1", ele será deixado flutuando. Usado para barramentos I2C e similares, onde existem vários drivers de dreno aberto e um único resistor de pullup em algum lugar.

Push-pull: contém transistores de saída altos e baixos. Rápido, capaz de realmente conduzir coisas que exigem uma tensão positiva, mas não devem estar conectadas a outros drivers. Se definido como "1", conecta o trilho de alimentação positivo à saída através de um FET.

pjc50
fonte
2
A diferença normal entre "flutuante" e "analógico" é que o primeiro direciona o pino para um buffer de entrada no nível lógico, permitindo que o código (ou outra lógica) veja seu estado, mas também fazendo com que a corrente extra seja consumida, se não representa um valor alto ou baixo válido; o último desconectará o pino do buffer de entrada no nível lógico, permitindo assim que a tensão do pino varie em qualquer lugar entre os trilhos de alimentação sem causar excesso de corrente.
Supercat