Forum: Mikrocontroller und Digitale Elektronik Act/Link Led für Uart


von Tobi W. (todward)


Lesenswert?

Hallo,

Ich würde gerne wie bei einer Netzwerkkarte die zwei Statusleds (ACT und 
LINK) für die Uart des AVRs realisieren. In einem anderen Thread zu so 
einem vorhaben habe ich gelesen, das die RS-232 Schnittstelle nach norm 
nur ca. 2mA leisten muss. Das ist natürlich viel zu wenig für eine LED, 
selbst mit einer low-current LED wird das eng.
Ich hatte jetz überlegt einen Transitor zu verwenden und damit dann die 
Leds zu schalten. Das müsste doch auch gehen oder?
Die einzige sache die mir so einbisschen bauchweh bereite ist, dass der 
pegel vllt. nicht mehr ausreicht um eine anständige übertragung zu 
bewerkstelligen.

Gibt es noch andere Möglichkeiten so etwas zu realisieren? Zum Beispiel 
einen extra pin zunemhmen und den per Softwäre anzusteuern. Gibt es da 
schon vorgefertigte Funktionen (vorzugsweise in Bascom)?

Bin für jede idee dankbar
Gruß
Tobi

von Frank B. (frank501)


Lesenswert?

Hallo,

also die ACT-LED sollte mit einem Transistor, dessen Basis mit ca. 47K 
an RxD oder TxD angeschlossen ist machbar sein.

Nur, wann hast Du einen Link? Das ist schon Protokollabhängig. Also 
müsstest Du z.B. alle 10mS ein Byte senden und der Empfänger muss es 
quittieren. Nur wenn diese Quittierung erfolgt, geht die Link-LED auch 
an.

Also wäre das eine Softwaresache. Wie das in Bascom geht, kann ich jetzt 
nicht sagen, sollte aber je nach Erfahrung nicht all zu schwer werden.

Frank.

von Tobi W. (todward)


Lesenswert?

Hallo Frank,

danke für die antwort. Also sollte es keine Bedenken geben wenn ich da 
einen Transistor mit einbaue und den basisstrom mit 47kohm begrenze?

Die link LED kann man entwedr so machen wie du vorgeschlagen hast oder 
ich mache mit einen "speziellen" stecker mit einer brücke oder so und 
lasse die led leuchten sobald ich den stecker eistecke.

Gruß
Tobi

von Matthias L. (Gast)


Lesenswert?

> danke für die antwort. Also sollte es keine Bedenken geben wenn ich da
> einen Transistor mit einbaue und den basisstrom mit 47kohm begrenze?

Du könntest mit pnp Transistoren auf der TTL-Seite eine Rx und eine 
Tx-LED anbringen. Das belastet die RS232-Seite garnicht.


> Die link LED kann man entwedr so machen wie du vorgeschlagen hast oder
> ich mache mit einen "speziellen" stecker mit einer brücke oder so und
> lasse die led leuchten sobald ich den stecker eistecke.

Wäre machbar. Aber ich denke, das ist unnützer Aufwand. Aber letztlich 
ist das deine Entscheidung.

von Reinhard Kern (Gast)


Lesenswert?

Hallo,

meine Meinung: 2 LEDs, die blinken wenn auf RxD oder TxD gesendet wird, 
nützen am meisten, das ist schon ein halber Analysator. Wenn du 
Verbindung aufnehmen willst und niemand ist da, dann blinkt die TxD-LED, 
aber die RxD-Led bleibt stumm - viel mehr gibt es garnicht zu wissen.
Das einzige Problem dabei ist, dass man bei hohen Baudraten kaum noch 
was sieht, aber das lässt sich dann nur durch künstliche Verlängerung 
der Impulse und damit in Software mit 2 Extra-Pins lösen.

Gruss Reinhard

PS natürlich gibts LEDs für 1mA Betriebstrom.

von Tobi W. (todward)


Lesenswert?

Hallo Reinhard,

da hast du recht. Ich hatte das gerade mal auf meinem stk500 getestet.
Der avr sendet immer 8 zeichen! Wenn dazwischen keine künstliche pause 
ist, dann ist die LED immer an. Wenn ich eine Pause von 20-30ms 
dazwischen mache, dann sicht man sie flackern.
Wie ich das softwaretechnisch lösen könnte, habe ich noch keine idee. 
Ich bin nur auf die idee gekommen einen ne555 als retriggerbaren 
monoflopp zu bauen doch dann habe ich wieder ganau das, was ich vorher 
auch habe, die led leuchtet immer. wenn ich einen normalen monoflop 
nehme, dann werden ja fast alle signale verschluckt.

Weiss jemand wie die das bei den netzwerkkarten machen? Die ACT-LED 
leuchtet zwar auch nicht bei jedem bit aber man erkennt,dass was 
gesendet/empfangen wird.

Gruß
Tobi

von Matthias L. (Gast)


Lesenswert?

>dann nur durch künstliche Verlängerung

Vielleicht geht das ja so:

5V----------o---------o--------------
            |         |
           [#] R1     |
            |        ===
           \|/ LED   --- C
           -|-        |
            |         |
            '----o----'
                 |
                [#] R2
                 |
               |/ E
 Tx/Rx --------| pnp
(TTL-Seite)    |\ C
                 |
GND--------------o------------------

von Tobi W. (todward)


Lesenswert?

Hallo Matthias,

Ich habe deine Schaltung mal aufgebaut und getestet. Je nach größe des 
Kondensators geht halt die Led nen bissel später aus. Nur das ist halt 
noch nicht das was ich haben will. Trotzdem aber danke für deine Mühe.


1. Idee: Ich hatte mir überlegt einen Monoflop und einen Multivibrator 
hintereinander zusetzten. Der Monoflop wird duch das erste bitwackeln an 
der leitung aktiviert und läuft dann vielleicht so 3-5sek. Der 
multivibrator läuft dann halt solange der monoflop gesetzt ist. Der 
Multivibrator erzugt dann ein signal von 30ms an und 20ms aus oder so.

2. Idee: ich nehme mehre Flipflops hintereinander. Mit jedem weiteren 
FlipFlop halbiert sich ja dann die frequenz.

3. Idee: Ich lege die Leitungen auf einen exteren interrupt und lasse 
jedesmal eine variable hoch zählen. Da ich einen Timer habe der mir alle 
10ms einen overflow liefert, könnte ich damit die Led blinken lassen. Es 
würde dann kein impuls verloren gehen. Nachteil: Die led blinkt dann 
einige 100ms oder gar sekunden "nach" ...

Weiss jemand wie das bei dein richtigen Netzwerkkarten gemacht wird? Hat 
der Prozessor einen Extra ausgang dafür?

Gruß
Tobi

von Tobi W. (todward)


Lesenswert?

Hatt keiner mehr eine idee wie man das problem lösen kann?

Gruß
Tobi

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.