Fixation d'une LED à la broche Rx du PIC

13

J'ai besoin d'un moyen de savoir si le microcontroller( PIC) reçoit (ou transmet) des données. J'ai donc pensé à en garder un séparé LEDpour qu'il clignote lors de tout transfert de données.

Mais je dois savoir comment attacher cela LED. Est-il OK de fixer directement une LEDaux broches PICs Tx(et Rx)? Je veux dire cela affectera-t-il le transfert de données d'une manière ou d'une autre (comme en supprimant la tension, etc.).

Anubis
la source

Réponses:

14

(Au moins certains) Les PIC ne peuvent pas conduire beaucoup de courant (*), mais aussi pour la broche RxD, vous feriez mieux d'utiliser un transistor pour piloter la LED, car vous éviterez de charger l'émetteur à l'autre extrémité (probablement un MAX3232 ou similaire ?).

entrez la description de l'image ici

Connectez l'entrée "Q" à la ligne TxD / RxD. Un transistor à usage général typique aura un gain d'environ 100, puis un courant de base de 1 mA suffit pour obtenir un courant de collecteur de 20 mA.

Pour un bus 5 V et une alimentation:
choisissez = 3,9 kΩ, alors le courant de base sera (5 V - 0,7 V) / 3,9 kΩ = 1,1 mA. Pour limiter le courant du collecteur à 20 mA (LED témoin typique), doit être (5 V - 2 V) / 20 mA = 150 Ω.RBR

Pour un bus 3,3 V et une alimentation, utilisez les mêmes équations, en remplaçant 5 V par 3,3 V, vos valeurs de résistance seront alors de 2,2 kΩ et 47 Ω resp.



Un MOSFET comme AndrejaKo le suggère est une bonne alternative, mais assurez-vous d'avoir un type de porte de niveau logique , avec une tension de seuil de porte maximale légèrement inférieure à la tension du bus. (Il existe des FET de porte de niveau logique où cela peut atteindre 4 V et vous n'obtiendrez pas suffisamment de courant de drain avec une tension de bus de 3,3 V.) Le véritable avantage du FET est qu'il n'a besoin que de peu de courant de commande, mais puisque nous n'avons besoin que d'un mA pour le BJT, nous n'aurons aucun problème avec cela non plus.


(*) Ce contrôleur PIC aléatoire spécifie une chute de 700 mV à seulement 3 mA de courant de sortie, soit une résistance de sortie de 230 Ω. Une LED 2 V directement alimentée par une sortie 3,3 V réduira la sortie de 1 V à seulement 4 mA. La plupart des voyants DEL sont spécifiés pour 20 mA.

stevenvh
la source
Bonne réponse stevenvh, +1 pour l'ajout de suggestions de taille de résistance, beaucoup d'autres se réfèrent simplement à la loi d'Ohm
chwi
1
Même si cela peut être la "bonne" façon de le faire ... si vous ne pouvez pas conduire <5mA ou plus à partir de la broche MCU, je remettrais en question la valeur de ce MCU dans les applications du monde réel. Les émetteurs-récepteurs RS232 sont également très robustes. J'ai de nombreuses conceptions où la résistance série et la LED reposent directement sur les lignes rx / tx. Cela fonctionne bien même si vous n'utilisez pas MAX, mais des émetteurs-récepteurs de 2e source bon marché. Tant que vous n'essayez pas de conduire 20mA ou quelque chose de fou comme ça, il ne devrait y avoir aucun problème. Et si vous choisissez une LED lumineuse et moderne, vous pouvez facilement utiliser une résistance de 10k.
Lundin
Ω
@stevenvh Peut-être que je suis gâté avec Freescale, où vous pouvez conduire quelques + -20mA via une seule broche (à Vdd = 3V) sans sortir des spécifications. Bien sûr, il faut concevoir avec des marges. En ce qui concerne le transceiver MAX, les standards ont une spécification de volatilité de seuil élevée> 2,0 V, faible <0,8 V, de sorte que l'on ne devrait jamais être un problème.
Lundin
En fait, la spécification LED de 20mA est pour la luminosité optimale. Si vous en mettez un moderne super brillant avec plus de 300mcd, vous pouvez abaisser le courant en dessous d'un dixième de ce que vous utiliseriez avec des LED classiques. Nous parlons alors de courants uA plutôt que mA.
Lundin
10

Non, vous ne voulez pas connecter la LED via un transistor de commutation côté bas comme d'autres l'ont montré. Dans le cas normal, le niveau d'inactivité des deux lignes est élevé, ce qui entraînerait alors l'allumage de la LED la plupart du temps. Il sera très difficile de le remarquer de temps en temps un peu plus faible. Ce que vous voulez, c'est que la LED soit allumée uniquement lorsque la ligne est à l'état actif, ce qui est faible. Voici un circuit simple:

Le transistor est utilisé dans la configuration émetteur suiveur, ce qui élimine le besoin d'une résistance de base et utilise également le courant de base minimum possible pour le courant LED résultant. Lorsque la ligne numérique devient faible, l'émetteur sera à environ 700 mV. Considérant une LED verte normale qui chute d'environ 2,1 V, ce qui laisse 2,2 V à travers R1. 2,2 V / 120 Ω = 18 mA, ce qui est juste en dessous du maximum de 20 mA pour le T1-3 / 4 typique et de nombreuses autres LED communes.

Il s'agit d'un cas où vous souhaitez maximiser la sortie de lumière LED, ce qui signifie de l'exécuter à son courant maximum. La ligne restera basse pendant de courtes périodes, vous devez donc rendre cette courte durée aussi visible que possible. Si cela ne fonctionne pas, vous aurez besoin d'une sorte d'étirement du pouls, mais essayez d'abord.

Si vous utilisez une alimentation 3,3 V, ajustez R1 en conséquence. 3,3 V - 2,1 V - 700 mV = 500 mV sur R1. 500mV / 20mA = 25Ω. Vous voulez laisser une marge, donc la valeur standard de 27 Ω devrait fonctionner correctement. L'alimentation 3,3 V est à peu près le minimum dans lequel vous souhaitez utiliser la configuration de l'émetteur suiveur.

Olin Lathrop
la source
5

Vous ne devez pas tenter de connecter la diode directement à la broche car cela affectera certainement le fonctionnement de la broche. Au lieu de cela, essayez d'utiliser un mosfet de niveau logique pour piloter la LED. Connectez la broche de grille du MOSFET à la broche Rx et le drain à la LED et à une résistance.

entrez la description de l'image ici

Ignorez le numéro de pièce indiqué sur le schéma. BS170 serait beaucoup moins cher et fonctionnerait bien à cet effet.

AndrejaKo
la source