Anschließen einer LED an den Rx-Pin des PIC

13

Ich muss irgendwie wissen, ob das microcontroller( PIC) Daten empfängt (oder sendet). Deshalb habe ich mir überlegt, einen separaten LEDOrdner zu erstellen, der blinkt, wenn Daten übertragen werden.

Aber ich muss wissen, wie ich das anheften kann LED. Ist es OK , um direkt ein anhängen LEDzu PICs Tx(und Rx) Pins? Ich meine, wird es die Datenübertragung in irgendeiner Weise beeinflussen (wie durch Abfallen der Spannung etc ...).

Anubis
quelle

Antworten:

14

(Zumindest einige) PICs können nicht viel Strom treiben (*), aber auch für den RxD-Pin verwenden Sie besser einen Transistor, um die LED zu treiben, da Sie vermeiden, den Sender am anderen Ende zu laden (wahrscheinlich einen MAX3232 oder ähnliches ?).

Bildbeschreibung hier eingeben

Verbinden Sie den Eingang "Q" mit der TxD / RxD-Leitung. Ein typischer Allzwecktransistor hat eine Verstärkung von etwa 100, dann reicht 1 mA Basisstrom aus, um einen Kollektorstrom von 20 mA zu erhalten.

Für einen 5-V-Bus und eine Stromversorgung:
Wählen Sie = 3,9 kΩ, dann beträgt der Basisstrom (5 V - 0,7 V) / 3,9 kΩ = 1,1 mA. Um den Kollektorstrom auf 20 mA zu begrenzen (typische LED-Anzeige), sollte R (5 V - 2 V) / 20 mA = 150 Ω betragen.RBR

Verwenden Sie für einen 3,3-V-Bus und eine Stromversorgung die gleichen Gleichungen und ersetzen Sie 5 V durch 3,3 V. Ihre Widerstandswerte betragen dann 2,2 kΩ bzw. 47 Ω.



Ein MOSFET wie AndrejaKo ist eine gute Alternative, aber stellen Sie sicher, dass Sie einen Gate- Typ mit Logikpegel haben , dessen maximale Gate-Schwellenspannung etwas unter der Busspannung liegt. (Es gibt Gate-FETs mit Logikpegel, bei denen die Spannung bis zu 4 V betragen kann, und bei einer Busspannung von 3,3 V wird der Drain-Strom nicht ausreichen.) Der eigentliche Vorteil des FET besteht darin, dass er kaum Ansteuerstrom benötigt, aber da wir nur einen mA für den BJT benötigen, haben wir auch damit keine Probleme.


(*) Dieser zufällige PIC-Controller gibt einen Abfall von 700 mV bei nur 3 mA Ausgangsstrom an, dh einen Ausgangswiderstand von 230 Ω. Eine 2-V-LED, die direkt von einem 3,3-V-Ausgang angesteuert wird, senkt den Ausgang bei nur 4 mA um 1 V. Die meisten Anzeige-LEDs sind für 20 mA spezifiziert.

stevenvh
quelle
Gute Antwort stevenvh, +1 für das Hinzufügen von Widerstandsgrößenvorschlägen, viele andere beziehen sich nur auf das Ohmsche Gesetz
chwi
1
Auch wenn dies der "richtige" Weg ist, dies zu tun. Wenn Sie nicht <5 mA oder so vom MCU-Pin fahren können, würde ich den Wert dieser MCU in realen Anwendungen in Frage stellen. RS232-Tranceiver sind auch sehr robust. Ich habe zahlreiche Designs, bei denen der Vorwiderstand und die LED direkt auf den RX / TX-Leitungen sitzen. Es funktioniert einwandfrei, auch wenn Sie keine MAX, sondern billige 2nd Source Tranceiver verwenden. Solange Sie nicht versuchen, 20 mA oder so etwas Verrücktes zu treiben, sollte es keine Probleme geben. Und wenn Sie sich für eine helle, moderne LED entscheiden, können Sie problemlos einen 10k-Widerstand verwenden.
Lundin
Ω
@stevenvh Vielleicht bin ich mit Freescale verwöhnt, wo man etwas + -20mA durch einen einzelnen Pin (bei Vdd = 3V) treiben kann, ohne die Spezifikation zu verlassen. Man muss natürlich mit Rändern entwerfen. Was den MAX-Tranceiver betrifft, haben die Standard-Tranceiver eine Schwellenspezifikation von hoch> 2,0 V, niedrig <0,8 V, so dass man niemals ein Problem haben sollte.
Lundin
Übrigens ist die LED-Spezifikation von 20 mA für die optimale Helligkeit. Wenn Sie ein modernes, superhelles Gerät mit mehr als 300 mcd verwenden, können Sie den Strom auf unter ein Zehntel dessen senken, was Sie mit klassischen LEDs verwenden würden. Wir sprechen dann von uA- und nicht von mA-Strömen.
Lundin
10

Nein, Sie möchten die LED nicht über einen Low-Side-Schalttransistor anschließen, wie andere gezeigt haben. Im Normalfall ist der Ruhepegel beider Leitungen hoch, was dazu führen würde, dass die LED die meiste Zeit aufleuchtet. Es wird sehr schwer zu bemerken sein, dass es gelegentlich etwas dunkler wird. Was Sie möchten, ist, dass die LED nur leuchtet, wenn sich die Leitung im aktiven Zustand befindet, der niedrig ist. Hier ist eine einfache Schaltung:

Der Transistor wird in der Emitterfolger-Konfiguration verwendet, wodurch kein Basiswiderstand erforderlich ist und außerdem der minimal mögliche Basisstrom für den resultierenden LED-Strom verwendet wird. Wenn die digitale Leitung niedrig wird, liegt der Emitter bei etwa 700 mV. Betrachtet man eine normale grüne LED, die um 2,1 V abfällt, so verbleiben 2,2 V über R1. 2,2 V / 120 Ω = 18 mA, was knapp unter dem Maximum von 20 mA liegt, für das die typischen T1-3 / 4-LEDs und viele andere gängige LEDs ausgelegt sind.

In diesem Fall möchten Sie die LED-Lichtleistung maximieren, um sie mit ihrem maximalen Strom zu betreiben. Die Linie wird für kurze Zeit auf niedrig gesetzt, daher möchten Sie diese kurze Zeit so gut wie möglich sichtbar machen. Wenn das nicht funktioniert, brauchen Sie eine Art Pulsdehnung, aber versuchen Sie dies zuerst.

Wenn Sie eine 3,3-V-Versorgung verwenden, stellen Sie R1 entsprechend ein. 3,3 V - 2,1 V - 700 mV = 500 mV über R1. 500 mV / 20 mA = 25 Ω. Sie möchten einen gewissen Spielraum lassen, daher sollte der Standardwert von 27 Ω gut funktionieren. Die 3,3-V-Versorgung entspricht in etwa dem Minimum, in dem Sie die Emitterfolger-Konfiguration verwenden möchten.

Olin Lathrop
quelle
5

Sie sollten nicht versuchen, die Diode direkt an den Pin anzuschließen, da dies die Funktion des Pins definitiv beeinträchtigt. Verwenden Sie stattdessen einen Mosfet mit Logikpegel, um die LED anzusteuern. Verbinden Sie den Gate-Pin des MOSFET mit dem Rx-Pin und den Drain-Pin mit der LED und einem Widerstand.

Bildbeschreibung hier eingeben

Ignorieren Sie die im Schaltplan angegebene Teilenummer. BS170 wäre viel billiger und würde für diesen Zweck gut funktionieren.

AndrejaKo
quelle