Adjuntar un LED al pin Rx de PIC

13

Necesito alguna forma de saber si microcontroller( PIC) está recibiendo (o transmitiendo) datos. Así que pensé en mantener un archivo separado LEDpara que parpadee cuando ocurra cualquier transferencia de datos.

Pero necesito saber cómo adjuntar esto LED. ¿Está bien adjuntar un pin LEDa PICs Tx(y Rx) directamente ? Me refiero a que afectará la transferencia de datos de alguna manera (por ejemplo, al desconectar el voltaje, etc.).

Anubis
fuente

Respuestas:

14

(Al menos algunos) los PIC no pueden conducir mucha corriente (*), pero también para el pin RxD es mejor usar un transistor para controlar el LED, ya que evitará cargar el transmisor en el otro extremo (probablemente un MAX3232 o similar ?)

ingrese la descripción de la imagen aquí

Conecte la entrada "Q" a la línea TxD / RxD. Un transistor de propósito general típico tendrá una ganancia de aproximadamente 100, luego una corriente base de 1 mA es suficiente para obtener una corriente de colector de 20 mA.

Para un bus de 5 V y una fuente de alimentación:
elija = 3.9 kΩ, entonces la corriente base será (5 V - 0.7 V) / 3.9 kΩ = 1.1 mA. Para limitar la corriente del colector a 20 mA (LED indicador típico)Rsi debe ser (5 V - 2 V) / 20 mA = 150 Ω.R

Para un bus de 3.3 V y una fuente de alimentación, use las mismas ecuaciones, reemplazando 5 V por 3.3 V, luego los valores de su resistencia serán 2.2 kΩ y 47 Ω resp.



Un MOSFET como sugiere AndrejaKo es una buena alternativa, pero asegúrese de tener un tipo de puerta de nivel lógico , con un voltaje de umbral de puerta máximo algo por debajo del voltaje del bus. (No son lógicas FET de compuerta nivel en el que puede ser tan alto como 4 V y entonces no tendrán suficiente corriente de drenaje con una tensión de bus V 3.3.) La verdadera ventaja del FET es que requiere poco corriente de excitación, pero Como solo necesitamos un mA para el BJT, tampoco tendremos ningún problema con eso.


(*) Este controlador PIC aleatorio especifica una caída de 700 mV con solo 3 mA de corriente de salida, que es una resistencia de salida de 230 Ω. Un LED de 2 V impulsado directamente desde una salida de 3,3 V reducirá la salida en 1 V a solo 4 mA. La mayoría de los LED indicadores están especificados para 20 mA.

stevenvh
fuente
Buena respuesta stevenvh, +1 para agregar sugerencias de tamaño de resistencia, muchos otros solo se refieren a la ley de Ohm
chwi
1
Aunque esta puede ser la forma "adecuada" de hacerlo ... si no puede manejar <5 mA más o menos desde el pin MCU, cuestionaría el valor de esa MCU en aplicaciones del mundo real. Los tranceivers RS232 también son muy resistentes. Tengo numerosos diseños donde la resistencia en serie y el LED se sientan directamente en las líneas rx / tx. Funciona bien incluso si no usa MAX, pero tranceivers baratos de segunda fuente. Mientras no intentes conducir 20 mA o algo así, no debería haber problemas. Y si elige un LED brillante y moderno, puede usar fácilmente una resistencia de 10k.
Lundin
Ω
@stevenvh Tal vez estoy mimado con Freescale, donde puedes manejar algunos + -20mA a través de un solo pin (a Vdd = 3V) sin salir de las especificaciones. Aunque, por supuesto, uno debe diseñar con márgenes. En cuanto al transceptor MAX, los estándares tienen una especificación de voltaje de umbral de alto> 2.0V, bajo <0.8V, por lo que uno nunca debería ser un problema.
Lundin el
Por cierto, la especificación LED de 20 mA es para el brillo óptimo. Si se pone uno moderno y superbrillante con más de 300 mcd, puede reducir la corriente a menos de una décima parte de lo que usaría con los LED clásicos. Entonces estamos hablando de uA en lugar de corrientes de mA.
Lundin
10

No, no desea conectar el LED a través de un transistor de interruptor del lado bajo como lo han mostrado otros. En el caso normal, el nivel de inactividad de ambas líneas es alto, lo que provocaría que el LED se ilumine la mayor parte del tiempo. Será muy difícil notar que ocasionalmente se oscurece un poco. Lo que desea es que el LED esté encendido solo cuando la línea esté en estado activo, que es baja. Aquí hay un circuito simple:

El transistor se usa en la configuración de seguidor de emisor, lo que elimina la necesidad de una resistencia base y también usa la corriente base mínima posible para la corriente LED resultante. Cuando la línea digital baja, el emisor estará a unos 700 mV. Teniendo en cuenta un LED verde normal que cae aproximadamente 2.1 V, que deja 2.2 V a través de R1. 2.2V / 120Ω = 18 mA, que está justo por debajo del máximo de 20 mA para el T1-3 / 4 típico y muchos otros LED comunes.

Este es un caso en el que desea maximizar la salida de luz LED, lo que significa ejecutarla a su corriente máxima. La línea irá baja por períodos cortos, por lo que desea hacer que ese corto tiempo sea lo más visible posible. Si eso no funciona, necesitará algún tipo de estiramiento del pulso, pero intente esto primero.

Si está utilizando una fuente de 3,3 V, ajuste R1 en consecuencia. 3.3V - 2.1V - 700mV = 500mV a través de R1. 500mV / 20mA = 25Ω. Desea dejar algo de margen, por lo que el valor estándar de 27 Ω debería funcionar bien. El suministro de 3.3 V es aproximadamente el mínimo en el que desea usar la configuración de seguidor de emisor.

Olin Lathrop
fuente
5

No debe intentar conectar el diodo directamente al pin porque definitivamente afectará el funcionamiento del pin. En su lugar, intente utilizar un mosfet de nivel lógico para controlar el LED. Conecte el pin de la compuerta del MOSFET al pin Rx y el drenaje al LED y una resistencia.

ingrese la descripción de la imagen aquí

Ignore el número de pieza que se muestra en el esquema. BS170 sería mucho más barato y funcionaría bien para este propósito.

AndrejaKo
fuente