Forum: Mikrocontroller und Digitale Elektronik Arduino Fast Pwm "multiplexing"


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
von Alex (Gast)


Lesenswert?

Hey Folks folgendes Problem:
Ich möchte mit der Fast Pwm Library ein 108khz signal auf pin D10 
erzeugen. Dieses soll gesteuert von mehreren Ausgängen jeweils einen 
Block bestehend aus einem Mosfet mit der Frequenz schalten.
Auch gleichzeitig, also angenommen D1&D2 sind "on" soll der erste und 
zweite Mosfet mit 108khz geschalten werden.
Wie würdet ihr das machen? Mit Transistoren als "AND" gates?
Reichen Dioden? Kann ich die Transen gleich als Mosfettreiber 
missbrauchen? Lg Alex

von EAF (Gast)


Lesenswert?

Leider:
Viel Prosa, wenig konkretes.

von Falk B. (falk)


Lesenswert?

Alex schrieb:
> Hey Folks folgendes Problem:
> Ich möchte mit der Fast Pwm Library

Welche? Link?

> ein 108khz signal auf pin D10
> erzeugen.

Hat D10 einen Hardware-PWM Ausgang?

> Dieses soll gesteuert von mehreren Ausgängen jeweils einen

Kaum, denn eine Steuerung erfolgt immer durch EINGÄNGE.

> Block bestehend aus einem Mosfet mit der Frequenz schalten.
> Auch gleichzeitig, also angenommen D1&D2 sind "on" soll der erste und
> zweite Mosfet mit 108khz geschalten werden.

Kauderwelsch.

> Wie würdet ihr das machen?

Erstmal Klarheit über dein Ziel verschaffen.

> Mit Transistoren als "AND" gates?
> Reichen Dioden? Kann ich die Transen

Transen? Biologische oder welche aus der Chipfabrik? ;-)

> gleich als Mosfettreiber
> missbrauchen? Lg Alex

Das ist mal eine glatte 10.0 auf der Hipster-Skala!

von Weckrufer (Gast)


Lesenswert?

Falk B. schrieb:
> Alex schrieb:
>> Hey Folks folgendes Problem:
>> Ich möchte mit der Fast Pwm Library
>
> Welche? Link?

Wahrscheinlich die von Arduino???

>
>> ein 108khz signal auf pin D10
>> erzeugen.
>
> Hat D10 einen Hardware-PWM Ausgang?

D10 ist der Ausgang von Timer 1

>
>> Dieses soll gesteuert von mehreren Ausgängen jeweils einen
>
> Kaum, denn eine Steuerung erfolgt immer durch EINGÄNGE.

Nein. Er will mit dem Ausgangssignal ein anderes Ausgangssignal 
beienflussen und fragt deshalb, ob er die notwendigen logischen 
Verknüpfungen mittel Transistoren und Dioden realisieren kann.


>
>> Block bestehend aus einem Mosfet mit der Frequenz schalten.
>> Auch gleichzeitig, also angenommen D1&D2 sind "on" soll der erste und
>> zweite Mosfet mit 108khz geschalten werden.
>
> Kauderwelsch.

Für Dich.

>
>> Wie würdet ihr das machen?
>
> Erstmal Klarheit über dein Ziel verschaffen.

Das Ziel des TO ist klar. Was nicht klar ist: Wieso antwortetst Du mit 
konfusem Zeug auf eine Anfrage, die Du nicht im Mindesten verstehst?

Geh doch einfach weiter.

von Alex (Gast)


Lesenswert?

Also die Library is die hier:
https://github.com/maxint-rd/FastPwmPin

Kann halt nur auf 2 Ausgängen PWM mit höheren Frequenzen.

Szenario 1: Ein Mosfet hängt an dem Pin wird mit 108khz schaltend 
betrieben. Ströme an Vds halten sich in Grenzen (ca100mA) deswegen ist 
eigentlich kein Mosfettreiber nötig.

Mein Szenario: Mehrere Mosfets die ich mit dem Signal schalten möchte 
also 108khz aber welche damit geschaltet werden möchte ich über Portpins 
steuern.

Vielleicht ist es jetzt etwas klarer formuliert 😊
Wurde schon schlimmeres als "Hipster" geschimpft 😁😅

von Christian M. (christian_m280)


Lesenswert?

AND-Gatter ala 7408 vielleicht...?

Gruss Chregu

von Alex (Gast)


Lesenswert?

