Sorry Leute, ich steh grad komplett auf dem Schlauch :-(
die "hochkomplexe" Schaltung dient dazu, den OpenCollector-Ausgang meines SmartMeters mittels PullUp auf RS232-Niveau zu bringen. Parallel dazu eine Kontroll-LED.
Soweit funktioniert auch alles, ich kann die Telegramme des SmartMeters sauber empfangen. Es gibt nur einen Schönheitsfehler: Die LED hat "Dauerlicht", und flackert kaum merkbar wenn Daten gesendet werden. Das hätte ich gerne umgekehrt, sie soll also im Normalfall dunkel sein, und (hoffentlich erkennbar) blinken bei Datenverkehr.
Ich scheitere grad kläglich an dieser Herausforderung... wie mach ich das am einfachsten? Irgend ein Diodentrick? Oder brauch ich einen Transistor als Inverter? Wenn ja wie beschalte ich den, damit mir der Basisstrom nicht meinen Signalpegel zusammenhaut?
Ich bin leider ziemlich aus der Übung, was Elektronik betrifft...
Sorry Leute, ich steh grad komplett auf dem Schlauch :-(
die "hochkomplexe" Schaltung dient dazu, den OpenCollector-Ausgang
meines SmartMeters mittels PullUp auf RS232-Niveau zu bringen.
Das stimmt nicht. Dein Ausgang hat 5V Logikniveau, vermutlich CMOS. RS232 hat +/-5V bis +/-15V.
Ich scheitere grad kläglich an dieser Herausforderung... wie mach ich
das am einfachsten? Irgend ein Diodentrick? Oder brauch ich einen
Transistor als Inverter? Wenn ja wie beschalte ich den, damit mir der
Basisstrom nicht meinen Signalpegel zusammenhaut?
Man nehme einen Inverter ala 74HC04. Oder einen PNP-Transistor. Und wenn man die Datenpakete mittels Pulsverlängerung besser sichtbar machen will, dann so.
Ich bin leider ziemlich aus der Übung, was Elektronik betrifft...
Ja, auch was das Erstellen von Bauteilsymbolen angeht. Die Signalnamen gehören in das Symbol, die Pinnummern an die Pins.
Es gibt nur einen Schönheitsfehler: Die LED hat "Dauerlicht",
Merkwürdig, denn eigentlich ist der Ausgang nur kurz geschlossen.
Was ist bei dir anders, als bei üblichen S0 Ausgängen ?
Der übliche Ausgang ist auch bloss ein potentialfreier Kontakt und liefert keine +5V und Masse.
Und der RS232 Standard sagt klar, dass 5V/0V kein RS232 ist, sondern zumindest -5V/+5V und besser -15V/+15V erwartet werden.
Mir kommt also alles falsch vor, wie wäre es mit dem Datenblatt des SmartMeters ? Wenn das nämlich bereits RS232 sendet, ist das Verhalten normal, Ruhepegel ist mark also -12V
Dann kommt die LED mit Vorwiderstand nach Masse und wenn open collector ein pull up nach +5V..12V
Das stimmt nicht. Dein Ausgang hat 5V Logikniveau, vermutlich CMOS.
RS232 hat +/-5V bis +/-15V.
Stimmt schon... ich glaube es gingen sogar +/-3V
Es ist aber so dass der danach folgende RS232-LAN-Konverter die Pegel problemlos erkennt (sozusagen "Glück gehabt")
Mir kommt also alles falsch vor, wie wäre es mit dem Datenblatt des
SmartMeters ? Wenn das nämlich bereits RS232 sendet, ist das Verhalten
normal, Ruhepegel ist mark also -12V
Schalte einfach noch einen Kondensator vor den Transistor, dann kann die LED bei fehlendem Datenaustausch nicht mehr weiterleuchten und die unterschiedlichen Poteziale spielen dann auch keine Rolle mehr.
Blöde Frage: könnte es reichen einfach in meine bestehende Schaltung einen C in Serie zur LED zu setzen? (Kapazität müsste ich halt empirisch ermitteln)
Ich hab nämlich grad keinen NPN zur Hand, und wegen einem NPN extra wo bestellen :-(
Edit: nein sooo einfach wirds wohl nicht gehen :-(
Falls der Begriff "SmartMeter" (in Deutschland?) anders belegt ist: Das
ist der Energiezähler vom Stromversorger (eigentlich vom Netzbetreiber)
In Deutschland ist das mit dem Strom inzwischen komplizierter. Der Zähler gehört dem Messtellenbetreiber. Das kann der Verteilnetzbetreiber sein, aber auch ein Dritter.
Bei mir kam ohne meine Aufforderung ein Monteur und hat ein Smartmeter eingebaut. Die PIN dafür habe ich vom Messtellenbetreiber bekommen, dessen Namen ich vorher gar nicht kannte und mit dem ich auch keinen Vertrag habe.
ich versuche mich zu sortieren, bin aber immer noch etwas verwirrt. Deshalb mal der Reihe nach:
Der Datenausgang meines SmartMeters ist ein OpenCollector-Ausgang gegen Masse.
Im Ruhemodus (Idle/Mark) ist dieser Transistor durchgeschaltet, der Ausgang liegt also auf Massepotential.
Bei Datenübertragung (speziell Space) sperrt der Transistor, der Ausgang "floatet" und es liegt an mir über einen Pullup einen entsprechendes (positives) Potential einzustellen.
Genau bei diesem Space möchte ich, dass die LED leuchtet. Daher brauch ich eigentlich keine "Invertierung". Aufgrund meiner ursprünglichen Schaltung hatte ich bereits diese Invertierung "inmplizit" eingebaut (LED leuchtet bei Mark/Idle)
Daher glaube ich dass die Schaltung von Falk weiter oben zwar schon invertiert, aber nicht das macht was ich erreichen will.
Genau bei diesem Space möchte ich, dass die LED leuchtet. Daher brauch
ich eigentlich keine "Invertierung".
Na sicher. Es sei denn, du willst NUR die LED leuchten lassen! Dann kann man die direkt an den Ausgang Schalten, incl. Pull-Up Widerstand. Dann hat man aber keinen Logikpegel mehr, den ein IC auswerten kann, denn HIGH ist dann nur Uf der LED, je nach Farbe 2-3,5V.
Daher glaube ich dass die Schaltung von Falk weiter oben zwar schon
invertiert, aber nicht das macht was ich erreichen will.
Stimmt das soweit?
Ja, da hatte ich wohl einen Denkfehler. Dann eben so, siehe Anhang.
Die 5V die ich ohne LED kriege sind schon grenzwertig für RS232
RS232 würde am Empfänger +/-3V als Pegel fordern. Schon anscheinend unipolare Signale lägen weit außerhalb von RS232. Mit RS232 hat das wenig zu tun, wenn dieses merkwürdige "MM6" nicht irgendeine negative Spannung generiert.
Also entweder muss man nachmessen, was noch geht oder den zusätzlichen Aufwand für einen separaten Treiber/Inverter in Kauf nehmen
Das "merkwürdige MM6" ist nur eine 6-polige MicroMatch-Buchse, von da geht es per (kurzem) Flachbandkabel und einem Western-Stecker zum SmartMeter. Und das SmartMeter liefert nur 5 Volt.
Wie aber auch hier https://www.mikrocontroller.net/articles/RS-232 beschrieben kommt meine RS232-Gegenstelle damit gut zurecht, das Ganze läuft schon seit Monaten als "Laborigel" (und halt noch ohne LED)
Nimm eine Low-current LED und mache den Vorwiderstand so groß wie möglich. Das bisschen zusätzlichen Strom sollte ein (open collector) Leitungstreiber aufbringen können. Wenn nicht dann eben nicht, dann brauchst Du sowieso einen zusätzlichen Treiber für die LED und bist wieder frei in der Wahl.
Mit dieser Schaltung verschiebst Du die Verhältnisse etwas zugunsten des Leitungspegel.
Um die LED nicht leuchten zu lassen muss die Spannung über ihr nicht 0V sein, es genügt wenn sie unter der Schleusenspannung des momentanen Arbeitspunktes (Uf) bleibt.
Jetzt kann der High-Pegel des Leitungssignals wieder auf höhere Werte als die Schleusenspannung der LED steigen da die Diode D2 dann sperrt.
Nein, das sind dunkle Funzeln aus den 80er Jahren. Heute ist jede normale LED bei gleicher Stromstärke viel heller. Low-current LEDs sind höchstens als Ersatzteil für ale Geräte sinnvoll.
Dieses Drama hier, um eine einzige LED zum Leuchten zu bringen, mutiert echt zu einem Trauerspiel – man sollte einen MOSFET (TO92/SOT23/SOT89/SOT223) oder ein CMOS-Gatter (SOT23-5), alternativ einen OP-Amp (auch klein in SOT23-5 oder DIP8) als z.B. Spannungsfolger oder Komparator nehmen und gut ist, damit der Ausgang nicht belastet wird und alles klein bleibt, wie teilweise schon erwähnt wurde. Noch schlimmer finde ich die Verwechslung der Spannungspegel von RS232 mit denen einer normalen UART eines µControllers und den glücklichen Umstand, dass das hier zufällig funktioniert, weil anscheinend um die Null ein bestimmter Pegel entsteht und als solcher vom Empfänger erkannt wird. Man sollte meiner Meinung nach nie eine Schaltung (egal wie groß oder klein sie sein mag) so entwerfen oder belassen, dass deren Funktion auf Zufall basiert – das darf aber natürlich jeder anders sehen. Man sollte bei solchen Verbindungen auch an den ESD- bzw. Überspannungsschutz denken, denn auch dadurch kann die Kommunikation auf einmal ganz schnell zu Ende sein, aber das nur so nebenbei. Ich würde mir den Signalverlauf und deren Pegel grundsätzlich auch ganz am Anfang mit einem Oszilloskop anschauen und aufnehmen, um überhaupt beurteilen zu können, was hier wirklich spannungstechnisch und anstiegsmäßig vorliegt und was dann dementsprechend zu machen ist – der Pull-Up kann nämlich auch so gewählt worden sein, dass es gerade noch funktioniert.
Noch schlimmer finde ich die Verwechslung der Spannungspegel von RS232
mit denen einer normalen UART eines µControllers und den glücklichen
Umstand, dass das hier zufällig funktioniert, weil anscheinend um die
Null ein bestimmter Pegel entsteht und als solcher vom Empfänger erkannt
Ein weiterer, nicht ganz unwesentlicher Unterschied zwischen UART und RS232 ist, dass die Signale invertiert sind.
Ein UART-5V Signal direkt an einen (toleranten) RS232-Eingang zu geben, würde also bestenfalls Kauderwelsch liefern.
Ein weiterer, nicht ganz unwesentlicher Unterschied zwischen UART und
RS232 ist, dass die Signale invertiert sind.
In diesem Fall liefert das SmartMeter "korrekte" RS232 Signale. Halt keine kompatiblen Pegel, sondern "nur" eine OC-Ausgang, aus dem man sich mit etwas Aufwand wirklich "normgerechtes" RS232 machen kann.
In meinem Fall "frisst" der RS232-LAN-Gateway aber die TTL-Pegel (wie geschrieben seit einem halben Jahr zuverlässig im 10-Sekunden-Takt).
Ich wäre eigentlich fertig, wenn ich mir nicht die LED einbilden würde :-)
Da werd ich den von Falk vorgeschlagenen Emitterfolger realisieren (nicht zuletzt deswegen weil alle dafür notwendigen Bauteile in der Wühlkiste sind)
Da werd ich den von Falk vorgeschlagenen Emitterfolger realisieren
(nicht zuletzt deswegen weil alle dafür notwendigen Bauteile in der
Wühlkiste sind)
Wenn der Impuls für die LED verlängert werden muss, um es besser sehen zu können, kann man z.B. einen 74HC123 oder NE555 nehmen, der das kann, oder es alternativ diskret mit einem RC-Glied (+Diode) über eine Zwischenstufe, die aus zwei Gattern oder OP-Amps besteht, machen. Ein SO8 oder DIP als Dual-OP-Amp könnte hier auch Abhilfe schaffen, ich persönlich würde mir aber den diskreten Aufbau sparen und den 74HC123 für eine Retriggerung nehmen; der 555 in CMOS-Variante würde auch noch gehen, die Schaltung mit dem ist aber etwas umständlicher.
und (hoffentlich erkennbar) blinken bei Datenverkehr.
Bei mir im Keller hängt ein Umwandler von LWL auf RJ45. Der hat auch mehrere LEDs die bei Datenverkehr anfangen zu blinken. Auf dem Foto kann man das Blinken der LEDs sehr schön erkennen.
Bei mir im Keller hängt ein Umwandler von LWL auf RJ45. Der hat auch
mehrere LEDs die bei Datenverkehr anfangen zu blinken. Auf dem Foto kann
man das Blinken der LEDs sehr schön erkennen.
Das Thema hatten wir gerade in einem anderen Thread. Da wurde ein Mikrocontroller empfohlen, der die LED gut sichtbar blinken lässt, wenn Daten übertragen werden.
Bei Ethernet wird das ebenso gemacht. Da wird die LED von Software angesteuert, nicht vom Datensignal selbst.
Noch
schlimmer finde ich die Verwechslung der Spannungspegel von RS232 mit
denen einer normalen UART eines µControllers und den glücklichen
Umstand, dass das hier zufällig funktioniert
Nein, das ist kein Zufall. Die RS-232 Receiver (z.B. MAX232, SN75189) sind am RXD-Eingang TTL-kompatibel, wie man leicht dem Datenblatt entnehmen kann.
Für die Negierung des Signalpegels muß man natürlich senderseitig sorgen.
Manche µC können ihre IO-Pins negiert konfigurieren.
Z.B. hatten programmierbare Taschenrechner oft eine UART zum Speichern der Programme auf dem PC ohne extra Pegelwandler-IC. Zum Invertieren benutzte man 2 Transistoren.
Genau das soll eben nicht sein. Die LED soll ja bei Datenverkehr schön
am Blinken am fangen
Ich weiß zwar nicht, was mit „am Blinken am fangen” gemeint ist, aber ob eine Verlängerung der Impulse nötig sein wird, wird derjenige entscheiden, der die drei Teile zusammenlöten und dann anschließend draufschauen wird, nicht Du oder sonst irgendjemand. Wie die Pakete der Datenübertragung aufgebaut sind und somit welche optischen Muster sich daraus ergeben, weiß man nicht, insofern war das, was ich mit der Verlängerung gesagt habe, nur eine Option, falls es am Ende doch nicht so sein sollte, wie man es gerne hätte. Einfach mal abwarten bis es soweit ist. Wenn es passt, dann ist gut, wenn NICHT, dann kann man sich dazu eventuell noch etwas überlegen.
Einfach mal abwarten bis es soweit ist. Wenn es so passt, wie ich es vorgeschlagen habe, dann ist es gut,
wenn NICHT, dann kann man sich dazu noch etwas überlegen.
Das Lesen des Datenblattes solltest Du nochmal üben.
Anbei der betreffende Ausschnitt vom MAX232. Über 2.4V wird high
erkannt, unter 0.8V low.
Ich glaube, da hast Du etwas Grundsätzliches in dem ganzen Kontext nicht verstanden – deswegen ist das, was Du da mit dem Kopf durch die Wand versuchst, völlig sinnlos. Ich empfehle, sich den Thread nochmal genau durchzulesen – vielleicht kommst Du dann drauf.
Ich glaube, da hast Du etwas grundsätzliches in dem ganzen Kontext nicht
verstanden – deswegen ist das, was Du da mit dem Kopf durch die Wand
versuchst, völlig sinnlos.
Ich habe Dich schon verstanden. Du mokierst Dich darüber, daß der OP versucht mit 0V/5V einen standard RS-232 Eingang zu steuern.
Das Datenblatt zeigt Dir aber eindeutig, daß das nicht nur in der Praxis einwandfrei funktioniert, sondern auch so gewollt ist.
Man kann nur nicht die maximale Kabellänge erreichen, wie mit einem echten RS-232 Transmitter (+/-6V), aber das wars auch schon.
Es ging aber gar nicht darum, daß das nicht funktionieren würde, sondern daß durch die LED der Pegel nicht einbrechen soll.
Mein Vorschlag war daher, die LED mit einem MOSFET zu treiben.
Es ist aber so dass der danach folgende RS232-LAN-Konverter die Pegel
problemlos erkennt (sozusagen "Glück gehabt")
Du hast Dich in irgendetwas unnötig festgefahren und wenn Du weiterhin mit dem Kopf durch die Wand willst, dann viel Spaß, aber natürlich ohne mich, weil das reine Zeit- und Energieverschwendung ist.
Es ist aber so dass der danach folgende RS232-LAN-Konverter die Pegel
problemlos erkennt (sozusagen "Glück gehabt")
Er hat nur nicht ins Datenblatt geschaut, daher seine Annahme "Glück gehabt".
Ich habe extra in verschiedene Datenblätter geschaut, selbst der uralte SN75189 (von 1973) ist eingangsseitig TTL kompatibel.
Er kann also ruhig sein "Glück gehabt" durch "Gewißheit" ersetzen.
Er kann also ruhig sein "Glück gehabt" durch "Gewißheit" ersetzen.
Danke, wusste ich auch nicht. Dann hab ich natürlich ein noch besseres Gefühl...
Und wegen dem Blinken und Impuls-Verlängerung: Ich werd das einfach mal ohne probieren, es muss ja nicht "schön" blinken, wenn ich einfach nur erkenne dass Telegramme ankommen reicht mir das. Wenn nicht, kann ich mir was überlegen. Meine Mini-Platine sitzt ohnehin im E-Verteiler direkt beim SmartMeter, vermutlich einmal anstecken, sich über Blinken freuen, vergessen :-)