Levelshift von PWM Signalen?

Bohnenhans

Captain
Registriert
Okt. 2022
Beiträge
3.100
Hallo ich würde gern ein PWM Sighnal von 0-3.3V auf 0-5V shiften - egal welche Frequenz ich bisher nehme (8Bit) im 250 hz bis 5000 Hz das passt irgendwie nicht.

Die Anzeige ist ~ 1,5V (3.3V) also ~ 50% im 5V Bereich aber nicht wie erhofft ~ 2,5V sondern auch ~ 1,4V.

Ich nutze so einfache Levelshifter - Anzeigegerät ist ein Voltmeter.
 
Halt über solche Teile :D die ich sopnst für Sensoren und Co nutze

https://m.media-amazon.com/images/I/81gVbLVPi4L._AC_SL1500_.jpg
Ergänzung ()

Also ich shee ja dass die Signale selber wohl durchkommen ich kann die Anzeige verändern 25% sind auch auf der Anziege die Hälfte von 50% und auch 50% 100% passt im Verhältnis nur das ganze ist eben insgesamt zu "wenig"

Auch ein Tausch des Levelshifters ändert daran nichts.

Die Spannungen LV+, HV+, GND LV und GND HV sind ok mein Multimeter zeigt auch die gleiche Hz Zahl (gemessen von 250 bis 2000 Hz) auf High und Low Seite am Datenpin an - dann müsste doch die Frequenz nicht das Problem sein?
 
Zuletzt bearbeitet:
So ein bidirektionaler Levelshifter ist dafür nicht wirklich geeignet. Wenn Du z.B. dahinter irgendwann noch einen Tiefpass schaltest, können seltsame Dinge passieren, weil dann der geladene Kondensator u.U. als Input interpretiert wird. Und hier ist ein Voltmeter auch eher Schätzeisen, da sollte schon ein Oszilloskop her.

Einfach ein unidirektionaler Treiber (CD4050 o.ä.) tut an der Stelle.
 
  • Gefällt mir
Reaktionen: Bohnenhans
Womit machst du denn die Mittelwertbildung vor dem Voltmeter?
 
eigentlich gar nicht ich bin einfach davon ausgegangen dass ich das gesamte PWM SIgnal dann eben von 3.3 auf 5 shiftet? Weil ja doch jeder PWM Block geshiftet wird?

Ich kann ja auch Messwerte anzeigen also z.B. 10% oder 70% und dann ist 70% auch 7x höher als 10% nur eben mit der falschen "Durchschnittsspannung"
 
Nimm ein Oscilloscope zum nachmessen.
 
Kann ich machen aber ich glaube nicht dass da was anders rauskommt als dass das was mein Multimeter bei der Frequenz anzeigt, dass diese Ein und Ausgangsseitig identisch ist

Blau ist Eingang

Weiss ist Ausgang

Das Signal an sich geht doch eigentlich durch?

1720098509089.png
 
Zuletzt bearbeitet:
Kannst du mal den Link zu dem Amazon-Produkt reinstellen?
Wenn du 100% PWM-Zyklus einstellst, sollte dein Multimeter ja 5V messen. Tut es das? Kann es sein, dass du da High und Low Seite verwechselt hast?
 
Zuletzt bearbeitet:
  • Gefällt mir
Reaktionen: JackTheRippchen und Bohnenhans
Da bestellte ich so Kram zu 90%

https://www.makershop.de/module/schnittstellen/5x-4-kanal-logic-level-shifter/


Hmm muss ich mal testen denke aber vermutlich nicht. dass der da 5V macht aber werde ich mal probieren:D

Die LV und HV seite habe ich glaub so 10x kontrolliert :D :D


bei 100% PWM komme ich auf 5V also 4,8 das hat die HV Seite aber auch nur

Oh ich sehe gerade wnen ich mein Anzeigedisplay abklemme passen die Voltzahlen

Heisst dann die Stromstärke reicht evtl nicht?
 
Zuletzt bearbeitet:
Ich kenne mich mit levelshiftern nicht aus, aber was willst du den ansteuern?

Ich bin davon ausgegangen, dass es bei pwm signalen um die Frequenz geht und die genaue Spannung relativ egal ist....oder nicht um die Frequenz sondern die Dauer der Impulse.
 
Naja ich nutze PWM um ein Analoges Voltmeter anzusteuern.

Da in meinem Fall der ESP32 ja nur bedingt Spannungen zw 0 und 3.3V erzeugen kann und es beim Analogsignal ein bekanntes HW Problem gibt, der also leide rnicht nutzbar ist (und auch nur bis 3.3V geht) - nutze ich halt um Spannungen zw 0 und 3.3V zu erzeugen PWM.

Was auch super klappt mit den annalogen 3V Voltmetern, nun wurde aber ein falscher geschickt ein 0-5V und ich dachte ach da nehm ich einfach einen Levelshifter das geht voll schnell :daumen: :daumen:

Vor dem verkleben und Verbrauen halt kurz gecheckt ob der zuckt - das ging - und dann erst später gemerkt ohhh die angezeigten Werte passen ja bei dem dann doch nicht.
 