Christian M. schrieb:
> AND-Gatter ala 7408 vielleicht...?
> Gruss Chregu

Jo das würd gehen wenn ich welche da hätte 😅 108khz an eineneingang, 
steuersignal an den anderen, mosfet an den ausgang.
Dachte da gibts vl eine simplere lösung 🙈

von Alex (Gast)


Lesenswert?

Kann ich vl intern splitten indem ich einen wert von der PWM intern 
vergleiche und dann die digitalpins ein und ausschalte nach condition? 
Ob das bei der frequenz klappt? Müsste eig gehen oder

von Stefan ⛄ F. (stefanus)


Lesenswert?

Alex schrieb:
> wenn ich welche da hätte

Wie viele Rate-Versuche gibst du uns, bis wir heraus finden, welche 
Bauteile du "da" hast?

> Dachte da gibts vl eine simplere Lösung

Das UND Gatter ist die simpelste Lösung.

Alternativ kannst du einen Bustreiber wie den 74HCT244 oder 74HCT245 
nehmen, da kommt dann das PWM Signal an den /OE Eingang und die 8 
Daten-Eingänge steuern deine Blöcke an.

Man kann UND Gatter auch aus einzelnen Transistoren aufbauen.

: Bearbeitet durch User
von Alex (Gast)


Lesenswert?

Stefan ⛄ F. schrieb:
> Das UND Gatter ist die simpelste Lösung.

Ja soweit sind wir uns einig 😉 aber wie man das UND realisiert is bei 
meinem schaltplan noch offen.
Naja ich hab arduino, transistoren bc337 bc227, also auch komplementär 
und in smd, dioden 1n4007 ect., Shift register, kann jetzt alles 
aufzählen irgendwo wird sicher noch ein 40xx oder 74xx rumliegen aber 
ehrlich gesagt brauch ich 5 ausgänge da müsst ich dann 2 nehmen und es 
geht um den Partcount da ich das Projekt vl kommerzialisieren will 😁
In Software wär mir am liebsten hehe

von Stefan ⛄ F. (stefanus)


Lesenswert?

Alex schrieb:
> kann jetzt alles aufzählen irgendwo wird sicher
> noch ein 40xx oder 74xx rumliegen

Das wäre man eine vernünftige Maßnahme.

> da müsst ich dann 2 nehmen

Oder halt was passendes kaufen. Was erwartest du, dass wir etwas für 
dich zaubern?

> In Software wär mir am liebsten

Geht nicht

von Rolf M. (rmagnus)


Lesenswert?

Alex schrieb:
> und es geht um den Partcount da ich das Projekt vl kommerzialisieren will

Du willst das Projekt kommerzialisieren, aber musst dazu mit den Teilen 
auskommen, die du gerade zuhause rumliegen hast? Ist der Chipmangel 
jetzt schon so schlimm?

: Bearbeitet durch User
von Falk B. (falk)


Lesenswert?

Alex schrieb:
> Mein Szenario: Mehrere Mosfets die ich mit dem Signal schalten möchte
> also 108khz aber welche damit geschaltet werden möchte ich über Portpins
> steuern.

Das nennt sich 1 aus N Dekoder und gibt es fertig, z.B. 74HC138, auch 
wenn der invertiert. Kann man ja per Software hinbiegen, indem man 
invertierte PWM einspeist. Wenn das nicht passt (die inaktiven Ausgänge 
sind immer HIGH), muss es halt eine Handvoll AND-Gatter ala 74HC08 sein.

von Stefan ⛄ F. (stefanus)


Lesenswert?

Alex schrieb:
> Auch gleichzeitig

Falk B. schrieb:
> Das nennt sich 1 aus N Dekoder

Nein, er will ja auch mehrere Blöcke gleichzeitig ansteuern können.

von Axel S. (a-za-z0-9)


Lesenswert?

So langsam wird mir klar, was der TO bezweckt. Ein bisschen weniger 
Telegrammstil wäre schon vorteilhaft gewesen. Er will tatsächlich das 
erzeugte PWM-Signal (100kHz) an 0..n "Ausgänge" seines Arduino routen.

Rein in Software geht das nicht, die PWM-Frequenz ist zu hoch. Wobei man 
sicher die Frage stellen könnte, ob sie so hoch sein muß. Wenn nicht, 
könnte eine Soft-PWM nämlich die Lösung sein.

