Puxe os resistores no UART

16

Eu estava passando por uma nota de aplicativo AN2606 onde me deparei com este diagrama de conexão:

insira a descrição da imagem aqui

De acordo com meu conhecimento, o UART é do tipo push-pull e o Tx fornece o pull-up necessário e, portanto, não precisamos usar nenhum pull-up externo. Estou faltando alguma coisa aqui?

Whiskyjack
fonte
11
Quando o UART está ocioso, as duas linhas são altas. O bit inicial no UART é a primeira transição Alto para Baixo da linha. Portanto, eles são puxados para cima.
Swanand
@ swanand - Isso é o que eu pensava. Eu estou querendo saber por que esta nota do aplicativo recomendaria pull ups.
Whiskeyjack
11
Provavelmente para garantir certos requisitos, como que de alta antes das micro extremidades seus tempos de ciclo de energia ou aumento são rápidos o suficiente ...
zakkos
11
Eu usei o UART várias vezes no STM32s e não tive pullups, apesar de admitir que não era para o gerenciador de inicialização, então @zakkos pode estar certo. Veja também a nota abaixo do esquema - só é necessário se o host não possui um pull up próprio, portanto parece ainda mais provável que ele esteja lá para garantir algum requisito para o estado da linha.
Jan Dorniak
2
@swanand - o que eu quis dizer foi - pinos UART são puxados por conta própria. Não devemos precisar de flexões externas, como mostrado na imagem. Os pinos Tx são responsáveis ​​por acionar a linha HIGH sem a necessidade de resistores externos. A resposta de Tony explica a exigência desses resistores. :)
Whiskeyjack 22/11

Respostas:

17

Enquanto o microcontrolador estiver em redefinição, seus pinos de E / S serão configurados como entradas de alta impedância. Portanto, o pino usado para os dados de transmissão em série UART (TXD) estará flutuando durante esse período. Isso pode causar ruído, causando a transmissão de lixo pelo driver da linha RS232.

Alguns CIs de driver de linha têm resistores de pull-up internos nos pinos de entrada do lado TTL / LVTTL para evitar isso e produzir um estado ocioso RS232. Caso contrário, um resistor de pull-up pode ser adicionado.

Um resistor pull-up no pino de entrada de dados de recepção serial UART (RXD) não é necessário porque o receptor de linha RS232 está sempre conduzindo esse pino.

Observe que o período de redefinição geralmente é um tempo relativamente longo e que quaisquer pinos de E / S usados ​​como pinos de saída são propensos a esse problema e devem ser considerados para um resistor de pull-up ou pull-down.

TonyM
fonte
11
Sobre o RXD, se o lado do host não possuir pull-up no pino 'TXD', o pino 'RXD' no lado escravo (lado do STM32) também poderá precisar de pull-up.
precisa saber é o seguinte