Ich verwende seit einiger Zeit erfolgreich den BC547B in einer Transistor-Emitterschaltung um gepulste 5-12 V Signale in ein schönes 3,3 V Rechteck zu wandeln und dann mittels µC die Impulse zu zählen (max. Frequenz ca. 250 Hz).
In der Regel hab ich dazu einen 220 kOhm Basiswiderstand und einen 10 kOhm Pullup am Ausgang. Das Problem dabei ist immer die Strombelastung des Signals und nun hab ich wohl ein sehr empfindliches Signal, das mich ärgert. Anbei ein Foto der Signalform (blau). Laut meinen Berechnungen und Messungen fließen 0,033 mA vom Signal zur Basis. Das Signal bricht mit dieser Schaltung von 8 V auf ca. 5 V ein. Mit erhöhtem Basiswiderstand von 690 kOhm bricht es immer noch auf 6 V ein. Es funktioniert alles in beiden Fällen, aber ich würde den Spannungsabfall gerne vermeiden um die Signalquelle nicht zu belasten. Und demnach wären 0,011 mA (mit 690 kOhm an Basis) schon zu viel was mir auch ein wenig komisch vorkommt.
Ein weiteres erhöhen des Basiswiderstands bringt nix. Google und KI empfehlen einen (N-Kanal) MOSFET, der spannungsabhängig schaltet und keinen Strom vom Signal zieht. Klingt gut, jetzt möcht ich nur noch die Schaltung und die Dimensionierung der Widerstände verstehen. Der Pull-Up am Ausgang ist klar. Eingangsseitig kursieren, da aber mehrere Varianten:
Widerstand zwischen Signal und Gate in Reihe
Wenn ich richtig recherchiert habe, verhindert der Stromspitzen beim Umschaltvorgang bzw. Dämpft Schwingungen da sich der Gate-Eingang wie ein Kondensator verhält. Hier wird mir 10 kOhm vorgeschlagen, warum? Wie berechnet man den Widerstand? Das heißt auch es fließt doch ein Strom vom Signal? Demnach muss ich den Widerstand möglichtst hochohmig wählen, aber angeblich funktioniert das Schalten des Transistors nicht mehr wenn zu hochohmig.
Widerstand zwischen Gate und Source bzw. Masse
Zieht das Gate auf Masse bei undefiniertem Eingang. Das sollte in meinem Fall keine Rolle spielen
Beides kombiniert (wodurch ein Spannungsteiler entsteht)
Wird als beste Lösung beschrieben. Es werden mir 100 kOhm am Gate-Eingang und 220 kOhm vom Gate zur Source/Masse vorgeschlagen. Der Widerstand vom Gate zur Source/Masse soll auch EMV-Störungen vermeiden und das Gate zur Masse hin entladen. Aber ich sehe das kritisch, da über den Spannungsteiler wieder Strom vom Signal zur Masse fließt. Kann man auch hochohmig machen, aber es wird immer mehr Strom fließen als bei Variante 1, oder?
Also wie beschalte ich den Trasistor richtig und wie dimensioniere ich die Widerstände um das Signal möglichst nicht zu belasten? Mir wird übrigens ein 2N7000 vorgeschlagen.
und deshalb müsste man für deinen Fall wissen wie schnell das Signal
ist.
Sebastian schrieb:
die Impulse zu zählen (max. Frequenz ca. 250 Hz)
Du Weltmeister - ein MOSFET zieht den Strom nicht über die Signalperiode, sondern während der Schaltflanke. "Schnelligkeit" bedeutet im Zusammenhang mit dem Schaltverhalten eines MOSFETs folglich Flankensteilheit.
Zeig doch einmal, wie so ein einzelner Puls aussieht und verrate, ob das das Eingangs- oder das Ausgangssignal deiner Schaltung ist.
Welche Anforderungen stellst du an die Form des Ausgangssignals?
Besitzt dein µC einen Schmitt-Triggereingang?
Das Gate wird nur während der Flanke umgeladen. Das muss natürlich ausreichend umgeladen worden sein, bevor der kurze Puls zu Ende ist. Und was "ausreichend" ist, ergibt sich u.a. aus der Eingangsspezifikation des µC.
Google und KI empfehlen einen (N-Kanal) MOSFET, der spannungsabhängig
schaltet und keinen Strom vom Signal zieht.
Einen kurzen Impuls beim Laden der Gatekapazität wird es geben. Wenn du den mit ’nem großen Widerstand zu bändigen versuchst, wird dein MOSFET langsam öffnen, und dir so dein Signal versauen.
Es würde mich interessieren, was die Quelle dieses ominösen Signals ist.
Die absolute nichtbelastbarkeit deutet eher auf was Opencollectoriges hin, wo ein Widerstand fehlt (oder von einer Anzeige-LED simuliert wird).
Selbst lowest power Uhrenchips schaffen 10µA, und das bei 1,2V.
Ein CMOS-Schmitttrigger-Inverter a la 4093 oder 40106 könnte der Geschichte schon mal Beine machen, ein entsprechender Transistor ist dann kein Problem mehr.
Das Signal bricht mit dieser Schaltung von 8 V auf ca. 5 V ein. Mit
erhöhtem Basiswiderstand von 690 kOhm bricht es immer noch auf 6 V ein.
Es funktioniert alles in beiden Fällen, aber ich würde den
Spannungsabfall gerne vermeiden um die Signalquelle nicht zu belasten.
Und warum soll die nicht belastet werden? Kaputt gehen tut die ja nicht dadurch, und Fehlfunktionen in Bezug auf das Ergebnis scheint diese Belastung wohl auch nicht zu ergeben ...
Wenn du den mit ’nem großen Widerstand zu bändigen versuchst, wird dein
MOSFET langsam öffnen, und dir so dein Signal versauen.
"Versauen" liegt im Auge des Betrachters.
Um einen Impuls zählen zu können, sind die Anforderungen nicht sonderlich hoch. Da müsste sich Sebastian schon einmal etwas genauer zu seiner Signalquelle, zu seiner Pulsform und zu seinem µC äußern.
Um einen Impuls zählen zu können, sind die Anforderungen nicht
sonderlich hoch
Kleine OT-Anekdote am Rande: In einem anderen Forum (völlig anderes Thema) wollte jemand einen PC-Lüfter mit PWM steuern. Die K„I“ hat ihm zu einem MOSFET und 100kΩ zwischen μC und Gate geraten, und bei der Frequenz und dem ihm von der K„I“ vorgeschlagenen MOSFET wurde aus den Pulsen am Microcontroller eine flache Linie über Source/Drain.
In der Regel hab ich dazu einen 220 kOhm Basiswiderstand und einen 10
kOhm Pullup am Ausgang. Das Problem dabei ist immer die Strombelastung
des Signals und nun hab ich wohl ein sehr empfindliches Signal, das mich
ärgert. Anbei ein Foto der Signalform (blau). Laut meinen Berechnungen
und Messungen fließen 0,033 mA vom Signal zur Basis. Das Signal bricht
mit dieser Schaltung von 8 V auf ca. 5 V ein. Mit erhöhtem
Basiswiderstand von 690 kOhm bricht es immer noch auf 6 V ein. Es
funktioniert alles in beiden Fällen, aber ich würde den Spannungsabfall
gerne vermeiden um die Signalquelle nicht zu belasten. Und demnach wären
0,011 mA (mit 690 kOhm an Basis) schon zu viel was mir auch ein wenig
komisch vorkommt.
In der Tat ist das schon komisch. Was ist das denn für eine Signalquelle?
Die Emitterschaltung hat einen relativ niedrigen Eingangswiderstand. Um den Eingangswiderstand zu erhöhen setzt man einen Emitterwiderstand ein. Der Eingangswiderstand erhöht sich dann um Emitterwiderstand x Stromverstärkungsfaktor. Dabei verringert sich dann die Spannungsverstärkung. Die beträgt dann Kollektorwiderstand / Emitterwiderstand.
Aber bei 8 V Signalspannung brauchst Du bestimmt nicht noch eine Spannungsverstärkung. Es wurde Dir schon die Kollektorschaltung empfohlen. Diese Schaltung ist quasi ein Spannungsfolger mit hohem Eingangswiderstand. Da Deine Signalquelle selbst mit geringen Strömen nicht klar kommt würde ich sicherheitshalber auch den 220 kOhm Basiswiderstand verwenden. Bei der Einschaltflanke könnte sonst durch die Basis-Emitter Kapazität ein kleiner Strompeak auftreten, den Deine Quelle womöglich nicht mag.
Da begegnen einem noch ganz andere unschöne Effekte, die erst bei genauerem Hinsehen überhaupt auffallen. Sogenannte "Glitches" bei bestimmten ICs (-Teilerstufen).
Der nachgeschaltet angesteuerte µC sollte nur auf einen definierten Impuls hin reagieren. Das wird wohl die Hauptaufgabe der Puffer-Schaltung des TO sein. Evtl. ist sogar eine bewusste definierte Verbreiterung des Impulses nötig.
Und keinesfalls ein Re-Triggern auf einen "Glitch".
Was willst du mit diesem Spiegelbild deiner Kamera sagen?
Ist ein Dreckeffekt, den ich schon früher einmal hier thematisiert hatte.
Die diesbezüglichen Tipps waren sehr nützlich. Man kann die Zeit aber nicht zurückdrehen und selbige wohlgemeinte Ratschläge rückwirkend auf das Bild anwenden. Das wäre sicher wünschenswert, ich besitze aber leider keine derartige "Zeitmaschine".
Ich denke, jeder, der auch nur ein wenig auf seine möglichst positive Außenwirkung im Forum hier bedacht ist, wird das, was technisch interessant ist, aus dem zugegeben miserablen Oszillografenfoto herauslesen können und das in dem Zusammemnhang Unwichtige einfach ignorieren und nicht noch extra darauf herumhacken.
Jedenfalls ist eine Lösung für das Problem des TO durchaus machbar. Eine kenne ich. Bislang besteht aber wohl kein Interesse, darauf näher einzugehen.
Ich denke, jeder, ..., wird das, was technisch interessant ist, aus dem ...
Oszillografenfoto herauslesen können.
Ich lese daraus, dass die auf dem Oszi sichtbaren sogenannte "Glitches" von der Amplitude zu klein sein müssten, um für eine Nachfolgeschaltung einen Pegelwechsel zu erzeugen. Insbesondere wenn der µC einen Schmitt-Trigger am Eingang besitzt, sind die mit einem kleinen Serienwiderstand beherrschbar.
Auch ist nicht klar, wie das Signal gemessen wurden (Bandbreite Oszi im Vergleich zu der wahren Pulsform am Logikeingang, Erdung Tastkopf zur Vermeidung von Dreckeffekten durch Masseströme oder Wirkung von Impulsströmen auf Leiterschleife durch Erdungsclip).
Und warum soll die nicht belastet werden? Kaputt gehen tut die ja nicht
dadurch, und Fehlfunktionen in Bezug auf das Ergebnis scheint diese
Belastung wohl auch nicht zu ergeben ...
Das weißt Du kraft Deiner Erbsensuppe? Gehe besser davon aus, dass er ein Signal abgreifen will, welches anderweitig in Verwendung ist und nicht gestört werden soll.
gepulste 5-12 V Signale in ein schönes 3,3 V Rechteck zu wandeln
Die Spannung passt perfekt zu CMOS, dessen Eingänge hochohmig sind.
Eventuell findet sich sogar ein CMOS-Buffer, der mit 3V3 betrieben diese höhere Eingangsspannung akzeptiert - ich habe die Typenreihen nicht im Kopf.
Falls nicht und wenn die Pegelwerte H/L passen, einen 4011 dran und den BC547 dahinter.
. Das Signal bricht mit dieser Schaltung von 8 V auf ca. 5 V ein.
Ja und?
Stört nur dich das oder auch deine Signalquelle?
Hier wird mir 10 kOhm vorgeschlagen, warum?
Wie berechnet man den Widerstand?
Der Widerstand bildet zusammen mit der Gate-Kapazität einen Tiefpass. Wie man den Einfluss auf eine Impulsflanke ausrechnet, kannst du überall nachlesen (Stichworte: Sprungantwort Tiefpass).
Das heißt auch es fließt doch ein Strom vom Signal?
Ja, aber nur wenn sich das Signal ändert. Irgendwie muss sich Ladung bewegen, damit sich die Spannung über der Gate-Kanal-Kapazität entsprechend dem Signalverlauf ändert.
Mit den Angaben des TS komme ich auf einen Innenwiderstand der Quelle von 90kOhm (Einbruch auf 5V bei 33µA) bzw. 180kOhm (Einbruch auf 6V bei 11µA). Also angeblich was mit negativen differentiellen Innenwiderstand. Angeblich ...
Da sich der TS seit 12 Stunden nicht mehr gemeldet hat glaube ich wir sind im Märchenland.
So eine hochohmige ist tatsächlich problematisch, denn sie reagiert äußerst empfindlich auf elektrostatische Ladungen. Die kleinen MOSFETS gehen davon ratzfatz kaputt und die großen mit rund 1 nF Fate-Kapazität belasten deine Quelle zu sehr kapazitiv. Schutzdioden kommen auch nur bedingt in Frage. Außerdem sind die 12 Volt am Gate für die meisten kleinen MOSFET zu viel.
Deswegen möchte ich hinterfragen, was das für eine Spezielle Signalquelle ist. Besser das Problem dort lösen, sofern möglich.
So eine hochohmige ist tatsächlich problematisch, denn sie reagiert
äußerst empfindlich auf elektrostatische Ladungen. Die kleinen MOSFETS
gehen davon ratzfatz kaputt
In der Regel hab ich dazu einen 220 kOhm Basiswiderstand ...
...
Laut meinen Berechnungen und Messungen fließen 0,033 mA vom Signal zur Basis.
Das Signal bricht mit dieser Schaltung von 8 V auf ca. 5 V ein. Mit
erhöhtem Basiswiderstand von 690 kOhm bricht es immer noch auf 6 V ein.
Da hast du dich verrechnet, vermessen oder verschrieben.
Ein Strom von 0,033 mA müsste alleine an deinem 220 kΩ Basisvorwiderstand zu einem Spannungsabfall von 7,26 V führen - sagt das ohmsche Gesetz.
Dein Messungwert von "ca. 5 V" würde abzüglich der Basis-Emitter-Spannung des BJT von 620 mV aber einen Spannungsabfall von 4,4 V besagen. Der Strom dürfte sich bei 220 kΩ also eher auf 20 µA einstellen. Für die Quelle würde das einen Innenwiderstand von ca. 150 kΩ bedeuten.
Die Messung mit 690 kΩ passt allerdings nicht so richtig dazu. Die würde einen Innenwiderstand von 256 kΩ bedeuten.
Und warum soll die nicht belastet werden? Kaputt gehen tut die ja nicht
dadurch, und Fehlfunktionen in Bezug auf das Ergebnis scheint diese
Belastung wohl auch nicht zu ergeben ...
Das weißt Du kraft Deiner Erbsensuppe? Gehe besser davon aus, dass er
Natürlich ...
ein Signal abgreifen will, welches anderweitig in Verwendung ist und
nicht gestört werden soll.
Deswegen solle der TO ja mal was zum Kontext sagen, was das überhaupt für eine Signalquelle ist, und wozu das Signal "verschönert" werden soll, obwohl es doch auch so funktioniert.
und vielen Dank für die zahlreichen Antworten, Ideen und Anregungen. Ich werde mal versuchen die Fragen so gut es geht zu beantworten.
Was erwarte ich vom Ausgangssignal?
Ich will die Impulse mit einem µC zählen, in diesem Fall mit einem Raspi. Daher soll der Pegel 3,3 V betragen.
Genauere Spezifikation des Eingangssignals
Ich verstehe nun, dass die Dauer des Impulses entscheidend ist (Stichwort Tiefpass). Ich kann mit meinem Oszi leider keine Daten aufzeichnen, daher bin ich auf Screenshots beschränkt und da einen Einzelimpuls zu erwischen ist mir bislang nicht gelungen. Ich werde versuchen das Signal mal besser zu triggern, vielleicht bekomm ich da eine bessere Aufnahme. Mit den bisherigen Messungen kann man von ca. 3 ms Impulsdauer ausgehen.
Die ominöse Signalquelle
Ich hab leider keinen detaillierten Schaltplan dazu, alles was ich gefunden habe ist das Blockschaltbild (siehe Anhang). Es geht um Signal A pulse output yellow. Vielleicht hilft das jemanden.
Es muss kein MOSFET sein, vielleicht ist der gar nicht mal so gut geeignet für den Fall. In die Kollektorschaltung muss ich mich noch genauer einlesen, aber derzeit ist mir rätselhaft wie ich damit auf die 3,3 V komme. Vielleicht durch nachschalten der vorhandenen Emitterschaltung an den Ausgang der Kollektorschaltung? OpAmp als Spanngsfolger klingt sehr vielversprechend, werd mich die Tage damit befassen. Auch da würde man die Emitterschaltung zur Pegelwandlung vermutlich nachschalten.
Hab ich mich verrechnet?
Kann natürlich sein. Meine Messreihe mit verschiedenem Widerstand an der ursprünglich geposteten Schaltung schaut für mich plausibel aus. Das war allerdings ein Testaufbau mit Netzgerät und wurde NICHT am echten Signal gemessen. Mit den 690 kOhm hab ich nicht gemessen, nur jetzt im Nachgang gerechnet.
Ist der Spannungseinbruch des Signals nun egal oder nicht?
Wie kann ich das objektiv bewerten? Es funktioniert alles wie es soll soweit ich das subjektiv beurteilen kann. Mir gefällt es aber gar nicht, dass ich das Signal beeinflusse und suche daher nach einer optimaleren Lösung.
Mit den bisherigen Messungen kann man von ca. 3 ms Impulsdauer ausgehen.
Bei 250 Hz beträgt die Periodendauer 4 ms, d.h. die 3.x ms wären der positive Teil. Für die Pulsformung ist der kurze Teil (H-L-H) der kritische, d.h. die Dauer liegt im Bereich weniger 100 µs.
Ich kann mit meinem Oszi leider keine Daten aufzeichnen
Das liegt aber an dir und nicht am PicoScope. Mit Rapid Captures hast du sogar die Möglichkeit, mehrere aufeinanderfolgende Pulse einzeln aufzuzeichnen.
In dem unscharfen Screenshot kann man leider nur rätseln, was du eingestellt hast.
Ich werde versuchen das Signal mal besser zu triggern
Gute Idee: Trigger Mode z.B. auf "Repeat" oder "Single", Triggerlevel z.B. auf 4 V und auf "falling Edge", damit du den kurzen Puls einfangen kannst.
OpAmp als Spanngsfolger klingt sehr vielversprechend, werd mich die Tage
damit befassen. Auch da würde man die Emitterschaltung zur Pegelwandlung
vermutlich nachschalten.
Oder man nimmt einen Komparator mit Open-Kollektor bzw. Open-Drain Ausgang. Den kannst du dann auch gleichzeitig als Schmitt-Trigger aufbauen.
UAF2115 von ITT.
Der "Pulse Output" braucht einen Pullup.
Wenn ich das aus Fig 3 richtig sehe besteht der Pullup aus einem 680 Ohm Widerstand parallel mit 1 nF Kondensator. Das dürfte für 250 Hz schon gut passen. Das Signal muß man dann nur noch auf 3,3 begrenzen.
Da sieht man wieder, je genauer die Infos sind um so besser werden die Antworten sein!
Der Pull-Up kommt natürlich von den 3.3V des RaspPi, wenn man ein 3.3V-Signal haben möchte. Wo sollte in dem Fall dann eine höhere Spannung her kommen können?
Die aktuell gemessenen 8V werden wohl dem Leckstrom der internen Diode im UAF2115 geschuldet sein und durch den Pull-Up platt gemacht, wie wir wissen.
Damit der RaspPi einen vernünftigen Puls bekommt, wird ein Pull-Up von ein paar Kiloohm ohne irgendwelche Verzierungen ausreichend sein. Ob der Widerstand passt, sieht man mit dem Oszi. Kilometerlange Leitungen werden da wohl nicht als kapazitive Last im Spiel sein, oder?
Ich kann mit meinem Oszi leider keine Daten aufzeichnen, daher bin ich
auf Screenshots beschränkt und da einen Einzelimpuls zu erwischen ist
mir bislang nicht gelungen. Ich werde versuchen das Signal mal besser zu
triggern,
Du brauchst den single-shot Modus und einen Trigger auf die fallende Flanke, um einen einzelnen Impuls zu erfassen.
Was willst du da begrenzen?
Der Pull-Up kommt natürlich von den 3.3V des RaspPi, wenn man ein
3.3V-Signal haben möchte. Wo sollte in dem Fall dann eine höhere
Spannung her kommen können?
Als ich das vorschlug war die Art der Signalquelle noch unbekannt. Da waren zuerst die 8 V gemessen worden. Jetzt ist es klar das ein Pullup auf 3,3 V die richtige Lösung ist.
Das von dem TO Sebastian gelieferte Blockschaltbild weist ja schon selber auf den Einsatz eines Pullup hin. Das hätte er ganz zu beginn zeigen sollen.
Da sieht man wieder, je genauer die Infos sind um so besser werden die
Antworten sein!
Der Spruch hat sich wieder bestätigt.
Das soll hier keine Schelte sein. Sondern dieser Vorgang ist lehrreich und wird in der Praxis immer wieder vorkommen. Man kann dadurch nur lernen. Und man lernt nie aus!
Die ominöse Signalquelle
Ich hab leider keinen detaillierten Schaltplan dazu, alles was ich
gefunden habe ist das Blockschaltbild (siehe Anhang).
Das ist die komplette, detailierte Schaltung, wenn auch ohne Angabe der Werte der Bauelemente.
Das, was dich vermutlich zu "Blockschaltbild" hingerissen hat, d.h. alles im gestrichelten Rahmen, ist ein einziges Bauelement, dessen Innenleben symbolisch dargestellt ist und dessen Typenbezeichnung nur leider fehlt. Die Zahlen an den Anschlüssen des umstrichelten Bereichs sind die Pin-Nummern. Das Abbild des Innenlebens ist direkt dem Datenblatt entsprungen. Wenn du die Platine erreichen und angucken kannst, wirst du die Bezeichnung möglicherweise sogar direkt lesen können.
Aber H.H. mit seinem unergründlichen Erfahrungsschatz hat das IC ja trotzdem sofort erkannt ;-)
Puls Output Yellow ist doch eindeutig ein open collector
Meine Güte, natürlich ist das ein OC! Wie konnt ich das übersehen...
Das ist wahrscheinlich auch der Grund warum trotz Spannungseinbruch alles scheinbar normal funktioniert hat. Das Signal am OC-Eingang hab ich ja nicht beeinflusst. Und vermutlich könnte man den Spannungsabfall in dem Fall sogar wirklich vernachlässigen.
Bei 250 Hz beträgt die Periodendauer 4 ms, d.h. die 3.x ms wären der
positive Teil.
Achtung, die 250 Hz ist die maximale Frequenz mit etwas Sicherheit. Die Aufnahme ist bei viel geringerer Frequenz entstanden. Der Low-Anteil scheint aber immer gleich lange. Aber vernünftige Messung probiere ich nochmal am Wochenende.
Aber H.H. mit seinem unergründlichen Erfahrungsschatz hat das IC ja
trotzdem sofort erkannt ;-)
Ja Wahnsinn! Respekt und vielen Dank.
Kann mir jemand erklären, was die Diode am OC-Ausgang zu den 12V macht? Wenn ich einen Pullup auf 3,3 V lege und der Transistor ist offen, würde Strom von 12 V auf 3,3 V fließen wollen, richtig? Aber das verhindert die Diode. Umgekehrt vom niedrigem zum höheren Potential wird kein Strom fließen wollen. Und bei geschlossenem Transistor fließt Strom nur von 3,3 V über den Pullup zu Masse.
Baulich wirds für mich nun wahrscheinlich einfacher sein, einen Pullup auf die 12V zu legen und mit diesem Signal dann in meine vorhandene Schaltung zu gehen, das teste ich am Wochenende mal aus.
Aber allgemein würde es mich schon interessieren, was die beste Lösung für ein nicht belastbares Signal wäre. Angenommen wir hätten das Schaltbild nicht und wüssten auch nicht viel über die Signalquelle. Gibts eine universelle Lösung (Kollektorschaltung, OpAmp als Spannugnsfolger,...) für ein Signal in dem Spannungs- und Frequenzbereich?
Baulich wirds für mich nun wahrscheinlich einfacher sein, einen Pullup
auf die 12V zu legen ...
Wieso das denn?
Am RaspPi platzierst du den Pull-Up Widerstand zwischen GPIO und 3,3V. Dann verbindest du den 'A' pulse output (yellow) mit dem GPIO. Den ganzen anderen Kram lässt du weg.
Aber allgemein würde es mich schon interessieren, was die beste Lösung
für ein nicht belastbares Signal wäre. Angenommen wir hätten das
Schaltbild nicht und wüssten auch nicht viel über die Signalquelle.
Gibts eine universelle Lösung (Kollektorschaltung, OpAmp als
Spannugnsfolger,...) für ein Signal in dem Spannungs- und
Frequenzbereich?
Wenn er der "Owner" wäre könnte er mit dem Thread machen was er will. Genau das kann er nicht, denn der Thread gehört allerhöchstens dem Forums-Betreiber.
Angenommen wir hätten das Schaltbild nicht und wüssten auch nicht viel
über die Signalquelle.
Dann müsste man die Eigenschaften des Ausgangs der Signalquelle ausmessen, d.h. Ausgangsimpedanz bei High und Ausgangsimpedanz bei Low. Dabei würde man in diesem Fall sehen, dass letztere bei Low relativ niedrig ist, bei High aber sehr hoch und würde zu dem Schluss kommen, dass es sich um einen Open-Kollektor oder Open-Drain Ausgang handelt.
Ein FET hat generell einen sehr hohen Eingangswiderstand. Ich würde auch
einen OP wie den TLC271 empfehlen.
Wieder ein Dummkommentar wegen Nichtlesens der Beiträge. Es wurde geklärt, dass das Signal von einem Open-Collector-Ausgang kommt. Bei sinnvoller Beschaltung kann es direkt an den µC und hätte auch kein Problem, (s)einen BC547B zu treiben.
Die aktuell gemessenen 8V werden wohl dem Leckstrom der internen Diode
im UAF2115 geschuldet sein
Das wäre meine nächste Frage gewesen, wo die 8 V dann eigentlich
herkommen. Aber okay soweit.
Die 8V kommen aus einem Längsregler, Automotive-Variante eines LM7808. War im TO-220 und saß hinter dem Kombiinstrument auf der Folienleiterplatte, dank Steckkontakten wechselbar.
Ich finde ihn nicht, nach meiner Erinnerung kam der von ITT bzw. deren Vorgängern - vielleicht erinnert HHinz noch den genauen Typ.
Gibt es extrem preiswert von den Ersatzteilabzockern, Beispiele:
Ein FET hat generell einen sehr hohen Eingangswiderstand. Ich würde auch
einen OP wie den TLC271 empfehlen.
Wieder ein Dummkommentar wegen Nichtlesens der Beiträge. Es wurde
geklärt, dass das Signal von einem Open-Collector-Ausgang kommt. Bei
sinnvoller Beschaltung kann es direkt an den µC und hätte auch kein
Problem, (s)einen BC547B zu treiben.
Nach dem bekannt war, daß es sich um einen Open-Collector-Ausgang handelt, wollte Sebastian noch etwas mehr über (Kollektorschaltung, OpAmp als Spannugnsfolger,...) wissen.
Wieso das denn?
Am RaspPi platzierst du den Pull-Up Widerstand zwischen GPIO und 3,3V.
Dann verbindest du den 'A' pulse output (yellow) mit dem GPIO. Den
ganzen anderen Kram lässt du weg.
Is klar soweit, aber aus baulichen Gründen is es einfacher über meinen vorhandenen BC547B zu gehen. Ich habe den Schaltplan nochmal im Detail angehängt (siehe Signalaufbereitung). So ist die Hardware aktuell aufgebaut.
Im ersten Schritt, bin ich einfach über Signalpfad A gegangen. Den verwende ich sonst für einen Hallgeber (und das funktioniert auch). Da ist der benötigete Pullup schon drinnen. Das Ergebnis seht ihr im Bild "20260815 Einzelimpuls 2,2k Pullup". Die GPIO Spannung beträgt aber nur mehr knapp über 2 V. Die Wegmessung, auf die es im Endeffekt ankommt war schwankend und zu ungenau - Impulse werden scheinbar nicht zuverlässig gezählt.
Dann hab ich den Pullup von 2,2 kOhm auf 10 kOhm erhöht. Ergebnis siehe Bild "20260816 Einzelimpuls 10k Pullup". Die GPIO-Spannung ist etwas höher, das blaue Eingangssignal nicht mehr ganz so rechteckig. Die Wegmessung war deutlich genauer, aber noch nicht ganz zufriedenstellend.
Scheinbar wirds besser, wenn man den Pullup (R19) vorm BC547B erhöht. Aber wie steht der im Zusammenhang mit der Spannung am Kollektor? Die sollte doch durch den Pullup R13 3,3 V betragen oder eben 0 V bei durchgeschaltetem Transistor. Das hätte ich gerne verstanden, bevor den Pullup einfach weiter erhöhe.
Übrigens war die Wegmessung mit der anfangs geposteten Variante (also Signalpfad B mit 690 kOhm an der Basis) sehr genau. So genau wie ich es erwarte und wie es sein sollte.
Natürlich würde ich jetzt noch gerne die einfachste von euch vorgeschlagene Schaltung mit nur dem Pullup am GPIO testen. Das müsste gehen wenn ich das Signal an meiner Messleitung (blau) einspeise und den Signaleingang vom Transistor auf Masse lege, oder? Dann wäre der Transistor offen und sollte nicht stören. Die 10 kOhm Pullup passen dafür hoffentlich.
Mir sind beim Einschaltvorgang noch einige Effekte aufgefallen. Ich beziehe mich bei folgenden Ausführungen auf die zuvor gepostete Schaltung Signalpfad A.
Raspi aus Zündung ein (12 V an Klemme 15): Die Spannung an Klemme A (Eingangssignal blau) steigt auf ca. 1V. Bei Zündung aus fällt diese sehr langsam wieder ab. Bild "20260815 Zuendung ein Raspi aus". Mit dem 10 kOhm Pullup ist die Spannung etwas höher, ca. 1,2 V.
Zündung ein wenn Raspi aus: Spannung an Klemme A: es gibt einen kurzen Peak auf 5 V, dann bleibt die Spannung bei knapp unter 3 V konstant. Bild "20260816 Zündung aus Raspi ein".
Raspi ein und dann Zündung ein: Spannung an Klemme A steigt nach einem kurzen Fall auf den Low-Pegel auf die 5 V. Bild "20260816 Raspi ein dann Zuendung ein".
Das macht Sinn, aber Impendanz messen ist wohl nicht so einfach wie es
scheint.
Eigentlich schon.
Du misst ohne Last die Spannung am Ausgang bei High und bei Low.
Du hängst als Last einen Widerstand nach Ground und misst dann bei Ausgabe von High-Pegel die Spannung am Ausgang. Die Impedanz des High-Treibers und der Widerstand bilden dann einen Spannungsteil, von dem du die Spannungen kennst und den Wert vom oberen Widerstand im Spannungsteiler (=Quellimpedanz H) berechnen kannst.
Entsprechend hängst du als Last einen Widerstand nach VCC und gibst Low-Pegel aus. Die Berechnung der Quellimpedanz Low ergibt sich entsprechend.
Is klar soweit, aber aus baulichen Gründen is es einfacher über meinen
vorhandenen BC547B zu gehen.
Nochmal - schmeiß den ganzen Bastelkram bis auf R13 raus und setze Drahtbrücken für Q2.B-C und R20, um z.B. SIG_A_IN zu benutzen.
Falls du Sorge hast, dass du den GPIO aus Versehen einmal als Ausgang konfigurieren könntest, kann man zur Begrenzung des Stromes R20 auch mit z.B. 470 Ω bestücken. Das reicht dann immer noch für einen brauchbaren L-Pegel.
Scheinbar wirds besser, wenn man den Pullup (R19) vorm BC547B erhöht.
Aber wie steht der im Zusammenhang mit der Spannung am Kollektor?
R19 belastet den Ausgang der Signalquelle. Wenn er zu wenig Ohm hat, wird die Quelle zu stark belastet, so dass der LOW Pegel nicht niedrig genug ist (soll unter 0,5V liegen).
ich bin inzwischen zum dem Schluss gekommen, dass der Basiswiderstand mit 220 kOhm zu hoch ist. Ursprünglich wollt ich die Schaltung möglichst hochohmig auslegen um die Signalquelle nicht unnötig zu belasten. Durch den OC-Ausgang mit benötigten Pullup ändert sich das aber.
Der OC-Ausgang geht ja nicht ganz auf 0 V, sondern ca. 0,4 V. Das ist schon nahe an der Schaltspannung vom BC547B. Hinzu kommt ein Leckstrom von bis zu 20 µA lt. Datenblatt. In Kombination mit dem hohen Basiswiderstand schaltet der Transistor vermutlich nicht mehr vollständig und befindet sich stattdessen in irgendeinem Arbeitspunkt.
Mit Spannungen vom Netzgerät, 5 V Rechteck vom Signalgenerator oder dem Hall-Sensor funktioniert die Schaltung, da der LOW-Pegel hier sauber auf 0 V fällt.
Ja, aber bei 5V gerade mal mit 2,3 mA. Es steht zwar nichts im Datenblatt, außer dass bei 120 mA eine Schutzfunktion einsetzt, aber 10-20 mA sollte der Transistor schon schalten können würd ich jetzt mal vermuten. Von dem her sollten die 2,2 kOhm schon passen.
Nochmal - schmeiß den ganzen Bastelkram bis auf R13 raus und setze
Drahtbrücken für Q2.B-C und R20, um z.B. SIG_A_IN zu benutzen.
Nochmal, Signalpfad A und C brauchen den Transistor. Ich kann den nicht einfach überbrücken. Ich müsste die Signale am GPIO zusammenfangen, aber dazu brauch ich dann in Summe einen Transistor mehr. Sofern der Platz auf der Platine hat und sich zerstörungsfrei anbringen lässt, sehr schwierig. Das mach die einfache Schaltung seht aufwändig. Aber testen werde ich sie trotzdem mal wie vorgeschlagen.
Mit einem kleineren Basiswiderstand (so um die 10 kOhm) sollte im Idealfall sogar das Signal von Klemme A und der Hallsensor mit derselben Schaltung funktionieren.
ich bin inzwischen zum dem Schluss gekommen, dass der Basiswiderstand
mit 220 kOhm zu hoch ist. Ursprünglich wollt ich die Schaltung möglichst
hochohmig auslegen um die Signalquelle nicht unnötig zu belasten. Durch
den OC-Ausgang mit benötigten Pullup ändert sich das aber.
Wie sieht denn Deine Schaltung jetzt aus?
Wir waren uns doch einig das der Pullupwiderstand vielleicht zwischen 1 K und 10 K liegt, wie z.B. beim I2C Bus. Außerdem wäre eine Kollektorschaltung (Spannungsfolger) angebracht. Sie hat einen hohen Eingangswiderstand. Wenn Du direkt auf einen Mikrocontroller gehst, dann genügt für die Pullup-Spannung 5,0 V oder 3,3 V, je nach Typ des Mikrocontrollers.
Hast du saubere High/Low Pegel am Eingang deiner Schaltung (A), oder
nicht? Wie sieht das Signal in Aktion auf dem Oszilloskop aus?
Die Einzelimpulse siehst du im selben Beitrag. Anbei noch das Signal in Aktion (OC-Ausgang in blau und resultierendes Signal am BC547B in rot). Ich würd sagen, die Pegel sehen sauber aus. Mit 10 k Pullup siehr man eine leichte Verzerrung der steigenden Flanke am blauen Signal. Ich vermute das sind vielleicht schon die Effekte des entstehenden Tiefpasses aus dem hohen Pullup und der Kabelkapazität.
Wir waren uns doch einig das der Pullupwiderstand vielleicht zwischen 1
K und 10 K liegt
Tut er doch auch mit 2,2 kOhm.
Die Kollektorschaltung hab ich nicht vergessen, muss mich da aber noch einlesen.
Ich probier als nächstes wie gesagt mal die Variante mit R19=2,2k R20=10k und R13=10k. Wenns funktioniert, kann ich die Schaltung für dieses Signal und dem Hallsensor verwenden was eine super Sache wäre. Damit ergibt sich mit R19+R20 beim Schaltvorgang in Reihe eine Basisstrom von 0,356 mA. Da sollte der Transistor jedenfalls in Sättigung sein.
Wir reden noch immer von der hier gezeigten Schaltung (Signalpfad A),
einmal eben wie beschrieben modifiziert mit 10k Pullup anstatt 2,2 k:
Beitrag "Re: MOSFET Dimensionierung für Signalwandlung"
Blau: Da ist mir der Low Pegel zu hoch, direkt auf der Schwelle zu "geht nicht". Wie gesagt soll der Low Pegel deutlich unter 0,5V liegen. Ich würde 0,2V anstreben.
Du belastest wie vermutet den Open-Collector Ausgang des Sensors zu stark. Der Pull-Up Widerstand muss hochohmiger sein.
Rot: Der High Pegel sollte fast 3,3 Volt sein, nicht 2 Volt. So ist es inakzeptabel.
Das zweite Diagramm sieht schon besser aus, aber auch dort ist mir der blaue Low Pegel noch zu hoch. So wird es nur mit Glück funktionieren und Fehleranfällig sein.
Mit 10 k Pullup siehr man eine leichte Verzerrung der steigenden Flanke
am blauen Signal. Ich vermute das sind vielleicht schon die Effekte des
entstehenden Tiefpasses aus dem hohen Pullup und der Kabelkapazität.
Scheiß egal, denn der Transistor schaltet bei 0,6 Volt um.
Nochmal, Signalpfad A und C brauchen den Transistor. Ich kann den nicht
einfach überbrücken. Ich müsste die Signale am GPIO zusammenfangen, aber
dazu brauch ich dann in Summe einen Transistor mehr.
Was willst du mit "einem Transistor mehr". Ohne vernünftige Schaltpläne und deine sonstigen Anforderungen zu kennen, ist das alles etwas mühsam.
Du könntest den OC-Ausgang auch parallel zu deinem Q2.C schalten, falls dir dann deine anderen Signalen (?) nicht in die Quere kommen. Mit einem diffusen "aus baulichen Gründen" kann ich nichts anfangen, sorry.
Mit deinem Q2, direkt angesteuert mit einem OC-Ausgang eines BJT, hast du bei Low immer die U_CE. Allerdings sollte die niedrig genug sein, damit die Spannung an Q2.C ausreichend hoch über der minimalen U_IH des GPIO bleibt, wenn du den dann unbedingt im Signalpfad behalten musst. Den Wert von R13 zu verkleinern, könnte dir dann mehr Luft verschaffen.
Die Spannung passt perfekt zu CMOS, dessen Eingänge hochohmig sind.
Eventuell findet sich sogar ein CMOS-Buffer, der mit 3V3 betrieben diese
höhere Eingangsspannung akzeptiert - ich habe die Typenreihen nicht im
Kopf.
CD4050 oder CD4049
Läuft mit VCC=3.3V, akzeptiert am Eingang die höhere Spannung.
Aber: Belastet das Eingangssignal mit typ. 5 oder 15pF und 1µA...
Blau: Da ist mir der Low Pegel zu hoch, direkt auf der Schwelle zu "geht
nicht". Wie gesagt soll der Low Pegel deutlich unter 0,5V liegen. Ich
würde 0,2V anstreben.
Du belastest wie vermutet den Open-Collector Ausgang des Sensors zu
stark. Der Pull-Up Widerstand muss hochohmiger sein.
Genau das ist das Problem. Auch mit hochohmigen Pullups kommt der nicht weit genug runter. Das ist eine Gegebenheit des UAF2115, wenn man meinen Messungen und den Quellen im Netz glauben darf.
Zwei Lösungen gibts dafür scheinbar: eine Diode vor den Basiswiderstand, damit weitere 0,7 V abfallen oder einen zusätzlichen Widerstand von Basis zur Masse, durch den ein Spannungsteiler entsteht.
Letzteres hab ich probiert und das hat nun letztendlich auch funktioniert. Anbei die Schaltung nochmal aufgekrizzelt. Ich hab nun saubere Impulse (der Pegel an Klemme A liegt jetzt halt bei 3 V durch den 10 kOhm Pullup, aber letzendlich egal). Die Wegmessung ist sehr genau wie erwartet und auch die Wiederholgenauigkeit ist gegeben. Von dem her scheint die Impulszählung störungsfrei zu funktionieren.
Das is nun die Lösung, wenn der BC547B in der Schaltung drinnen bleiben muss. Danke an alle die mir hier mit konstruktiven Beiträgen geholfen haben.
Genau das ist das Problem. Auch mit hochohmigen Pullups kommt der nicht
weit genug runter. Das ist eine Gegebenheit des UAF2115, wenn man meinen
Messungen und den Quellen im Netz glauben darf.
Zwei Lösungen gibts dafür scheinbar: eine Diode vor den Basiswiderstand,
damit weitere 0,7 V abfallen
Da hinreichend Spannung verfügbar ist, nimmt man eine LED mit höherer Flußspannung. Im Anhang mit einem OP, der nicht auf Null kommt.
oder einen zusätzlichen Widerstand von
Basis zur Masse, durch den ein Spannungsteiler entsteht.
Genau das ist das Problem. Auch mit hochohmigen Pullups kommt der nicht
weit genug runter. Das ist eine Gegebenheit des UAF2115, wenn man meinen
Messungen und den Quellen im Netz glauben darf.
Das ist ungewöhnlich. Es passt allerdings zum Datenblatt (https://datasheet4u.com/download/489248/UAF2115.html). Dort ist die "saturation voltage pulse output" mit maximal 1,4 Volt angegeben. Das Datenblatt ist 30 Jahre alt.
Den Widerstand von der Basis zur Masse hast du in deiner LED-Schaltung genauso drin.
Deinem OP in einer Digitalschaltung traue ich noch viel weniger. Welche Slew Rate hast du da denn angedacht? Wenigstens könntest du ihn als Schmitt-Trigger beschalten oder sollen die beiden Eingänge sich das Signal per Antennenwirkung aus der Luft sammeln?
Dort ist die "saturation voltage pulse output" mit maximal 1,4 Volt
angegeben.
... bei 25 mA.
Mit den 10 kΩ fließen gerade einmal 0,5 mA.
Schon richtig, aber die 1,4 Volt sind ein Indiz dafür, dass der Ausgang des Sensors wahrscheinlich eine Darlington Schaltung hat. Diese kommen niemals unter 0,6 Volt runter, egal wie hochohmig der Arbeitswiderstand ist.
Die max. 1,4V gelten für 25 mA. Also ohne Strombegrenzung.
Ja - und du meinst, die Schaltung für die Stromerfassung zur Steuerung der Strombegrenzung erzeugt keinen Spannungsabfall, unabhängig davon, ob die Strombegrenzung aktiv ist?
Der im Blockschaltbild des IC am Pulse Output gezeigte Transistor steht symbolisch für eine umfangreichere Schaltung, d.h. der Spannungsabfall ist nicht zwangsweise auf die U_CE eines einzelnen BJT festgelegt.
Spricht allgemein was gegen die Lösung mit Spannungsteiler?
Nein, Manfred hat selber einen Spannungsteiler vorgeschlagen (nur unmöglich gezeichnet) und bisher auch keine Begründung für sein Misstrauen geliefert.
Manfred hat eine Diode dazwischen, also keinen Spannungsteiler. Bevor sich da etwas rührt, müssen erstmal gut 2 Volt für die LED überwunden werden. Ich habe beim Aufbauen (Einzelstück) nicht lange nachgedacht, ob der 22k B-E wirklich notwendig ist.
und bisher auch keine Begründung für sein Misstrauen geliefert.
Das kommt erstmal aus dem Bauch heraus, weil keine zusätzliche Schwelle existiert. Wenn ich mir Sebastians Teiler nochmal anschaue: 10k-4k7 lässt bei 1,5V nur 0,5V an der Basis zu, da ist der Transistor noch ziemlich aus. Kurz über 2V wird er dann wirkungslos, weil die 0,7V U_BE greifen. Also getäuscht, wird so funktionieren.