Das abgebildete Signal ist ein Serial-Signal wo die logische 0 einem 10V Spannungspegel und die logische 1 einem 18V Pegel entspricht. Wie kann ich das am einfachsten lesen/erzeugen? Ich habe mir div. Level-Shifter angeschaut aber die liegen meist nur im Logikbereich, vielleicht mal 7V aber dann ist schluss. Ich möchte es an einem 5V RX/TX Serial-Modul betreiben.
Die 10V/18V runterteilen (R-Teiler 1:2) auf 5V/9V - dann über eine Z-Diode (5.1V) auf 0V/4V - dann direkt auf eine 5V-Logik.
Olli Z. schrieb: > Das abgebildete Signal ist ein Serial-Signal wo die logische 0 > einem 10V > Spannungspegel und die logische 1 einem 18V Pegel entspricht. Fernspeisung? Dann solltest auch sagen wieviel Strom nötig ist.
Bei so einem unsymmetrisch verschliffenen Signal ist es wahrscheinlich besser, wenn die Schaltschwellen für L->H und H-L unterschiedlich liegen. Da hilft ein Schmitt-Trigger um das Timing im pegelgewandelten Ausgangssignal wieder vernünftig zu reproduzieren. Die Zeitauflösung vom Screenshot ist leider etwas mager, um irgendwelche Details abzulesen.
H. H. schrieb: > Fernspeisung? Dann solltest auch sagen wieviel Strom nötig ist. Du meinst aufgrund des Grundpegels von 10V? Das wäre in diesem Fall egal, das übernimmt die Spannungsqulle. Ich muss eigentlich zum senden nur die richtigen LOW's generieren.
H. H. schrieb: > Olli Z. schrieb: > >> Das abgebildete Signal ist ein Serial-Signal wo die logische 0 >> einem 10V >> Spannungspegel und die logische 1 einem 18V Pegel entspricht. > > Fernspeisung? Dann solltest auch sagen wieviel Strom nötig ist. Wird für bidirektionalen M-Bus, z.B. Brandmelder, verwendet. - Fernspeisung - Telegramme Zentrale - Melder: Absenkung der Spannung durch Zentrale - Telegramme Melder - Zentrale: Stromerhöhung durch Melder H: < 100μA pro Melder L: > 10mA pro Melder
:
Bearbeitet durch User
Olli Z. schrieb: > Ich muss eigentlich zum senden nur die richtigen LOW's generieren. Woher kommt das Signal (Bussystem, Impedanz der Quelle)? Was genau hast du vor? Wer soll mit wem kommunizieren und wie willst du dort eingreifen?
Ich würde das Signal als AC mit einem Kondensator auskoppeln und dann durch einen Schmitt Trigger schicken. Eventuell noch einen Tiefpass dazwischen, um Störungen heraus zu filtern. Anm: Der angehängte Plan ist nur ein Lösungsansatz. Ich habe das weder getestet noch durch gerechnet.
Stefan F. schrieb: > Ich würde das Signal als AC mit einem Kondensator auskoppeln und dann > durch einen Schmitt Trigger schicken. Ganz tolle Idee :-( Dann bräucht jedes Datenpaket eine Präambel, damit sich das Signal am Empfängereingang erstmal richtig einpegeln kann.
Der Bus hat einen Ruhepegel von 18V. Dieser wird vermutlich irgendwo durch einen Pullup erzeugt. Die restlichen Teilnehmer können ggf. einfach OC angeschlossen sein. Meine Tests am Bus haben gezeigt das ich das LOW-Symbol (=10 V Pegel) erreiche wenn ich mit 180 Ohm gegen Masse gehe. Rechnerisch wären das also 44mA für die 8V Spannungsabfall über dem Widerstand. Nun könnte man einfach mit einem NPN schalten, hat dann aber das Problem das der dauerhafte 0 Pegel dann auch die Bus-Leitung dauerhaft auf 10V zieht. Es bräuchte also noch eine Output-Enable logik, die das nur macht wenn etwas über das TTL-Serial Interface gesendet wird. Die andere Möglichkeit wäre das Signal senderseitig zu invertieren, sodass im Ruhezustand am Bus die 18V (HIGH) anliegen und nur die 0en aufgelegt werden.
Claus schrieb: > Die 10V/18V runterteilen (R-Teiler 1:2) auf 5V/9V - dann über eine > Z-Diode (5.1V) auf 0V/4V - dann direkt auf eine 5V-Logik. Wie soll das denn funktionieren? Die Z-Diode würde ja nur dafür sorgen das die Spannung zwischen ihrer Kathode und dem Vorwiderstand nicht über 5,1V geht. D.h. bei 9V würde sie den Strom nach Masse ableiten, im Endeffekt wäre am "Digitalausgang" dann eine 5,1V=HIGH. Bei 5V leitet sie nichts mehr ab und das wäre auch ein HIGH.
Wolfgang schrieb: > Bei so einem unsymmetrisch verschliffenen Signal ist es wahrscheinlich > besser, wenn die Schaltschwellen für L->H und H-L unterschiedlich > liegen. Da hilft ein Schmitt-Trigger um das Timing im pegelgewandelten > Ausgangssignal wieder vernünftig zu reproduzieren. Die Zeitauflösung vom > Screenshot ist leider etwas mager, um irgendwelche Details abzulesen. Ja, ich denke auch der Schmitt-Trigger oder ein mit OpAmp (LM393) aufgebauter Komparator wäre hier das Richtige Mittel. Es würde ja reichen oberhalb von 14V alles als HIGH und unterhalb alles als LOW zu erkennen. Hysterese müsste vermutlich nicht sein, würde aber sicher das Ausgangssignal stabilisieren. Ein 7414 könnte hier vermutlich schon genügen, der wäre gleich auch invertierend was für den TTL-Eingang gut ist. Dann schaue ich mal wie ich den für meine zwei Schaltschwellen um 14V rum dimensionieren müsste.
H. H. schrieb: > Was für ein merkwürdiger Bus ist das denn? Ein Viessmann 2-Draht-Bus aus den 90ern, intern zwischen Regelung und Leistungsteil.
Olli Z. schrieb: > H. H. schrieb: >> Was für ein merkwürdiger Bus ist das denn? > > Ein Viessmann 2-Draht-Bus aus den 90ern, intern zwischen Regelung und > Leistungsteil. Ach so, das ist die Verlängerung von diesem Thread: Beitrag "Viessmann Eurola OC mit 2-Drahtbus nachrüsten"
H. H. schrieb: > Olli Z. schrieb: >> H. H. schrieb: >>> Was für ein merkwürdiger Bus ist das denn? >> >> Ein Viessmann 2-Draht-Bus aus den 90ern, intern zwischen Regelung und >> Leistungsteil. > Ach so, das ist die Verlängerung von diesem Thread: > Beitrag "Viessmann Eurola OC mit 2-Drahtbus nachrüsten" Es ist ein anderer Weg, weil ich beim EXTERNEN 2-Draht-Bus nicht weiter komme (interessiert niemand, bzw. gibt keine Erfahrungswerte hier).
Kannst du nicht nachsehen wie Viessman das gelöst hat, hardwaremäßig.
Olli Z. schrieb: > Der Bus hat einen Ruhepegel von 18V. Dieser wird vermutlich irgendwo > durch einen Pullup erzeugt. Nein, dann nicht die fallenden Flanken rund, sondern die steigenden.
Olli Z. schrieb: > Es würde ja reichen oberhalb von 14V alles als HIGH und unterhalb alles > als LOW zu erkennen. Damit handelst du dir wegen der unterschiedlichen Zeitkonstanten der Flanken für steigende und fallende Flanken unterschiedliche Verzögerungen in dem rekonstruierten Signal ein. Wenn das egal ist, kannst du natürlich einen einfachen Komparator verwenden.
Olli Z. schrieb: > Wie soll das denn funktionieren? Die Z-Diode würde ja nur dafür sorgen > das die Spannung zwischen ihrer Kathode und dem Vorwiderstand nicht über > 5,1V geht. D.h. bei 9V würde sie den Strom nach Masse ableiten, im > Endeffekt wäre am "Digitalausgang" dann eine 5,1V=HIGH. Bei 5V leitet > sie nichts mehr ab und das wäre auch ein HIGH. Claus meinte es so:
1 | 18V/10V ——— R ——•————|<—————•——— 4V/0V |
2 | | Z 5V1 | |
3 | R 10R |
4 | | | |
5 | ——— GND ——— |
H. H. schrieb: > Kannst du nicht nachsehen wie Viessman das gelöst hat, hardwaremäßig. Könnte man, dazu müsste ich die VR18 aber ausbauen und hätte währenddessen keine Heizung. Da wäre es besser eine alte Platine an der Hand zu haben..
Johannes F. schrieb: > Olli Z. schrieb: >> Wie soll das denn funktionieren? Die Z-Diode würde ja nur dafür sorgen >> das die Spannung zwischen ihrer Kathode und dem Vorwiderstand nicht über >> 5,1V geht. D.h. bei 9V würde sie den Strom nach Masse ableiten, im >> Endeffekt wäre am "Digitalausgang" dann eine 5,1V=HIGH. Bei 5V leitet >> sie nichts mehr ab und das wäre auch ein HIGH. > > Claus meinte es so: > 18V/10V ——— R ——•————|<—————•——— 4V/0V > | Z 5V1 | > R 10R > | | > ——— GND ——— Ich habt natürlich beide recht: Der Schaltungsteil rechts der Z-Diode muss sicherstellen, dass die Z-Diode immer bestromt ist. Entweder das leistet der Eingang der empfangenden Schaltung, oder da muss der zusätzliche "10R" Widerstand mit rein. Danke Johannes: Mit "10R" ist die Idee hinter der Schaltung um 100% besser beschrieben.
Johannes F. schrieb: > Claus meinte es so:
1 | 18V/10V ——— R ——•————|<—————•——— 4V/0V |
2 | | Z 5V1 | |
3 | R 10R |
4 | | | |
5 | ——— GND ——— |
Ok, das hatte ich wirklich falsch verstanden, so funktioniert es. Habe es mit R=1k aufgebaut, allerdings eine 4,7V Z-Diode verwendet, nur zur Sicherheit... Bekomme so ein sauberes TTL-Signal mit entsprechend tiefen (unter 20%) LOW Flanken. Das konnte ich direkt auf das TTL-Serial -> USB Interface geben (RX) und mit der Einstellung 1200-8E1 bekam ich sofort die Bytewerte ins Terminal. Da ist es dann auch egal ob der Ruhepegel logisch "0" oder "1" ist. Dann fehlt mir jetzt nur noch die Sendeseite. Hier müsste ich ja mit Open-Collector arbeiten, d.H. nur die LOW-Pulse sind zu erzeugen. Die Leitung ist ja intern auf 18V gezogen und ich hatte ja bereits über einen Poti den Widerstandswert ermittelt der notwendig ist um die Leitung auf 10V zu "ziehen", was dem logischen "0" entspricht. Das waren ca. 180 Ohm, wobei dann ca. 44 mA Strom fließen. Könnte man das nicht ganz leicht über einen PNP mit entsprechendem Widerstand im Emitter lösen? Der BC557 verträgt bis zu 100mA Kollektorstrom.
:
Bearbeitet durch User
Olli Z. schrieb: > Das konnte ich direkt auf das TTL-Serial -> USB Interface geben (RX) und > mit der Einstellung 1200-8E1 bekam ich sofort die Bytewerte ins > Terminal. Da ist es dann auch egal ob der Ruhepegel logisch "0" oder "1" > ist. Das ist soetwas von überhaupt nicht egal. Das "TTL-Seriel -> USB" Interface braucht als Ruhepegel ein H, damit sich das Start Bit mit seinem L-Pegel davon unterscheidet. Du hast Glück gehabt - sonst nix.
Olli Z. schrieb: > Dann fehlt mir jetzt nur noch die Sendeseite. Hier müsste ich ja mit > Open-Collector arbeiten, d.H. nur die LOW-Pulse sind zu erzeugen. Die > Leitung ist ja intern auf 18V gezogen und ich hatte ja bereits über > einen Poti den Widerstandswert ermittelt der notwendig ist um die > Leitung auf 10V zu "ziehen", was dem logischen "0" entspricht. Das waren > ca. 180 Ohm, wobei dann ca. 44 mA Strom fließen. Zieh die 18V/10V-Leitung über 180 Ohm auf GND, z.B. über einen NPN-Transistor. BC547 wär mit zu sehr auf Kante genäht. Ich würde eine Nummer 'größer' gehen, z.B. sowas wie BC337, 2N2222, BC140 ... Basiswiderstand ist klar? Vermutlich brauchst Du aber noch einen Inverter in der Basis-Ansteuerung.
Gerald K. schrieb: > - Telegramme Zentrale - Melder: Absenkung der Spannung durch Zentrale > - Telegramme Melder - Zentrale: Stromerhöhung durch Melder > H: < 100μA pro Melder > L: > 10mA pro Melder Wie würde sich das denn auf dem Oszilloskop darstellen? Nicht das ich mit meiner Messung lediglich eine Kommunikationsrichtung erkenne? Zum erkennen eines Teilnehmers an einem Shared-Bus habe ich sonst immer einen 100 Ohm Widerstand vor dem Abzweig zum Teilnehmer eingeschliffen um damit einen Spannungsabfall zu provozieren der sich von den anderen Teilnehmern unterscheidet. Mit einem solchen Widerstand in der Leitung müsste ich ja auch eine indirekte Strommessung durchführen können. Dieser verhält sich dann entweder analog zur Spannung oder nicht. Das müsste die Frage doch beantworten?
:
Bearbeitet durch User
Ich glaube inzwischen eher das es sich hier um den besagten Meter-Bus handelt. Ich kann einem an dem Bus angeschlossenen Bedienteil eindeutig Botschaften über den Bus senden auf die es reagiert, z.B. mit einer Temperaturanzeige im Display. Die Botschaften habe ich zuvor vom arbeitenden Bus mit dem RX-Pegelwandler ermittelt. Das Bedienteil verfügt über ein LCD-Display mit Hintergrundbeleuchtung, besitzt aber auch eine eigene Stromversorgung mittels Batterien, funktioniert auch ohne Bus-Anschluss, jedoch dann auch ohne Hintergrundbeleuchtung des Displays. Diese geht an, sobald ich mind. 10V auf den Bus lege. Mit dem weiter oben gezeigten Pegelwandler habe ich somit die Spannungsabsenkung eines Meter-Bus-Master simuliert. Nur die Antwort des Slave kann ich nicht lesen, da hierzu eine Stromabsenkungserkennung notwendig ist und da fehlt mir gerade die Idee wie man dieses detektieren und in ein Binärsignal wandeln könnte. Leider habe ich für mein DSO keinen Stromwandler-Tastkopf. Ich werde es mal mit einem niederohmigen Widerstand, zwei Messspitzen und einer Differenz-Berechnung dieser versuchen, bin aber noch wenig optimistisch das ich hier was sinnvolles erkenne. So oder so denke ich das es einfacher ist mal auf Gut-Glück einen M-Bus / TTL (oder USB) Adapter zu besorgen. Für Meter-Bus Interfaces gibt es ja einige spezialisierte Chips von TI und ON.
Olli Z. schrieb: > Nur die Antwort des Slave kann ich nicht lesen, da hierzu eine > Stromabsenkungserkennung notwendig ist und da fehlt mir gerade die Idee Ich würde kurzerhand einen Stromspiegel zwischen Bedienteil und die 18V hängen. Mit ungleichen Emitterwiderständen lässt sich der Strom dann auf einen proportionalen Strom nach GND abbilden. Wie der einfache Bipolar-Stromspiegel https://de.wikipedia.org/wiki/Stromspiegel#Beispiele nur eben mit PNP gebaut. Den gespiegelten runterskalierten Strom lässt man über einen Widerstand laufen, die Spannung da dran kann Massebezogen ausgewertet werden. Edit: brauchst halt 18.5V oder 19V zu Beginn, sollte aber kein Problem sein. mfg mf
:
Bearbeitet durch User
Ich habe jetzt etwas rumgesucht um einen M-Bus Adapter für USB oder wenigstens TTL zu finden, jedoch war praktisch alles was hier angeboten wird nur über China verfügbar. Da bin ich auf das OpenSource-Projekt hier gestoßen: https://gitlab.com/jm_wtal/mbus-usb-converter/-/tree/master/ die einen M-Bus Pegelwandler mit Transistoren aufgebaut haben. Den Teil des Wandler-Schaltplans habe ich hier als Grafik mal eingefügt. Da ich alle Bauteile zuhause hatte habe ich das flux mal auf einem Breadboard nachgebaut und tatsächlich kann ich nun auch Antworten von meinem Bedienteil sehen! Dazu muss man natürlich Master "spielen" und die entsprechenden Anfragen senden, denn von sich aus dürfen M-Bus Slaves ja nichts auf den Bus senden. Einen kleinen Nachteil hat die Schaltung dennoch, sie ist wohl auf die M-Bus typischen 36V ausgelegt, mein Viessmann M-Bus hat jedoch nur 18V. Und die Schaltung arbeitet rein als Master (Spannungsabsenkung beim senden, Stromabtastung beim empfangen) und lässt sich nicht einfach umkehren, wenn man Slave sein will. Ich suche jetzt mal weiter, es gibt hier und da ganz interessante Interfaces für andere Geräte wie z.B. das 3013272 für den "Diehl Sharky 775" (siehe Foto). Da ist sogar ein TSS721A drauf, der sollte ja Bidirektionales M-Bus können. Vermutlich lässt es sich auch rein über Transistoren aufbauen, jedoch habe ich die Schaltung aus dem OpenSource-Projekt nicht in der Tiefe verstanden als ich daraus eine Slave-Schnittstelle umkonstruieren könnte.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.