Bleibt die Lösung mit Hardware. AND-Gatter (z.B. 74HC08) wären die 
kanonische Lösung und könnten kleine LL-MOSFETs auch direkt treiben. Man 
kann die Funktionalität auch mit Dioden (und Pullups) bauen. Oder man 
nimmt MOSFET-Treiber mit Enable-Eingang. Viele Wege führen nach Rom.

von Peter D. (peda)


Lesenswert?

Falk B. schrieb:
> Das nennt sich 1 aus N Dekoder und gibt es fertig, z.B. 74HC138, auch
> wenn der invertiert.

Der 74HC238 ist high aktiv.

von Roland F. (rhf)


Lesenswert?

Hallo,
Stefan ⛄ F. schrieb:
> Das UND Gatter ist die simpelste Lösung.

Könnte man nicht einfach mit einem Transistor das Gate des MOS-FET gegen 
GND kurzschließen?

> Alternativ kannst du einen Bustreiber wie den 74HCT244 oder 74HCT245
> nehmen, da kommt dann das PWM Signal an den /OE Eingang und die 8
> Daten-Eingänge steuern deine Blöcke an.

Ich habe das gerade mal ausprobiert (mit einem 74F244, habe nichts 
anderes da), funktioniert einwandfrei.

rhf

von Stefan ⛄ F. (stefanus)


Lesenswert?

Roland F. schrieb:
> Könnte man nicht einfach mit einem Transistor das Gate des MOS-FET gegen
> GND kurzschließen?

Kann man, ist aber auch nicht einfacher oder kompakter, als mit IC.

von Axel R. (axlr)


Lesenswert?

schaltet der /OE nicht auf "high-Z", hängen dann die Gates in der Luft? 
"active-low" wären bei 100Khz schon nicht schlecht, nur über den 
Pull-down ausschalten würde mir zu lange dauern...

von Snakebite (Gast)


Lesenswert?

Als ich den Thread gerade las hat es auch etwas gedauert, bis ich 
begriffen habe, worum es geht. Das war keine absichtliche 
Begriffsstutzigkeit bei den Antworten.

Mir gefällt die Lösung mit 74x244 am besten. Da könnte man bei maximal 4 
Mosfets ja auch 2 Ausgänge parallel verwenden.
Ich teile nur nicht so ganz die Annahme, dass bei maximal 100 mA 
Drainstrom der Treiber egal ist. Das hängt weitestgehend erst mal vom 
Transistor ab würde ich sagen. Das sollte abgeschätzt werden, denn soo 
langsam sind 100 kHz jetzt auch nicht.

Gruß und ich freut mich zu sehen, dass der Thread die Kurve gekriegt 
hat, eigenltich hatte ich den zu Beginn schon abgeschrieben :-)

von Stefan ⛄ F. (stefanus)


Lesenswert?

Axel R. schrieb:
> schaltet der /OE nicht auf "high-Z", hängen dann die Gates in der Luft?

Bei 100 kHz sind ohnehin richtige FET treiber nötig, ich war davon 
ausgegangen dass er welche hat. Und ja 100 kΩ ist dann für den Pull-Down 
(vor dem Treiber) trotzdem noch recht viel, da würde ich eher etwas um 
2,2 kΩ nehmen.

Leider ist die Schaltung weiterhin geheim, also selbst Schuld, wenn die 
Vorschläge unpassend sind.

: Bearbeitet durch User
von Roland F. (rhf)


Lesenswert?

Hallo,
Stefan ⛄ F. schrieb:
> Kann man, ist aber auch nicht einfacher oder kompakter, als mit IC.

Ja, das stimmt, Transistoren hätte er aber da:

Alex schrieb:
> Naja ich hab ... transistoren bc337 bc227...

Und könnte es zumindest mal ausprobieren.

rhf

von Stefan ⛄ F. (stefanus)


Lesenswert?

Aber wenn du vier MOSFET parallel ansteuerst und davon bis zu 3 
kurzschließt, müssen die Vorwiderstände zwischen Ausgang des µC und den 
Transistoren wieder recht hochohmig (um 1kΩ) sein. Das passt nicht zu 
den 100 kHz.

von Falk B. (falk)


Lesenswert?

"Ich bin dafür, die Dinge so weit wie möglich zu vereinfachen. Aber 
nicht weiter."

Albert Einstein

von Alex B. (Gast)


Lesenswert?

Wow hier tut sich ja einiges das freut :)
Also das mit den Bustreibern gefällt mir auch gut.
Die können ja 35mA max pro Output ob das langt hmm.

