Podciągnij rezystory na UART

16

Przeglądałem notatkę aplikacji AN2606, na której natrafiłem na następujący schemat połączeń:

wprowadź opis zdjęcia tutaj

Zgodnie z moją wiedzą, UART jest typu push-pull, a Tx zapewnia wymagane pull-up i dlatego nie musimy używać żadnych zewnętrznych pull-upów. Czy coś mi umyka?

Whiskyjack
źródło
1
Gdy UART jest bezczynny, obie linie są wysokie. Bit początkowy w UART jest pierwszym przejściem z linii wysokiej do niskiej. Dlatego są podciągani.
Swanand
@swanand - Tak myślałem. Zastanawiam się, dlaczego ta notatka z aplikacji polecałaby podciągnięcia.
Whiskeyjack,
1
Prawdopodobnie w celu zagwarantowania pewnych wymagań, takich jak to, że jest wysoki, zanim mikro zakończy cykl zasilania lub czasy wzrostu wystarczająco szybko ...
zakkos
1
Używałem UART wiele razy na STM32 i nie miałem żadnych podciągnięć, chociaż przyznałem, że to nie było dla bootloadera, więc @zakkos może mieć rację. Zobacz także notatkę poniżej schematu - jest to konieczne tylko wtedy, gdy hostst nie ma własnego podciągania, więc wydaje się jeszcze bardziej prawdopodobne, że istnieje pewne wymaganie dotyczące stanu linii.
Jan Dorniak
2
@swanand - miałem na myśli - szpilki UART są podciągane same. Nie powinniśmy potrzebować zewnętrznych podciągnięć, jak pokazano na obrazku. Piny Tx są odpowiedzialne za prowadzenie linii WYSOKIEJ bez potrzeby stosowania zewnętrznych rezystorów. Odpowiedź Tony'ego wyjaśnia wymagania dotyczące tych rezystorów. :)
Whiskeyjack

Odpowiedzi:

17

Gdy mikrokontroler jest resetowany, jego styki we / wy zostaną skonfigurowane jako wejścia o wysokiej impedancji. Tak więc pin używany do szeregowego przesyłania danych UART (TXD) będzie się unosił w tym czasie. Może to prowadzić do szumu powodującego przenoszenie śmieci przez sterownik linii RS232.

Niektóre układy scalone sterownika linii mają wewnętrzne rezystory podciągające na swoich pinach wejściowych po stronie TTL / LVTTL, aby temu zapobiec i doprowadzić do stanu bezczynności RS232. W przeciwnym razie można dodać rezystor podciągający.

Rezystor podciągający na styku wejściowym szeregowego odbierania danych (RXD) UART nie jest konieczny, ponieważ odbiornik linii RS232 zawsze napędza ten styk.

Należy pamiętać, że okres resetowania jest zwykle stosunkowo długi i że wszelkie styki we / wy używane jako styki wyjściowe są podatne na ten problem i należy je uwzględnić w przypadku rezystora podwyższającego lub obniżającego.

TonyM
źródło
1
W przypadku RXD, jeśli strona hosta nie ma podciągania na sworzniu „TXD”, pin „RXD” po stronie podrzędnej (strona STM32) może również wymagać podciągnięcia.
rozbieżny