He estado tratando de encontrar una buena descripción del "estándar" serial TTL sin mucha suerte. Entiendo que las líneas de transmisión en serie (TX) y de recepción (RX) están inactivas en alto (en VCC) y que caen a tierra cuando se transmite un bit. Como tal, están invertidos de la norma, donde un "1" es alto y "0" es bajo.
Lo que no entiendo es quién es responsable de mantener la línea alta y cómo se transmite un cero. ¿El emisor conduce la línea a alta y baja? ¿O el receptor mantiene la línea alta con el emisor bajando la línea (colector abierto)?
microcontroller
serial
ttl
blalor
fuente
fuente
Respuestas:
Con TTL serial, hay dos líneas de datos unidireccionales. Cada uno es impulsado por el remitente, tanto alto como bajo. Un 0 bit está representado por 0V a 1 bit por VCC.
El pin del receptor debe establecerse en una entrada.
Entonces, para que un microcontrolador envíe un byte (8-N-1 sin control de flujo) podría hacer algo como esto:
(Este código se lee un poco hacia atrás, ya que originalmente estaba destinado a la serie TTL invertida)
Por supuesto, la mayoría de las MCU tienen UART de hardware que hacen todo esto por usted.
Esto es lo que verías en un alcance:
https://www.pololu.com/docs/0J25/4.a
Aquí hay un gran video de ladyada que explica el serial: http://www.adafruit.com/blog/2010/09/15/usb-serial-and-you-video-an-adafruit-after-school-special/
fuente
No dices en muchas palabras, pero el "alto inactivo" sugiere que te refieres a un UART. UART es un punto a punto conectado a transceptores de línea, como el MAX232 ubicuo pero anticuado (hoy en día hay soluciones mucho mejores). La línea entre el microcontrolador y el transceptor también será corta; Si hay una distancia que se va a puentear, será entre transceptores.
La salida del controlador es un push-pull.
El P-MOSFET proporcionará el nivel alto, el N-MOSFET el nivel bajo. Uno de ellos debe estar activo o el nivel de línea flotará y no estará definido (o definido por una carga en el transceptor). Ambos pueden generar / hundir algo de corriente y tirarán de la línea hacia los rieles, por lo que la forma de la señal será casi ideal.
Lo que sería diferente si fuera realmente TTL, como en su pregunta (el microcontrolador es HCMOS). Las salidas TTL son altamente asimétricas: solo pueden suministrar poca corriente, típicamente 0.4mA. La corriente de hundimiento está bien, a 8 mA. La baja fuente de corriente puede ser un problema si la línea tiene una alta capacitancia y es de alta velocidad. La baja corriente de accionamiento significa que la capacitancia solo se cargará de manera relativamente lenta, y los bordes ascendentes serán lentos, lo que a alta velocidad puede causar una grave distorsión de la señal. TTL nunca se usa para esto.
Su pregunta también podría referirse a un línea multipunto , donde varios dispositivos pueden hablar. En ese caso, no puede utilizar la salida push-pull: si un dispositivo impulsara la línea hacia arriba mientras otro lo impulsa hacia abajo, tendríamos un cortocircuito. Las líneas multipunto casi siempre usan resistencias pull-up para mantener la línea inactiva en alto. Entonces, solo un nivel bajo requiere conducir la línea, y en lugar de la salida push-pull tendremos un drenaje abierto, con solo el N-MOSFET. La línea ahora también se conduce asimétricamente: la resistencia pull-up solo puede entregar poca corriente, mientras que el FET pull-down puede conducir la línea rápidamente a tierra. Las líneas multipunto de alta velocidad, por lo tanto, ponen un límite a las resistencias pull-up. Un ejemplo es I2C.
fuente