Bischen kann ich ja zur Schaltung verraten:
An die Mosfets kommt jeweils eine Induktivität und ein Piezo mit 2,5W 
Leistung. Vdrive=20V.
Also wären das 2,5W/20V=125mA die der Mosfet schalten muss.
Also alles nicht so wild :D

Vl kann mir ja einer einen Tipp geben wie man errechnet oder in welchen 
DB-Diagramm man sieht wieviel Gate-Umladestrom bei welcher Last benötigt 
wird.

Btw. das mit dem Gate kurzschliessen gefällt mir auch. Wie würde das 
aussehehn? Man müsste alle Gates (mit Vorwiderstand) verbinden und dass 
ans Signal und dann einzelne Transen (höhö) auf GND?

von Joachim B. (jar)


Lesenswert?

Alex B. schrieb:
> Bischen kann ich ja zur Schaltung verraten

mach bloß kein Schaltbild, hier wird gerne Detektiv gespielt!

von Stefan ⛄ F. (stefanus)


Angehängte Dateien:

Lesenswert?

Alex B. schrieb:
> Also wären das 2,5W/20V=125mA die der Mosfet schalten muss.

Mal angenommen es werden wirklich nicht mehr als 4x 125mA, dann geht es 
ganz einfach:

Bei so wenig Strom würde ich bipolare Transistoren (z.B. BC337-40) 
verwenden. Dann kannst du dir den ganzen Aufwand mit Gate-Treibern und 
Logikgattern sparen.

Denke daran dass der untere Transistor die Summe aller Ströme schalten 
muss. Er braucht einen kleineren Vorwiderstand, als die anderen.

Alternative: TPIC5B595, da musst du die Channels aber seriell 
übertragen.

: Bearbeitet durch User
von Michael M. (Firma: Autotronic) (michael_metzer)


Angehängte Dateien:

Lesenswert?

Stefan ⛄ F. schrieb:
> Bei so wenig Strom würde ich bipolare Transistoren (z.B. BC337-40)
> verwenden.

Die können bei 20V verpolt werden und bräuchten deshalb noch eine Diode 
antiparallel zur BE-Strecke.

Oder für die PWM einen PNP Transistor in der Plusleitung einsetzen.

von Stefan ⛄ F. (stefanus)


Lesenswert?

Michael M. schrieb:
> Die können bei 20V verpolt werden und bräuchten deshalb noch eine Diode
> antiparallel zur BE-Strecke.

Ist das nicht egal, wenn die BE Strecke rückwärts durchflossen wird? Die 
Stromstärke bleibt ja durch den Vorwiderstand an der Basis begrenzt.

Dein Schaltungsvorschlag gefällt mir gut. Für den oberen PNP Transistor 
braucht man dann noch einen weiteren NPN als Pegelwandler - keine große 
Sache.

von Bentschie (Gast)


Lesenswert?

Nope, leider nicht. Die typische maximale Sperrspannung von 
BE-Diodenstrecken liegt im Bereich 5-7V.

Deshalb geht auch so ein Standard Multivibrator mit NPN Tanssitoren auch 
nur bedingt. Da gehören auch Dioden als Schutz mit rein, zumindest wenn 
man es richtig machen will.

von Stefan ⛄ F. (stefanus)


Lesenswert?

Bentschie schrieb:
> Nope, leider nicht. Die typische maximale Sperrspannung von
> BE-Diodenstrecken liegt im Bereich 5-7V.

Das ist mir schon klar. Sie werden also leiten. Na und? Zenerdioden 
leiten sogar absichtlich "falsch" herum. Who cares?

: Bearbeitet durch User
von Bentschie (Gast)


Lesenswert?

ok, so gesehen könnte das schon gehen.

Wenn ich jetzt mal eine Verstärkung von 100 ansetze, dann liegt der 
Basiswiderstand bei ca. 3,3kOhm. Also der Strom rückwärts durch die 
Transistoren (Ueb = 6V) bei ca. 4,x mA, je Transistor.

Schön ist was anderes. Und in ein Produkt würde ich das jetzt nicht 
einsetzen wollen. Eine Diode kostet nicht die Welt, in Stückzahlen auch 
schnell weniger als 2 ct.

von Stefan ⛄ F. (stefanus)


Lesenswert?

Bentschie schrieb:
> Schön ist was anderes.

Ja, da ist der Schaltungsvorschlag von Michael sauberer.

von Matthias S. (Firma: matzetronics) (mschoeldgen)


Lesenswert?

