Die LED direkt mit Vorwiderstand ist auch bei höheren Baudraten kein Problem. Man sollte aber 2 low current oder besser helle LEDs (antiparallel) nehmen. Ein Widerstand von etwa 4,7 K trennt die LED von den gar nich so hohen Frequenzen.
Hi!
Seit einiger Zeit schon bastel ich an einem eigenen und damit maßgeschneiderten MC-Board rum. Bin noch nicht sehr weit, Controller läuft soweit, ISP funktioniert und einige LEDs funzeln auch. Jetzt habe ich gerade die serielle Schnittstelle ans Laufen bekommen, auch Dank einigen Tips hier aus dem Forum. Ganz klassisch mit MAX 232 nach Datenblatt. So weit, so gut.
Da ich bei der Entwicklung viele blöde Fehler gemacht habe (Pinbelegung vom Stecker, Verbindungskabel usw.) habe mir zur Fehlerbeseitigung als "Aktivitätsanzeige" einfach LEDs mit Vorwiderstand an die TX bzw. RX Leitungen gelegt. Hat mir auch so weit gute Dienste geleistet.
Nun möchte ich auch das fertige Board mit LEDs als "Aktivitätsanzeige" ausstatten. Um aber bei höheren Baudraten die Signale nicht zu stark zu belasten, habe ich Transistoren als Treiber benutzt. Funktioniert bei TTL-Pegel ganz gut, die +/- 12V Seite funktioniert noch nicht, ist aber auch bestimmt hin zu bekommen.
Jetzt aber endlich zu meiner Frage. Gehe ich mit den Transistoren den richtigen Weg oder gibt es andere, bessere Lösungen für das Problem? Ich bitte um Nachsicht, wenn die Frage einem Profi zu einfach erscheint. Ich bin leider nicht wirklich vom Fach.
Bin über jeden Tip dankbar.
Gruss
Bot-Builder
Legasteniker on Board!
gefundene Rechtschreibfehler dienen der Belustigung des Lesers und dürfen von diesem behalten werden.
Die LED direkt mit Vorwiderstand ist auch bei höheren Baudraten kein Problem. Man sollte aber 2 low current oder besser helle LEDs (antiparallel) nehmen. Ein Widerstand von etwa 4,7 K trennt die LED von den gar nich so hohen Frequenzen.
Okay, das macht die Sache deutlich einfacher.Zitat von Besserwessi
Leucht mir für den Teil mit richtigem RS232-Pegel, also +/- 12V ein. Du meinst in etwa so, richtig?Zitat von Besserwessi
Bild hier
Aber für den TTL-Pegel Teil funktioniert das so doch nicht, oder? Im ersten Moment habe ich dann an so etwas ähnliches gedacht.
Bild hier
Würde für jede der beiden Leds einzeln angeschlossen funktionieren. Aber wenn beide angeschlossen sind würden beide dauern leuchten.
Ist natürlich auch nicht antiparallel. Oder bleibt für den TTL-Teil nur die Lösung mit einer LED und Vorwiderstand?
mfG
Bot-Builder
Legasteniker on Board!
gefundene Rechtschreibfehler dienen der Belustigung des Lesers und dürfen von diesem behalten werden.
Das für die +-12 V war genau so gemeint.
Nur die bedeutung bei der RS232 ist so, dass +12 V für eine 0 und -12 V für eine 1 stehen, wenn ich micht richtig erinnere.
Die Version für 5 V funktioniert so wie auch schon geschrieben in der Regel noch nicht (könnt mit 2 blaugrünen oder blauen LEDs gehen). Da einfach 2 Widerstände für die beiden LEDs, ruhig auch etwas größer. Wenn einem die Last zu groß ist, dann besser ein TTL bzw., HC-MOS-Gatter davor, z.B. 74HC14 oder so.
Hallo!
@ Bot-Builder
Nur die Schaltung aus deinem oberen Schaltplan kann mit zwei gleichen LEDs zwei gleiche Spannungen mit gleicher Helligkeit anzeigen. Bei LEDs mit diversn Farben (Durchflußspannungen) muss man die gleiche Helligkeiten (fürs Auge) mit unterschiedlichen Vorwiderstanden einzeln einstellen.
Bei der unteren Schaltung werden die LEDs zwar gleichzeitig, aber wegen fehlendem Vorwiderstand bei starker Spannungsquelle leider nicht lange leuchten...
Wenn eine LED ab bestimmter Spannung leuchten soll, müsste man seriell mit der LED eine Zener-Diode mit entsprechender Spannung schalten.
MfG
Du hast natürlich mit dem Signalpegel Recht. Muss umgekehrt sein.Zitat von Besserwessi
Das mit den zwei Widerständen habe ich noch nicht so ganz kapiert, werde es aber gleich mal auf einem Steckbrett ausprobieren.
Aber Du hast weiter oben was zum Thema Frequenzen gesagt.
Bild hier
Wenn also ein Zeichen '1010 1010' übertragen wird, kommt ich bei 9.600 Baud auf eine Frequenz von 57,6 kHz. Stimmt die Überlegung so oder ist da ein Denkfehler drin?
Könnte man damit die genaue Baudrate messen? Ich komme deshalb darauf, weil ich bei meinem Aufbau auch einen Baudratenfehler (ungeeignete Quarzfrequenz) gehabt habe. Um da genau zu sein müsste man aber wissen die lange die Ruhepause zwischen zwei Zeichen ist auch wenn kontinuierlich Zeichen gesendet werden.
Konkret stelle ich mir vor man misst mit einem Controller einfach die Zeit zwischen den Flankenwechseln und rechnet dann die konkrete Baudrate hoch. Macht so etwas Sinn?
mfG
Bot-Builder
Legasteniker on Board!
gefundene Rechtschreibfehler dienen der Belustigung des Lesers und dürfen von diesem behalten werden.
baud sind (in diesem fall) bit/sekunde, deine grundfrequenz liegt also bei 9600Hz.
das mit der baudratenmessung funktioniert so, wenn du ein definiertes bitmuster hast.
cm.
Klar! Bit / Sekunde und nicht Zeichen pro Sekunde!Zitat von cmock
Und beim näheren Hinschauen hat sich dann auch die Frage nach der Ruhepause zwischen den Zeichen erledigt (glaube ich zumindest!). Denn in meinem ersten Signaldiagramm ist auch noch ein Fehler. Stopbit hat logischen Pegel 1, also ergibt sich dann folgendes Diagramm.
Bild hier
Die Startbedingung ist die steigende Flanke vom Startbit, richtig? Da Ruhe logisch 1 ist, muss Startbit logisch 0 sein. Stopbit ist logisch 1. Also braucht es bei kontinuierlichem Zeichenfluss keine Ruhepause. Das sehe ich doch jetzt richtig, oder?
Um einen kontinierlichen Pegelwechsel auf der Leitung zu erzeugen braucht es dann allerdings eine ungewöhnliche Einstellung der Übertragung: 7Bit, even Priority, 1 Stopbit.
Liege ich jetzt richtig?
Legasteniker on Board!
gefundene Rechtschreibfehler dienen der Belustigung des Lesers und dürfen von diesem behalten werden.
Moin moin.
Der Ruhezustand von TXD ist H, das Startbit beginnt mit der fallenden Flanke.
Ich habe mal eine Automatisch Baudratenerkennung "gebastelt".
Dazu habe ich immer als erstes Byte 01010101 gesendet und
eine Bitweite gemessen. Dann 1/2 BItweite hinzuaddiert damit
beim Einlesen in der Bitmitte gelesen wird. Das erste Byte diente nur
zur Zeitmessung, danach wurde dann (beim Lesen) mit dem Startbit
+ 1/2 Bitlänge angefangen und mit Bitlänge eingelesen.
Gruß Richard
Moin!
Mit der (logisch) fallenden Flanke von log 1 auf log 0, aber mit steigenden (Signal-)Flanke von -15 auf +15. Korrekt?!?Zitat von Richard
Das mit der Baudratenerkennung werde ich auch mal versuchen. Findest Du den Code vielleicht noch? Mit "Beispiel" arbeitet es sich leichter
Vielen Dank schon mal
mfG
Bot-Builder
Legasteniker on Board!
gefundene Rechtschreibfehler dienen der Belustigung des Lesers und dürfen von diesem behalten werden.
Lesezeichen