Zuletzt bearbeitet:
Bohnenhans schrieb:
Oh ich sehe gerade wnen ich mein Anzeigedisplay abklemme passen die Voltzahlen

Heisst dann die Stromstärke reicht evtl nicht?
Siehe #4. Mit einer Kapazität oder Induktivität auf der Ausgangsseite bringst Du den (bidirektionalen) Levelshifter durcheinander. Nimm einen CD4050.
 
  • Gefällt mir
Reaktionen: Bohnenhans und mr_andersson
  • Gefällt mir
Reaktionen: Bohnenhans
Bohnenhans schrieb:
Oh ich sehe gerade wnen ich mein Anzeigedisplay abklemme passen die Voltzahlen

Heisst dann die Stromstärke reicht evtl nicht?
Ja, genau das. Levelshifter sind für Steuersignale gedacht. Nicht dafür, Lasten anzutreiben. Du kannst aber mal probieren, mehrere Ausgänge parallel zu nutzen

Edit:
Aaah, die sind sogar für I2C, mit Rückkopplung 😅
Ja, dann kann das auch nicht funktionieren.
GrumpyCat schrieb:
Siehe #4. Mit einer Kapazität oder Induktivität auf der Ausgangsseite bringst Du den (bidirektionalen) Levelshifter durcheinander. Nimm einen CD4050.
Was er schon geschrieben hat.

Was passiert ist folgendes (auch nachzulesen unter 2.1.1 im von @Michael-Menten verlinkten Dokument):
1. Die Platine bekommt ein Steuersignal mit 3.3V.
2. Auf der anderen Seite werden 5V "gesendet".
3. Auf der 5V Seite wird zu viel Strom benötigt. Die Platine "denkt" also, dass deine LEDs damit eine Antwort senden wollen und schließt den Eingang auf der 3.3V Seite kurz, womit dann auch keine 5V mehr gesendet werden

Das Ding ist also, wie schon angemerkt wurde, für dein Vorhaben vollkommen ungeeignet. Die BSS138 sind auch nur für 220 mA (und das nicht auf Dauer) zugelassen.
 
Zuletzt bearbeitet:
  • Gefällt mir
Reaktionen: JackTheRippchen und Bohnenhans
Ok das hört sich alles schon schlüssig an - Dankeschön was dazugelernt

Naja ich werde einfach noch ein 3V mitbestellen irgendwann die korrekt gelieferten funktionieren ja problemlos - sind aber auch ohne Levelshifter dran

Auf der esp32 seite sind softwareseitug aktivierbare pullup/down Widerstände integriert und die Pins sind auf Output Only

Hihi ja das Bild sieht etwas schräg aus weil ich unterwegs den Gnd am Oszi nicht verkabeln konnte :) aber man sieht ja trotzdem grob ob das Signal 1:1 durchläuft

Mit Gnd hat man dann saubere perfekte Rechtecksignale

Ich werd mal messen was das Voltmeter an Stromstärke braucht bei 100% hätte ich vielleicht vorher machen sollen :) :)
 
Zuletzt bearbeitet:
  • Gefällt mir
Reaktionen: mr_andersson
Ich hab mal nachgemessen 1,7 mA fliessen bei der Anzeige bei 5V und Vollausschlag, also jetzt nicht sooooo viel aber offensichtlich zu viel :D

Wenn das bei vollem PWM zur Hälfte geht dann kann man doch daraus schliessen ca 0,8mA gehen durch den Levelshifter (wenn das linear ist) ?

Um solche Analog Voltmeter ging es also ganz einfache - nur die Anzeige "Zfs belegt" beim Backupserver II ist ein 5V Voltmeter und geht nicht richtig - leider sieht man das den Modulen von aussen nicht an.

Alle anderen tun - da 3V und direkt an den Pins. Das echt immer ärgerlich wenn alles gleiche geht bis auf eine Sache :D



1720123801486.png
 
Zuletzt bearbeitet:
  • Gefällt mir
Reaktionen: LasseSamenström
Bei den einfachen Levelshiftern wie hier "gewinnt" immer die Seite, die gegen Masse zieht; die dominiert dann das Ergebnis. Wenn Du da also eine echte Last anbaust, geht nichts, weil die eben gegen Masse zieht. Ebenso bei kapazitiven oder induktiven Bauteilen. Levelshifter sind nunmal keine Treiber, und speziell bidirektionale Shifter können ja nun auch nicht zaubern und müssen irgendeine "Strategie" haben, um zu erkennen, in welche Richtung jetzt geshiftet werden soll.
 
  • Gefällt mir
Reaktionen: Bohnenhans
Hmmm es wird ja was angezeigt und auch "richtig" im Verhältnis - wenn ich die Skala von Halb auf Viertelkreis verkleinern würde, wäre das ja alles dann richtig :D

Es ist ja nicht so dass nichts ankommt oder sich das verändert etc tatsächlich geht ja nichts an "Information" verloren, sondern nur etwas in der Signalstärke zu wenig.
 
Klar, der Levelshifter ist ja auch kein perfekt digitales Bauteil.

Und ohne angeschlossenes GND misst Du auch nochmal extra-Unsinn (da gegen die Kapazität des Oszilloskops/der Tastköpfe und nicht gegen Masse).
 
Zurück
Oben