Da der 74(HC)244 zwei Gruppen à 4 Treiber hat, die man getrennt 
freigeben kann, sollte das mit dem Baustein ohne weitere Klimmzüge 
klappen. Man muss sich nur über den Hi-Z Zustand Gedanken machen. Und 
man kann die Ausgänge je nach Bedarf parallel schalten - das ist ein 
recht kräftiger Bustreiber.

von EAF (Gast)


Lesenswert?

Stefan ⛄ F. schrieb:
> Das ist mir schon klar. Sie werden also leiten. Na und? Zenerdioden
> leiten sogar absichtlich "falsch" herum. Who cares?

Der "erste Durchbruch" ist nicht immer in den Datenblättern 
dokumentiert. Mal abgesehen von den "Maximum Ratings"
Damit ist leider auch nicht garantiert, dass der Transistor das 
überlebt.

von Alex B. (Gast)


Lesenswert?

BOOOM! Stefan ⛄ F. & Michael M., das is die Schlatung die ich gesucht 
hab. Ich wusste ich hab die schon mal gesehn und dass es mit einem 
Transistor pro Kanal geht :)

Wo ist der Unterschied zwischen Michels und Stefans Schaltung ausser 
dass einmal die Transistoren als Emitterfolger einmal als 
Kollektorfolger arbeiten, und dass einmal High und einmal Low geswitcht 
wird?

Wann werden die Basen negativ? Im Abschaltzeitpunkt? oder wegen der 
Schaltung mit dem PNP?

Sollte ich mir Gedanken wegen der Induktionsspannung über den Drosseln 
machen?
Ein gewisse Spannungsüberhöhung ist gewünscht wegen dem Piezo der will 
Volt sehn.

Würde auch ein Mosfet als zentraler Stromschalter gehen? Das wär dann 
optimal.

Gruss Alex

von Alex B. (Gast)


Lesenswert?

Ah schon gecheckt wenn bei Stefans Schaltung die PWM auf High ist aber 
die Transistoren gesperrt sind liegen 20V gegen Basis right?

von Alex B. (Gast)


Lesenswert?

Hä nein In Stefans Schaltung gehen die Emitterzweige nur auf GND wo 
sollen da 20V gegen Basis herkommen? Kopfkratz

von Axel R. (axlr)


Lesenswert?

Bring mal erst einen deiner Piezos zum laufen. Dann kannst Du imernoch 
überlegen, wie es weitergeht. Einen IR2184 und zwei N-Kanal als 
Halbbrücke würde ich hier vorsehen.  Du betreibst dann den Piezo samt 
Spule in Resonanz. Da passiert noch einiges mehr. Da mach erstmal n 
Layout, was am Ende auch funktioniert.
Oder hast Du schon?
Der 2184 hat einen /SD Eingang.

von Stefan ⛄ F. (stefanus)


Angehängte Dateien:

Lesenswert?

Angenommen, dein Mikrocontroller liefert 5V Signale und die 
Versorgungsspannung der Lasten ist 20V...

Wenn der untere Transistor aus ist während zugleich der Transistor von 
mindestens einem Channel an ist, dann hast du am Kollektor vom unteren 
Transistor etwa 4,3 Volt.

Für die Channels die aus sind bewirkt das: An der Basis des jeweiligen 
Transistors liegen 0 Volt an, am Emitter 4,3 Volt. Also quasi falsch 
herum gepolt. Ich halte das für unkritisch, selbst wenn die Spannung 
höher wäre.

Wo du eher drauf achten solltest ist die Spannung die sich in den 
Schwingkreisen aus Spule+Piezo aufbaut. Bei der Resonanzfrequenz kann 
das weit mehr als 20V werden und die kann man kaum Sinnvoll mit einer 
(Freilauf-)Diode unterdrücken, weil das Ding dann ja nicht mehr 
schwingt. Die Diode würde den Vorteil der hohen Lautstärke bei Resonanz 
zunichte machen.

: Bearbeitet durch User
von Stefan ⛄ F. (stefanus)


Lesenswert?

Stefan ⛄ F. schrieb:
> Wenn der untere Transistor aus ist während zugleich der Transistor von
> mindestens einem Channel an ist, dann hast du am Kollektor vom unteren
> Transistor etwa 4,3 Volt.

Korrektur:

Wenn der untere Transistor aus ist während zugleich der Transistor von 
mindestens einem Channel angesteuert wird, ....

"an" kann er ja nicht sein, weil sein Emitter in der Luft hängt.

: Bearbeitet durch User

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.