Forum: Analoge Elektronik und Schaltungstechnik µC - BUCK - BOOST Konverter


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 Wolfram F. (mega-hz)


Angehängte Dateien:

Bewertung
-1 lesenswert
nicht lesenswert
Moin moin,

da ich mich etwas mehr mit Schaltreglern auf µC - Basis beschäftigen 
möchte, habe ich mal eine Schaltung entworfen, die als Buck UND als 
BOOST Konverter funktionieren kann.
Ich habe bewusst auf die Verwendung von MOSFET-Treibern verzichtet, da 
man die Gate-Ansteuerung so viel besser lernen kann.
(Das Projekt soll auch Lehrlinge zum nachdenken anspornen)
Da die meisten MOSFET-Treiber auch einen "Takt" für die Erzeugung der 
höheren Gate Spannung benötigen, fallen diese sowieso aus, da es auch 
"komplett on" oder "komplett off" Zustände der MOSFETs gibt.
Der DCDC Wandler ist ein 5V-15V Typ und liegt "über" V-IN, da sein 
GND-Ausgang auf V-IN liegt. Somit ist schonmal gewährleistet, daß die 
MOSFETs unabhängig von der Eingangsspannung immer ihre 15V Gate Spannung 
bekommen und damit sauber schalten (sollten).
Die Diode am Gate, paralell zum 10Ohm Vorwiderstand, sorgt für ein 
schnelleres "entladen" des GATEs, der 1nF Kondensator (Wert ist erstmal 
nur geschätzt) soll kurzzeitig einen höheren Einschaltstrom fürs GATE 
liefern und beim Abschalten dieses schneller zumachen.
Die Gates werden jeweils von einer eigenen Gegentakt-Endstufe 
angesteuert (BC546 und BC556), diese werden durch Optokoppler vom µC 
angesteuert.

Ich möchte nun gerne wissen, seht Ihr irgendwo Bugs, Denkfehler, falsche 
Dimensionierung?

Sollte doch rein elektrisch schonmal richtig sein, oder?
Was die Software später dann macht, ist eine andere Suppe...

Grundsätzlich gilt wie im Bild, die kleine Wahrheitstabelle für die 
MOSFETs.

Bin dankbar für Eure Meinungen dazu!

Gruß,
Wolfram.

PS: das 2.Bild hat eine höhere Auflösung.

: Verschoben durch Moderator
von olaf (Gast)


Bewertung
0 lesenswert
nicht lesenswert
> Ich möchte nun gerne wissen, seht Ihr irgendwo Bugs, Denkfehler, falsche
> Dimensionierung?

Du hast die Schaltung doch sicher auch mal mit LT-Spice simuliert oder? 
Wieso zeigst du das nicht?

Die erste Frage dir mir so durch den Kopf geht, was sollen die 
Optokoppler und sind die ueberhaubt schnell genug...

Olaf

von Lothar M. (lkmiller) (Moderator) Benutzerseite


Bewertung
1 lesenswert
nicht lesenswert
Wolfram F. schrieb:
> Bugs
Die Z-Dioden sorgen dafür, dass die Mosfets schon mal alle "so halbwegs" 
leiten und dann gleich nach dem Einschalten Hitze und Rauch entwickeln. 
Sollten sie das überleben, kommen als Nächste die BC556 dran. Denn mal 
angenommen, der Eingang hätte 65V, dann liegen am R4 50V an. Und wenn 
der Q6 dann einschaltet, müsste er 50V/10R=5A abkönnen.

Und das wird dann auch bei der "ganz normalen" Funktionsweise ein 
Problem darstellen. Denn das Gate des D3 muss ja auf 65V+15V angehoben 
werden, um einzuschalten. Nur wird es eben dann von diesen 80V per Q6 
über den R4 auf Masse geschaltet.

> diese werden durch Optokoppler vom µC angesteuert.
> Denkfehler
Wie schon gesagt: wenn du sowieso den selben Massebezug hast, wozu dann 
Optokoppler?

olaf schrieb:
> Optokoppler und sind die ueberhaubt schnell genug...
Mit einer Ton von 25µs und einer Toff von 45µs darf die Taktfrequenz auf 
jeden Fall nicht allzu hoch werden. Und dann wäre eine schnelle 
Freilaufdiode zur schnellen Übernahme des Stroms sinnvoll, denn bis die 
passenden aktiven Gleichrichter leiten kann es dauern.

: Bearbeitet durch Moderator
von IUnknown (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Wolfram F. schrieb:
> Moin moin,

moin :)

Wolfram F. schrieb:
> habe ich mal eine Schaltung entworfen, die als Buck UND als
> BOOST Konverter funktionieren kann.

Auch als klassischer Buck-Boost-Converter bekannt.

Wolfram F. schrieb:
> Da die meisten MOSFET-Treiber auch einen "Takt" für die Erzeugung der
> höheren Gate Spannung benötigen, fallen diese sowieso aus, da es auch
> "komplett on" oder "komplett off" Zustände der MOSFETs gibt.

Die Treiber laden ihren Bootstrap-Kondensator in der Low Phase und 
verbrauchen diese Ladung in der High Phase. Da die Ladung nicht ewig 
hält muss regelmäßig nachgeladen werden, daher der Takt. Wenn du diese 
Ladung auf andere Weise extern in den Kondensator bekommst, können die 
meisten Bootstraptreiber ewig High produzieren. Diese Option solltest du 
berücksichtigen.

Wolfram F. schrieb:
> Grundsätzlich gilt wie im Bild, die kleine Wahrheitstabelle für die
> MOSFETs.

Nicht invertierte PWM = PWM. Doppelte Invertierung :)

Wolfram F. schrieb:
> Ich möchte nun gerne wissen, seht Ihr irgendwo Bugs, Denkfehler, falsche
> Dimensionierung?

Das erste was auffällt sind die Zenerdioden von Drain nach Gate. Die 
sind nicht so verschaltet wie du dir das gedacht hast. Öfters sieht man 
mal Zenerdioden von Gate nach Source. Sinn davon ist die maximale 
Gatespannung zu begrenzen sodass das Gate nicht durchbrennt. Also 
entweder ganz raus (wenn du ein sehr hochkapazitives Gate hast, sind 
diese nicht so wichtig, und 10nF von den IRFP4668 würde ich schon als 
hochkapazitiv sehen), oder von Gate nach Source.

Die Ansteuerung der Gates ist etwas übertrieben, der Kondensator sorgt 
für schnelleres ein- und ausschalten, was der Totzeit erzeugenden 
RD-Konstruktion entegegen wirkt.

Die Optokoppler sind denkbar ungeeignet, ein kurzer Blick ins Datenblatt 
verrät, dass sie etwa 5µS Einschaltzeit haben. Da sind ja Brieftauben 
schneller. Der Optokoppler glänzt durch gute Spannungsfestigkeit, was du 
hier eher nicht brauchst.

Besser wäre eine direkte Ansteuerung, wie z.b. hier
http://sound.whsites.net/articles/pwm-f5b.gif
zu sehen ist.

Das nächste Problem ist, dass du alle Gatetreiber gleich versorgst. Die 
Highside braucht zwar einen Spannungsbereich von 0 bis VCC+VGS, 
allerdings killt dir diese Spannung die Lowside. Dafür solltest du eine 
seperate Versorgung von 15V bezogen auf GND nutzen.

An sich doktorst du viel an bereits gelösten Problemen herum. Ich würde 
dir empfehlen für die Highside eine normale Bootstrapschaltung zu nehmen 
und für die Lowside direkt das NPN+PNP Pärchen. Wenn du keinen Chip 
nutzen möchtest kannst du das ganze auch diskret (siehe Link oben) 
aufbauen.

Du kannst dann entweder die Highside Bootstrapschaltung mit dem 
DC/DC-Wandler versorgen um dauerhaft high zu garantieren oder, viel 
einfacher, einfach in der Software alle paar dutzend Takte einmal die 
zweite Brücke ebenfalls kurz auf low ziehen, damit der Bootstrap 
nachgeladen werden kann.

Ist dir 100% Ontime so wichtig? Reicht nicht auch 99.98% für beide 
Brücken? Der Effekt als Spannungswandler ist der selbe und du sparst dir 
viel Ärger ;)

von Lothar M. (lkmiller) (Moderator) Benutzerseite


Bewertung
0 lesenswert
nicht lesenswert
Wolfram F. schrieb:
> Denkfehler
Du hast da offenbar eine Prinzipschaltung auf schnellem Weg in eine 
reale Schaltung umgesetzt. Da klappt so nicht, hier braucht jeder 
"Schalter" eine eigene Ansteuerung, weil er ja jeweil unabhängig von den 
anderen funktionieren muss. Und das geht nicht über die simple 
Vervierfachung einer Low-Side-Ansteuerung, sondern du musst jedem Mosfet 
eine auf seine Source bezogene Ansteuerung verpassen.

von neuer PIC Freund (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Du willst 500 kHz PWM fahren mit einem ATMega328 (Ardu.. dingsda), der 
selbst nur mit 16 MHz getaktet ist. Da bleiben 32 Stufen übrig. Das wird 
holprig.

Dazu noch die langsamen ADC des ATMega, was auch die Control-Loop 
langsam macht. Und der ATMega selbst ist auch kein Rechenmonster.

Dann nimm doch wenigstens den Arduino mit Cortex. Dazu Low-/Highside 
Treiber.

von Lothar M. (lkmiller) (Moderator) Benutzerseite


Bewertung
0 lesenswert
nicht lesenswert
neuer PIC Freund schrieb im Beitrag #4966434:
> Du willst 500 kHz PWM fahren
Woraus willst du das erraten haben? Die OK haben eine Cutoff-Frequenz 
von 100kHz. Mehr als 10kHz ist damit sicher(!) nicht drin...

von neuer PIC Freund (Gast)


Bewertung
0 lesenswert
nicht lesenswert
>Woraus willst du das erraten haben?

Das erste Bildchen deutet da was an.

von Ingo L. (corrtexx)


Bewertung
0 lesenswert
nicht lesenswert
Man kann z.B. jedem Schalter einen eigenen Treiber (ob diskret oder 
nicht) spendieren, z.B. den HCNW-3120. Um die Sekundärseite des Treibers 
zu versorgen gibt es spezielle DC/DC-Wandler z.B. von Recom, die genau 
dafür konzipiert sind. Ich nenne einfach mal den R12P21509D/P. Dieser 
ist zwar für SiC MOSFETs aber is ja Schnuppe...

: Bearbeitet durch User
von Lothar M. (lkmiller) (Moderator) Benutzerseite


Bewertung
0 lesenswert
nicht lesenswert
neuer PIC Freund schrieb im Beitrag #4966437:
>> Woraus willst du das erraten haben?
> Das erste Bildchen deutet da was an.
Hoppla, übersehen.
Also was fürs Kapitel "falsche Dimensionierung"...  ;-)

: Bearbeitet durch Moderator
von neuer PIC Freund (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Oder anders ausgedrückt: Der stärkste 8-Bit-Kern aller Zeiten ist immer 
noch zu langsam für diese Aufgabe.


Schaltnetzteile nerven, wenn sie langsam getaktet sind. Unterstellen wir 
mal 10 Bit, da bleiben von 16 MHz ca. 16 kHz übrig. Die Controlloop auf 
2 kHz und fertig ist das Orchester.

Stumm wird es, wenn ein SW-Fehler zum shoot-through die MOSFETs 
abrauchen lässt. Und eine Strommessung gibt es auch keine.

von Michael_O (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Muss der GND für die Hugh Side Treiber nicht auf der Eingangsspannung 
Ligen und die Low Side Treiber eine eigene GND bezogene 15Volt 
Versorgung bekommen?

mfg
Michael

von Wolfram F. (mega-hz)


Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Moin,

erstmal danke für die zahlreichen Kommentare!

Ja, die Z-Dioden waren natürlich falsch... hab sie entfernt.
Ebenso sind die Optokoppler raus und die LOW-Side Treiber-Pärchen haben 
eine auf GND bezogene 15V.
die 30-500KHz waren ein Tippfehler, sollte 50KHz heissen!

Würde das, abgesehen mal von der Amega-Regelung, so funktionieren?
Eine Strombeqrenzung bzw. Überwachung kommt später natürlich noch mit 
rein.

Wenn das mit dem "Fremdeinspeisen" der Bootstrap Spannung an den MOSFET 
Treibern wie IR2110 z.B. tatsächlich funktioniert, wäre das natürlich 
eine einfache Sache, 2 Treiber und ran an den µC, oder?

Wolfram.

von Wolfram F. (mega-hz)


Bewertung
0 lesenswert
nicht lesenswert
ich überlege auch gerade ob es evt. nicht besser ist, einen PCA9685 für 
die PWM-Erzeugung zu nehmen, dann wäre der µC entlastet...
Dann noch die ADCs schneller laufen lassen.

: Bearbeitet durch User
von Lothar M. (lkmiller) (Moderator) Benutzerseite


Bewertung
0 lesenswert
nicht lesenswert
Michael_O schrieb:
> Muss der GND für die Hugh Side Treiber nicht auf der Eingangsspannung
> Ligen
Nein. Der "GND" für diese Fets muss an der Source liegen. Denn auf die 
Source bezieht sich die Gate-Source-Spannung Ugs, die den Mosfet ein- 
und ausschaltet.

> und die Low Side Treiber eine eigene GND bezogene 15Volt
> Versorgung bekommen?
Das wäre sinnvoll, damit das Gate nicht bis zu 80V abbekommt.

Wolfram F. schrieb:
> Würde das, abgesehen mal von der Amega-Regelung, so funktionieren?
Nein, denn wie gesagt: die Masse des jeweiligen Treibers muss auf die 
Source des jeweiligen Mosfet bezogen sein. So, wie es derzeit ist, 
hast du dort undefinierte Bezüge, je nachdem, welche Transistor gerade 
schaltet.

Mal einfach angenommen, deine Ausgangsspannung ist 40V. Was meinst du, 
was mit der GS-Strecke des Q4 passiert, wenn der Q12 einschaltet?

neuer PIC Freund schrieb im Beitrag #4966445:
> Schaltnetzteile nerven, wenn sie langsam getaktet sind. Unterstellen wir
> mal 10 Bit, da bleiben von 16 MHz ca. 16 kHz übrig. Die Controlloop auf
> 2 kHz und fertig ist das Orchester.
Es gibt µC, die den PWM-Takt per PLL nach oben schrauben können. Ein 
ATtiny45 kann das z.B. schon...

BTW: der D5 des Arduino wird sich schwer wundern... ;-)

: Bearbeitet durch Moderator
von Wolfram F. (mega-hz)


Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Update des Schaltplan..

von Wolfram F. (mega-hz)


Bewertung
0 lesenswert
nicht lesenswert
Lothar M. schrieb:
> Nein. Der "GND" für diese Fets muss an der Source liegen. Denn auf die
> Source bezieht sich die Gate-Source-Spannung Ugs, die den Mosfet ein-
> und ausschaltet.

würde sich das Problem mit IR2110 denn lösen lassen?

von Wolfram F. (mega-hz)


Bewertung
0 lesenswert
nicht lesenswert
Lothar M. schrieb:
> BTW: der D5 des Arduino wird sich schwer wundern... ;-)

warum?

von neuer PIC Freund (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Wenn es diskret werden soll, schmöker doch mal in Schaltplänen aus den 
90ern. Da wurde so was mit Ansteuertrafos erledigt.

>Es gibt µC, die den PWM-Takt per PLL nach oben schrauben können.

Bei anderen Herstellern viel öfter als bei Atmels AVR8. Wird ja auch 
gerne ins Feld geführt, warum die Cortexe so schwierig sind. Man muss zu 
Anfang den Takt einstelle. Ujujujuju. (und Stromschalter für die Peri 
haben die auch noch. Wahnsinn!)

von Lothar M. (lkmiller) (Moderator) Benutzerseite


Bewertung
0 lesenswert
nicht lesenswert
Wolfram F. schrieb:
> würde sich das Problem mit IR2110 denn lösen lassen?
Ja, der bezieht die Ansteuerung der High-Side auf die Source. Allerdings 
brauchst du für statischen Betrieb an VB und VS eine potentialfreie 
Versorgung.

Wolfram F. schrieb:
> warum?
Hat sich erledigt.

BTW: hast du schon mal ein paar einfachere Schaltregler aufgebaut? Wenn 
nicht: mach erst mal das und lerne daran. Oder kauf genügend Mosfets auf 
Reserve ein...

neuer PIC Freund schrieb im Beitrag #4966484:
> Bei anderen Herstellern viel öfter als bei Atmels AVR8.
Mag sein. Aber nicht jeder braucht eine 128MHz PWM. Warum dann jeden uC 
damit ausstatten?

von Wolfram F. (mega-hz)


Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
so, nun hat jeder High-Side MOSFET seine eigene auf Source bezogene 
Spannung.
Ich weiss, DCDC Wandler sind teuer, hab aber noch ein paar Stangen 
davon...

Wäre es nun soweit, eine erste Platine zu fräsen oder würde die 
Ansteuerung noch immer nicht funktionieren?

von Lothar M. (lkmiller) (Moderator) Benutzerseite


Bewertung
0 lesenswert
nicht lesenswert
Wolfram F. schrieb:
> oder würde die Ansteuerung noch immer nicht funktionieren?
Lies mal mein paar letzten Posts und denk an eine Ausgangsspannung über 
15V.

> oder würde die Ansteuerung noch immer nicht funktionieren?
Der Q6 und der Q12 müssen sich auf die Source des jeweiligen Mosfet 
beziehen. Und dran denken: das macht die Ansteuerung dieser 
High-Side-Treiber etwas komplizierter...

: Bearbeitet durch Moderator
von temp (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Wenn es nur um Demonstrationszwecke geht und um die Software dann nimm 
doch das hier:

http://www.st.com/content/st_com/en/products/evaluation-tools/product-evaluation-tools/mcu-eval-tools/stm32-mcu-eval-tools/stm32-mcu-discovery-kits/32f3348discovery.html

Da ist der Buck/Boost schon fertig drauf und du kannst sofort loslegen 
mit der Software dazu.

von Wolfram F. (mega-hz)


Bewertung
0 lesenswert
nicht lesenswert
Lothar M. schrieb:
> Nein, denn wie gesagt: die Masse des jeweiligen Treibers muss auf die
> Source des jeweiligen Mosfet bezogen sein. So, wie es derzeit ist,
> hast du dort undefinierte Bezüge, je nachdem, welche Transistor gerade
> schaltet.

achso, du meinst, der pnp transistor müsste nicht an gnd sondern an 
Source des entsprechenden high-side fets ran?

von Wolfram F. (mega-hz)


Bewertung
1 lesenswert
nicht lesenswert
temp schrieb:
> Wenn es nur um Demonstrationszwecke geht und um die Software dann nimm
> doch das hier:

danke, aber einfach kaufen kann jeder... selber machen macht auch Spass 
;-)

von Lothar M. (lkmiller) (Moderator) Benutzerseite


Bewertung
0 lesenswert
nicht lesenswert
temp schrieb:
> Wenn es nur um Demonstrationszwecke geht und um die Software dann nimm
> doch das hier
https://static5.arrow.com/pdfs/2015/7/27/0/47/58/79/st_/manual/stm32f3348-disco_fig.1_5.jpg
Diese Brücke sieht doch recht brauchbar aus. Allerdings kann die 
natürlich nicht die hier gewünschten Spannungen. Aber als Ideengeber 
taugt sie allemal...

Wolfram F. schrieb:
> danke, aber einfach kaufen kann jeder... selber machen macht auch Spass
> ;-)
Es geht nicht unbedingt ums "Kaufen", sondern mal zu sehen, wie andere 
ihr Rad rund bekommen haben.

: Bearbeitet durch Moderator
von Wolfram F. (mega-hz)


Bewertung
0 lesenswert
nicht lesenswert
neuer PIC Freund schrieb im Beitrag #4966484:
> Wenn es diskret werden soll, schmöker doch mal in Schaltplänen aus den
> 90ern. Da wurde so was mit Ansteuertrafos erledigt.

ok, welcher Ansteuertrafo macht denn auch DC? :-)
Das geht in diesen Fall nicht mit Trafos, da die MOSFETs auch komplett 
ein oder ausgeschaltet sein können! Je nach Modus, Buck oder Boost.

von temp (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Wolfram F. schrieb:
> danke, aber einfach kaufen kann jeder... selber machen macht auch Spass

ja klar, solange es nicht um einfaches Nachbauen von irgendwas geht was 
man nicht versteht. So wie du die Bauteile in deinem Schaltplan 
zusammengenagelt hast, scheint mir einiges an Grundlagenwissen zu 
fehlen. Da sollte vor so einem Projekt zuerst dran gearbeitet werden. 
Als nächstes stellt sich die Frage ob du für so eine Aufgabe die nötigen 
Messmittel hast und damit umgehen kannst. Das sieht auf dem Papier alles 
ziemlich trivial aus, die Realität ist dann aber meistens was komplett 
anderes.

von Wolfram F. (mega-hz)


Angehängte Dateien:

Bewertung
1 lesenswert
nicht lesenswert
Hier die Schaltung mit IR2101 als Treiber, spart einiges an Teilen.
(rechter Teil des Schaltplans)

@temp:
Grundlagenwissen... ja das ist irgendwo in der Schublade :-)
und wie heisst noch dieser kleine Fernseher? Achja, Scope... hab ich 
auch.
Ich weiss sogar, wo das gefährliche Ende des Lötkolbens ist!
Grins...

von Mark S. (voltwide)


Bewertung
0 lesenswert
nicht lesenswert
Wolfram F. schrieb:
> neuer PIC Freund schrieb im Beitrag #4966484:
>> Wenn es diskret werden soll, schmöker doch mal in Schaltplänen aus den
>> 90ern. Da wurde so was mit Ansteuertrafos erledigt.
>
> ok, welcher Ansteuertrafo macht denn auch DC? :-)
> Das geht in diesen Fall nicht mit Trafos, da die MOSFETs auch komplett
> ein oder ausgeschaltet sein können! Je nach Modus, Buck oder Boost.

GateAnsteuerÜbertrager bereiten auch Probleme, wenn das Tastverhältnis 
über einen größeren Bereich verfahren werden soll.

von Mark S. (voltwide)


Bewertung
0 lesenswert
nicht lesenswert
Es geht auch ohne Lötkolben und Oszilloskope: Mit einem Simulator wie 
LTSpice. Kann ich Dir nur dringend anraten, Dich da mal rein zu fuchsen. 
Es ist ein mächtiges Werkzeug um die Arbeitsweise von Schaltungen bis 
ins kleinste Detail zu analysieren und zu verstehen. Und der Verschleiß 
an Bauteilen ist vernachlässigbar.

von Wolfram F. (mega-hz)


Bewertung
0 lesenswert
nicht lesenswert
ja ich kenne LTSpice, ist wirklich klasse, nur manchmal sind die 
passenden Bauteile nicht dabei.
Ich werde die Schaltung mal damit aufbauen...

von temp (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Wolfram F. schrieb:
> Ich weiss sogar, wo das gefährliche Ende des Lötkolbens ist!

dann bin ich ja beruhigt, daß du weißt, das die Hand hinten am Lötkolben 
und das was an der Hand dran ist viel mehr Scheiße bauen kann als die 
350°C heiße Spitze...

> Grins...
Bei soviel Halbwissen kann man nur in Anbetracht totaler 
Selbstüberschätzung grinsen.

von Wolfram F. (mega-hz)


Bewertung
0 lesenswert
nicht lesenswert
viel zum Thema hast Du ja nicht beigetragen!
Aber macht auch nix, temp wird ja sowieso irgendwann gelöscht... :-) 
passt.

von stevven (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Überseh ich was???
Wo kommen denn die 5V her?

von Wolfram F. (mega-hz)


Bewertung
0 lesenswert
nicht lesenswert
die kommen voerst von einem externen Netzteil.

: Bearbeitet durch User
von neuer PIC Freund (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Hallo nochmal.

Die IR2101 hast du ja gar nicht im Griff. Dessen Pins Vb, Hout und Vs 
gehören zu dem High-Side-MOSFET. Und nur zu dem. Dabei verbindest du Vs 
mit dem Source des High-Side. DC4 und DC6 sind soweit richtig 
angebunden. Beim zweiten Treiber hast du High und Low vertauscht. Das 
Gate von Q18 sieht irgendwas zwischen 0V und 5V Potential. Dann könntest 
du mit DC5 die 5V für die Low-Side-MOSFET etwas boosten.

von Jobst M. (jobstens-de)


Bewertung
0 lesenswert
nicht lesenswert
Wolfram F. schrieb:
> Ich weiss sogar, wo das gefährliche Ende des Lötkolbens ist!

Ich kann mich temp nur anschließen. Ich hatte die selben Gedanken.
Allein das Layout dürfte spannend werden.
Hast Du schon mal einen kleinen Schaltregler aufgebaut?


Mark S. schrieb:
> Es geht auch ohne Lötkolben und Oszilloskope: Mit einem Simulator wie
> LTSpice.

Dort geht der FET aber nicht kaputt, wenn -65V am Gate gegen Source 
liegen.

Wieso werden Q2 und Q4 eigentlich nicht durch Dioden ersetzt?


Gruß

Jobst

von Wolfram F. (mega-hz)


Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
ui, da war ich wohl etwas schnell im zeichnen...
Danke für die Tips!
Wie sieht es denn mit LIN und HIN aus, reichen da noch immer TTL-Pegel 
wenn VCC vom IR2101 auf 15V ist?

@Jobst: Du meinst Q2 und Q4 im "Transistor-Schaltplan"? Also Q15 & 16 im 
IR2101 Schaltplan?

Da je nach Modus (Buck/Boost) diese auch komplett weggeschaltet werden 
müssen.

Anbei der geänderte Schaltplan. Müsste so richtig sein.

von Mark S. (voltwide)


Bewertung
0 lesenswert
nicht lesenswert
Jobst M. schrieb:
> Mark S. schrieb:
>> Es geht auch ohne Lötkolben und Oszilloskope: Mit einem Simulator wie
>> LTSpice.
>
> Dort geht der FET aber nicht kaputt, wenn -65V am Gate gegen Source
> liegen.

Leider wahr. Das perfekte Simulationsprogramm sollte im Fehlerfall einen 
Einbrennfleck auf dem Monitor hinterlassen.

von Jobst M. (jobstens-de)


Bewertung
1 lesenswert
nicht lesenswert
Mark S. schrieb:
> Leider wahr. Das perfekte Simulationsprogramm sollte im Fehlerfall einen
> Einbrennfleck auf dem Monitor hinterlassen.

Hey! Das ist meine Idee! :-D
Gewachsen zur Zeit meiner Lehrlinge ...
Und der Brandfleck muss auch da bleiben, damit man lernt. Kein undo! ;-)

Gruß

Jobst

von Wolfram F. (mega-hz)


Bewertung
0 lesenswert
nicht lesenswert
Mark S. schrieb:
> Leider wahr. Das perfekte Simulationsprogramm sollte im Fehlerfall einen
> Einbrennfleck auf dem Monitor hinterlassen.

wie gemein!

Wolfram F. schrieb:
> Wie sieht es denn mit LIN und HIN aus, reichen da noch immer TTL-Pegel
> wenn VCC vom IR2101 auf 15V ist?

?

Beitrag #4968298 wurde von einem Moderator gelöscht.
Beitrag #4968304 wurde von einem Moderator gelöscht.
von Tilo R. (joey5337) Benutzerseite


Bewertung
0 lesenswert
nicht lesenswert
Wolfram F. schrieb:
> Wie sieht es denn mit LIN und HIN aus, reichen da noch immer TTL-Pegel
> wenn VCC vom IR2101 auf 15V ist?

Das steht im Datenblatt des IR2101.

Das würd' ich mir an deiner Stelle nochmal genau anschauen. Dann klärt 
sich vielleicht auch, ob D5..D8 wirklich hilfreich sind.

Insbesondere das Timing, die Totzeiten, das Zusammenspiel deiner 
Leistungstransistoren ist sehr kritisch - ich würde mir das so nicht 
zutrauen.

Ein "popligeres" Projekt wäre es, nicht gleich mit einem Synchronen 
Buck-Boost anzufangen sondern Q16, Q18 durch Dioden zu ersetzen.

Oder bei deinem Wissensstand vielleicht erst einmal mit einem 
einfacheren Buck-Regler. Da gibts auch eine Menge zu rechnen und zu 
verstehen, insbesondere wenn der synchron arbeiten soll.

Zum Verständnis würde ich mir auch verschiedene Datenblätter/Application 
Notes fertiger Schaltregler anschauen. "wie die so ticken" und nach 
welchen Kriterien die ihre Bauteile dimensionieren.

Fixed: Typo

: Bearbeitet durch User
von Äkhfd (Gast)


Bewertung
1 lesenswert
nicht lesenswert
Es steht eben nicht genau im Datenblatt ob die eingangspegel trotzdem 
ttl bleiben bei höherer von.

Warum geht ihr so negativ auf den TE,  er würde di h nicht im forum nach 
Hilfe fragen wenn er vollprofi wäre, oder?
Ich finde es schade das im fast allen Foren es immer Idioten gibt die 
sich mit nicht sachdienlichen Beiträgen profilieren müssen!

Die trotz eigentlich kann man doch prima mit dem Controller erzeugen, 
ausmessen u d anpassen.
Was soll daran so schwer sein?

von Äkhfd (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Äkhfd schrieb:
> trotz

Soll heißen die totzeit. ..

von Tilo R. (joey5337) Benutzerseite


Bewertung
0 lesenswert
nicht lesenswert
Äkhfd schrieb:
> Es steht eben nicht genau im Datenblatt ob die eingangspegel trotzdem
> ttl bleiben bei höherer von.

Ja, ok. Von TTL-Pegeln steht da nix. Im Grundgesetz steht aber auch 
nicht "Äpfel klauen beim Nachbar ist verboten".

Im Datenblatt stehen aber die minimalen und maximalen Spannungswerte für 
High und Low (in den ersten Zeilen der unteren Tabelle auf Seite 3).
Bei Vcc zwischen 10V und 20V - was 15V einschließt. Ich hatte das 
übrigens nachgeschaut bevor ich meine Antwort geschrieben hatte (ich 
will mich ja nicht blamieren).
Mit meinen Studis hätte ich das genauso gemacht. Nicht vorkauen sondern 
Hilfe zur Selbsthilfe.


> Warum geht ihr so negativ auf den TE,  er würde di h nicht im forum nach
> Hilfe fragen wenn er vollprofi wäre, oder?

Ich bin überhaupt nicht negativ eingestellt, im Gegenteil. Ich halte 
meinen Beitrag für sachlich und wohlwollend.


> Ich finde es schade das im fast allen Foren es immer Idioten gibt die
> sich mit nicht sachdienlichen Beiträgen profilieren müssen!
D'accord. Trifft hier aber imho hier nicht zu.


> Die Totzeit eigentlich kann man doch prima mit dem Controller erzeugen,
> ausmessen u d anpassen.
> Was soll daran so schwer sein?

Das ist ein guter Hinweis. Mein Kommentar war als Hinweis gedacht, dass 
man da drauf achten muss.

: Bearbeitet durch User
von Wolfram F. (mega-hz)


Bewertung
0 lesenswert
nicht lesenswert
Ja die Totzeiten sind für mich das erste, was ich messen werde und 
einstelle.
Da gibt es genügend Erfahrungen, welche nur zur Hitzeerzeugung führten 
:-)
Die erste Prototyp-PCB ist gefräst und nun gehts erstmal ans bestücken 
und messen. Erstmal ohne Mosfets um zu sehen, wie die IR2101 schalten.

Danke allen, die wertvolle Tips gegeben haben!
Weitere Erkenntnisse folgen...

von Mampf F. (mampf) Benutzerseite


Bewertung
0 lesenswert
nicht lesenswert
Wolfram F. schrieb:
> Ich möchte nun gerne wissen, seht Ihr irgendwo Bugs, Denkfehler, falsche
> Dimensionierung?

4 MOSFETs für Buck-Boost? Das alleine erscheint mir schon sehr 
zweifelhaft.

Ansonsten fällt mir spontan auf, dass über die Z-Dioden und 10Ohm 
Widerstände der Strom direkt über den NPN weiter unten nach Masse 
fließt.

Seltsame Schaltung und viel viel zu kompliziert :)

von Wolfram F. (mega-hz)


Bewertung
0 lesenswert
nicht lesenswert
schau dir bitte den letzten Schaltplan an!

von Mampf F. (mampf) Benutzerseite


Bewertung
0 lesenswert
nicht lesenswert
Wolfram F. schrieb:
> schau dir bitte den letzten Schaltplan an!

Ok, Danke! :)

Mich würde ja die Regelung interessieren ... Was möchte er denn für 
einen Regler verwenden? PID wär wohl am besten, aber das ist dann wieder 
schwierig, die Regel-Konstanten zu ermitteln :)

von Bla (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Ich sehe da noch ein Problem: den Transistor Q18 musst du umdrehen. So 
wie der im Moment drinliegt hast du einen Brückenkurzschluss sobald Q17 
einschaltet. Der Schaltplan ist auch unübersichtlich 
gezeichnet...zeichne die beiden Halbbrücken mal mit den Transistoren 
übereinander und nicht "ums Eck".

von Axel R. (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Sinn der vier Transistoren war ja mal der, den Regler in beiden 
Richtungen betreiben zu können. Davon wird hier kein Gebrauch gemacht.
Bau erstmal was "kleines". Ich habe auch schonmal ein halbes Jahr lang 
mein Taschengeld in einen Boost Konverter gesteckt. ?

von Mampf F. (mampf) Benutzerseite


Bewertung
0 lesenswert
nicht lesenswert
Axel R. schrieb:
> Ich habe auch schonmal ein halbes Jahr lang
> mein Taschengeld in einen Boost Konverter gesteckt. ?

Auf welcher Basis war der? Mit dem MC34063 hatte ich mal einen 
Boost-Converter von 12 auf 48V mit 1A Konstantstrom für eine 50W 
High-Power-LED gebastelt, das ging eigentlich ganz gut :)

Den Regler komplett selbst aufbauen und programmieren würde ich 
persönlich nicht machen wollen ... Ist sicher ganz lehrreich, aber 
ziemlich aufwändig imho.

von Wolfram F. (mega-hz)


Bewertung
0 lesenswert
nicht lesenswert
Bla schrieb:
> Ich sehe da noch ein Problem: den Transistor Q18 musst du umdrehen. So
> wie der im Moment drinliegt hast du einen Brückenkurzschluss sobald Q17
> einschaltet.

Wie kommst Du darauf, daß es einen Kurzschluss gibt?
Das liegt doch erst an der Software, was passiert!
Q18 umzudrehen wäre fatal, da die interne Diode des Q18 dann immer alles 
durchlässt!

Axel R. schrieb:
> Sinn der vier Transistoren war ja mal der, den Regler in beiden
> Richtungen betreiben zu können. Davon wird hier kein Gebrauch gemacht.
war nicht sondern ist der Sinn der Sache!
Gebrauch wird davon gemacht, wenns an die Software geht!

Klar kann man sowas wie den mc34063, LTC3810 usw. nehmen, hab ich auch 
schon häufig benutzt, aber es geht ja darum, alles von Hand zu machen, 
auch die Ansteuerung. Ob man das später irgendwo einsetzen wird, ist ne 
andere Sache.

von Bla (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Wolfram F. schrieb:
> Bla schrieb:
>> Ich sehe da noch ein Problem: den Transistor Q18 musst du umdrehen. So
>> wie der im Moment drinliegt hast du einen Brückenkurzschluss sobald Q17
>> einschaltet.
>
> Wie kommst Du darauf, daß es einen Kurzschluss gibt?
> Das liegt doch erst an der Software, was passiert!
> Q18 umzudrehen wäre fatal, da die interne Diode des Q18 dann immer alles
> durchlässt!

Ich meinte Q15, nicht Q17 (falsch im Plan geguckt).
Wenn über C22 eine positive Spannung anliegt und du Q15 einschaltest 
dann schliesst du C22 über die Bodydiode von Q18 kurz. Das die interne 
Diode von Q18 "alles durchlässt" ist richtig und soll auch so sein.

von Wolfram F. (mega-hz)


Bewertung
0 lesenswert
nicht lesenswert
oh ja, stimmt!
Wenn ich Q18 aber umdrehe,hat er im Prinzip keine Funktion mehr, dann 
besser ne Diode zwischen Q18 und C22...
Oder ich muss nach MOSFETs ohne Diode suchen.

: Bearbeitet durch User
von elektriker (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Wolfram F. schrieb:
> Bla schrieb:
>> Ich sehe da noch ein Problem: den Transistor Q18 musst du umdrehen. So
>> wie der im Moment drinliegt hast du einen Brückenkurzschluss sobald Q17
>> einschaltet.
>
> Wie kommst Du darauf, daß es einen Kurzschluss gibt?
> Das liegt doch erst an der Software, was passiert!

Ja aber wie, um alles in der Welt, soll die Software denn Q15 jemals 
einschalten, ohne das die Ausgangselkos C22,C23 schlagartig über diesen 
und die Q18-Diode entladen werden?

von Bla (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Wolfram F. schrieb:
> Wenn ich Q18 aber umdrehe,hat er im Prinzip keine Funktion mehr, dann
> besser ne Diode zwischen Q18 und C22...
> Oder ich muss nach MOSFETs ohne Diode suchen.

Dann hat er genau die Funktion die du willst. Wenn du einen synchronen 
Boost haben willst verwendest du Q15 und Q18 für die PWM. Q17 leitet 
permanent und Q16 sperrt. Beim synchronen Buck verwendest du Q17 und Q16 
für die PWM. Q18 ist konstant ein und Q15 konstant aus.

Wenn du asynchrone Konverter betreiben willst steuerst du beim Boost Q18 
nicht an und beim Buck Q16. Dann funktionieren diese beiden nur als 
Dioden.

Ich würde mal den Begriff Halbbrücke googlen und schau dir nochmals 
genau an wie Buck und Boost funktionieren. Zudem wirst du am Anfang wohl 
einiges an Bauteilen als Lehrgeld opfern müssen.

Sei dir ausserdem bewusst dass das Layout des PCB einen entscheidenden 
Einfluss auf die Funktion des Konverters hat. Wenn die parasitären 
Induktivitäten nicht klein genug sind kriegst du schnell Probleme mit 
Schwingungen auf den Gates und Überspannungen über den FETs. Ich würde 
zudem noch eine Strommessung für den Spulenstrom vorsehen.

Absonsten wäre so eine Buck-Boost Stufe zum lernen sicher nicht allzu 
falsch.

von Wolfram F. (mega-hz)


Bewertung
0 lesenswert
nicht lesenswert
ok, überzeugt!
werd ich umdrehen und spar mir die diode.
danke für den Tip!

edit: aber mit zusätlicher diode würde der synchron-Betrieb doch 
trotzdem ohne umdrehen funktionieren, oder?

: Bearbeitet durch User
von Michael O. (michael_o)


Bewertung
0 lesenswert
nicht lesenswert
Ich denke auch das Q18 falschrum drin ist. Die Schaltung sollte streng 
symmetrisch sein um als Buck - Boost in beide Richtungen zu arbeiten. 
Soll nur in einer Richtung gearbeitet werden, reichen doch zwei 
Transistoren locker aus wie TI es bei seinen 48V zu 12V bidirektionale 
Konvertern für Hybridautos macht.

mfg
Michael

von Mark S. (voltwide)


Bewertung
0 lesenswert
nicht lesenswert
Mampf F. schrieb:
> Auf welcher Basis war der? Mit dem MC34063 hatte ich mal einen
> Boost-Converter von 12 auf 48V mit 1A Konstantstrom für eine 50W
> High-Power-LED gebastelt, das ging eigentlich ganz gut :)

Glaub ich nicht. Das Teil ist für 40V spezifizert und dürfte bei dieser 
Last abkochen.

von Homo Habilis (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Michael O. schrieb:
> Ich denke auch das Q18 falschrum drin ist. Die Schaltung sollte streng
> symmetrisch sein um als Buck - Boost in beide Richtungen zu arbeiten.

Grundsätzlich hast Du recht - es muß die primäre Halbbrücke "gespiegelt" 
werden. Das Zauberwort ist halt Synchron ...

Aber ob tatsächlich Betrieb in beide Richtungen oder nicht, das ist hier 
nicht der Knackpunkt (da scheinbar nicht nötig - obwohl rein topologisch 
möglich, nur halt mit geänderter/ergänzter Ansteuerung, also noch 
schwieriger... puh.).

Fakt ist:

Die FETs werden als Synchrongleichrichter "verkehrt herum" betrieben - 
was wohl den TO beim HighSide rechts verwirrt(e). Der Strom muß - als ob 
durch die Body-Diode - von Source nach Drain!

Für Synchron-(Gleichrichter-)Betrieb baut man den gewünschten Konverter 
so auf, daß die Body-Dioden leiten würden - wenn man nicht stattdessen 
den FET einschalten würde.

"Synchron" zur "eigentlich-Doden-Leit-Zeit" - was auf verschiedene Weise 
lösbar ist, und wenn "Rückwärts-Betrieb" gar nicht gewünscht ist, kann 
man da auch so "Diode-Emulation" ICs nehmen - die gibt es mittlerweile 
für Flyback bis LLC, mit kompensierter Vds-Messung.

Aber er TO will ja scheinbar dringend möglichst alles mit dem Nano 
machen - ich würde schlicht mal auf der LinearTech Seite nach 
Synchronous Buck-Boost suchen - ich glaube, die gehen auch rückwärts(?), 
und/aber sind zumindest in jeder Hinsicht überlegen.

Aber ist ja ein Lehr-/Lernprojekt.

von Homo Habilis (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Homo Habilis schrieb:
> die primäre Halbbrücke

Die linke Halbbrücke meine ich.

von Wolfram F. (mega-hz)


Bewertung
0 lesenswert
nicht lesenswert
Homo Habilis schrieb:
> Synchronous Buck-Boost suchen - ich glaube, die gehen auch rückwärts(?)

Meinst du mit rückwärts das der Ausgang und Eingang vertauscht sind?
Wenn ja, dies ist evt. ne nette Möglichkeit, hier aber nicht 
erforderlich.
Ich habe mir mal den LTC3789 angeschaut, dort sind Q18 UND Q15 gedreht!
Warum auch Q15? Das verwirrt mich...

http://cds.linear.com/image/9012.png

: Bearbeitet durch User
von Wolfram F. (mega-hz)


Bewertung
0 lesenswert
nicht lesenswert
Ok, beim LT8705 ist Q15 wie in meiner Schaltung und nur Q18 gedreht,
diese kommt meiner Schaltung sehr nahe.
Siehe http://cds.linear.com/image/9666.png

: Bearbeitet durch User
von Mampf F. (mampf) Benutzerseite


Bewertung
0 lesenswert
nicht lesenswert
Mark S. schrieb:
> Glaub ich nicht. Das Teil ist für 40V spezifizert und dürfte bei dieser
> Last abkochen.

Externer Power-MOSFET :) Der MC34063 alleine schafft das natürlich 
nicht^^

von Homo Habilis (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Hallo Wolfram, bitte verzeih die späte Rückmeldung.

Wolfram F. schrieb:
> Meinst du mit rückwärts das der Ausgang und Eingang vertauscht sind?
> Wenn ja, dies ist evt. ne nette Möglichkeit, hier aber nicht
> erforderlich.

Ja, meinte ich. Topologie würde das erlauben.

Wolfram F. schrieb:
> Ok, beim LT8705 ist Q15 wie in meiner Schaltung und nur Q18 gedreht,

(Den LTC3789 gab ich mir nicht angesehen, da laut Dir vermutlich
eh unpassend, und meine Verbindung äußerst mangelgaft...
Soll heißen, was ich nicht laden muß - lade ich nicht.

Von einer Drehung von Q15 hatte ich nicht gesprochen. Nur Q18.
Ich bin mir nicht sicher, was meine Vorredner meinten. Deine ist:

Wolfram F. schrieb:
> diese kommt meiner Schaltung sehr nahe.
> Siehe http://cds.linear.com/image/9666.png

...exakt diese Schaltung. Das sind, wie gesagt, zwei sog.
"Halbbrücken", am Schaltknoten (Mitte) durch Induktor verbunden.
Und deshalb sowohl symmetrisch, synchron und auf- wie auch
abwärts-wandelfähig, als auch das Ganze rückwärts möglich.

Diese Controller-ICs sind für den Zweck optimiert, ganz anders
als ein Ard. Nano. Womit ich der Idee "SMPS mit Arduino" nicht die
Daseinsberechtigung abspreche, aber gut ist halt was anderes.

Es kommt natürlich auch auf die zu versorgende Last an, aber
mit einem dedizierten (wenn auch analogen) Schaltregler-IC
ist man hier in jeder Hinsicht besser dran.

Die Gründe muß ich eigentl. nicht erläutern, die ergeben
sich schon (deutlich) bei Studium des LT-Datenblattes.

von Michael O. (michael_o)


Bewertung
0 lesenswert
nicht lesenswert
Nun gibt es aber auch Kontroller mit diversen Modulen um einem das leben 
des Schaltreglers angenehmer zu gestalten. Mikrochip hat da diverse 
Spielereien in verschiedene PIC Kontroller gepackt. Opamps und schnelle 
Komperatoren in die einfachen, schnelle DSP befehle in die SMPS fähigen 
DSPics und als letztes jetzt PICs mit komplexen SMPS Modulen für analoge 
oder digitale Regelschleifen ganz nach dem jeweiligen Geschmack.


mfg
Michael

von Boris O. (bohnsorg) Benutzerseite


Bewertung
0 lesenswert
nicht lesenswert
Für den Universalwandler würde ich immer eine klassische H-Brücke 
aufbauen und auch als solche Zeichnen, d.h. High- und Low-Side-MOSFETs 
einander gegenübergestellt. Das einzig ungewöhnliche ist die fehlende 
Verbindung zwischen den beiden High-Side-MOSFETs, da der MOSFET rechts 
oben (klassische H-Darstellung) zur Diode in Flussrichtung wird. In 
AN4449[1] von ST gibt es Prinzipdarstellungen und die verschiedenen 
Ansteuerschemata. Dort wird auch auf die Totzeit-Einstellung (dead time 
insertion) Bezug genommen. Einem Arduino würde ich mit 500kHz-PWM-Ziel 
die dead time insertion nicht zutrauen, wenn er noch Regelaufgaben hat, 
besonders nicht mit Arduinos C++-Bibliothekszeugs.

[1] 
http://www.st.com/content/ccc/resource/technical/document/application_note/ec/9c/b0/81/b5/12/4e/21/DM00108726.pdf/files/DM00108726.pdf/jcr:content/translations/en.DM00108726.pdf

von Wolfram F. (mega-hz)


Bewertung
0 lesenswert
nicht lesenswert
Homo Habilis schrieb:
> Es kommt natürlich auch auf die zu versorgende Last an, aber
> mit einem dedizierten (wenn auch analogen) Schaltregler-IC
> ist man hier in jeder Hinsicht besser dran.
Es geht mir hier doch garnicht um einen Schaltregler "haben" zu wollen, 
sondern mal einen "von Hand" aufzubauen und dabei zu lernen!
Wenn ich für irgendwas einen brauche, kaufe ich ein IC oder gar eine 
ferige platine und verwende den.
Man weiss, wie so ein Ding funktioniert und das es macht, was es soll 
(meistens ;-)  ) aber wenn man's selber mal aufbaut, sieht und versteht 
man die Dinge ganz anders!

Boris O. schrieb:
> Einem Arduino würde ich mit 500kHz-PWM-Ziel
> die dead time insertion nicht zutrauen, wenn er noch Regelaufgaben hat,
:-) die 500Khz waren ein Tippfehler, eher 50kHz!

Ich bin auch mal gespannt, ob der 328 das beides packt oder was auf 
externe HW ausgelagert werden muss! Sicher wird die Spannungs- und 
(später) Strommessung zu langsam sein, ok, zum Batterieladen vielleicht 
noch gut genug.

von Wolfram F. (mega-hz)


Bewertung
0 lesenswert
nicht lesenswert
Homo Habilis schrieb:
> Von einer Drehung von Q15 hatte ich nicht gesprochen. Nur Q18.
> Ich bin mir nicht sicher, was meine Vorredner meinten.

Beim Beispiel-Schaltplan vom LTC3789 ist Q15 auch verdreht, was mich 
wunderte

von Wolfram F. (mega-hz)


Bewertung
0 lesenswert
nicht lesenswert
Was mich schon länger beschäftigt, wie kann man (per Software) die beste 
Arbeitsfrequenz für eine "unbekannte" Spule herausfinden?
F durchstimmen von 20-80KHz und messen bei welcher Frequenz die höchste 
Spannung im Leerlauf erzeugt wird?
Wäre klasse, wenn der µC sich an die Spule anpassen könnte!
Natürlich nicht irgendwelche Spulen, nur Speicherdrosseln im üblichen 
Bereich, sagen wir mal 20µH bis 1mH.

: Bearbeitet durch User
von Wolfram F. (mega-hz)


Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Schaltplan Update mit korrekten Q18 und angepasster Tabelle.

von Mampf F. (mampf) Benutzerseite


Bewertung
0 lesenswert
nicht lesenswert
Wolfram F. schrieb:
> Schaltplan Update mit korrekten Q18 und angepasster Tabelle.

Ach jetzt hab ich das mit den DCDC Wandlern gecheckt ... Hatte mich 
schon gewundert ...

Aber du scheinst unbedingt N-Kanal-MOSFETs verwenden zu wollen.

Eine Frage: Du nimmst mittlerweile eh MOSFET-Treiber her, wieso nimmst 
du keinen mit High-Side-Treiber, der Bootstrapping macht? Die machen im 
Prinzip das, was du umständlich über DCDC-Wandler machst, aber in klein 
und nett und süß und nicht so Bruteforce-mäßig.

Du würdest dir die DCDC-Wandler sparen und bräuchtest nur 2 
Kondensatoren stattdessen oder so ...

*edit*: Außerdem bringen deine 15V DCDC-Wandler nur 50mA Ausgangsstrom 
... Das halte ich für ein Problem. Gates werden normalerweise mit 
Strömen im Ampere-Bereich umgeladen, damit die MOSFETs schnell und mit 
wenig Verlusten schalten können ... Hmm, ob deine Cs das soweit puffern 
können, wenn der DCDC nur so wenig Strom bringt.

Halte ich für keine gute Idee ...

: Bearbeitet durch User
von Mampf F. (mampf) Benutzerseite


Bewertung
0 lesenswert
nicht lesenswert
Und noch ein kleiner Einwand ... normal müsste man auch den Strom durch 
die Spule messen und bei Sättigung die MOSFETs ausschalten ... Das fehlt 
hier auch noch.

von Wolfram F. (mega-hz)


Bewertung
0 lesenswert
nicht lesenswert
Mampf F. schrieb:
> Eine Frage: Du nimmst mittlerweile eh MOSFET-Treiber her, wieso nimmst
> du keinen mit High-Side-Treiber, der Bootstrapping macht?

Weil die Ladungspumpe leerlaufen würde wenn Q17 oder Q18 dauerhaft 
eingeschaltet wären!

Dinge wie Strombegrenzung kommen später, hier gehts mir erstmal um das 
Prinzip und um die Ansteuerung mit dem 328.

Das Scope wird dann immer dabei sein!

von Wolfram F. (mega-hz)


Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Erster Test erfolgreich!

Die Platine ist gefräst, bestückt und nachgearbeitet,
da ein paar Leiterbahnen diagonal waren und zu dicht zusammen für den 
Gravierstichel waren, musste ich mit Reperaturdraht diese flicken.

Alle Spannungen an den IR2101 sind da.

Erster einfacher Test ohne Vin und ohne Spule per

analogWrite(10,128);
analogWrite(9,128);
analogWrite(6,128);
analogWrite(5,128);

mit standart PWM von 970Hz zeigen 50% duty-cycle am Logicanalyzer
(direkt an D10,D9,D5,D6 gemessen, TTL)

Mit dem Scope genauso gut nachverfolgbar die Spannungen an den Gates!

Nun ist schonmal sichergestellt das die Hardware das macht, was sie soll
UND: das Lin und Hin des IR2101 trotz 15V VCC TTL-kompatibel bleiben!

Nun muss ich mich erstmal damit beschäftigen, wie man 30Khz für die 4 
Ausgänge erzeugt und wie man die Totzeit von erstmal 1µS mit einbauen 
kann.

: Bearbeitet durch User
von Wolfram F. (mega-hz)


Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Platine

von 1N 4. (1n4148)


Bewertung
1 lesenswert
nicht lesenswert
Jessas Marie! Weiter weg konntest du die MOSFET-Treiber nicht mehr 
platzieren?

von Wolfram F. (mega-hz)


Bewertung
0 lesenswert
nicht lesenswert
von was weiter weg?

von Wolfram F. (mega-hz)


Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
da das ganze erstmal nur ein Versuch ist, wird das Layout sicher noch 
optimiert werden müssen, wer Tips hat... gerne!
Die IR2101 sind SMD Bauteile auf SO8-DIP8 Adaptern.

von 1N 4. (1n4148)


Bewertung
1 lesenswert
nicht lesenswert

von Wolfram F. (mega-hz)


Bewertung
0 lesenswert
nicht lesenswert
oha, das das so krass sich verhalten kann, wusste ich nicht!
Danke für den Link! Sehr hilfreich!
Also sollten die Treiber so gut wie direkt an die FETs...
Werde ich mir merken fürs nächste Layout!

von Homo Habilis (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Wolfram F. schrieb:
> Werde ich mir merken fürs nächste Layout!

So kann man mit diesem Problem umgehen, ja... wenn man bei rund 1kHz 
bleiben will - bei dieser Platine. Zeig doch mal die (von Dir ja positiv 
gedeuteten) Spannungs-Verlauf-Kurven von V(GS) und V(DS) bei ein, zwei 
FETs.

Wolfram F. schrieb:
> Dinge wie Strombegrenzung kommen später

Hoffentlich vor einem Test des nahezu kompletten Schaltreglers einschl. 
angeschl. Spule, und V(in) an niederohmiger Spannungsquelle.

Was sind das überhaupt für FETs? IRFP4668 gibt´s im TO-247, und das 
wären recht überlebensfähige (sogar äußerst zähe) Dinger - denen hätte 
man u.U. Tests ohne "cycle-by-cycle" (also innerhalb eines Schaltzyklus) 
Strombegrenzung zumuten können.

von Christian S. (roehrenvorheizer)


Bewertung
0 lesenswert
nicht lesenswert
Hallo,


"Dinge wie Strombegrenzung kommen später, hier gehts mir erstmal "

Kommt die Spule in die Sättigung, verabschieden sich die FETs ganz 
schnell aufgrund übermäßiger Strombelastung. Dabei kann auch die 
Ansteuerung zerstört werden. Also doch besser Strommessung per Shunt 
(wirkt auch bei DC oder per Stromtrafo (wirkt nur im Schaltbetrieb) mit 
einbauen. Das verhindert Mißerfolge.

Mit freundlichem Gruß

von Mark S. (voltwide)


Bewertung
0 lesenswert
nicht lesenswert
Christian S. schrieb:
> Dabei kann auch die
> Ansteuerung zerstört werden.

Ja, das passiert wenn drain durchlegiert zum gate und plötzlich die 
volle Betriebsspannung an den Treiber durchgereicht wird. Dies läßt sich 
wirkungsvoll verhindern, indem man das gate kapazitiv koppelt 
(10..100nF) und diesem Kondensator einen Widerstand von 10..100k 
parallel schaltet.
Diese Kombination verändert das gate-Signal nur minimal und begrenzt 
dabei den Stromstoß beim Durchlegieren des PowerMOSFET auf verträgliche 
Werte.

von Christian S. (roehrenvorheizer)


Bewertung
0 lesenswert
nicht lesenswert
Hinter "DC" sollte die erste Klammer schließen... )

von Wolfram F. (mega-hz)


Bewertung
0 lesenswert
nicht lesenswert
Homo Habilis schrieb:
> Was sind das überhaupt für FETs? IRFP4668 gibt´s im TO-247, und das
> wären recht überlebensfähige (sogar äußerst zähe) Dinger - denen hätte
> man u.U. Tests ohne "cycle-by-cycle" (also innerhalb eines Schaltzyklus)
> Strombegrenzung zumuten können.
habe erstmal 4x SUP60N06 drin, da ich von den IRFP4668 nur 2 da habe.

Christian S. schrieb:
> Also doch besser Strommessung per Shunt

dann am besten beide SRC von Q16 und Q15 zusammen -> Shunt -> GND und am 
Shunt nen OP mit poti rein?
Für Iin und Iout wollte ich ACS758 nehmen.

Fotos vom Scope kommen noch.

von Mampf F. (mampf) Benutzerseite


Bewertung
0 lesenswert
nicht lesenswert
Wolfram F. schrieb:
> habe erstmal 4x SUP60N06 drin

Hmm, also 65V Uds halten die schon mal nicht aus. 60V packen sie, aber 
man sollte wohl noch etwas Luft lassen.

Ansonsten sehen sie garnicht so schlecht aus.

von Wolfram F. (mega-hz)


Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Bilder zeigen die GATEs von Q17 (gelb) und Q16 (blau) bei 50% duty cycle 
und Q18 (gelb) und Q15 (blau) bei 3% bzw. 97% duty cycle, das ganze bei 
31KHz.

Beim letzen Bild kann man gut erkennen, daß es Überschneidungen gibt.

Ich habe aber keine Ahnung, wie ich ne dead-time im Programm realisieren 
soll...

: Bearbeitet durch User
von Wolfram F. (mega-hz)


Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Habe nun mit der DIO2 Library
(https://www.codeproject.com/Articles/732646/Fast-digital-I-O-for-Arduino)
per digitalWrite das PWM mit deadtime hinbekommen!  :)
1
#include <arduino2.h>
2
3
const uint8_t Q18 = 5;
4
const uint8_t Q15 = 6;
5
const uint8_t Q16 = 9;
6
const uint8_t Q17 = 10;
7
8
int t = 10;  // µS
9
int dead = 1;  // µS
10
11
void setup()
12
{
13
  pinMode2(5, OUTPUT);
14
  digitalWrite2(5, LOW);
15
  pinMode2(6, OUTPUT);
16
  digitalWrite2(6, LOW);
17
  pinMode2(9, OUTPUT);
18
  digitalWrite2(9, LOW);
19
  pinMode2(10, OUTPUT);
20
  digitalWrite2(10, LOW);
21
}
22
23
void loop()
24
{
25
  digitalWrite2(Q18, HIGH);
26
  delayMicroseconds(t);
27
  digitalWrite2(Q18, LOW);
28
  delayMicroseconds(dead);
29
  digitalWrite2(Q15, HIGH);
30
  delayMicroseconds(t);
31
  digitalWrite2(Q15, LOW);
32
  delayMicroseconds(dead);
33
 
34
}

Der Vorteil gegenüber "normalen" PWM ist, es funktioniert auf jeden Pin!
Nachteile werden sich ergeben, wenn der 328 noch was anderes tun soll.
Aber so gehts erstmal!
Bei t = 10µS erhalte ich immer eine Taktfrequenz von 36KHz !

t muss nun abhängig vom analogeingang mehr oder weniger werden.

Auf den Bildern kann man prima die Totzeit erkennen!

Nun noch 2 Routinen zum testen bauen, einmal Buck und einmal Boost.
Dann wirds spannend, Spule ran und ne Spannung...

: Bearbeitet durch User
von Mampf F. (mampf) Benutzerseite


Bewertung
0 lesenswert
nicht lesenswert
Prima, bin auf die Software gespannt :)

Die Hardware zu designen hätte ich persönlich wesentlich einfacher 
gefunden, als die Software dazu zu bauen.

Interessant wird es, wenn es um Regelung (zB PID) geht und um die 
Regelung bei Laständerung ... Das wird spannend! :)

von Wolfram F. (mega-hz)


Bewertung
0 lesenswert
nicht lesenswert
Jaaa, DAS wird es sicher!
Wenns nicht schnell genug klappt mit dem auswerten der Spannung und des 
Stroms, muss das ausgelagert werden und per HW geregelt werden.
Aber mal sehen... Morgen gehts weiter, hoffentlich ohne Qualm :-)

von mega-hz (Gast)


Bewertung
0 lesenswert
nicht lesenswert
erste Test mit boost und buck modus liefen erfolgreich!
Ich habe eine 240µH/20A Speicherdrossel aus einer alten USV 
angwschlossen.
Bei jeweil 50% duty cycle hat bei einer Eingangsspannung von 10V das 
Teil 5.5 bzw. 20V erzeugt, (5.5 buck, 20 boost modus).
Erstmal ohne Last für ca. 15min.
Dann 100Ohm als Last angeklemmt, die Spannungen blieben fast gleicht, im 
boost modus wurde dem 100Ohm / 3W Widerstand allerdings etwas heiss.
Die MOSFETs blieben aber eiskalt! Nur die Spule wurde lauwarm!
Es funktioniert wie es soll!
Wenn ich aber die ADCs im Programm abfrage, sinkt die Taktfrequenz von 
~30KHz auf ca.2-3KHz !
Ich habe das befürchtet und bin zu dem Entschluss gekommen, die PWM 
Erzeugung MUSS hardwaremäßig erfolgen, ebenso die U & I Überwachung.
Man könnte zwar damit arbeiten, so wie Buck/Boost einschalten, 
ausschalten, messen, einschalten... aber das ist wohl zu hakelig.
Ideal wäre ein PLD für die PWM Erzeugung mit deadtime und OPs für U & I 
Überwachung.
Ich werde es trotzdem noch probieren mit IF Uout > Usoll ....
vielleicht kann man das ja für die Solarzellen zum laden der Akkus noch 
verwenden.
HWmäßig ist alles aber i.O.
Das Layout natürlich suboptimal....
Trotzdem sehr spannend alles!

von 1N 4. (1n4148)


Bewertung
0 lesenswert
nicht lesenswert
> Ideal wäre ein PLD für die PWM Erzeugung mit deadtime und OPs für U & I
> Überwachung.

Wieso PLD? Mit nem dsPIC geht beides. Oder nimm einen UC-irgendwas. 
Fertige ICs für Schaltregler ;)

von mega-hz (Gast)


Bewertung
0 lesenswert
nicht lesenswert
ja fertige Schaltregler sind gut, dies ist jedoch ein Lernprojekt, daher 
diese Gedanken :-)

von 1N 4. (1n4148)


Bewertung
-1 lesenswert
nicht lesenswert
Nur weil pfiffige Firmen PWM & OPs in ein schwarzes kleines Gehäuse 
gepackt haben, bedeutet das noch lange nicht, dass das fertige 
Schaltregler out of the box sind.

Willst du die Grundlagen vom Schaltregler (Schleifenkompensation usw.) 
lernen oder die Grundlagen programmierbarer Logik um damit bisschen PWM 
zu machen? Und als nächstes, wie man einen OP an nem FPGA/CPLD 
anschließt?

> Ich habe das befürchtet und bin zu dem Entschluss gekommen, die PWM
> Erzeugung MUSS hardwaremäßig erfolgen, ebenso die U & I Überwachung.

Dann nimm ein Schaltregler-IC, bringe das an deinem Leistungsteil sauber 
zum laufen, dann kannst du mit dem gewonnenen Wissen immer noch mit 
Kanonen auf Spatzen schießen und mittels programmierbarer Logik 
Pillepalle-PWM erfinden. Oder nimm nen passenden uC statt dem Arduino.

von Wumpus (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Moin moin,

wenn es schon so gefrikelt sein muss, nimm doch TL494 als Takterzeugung.
Die Ausgangsspannung kannst du dann durch einen "analogwrite" und 
Tiefpass vom Arduino aus auf einen der beiden der Error-Amps jagen und 
so die Puls-Pause Vorgabe machen.

Es scheint, als willst du keine großen Leistungen Treiben... dann mach 
doch die einfachere Version aus zwei Dioden und nur zwei FETs... dann 
ist das noch einfacher.

Frag doch mal TK aus der Entwicklung nach Support ;)

von Wolfram F. (mega-hz)


Bewertung
0 lesenswert
nicht lesenswert
Wumpus schrieb:
> Frag doch mal TK aus der Entwicklung nach Support ;)

Hab ich schon :-)

Ich habe es nun aber hinbekommen die Timer fürs PWM mit 31kHz UND 
einstellbarer Totzeit zum laufen zu bekommen!
Die laufen im Mode 1, Phase Corrected PWM.

void buck()
{
  TCCR0A = 0b00000000;  //PWM-Modus 1 D9 / D10 aus
  TCCR0B = 0b11000000;  //

  TCCR1A = 0b10110001;  //PWM-Modus 1 D9 / D10 pwm
  TCCR1B = 0b11000001;  // 31KHz
  OCR1A=duty-dead;
  OCR1B=255-duty+dead;

  digitalWrite2(Q18, HIGH); // Q18 dauern einschalten
}
void boost()
{
  TCCR1A = 0b00000000;  //PWM-Modus 1 D9 / D10 aus
  TCCR1B = 0b11000000;  //

  TCCR0A = 0b10110001;  //PWM-Modus 1 D5 / D6  pwm
  TCCR0B = 0b11000001;  // 31KHz

  OCR0A=duty-dead;
  OCR0B=255-duty+dead;

  digitalWrite2(Q17, HIGH); // Q17 dauern einschalten
}



Selbst die Abfrage der DACs funktioniert nun!
Eine Abfrage in der Loop funktioniert nun auch, ohne die PWM zu stören!

Eben mit Spule und Last (100 Ohm) ausprobiert, klappt prima!
Und Spule und MOSFETs bleiben selbst bei 16W eiskalt!

Das Biest macht bisjetzt genau das was es soll!
Von wegen, Störungen wegen dem Layout, Abstand der IR2101 zu den 
Mosfets...

Muss mir erstmal ein paar passende Kühlkörper montieren und das ganze 
auf eine experimentierfreudige Platte schrauben, dann gehts an die 
Strommessung und -Begrenzung.

Alle die versuchen, mir das ganze auszureden.... keine Chance!

Vielleicht kommt am Ende ja doch ein sehr gut nutzbarer 
Universal-Wandler bei raus!

Spass macht es jedenfalls mal das ganze von Hand zu realisieren!

: Bearbeitet durch User
von 1N4148 (Gast)


Bewertung
-1 lesenswert
nicht lesenswert
30kHz ist ja auch fast noch ein Linearregler

von Wolfram F. (mega-hz)


Bewertung
0 lesenswert
nicht lesenswert
na na :-)
dann schau Dir mal die ganzen SNTs aus der U-Elektronik an, da findet 
man viel die in dem Bereich arbeiten!
Klar ist ne höhere Frequenz heutzutage etliches effektiver, sagt ja auch 
keiner, daß diese 31kHz das Ziel sind, aber wenigstens werden die nun 
nicht mehr durch die ADC Abfragen nicht mehr gestört!

Kann man die Timer beim 328 eigentlich auch mit nem externen, variablen 
Takt versehen?

Welche Auswirkungen würde ein Tausch der Induktivität von 240µ╣H auf 
30µH haben?

von HF-Schorsch (Gast)


Bewertung
0 lesenswert
nicht lesenswert
STM32...

von Wolfram F. (mega-hz)


Bewertung
0 lesenswert
nicht lesenswert
HF-Schorsch schrieb:
> STM32...

tolle Antwort!
Wer hat denn gefragt, welche µC sonst in Frage kommt?

von Example (Gast)


Bewertung
1 lesenswert
nicht lesenswert
benimmst du dich in allen Foren daneben?
Jeden der hilft maulste als Dank noch an.
Vor Crosspostings machst du auch nicht halt.

http://forum.arduino.cc/index.php?topic=469770.0

Solche Typen....   Kopf schüttel.

von Carl D. (jcw2)


Bewertung
0 lesenswert
nicht lesenswert
Example schrieb:
> benimmst du dich in allen Foren daneben?
> Jeden der hilft maulste als Dank noch an.
> Vor Crosspostings machst du auch nicht halt.
>
> http://forum.arduino.cc/index.php?topic=469770.0
>
> Solche Typen....   Kopf schüttel.

Er macht das ja "für Lehrlinge", ist also gewohnt für "Ruhe im Saal" zu 
sorgen.

von Homo Habilis (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Wolfram F. schrieb:
> welche µC sonst in Frage kommt?

"STM32" ist nicht die Antwort darauf - sondern eher,
womit man das "gescheit hin kriegen würde".

von Wumpus (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Wumpus schrieb:
> nimm doch TL494 als Takterzeugung

Das meine ich übrigens ernst!
Ich würde die Regelung auf einen std. Regler legen (z.B. TL494, 
UC3843,...) und den einfach per Vorgabe durch DAC regeln.
Eine gute Zusammenfassung ist z.B. 
http://www.ti.com/lit/ml/slup232/slup232.pdf
oder auch 
https://www.google.de/url?sa=t&rct=j&q=&esrc=s&source=web&cd=2&cad=rja&uact=8&ved=0ahUKEwit18ab5KjTAhUFaRQKHQdmCxIQFggtMAE&url=https%3A%2F%2Fwww-304.ibm.com%2Fjct03001c%2Fprocurement%2Fproweb.nsf%2F7a84535a0acd580885256b3f000e250a%2Fefbd29acd2fbd28485256f190048dd77%2F%24FILE%2FI-Roal_IBM%2520Rochester%2520Platform%2520Symposium%2520-%2520Remote%2520control%2520via%2520Can%2520Bus.pdf&usg=AFQjCNGfgOciZOm5de9dwPwrqSrTy548Dw&sig2=8PmWTpH-AQF8p-As4Qc3CA&bvm=bv.152479541,d.ZWM

Man hat dadurch den Vorteil, das so eine wesentlich schnellere Regelung 
die auf "Probleme" deutlich schneller reagiert. der µC macht dann 
einfach nur die Vorgabe.

Noch dazu ist das deutlich anspruchsloser, was die Software angeht ;-)

von Example (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Carl D. schrieb:
> Example schrieb:
>> benimmst du dich in allen Foren daneben?
>> Jeden der hilft maulste als Dank noch an.
>> Vor Crosspostings machst du auch nicht halt.
>>
>> http://forum.arduino.cc/index.php?topic=469770.0
>>
>> Solche Typen....   Kopf schüttel.
>
> Er macht das ja "für Lehrlinge", ist also gewohnt für "Ruhe im Saal" zu
> sorgen.

Welche Lehrlinge? Verstehe nicht ganz.

von Wolfram F. (mega-hz)


Bewertung
0 lesenswert
nicht lesenswert
Wumpus schrieb:
>> nimm doch TL494 als Takterzeugung
>
> Das meine ich übrigens ernst!
> Ich würde die Regelung auf einen std. Regler legen (z.B. TL494,
> UC3843,...) und den einfach per Vorgabe durch DAC regeln.

Hi,

ich hab mir den TL494 mal angeschaut, der scheint ja tatsächlich genau 
der zu sein, der für diese Schaltung ideal wäre!
Habe ihn selber noch nie eingesetzt, aber klingt vielversprechend.
Kennst Du den gut? Habe gelesen, daß der Deadtime-Eingang 3% deadtime 
macht, wenn er auf GND liegt und bis zu 100% bei 3.3V.
Könnte man damit die Regelung machen? Das Ergebnis müsste demnach einem 
einstellbaren PWM doch gleich sein, oder?
Und was wäre besser, 2 Stück davon, je einen für den Buck und Boost Teil 
einen, oder die Ausgänge per z.B. 7400 umschaltbar zu machen?

Ich habe übrigens nun auch die Regelung per Software so einigermaßen 
hinbekommen!
ich war erstaunt, daß trotz der recht langsamen ADCs diese schnell genug 
funktioniert!
Allerdings funktioniert der Boost Modus fast perfekt, wogegen der Buck 
Modus erst funktioniert, wenn die Vin doppelt so groß ist wie die 
gewünschte Vout!
Liegt wahrscheinlich daran, daß mehr als 50% duty cycle nicht in dem 
verwendeten PWM Modus geht.

Hier mal das Listing:
1
#include <arduino2.h> // Fast DigitalWrite Library laden
2
// siehe
3
// https://www.codeproject.com/Articles/732646/Fast-digital-I-O-for-Arduino
4
5
const uint8_t Q18 = 6;
6
const uint8_t Q15 = 5;
7
const uint8_t Q16 = 9;
8
const uint8_t Q17 = 10;
9
10
int duty = 0;
11
int dead = 1;
12
float V_IN = 0;
13
float V_OUT = 0;
14
15
void setup()
16
{
17
  analogReference(INTERNAL); // ADC Ref. auf 1.1V setzen.
18
19
  pinMode2(2, OUTPUT);
20
  digitalWrite2(2, LOW);    // LED BUCK Modus
21
  pinMode2(3, OUTPUT);
22
  digitalWrite2(3, LOW);    // LED DURCHGANGs Modus
23
  pinMode2(4, OUTPUT);
24
  digitalWrite2(4, LOW);    // LED BOOST Modus
25
  pinMode2(5, OUTPUT);
26
  digitalWrite2(5, LOW);
27
  pinMode2(6, OUTPUT);
28
  digitalWrite2(6, LOW);    // Ausgänge definieren und auf LOW schalten
29
  pinMode2(7, OUTPUT);
30
  digitalWrite2(7, LOW);    // LED DUTY +
31
  pinMode2(8, OUTPUT);
32
  digitalWrite2(8, LOW);    // LED DUTY -
33
  pinMode2(9, OUTPUT);
34
  digitalWrite2(9, LOW);
35
  pinMode2(10, OUTPUT);
36
  digitalWrite2(10, LOW);
37
  //  cli();         // Interrupts ausschalten
38
  duty = 3;
39
  OCR0A = duty - dead;
40
  OCR0B = 255 - duty + dead;
41
  OCR1A = duty - dead;
42
  OCR1B = 255 - duty + dead;
43
44
}
45
46
void loop()
47
{
48
49
  float V_soll = 9.0;
50
51
  // modus auswählen, buck,boost,durchgang
52
  if (V_IN == V_soll)
53
  {
54
    digitalWrite2(2, LOW);
55
    digitalWrite2(3, HIGH);
56
    digitalWrite2(4, LOW);
57
    durchgang();
58
  }
59
  else if (V_IN > V_soll)
60
  {
61
    digitalWrite2(2, HIGH);
62
    digitalWrite2(3, LOW);
63
    digitalWrite2(4, LOW);
64
    buck();
65
  }
66
  else if (V_IN < V_soll)
67
  {
68
    digitalWrite2(2, LOW);
69
    digitalWrite2(3, LOW);
70
    digitalWrite2(4, HIGH);
71
    boost();
72
  }
73
  else if (V_soll == 0)
74
  {
75
    all_off();
76
    digitalWrite2(2, LOW);
77
    digitalWrite2(3, LOW);
78
    digitalWrite2(4, LOW);
79
  }
80
81
  // duty erhöhen/verringern
82
  if (V_OUT < V_soll)
83
  {
84
    duty = duty + 1;
85
    digitalWrite2(7, LOW);
86
    digitalWrite2(8, HIGH);
87
  }
88
  if (V_OUT > V_soll)
89
  {
90
    duty = duty - 1;
91
    digitalWrite2(7, HIGH);
92
    digitalWrite2(8, LOW);
93
  }
94
95
  // duty Bereich eingrenzen
96
  if (duty < dead)
97
  {
98
    duty = dead;
99
  }
100
  if (duty > 127)
101
  {
102
    duty = 127;
103
  }
104
105
  // Timer setzen
106
  OCR0A = duty - dead;
107
  OCR0B = 255 - duty + dead;
108
  OCR1A = duty - dead;
109
  OCR1B = 255 - duty + dead;
110
111
112
  //  // 0.00107421875V pro Bit
113
  //  // Spannungsteiler 100000 / 820 Ohm = 82
114
  //
115
  V_IN = map(analogRead(A1), 0, 1023, 0, 135);
116
  V_OUT = map(analogRead(A0), 0, 1023, 0, 135);
117
}
118
119
void buck()
120
{
121
  TCCR0A = 0b00000000;  // D5 / D6 aus
122
  TCCR0B = 0b11000000;  //
123
  TCCR1A = 0b10110001;  //PWM-Modus 1 D9 / D10 pwm
124
  TCCR1B = 0b11000001;  // 31KHz
125
  digitalWrite2(Q18, HIGH); // Q18 dauern einschalten
126
}
127
void boost()
128
{
129
  TCCR1A = 0b00000000;  // D9 / D10 aus
130
  TCCR1B = 0b11000000;  //
131
  TCCR0A = 0b10110001;  //PWM-Modus 1 D5 / D6  pwm
132
  TCCR0B = 0b11000001;  // 31KHz
133
134
  digitalWrite2(Q17, HIGH); // Q17 dauern einschalten
135
}
136
137
void all_off()
138
{
139
  TCCR0A = 0b00000000;  // D5 / D6 aus
140
  TCCR0B = 0b11000000;  //
141
  TCCR1A = 0b00000000;  // D9 / D10 aus
142
  TCCR1B = 0b11000000;  //
143
  digitalWrite2(Q17, LOW); // Q17 dauern ausschalten
144
  digitalWrite2(Q16, LOW); // Q17 dauern ausschalten
145
  digitalWrite2(Q18, LOW); // Q18 dauern ausschalten
146
  digitalWrite2(Q15, LOW); // Q18 dauern ausschalten
147
}
148
149
void durchgang()
150
{
151
  TCCR0A = 0b00000000;  // D5 / D6 aus
152
  TCCR0B = 0b11000000;  //
153
  TCCR1A = 0b00000000;  // D9 / D10 aus
154
  TCCR1B = 0b11000000;  //
155
  digitalWrite2(Q17, HIGH); // Q17 dauern einschalten
156
  digitalWrite2(Q16, LOW); // Q17 dauern ausschalten
157
  digitalWrite2(Q18, HIGH); // Q18 dauern einschalten
158
  digitalWrite2(Q15, LOW); // Q18 dauern ausschalten
159
}

: Bearbeitet durch User
von 34063 (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Example schrieb:
> Vor Crosspostings machst du auch nicht halt

Was ist denn daran schlimm?
Ich finde es total in Ordnung!

von Carl D. (jcw2)


Bewertung
0 lesenswert
nicht lesenswert
Example schrieb:
> Carl D. schrieb:
>>
>> Er macht das ja "für Lehrlinge", ist also gewohnt für "Ruhe im Saal" zu
>> sorgen.
>
> Welche Lehrlinge? Verstehe nicht ganz.

Einfach Eingangs-Post durchlesen.

von Example (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Hallo,

@ 34063:
weil es nur Kaos erzeugt, verschiedene Leute die nichts von einander 
wissen reden alle aneinander vorbei. Das Thema wird in verschiedenen 
Foren zerpflückt, niemand hat über alles den roten Faden. Das Forum zu 
wechseln macht nur Sinn, wenn alle ihr bestes gegeben haben und leider 
doch keine Lösung zu Stande kam. Dann kann man mit etwas zeitlichen 
Abstand das Problem in einem anderem Forum stellen und den Link von 
Anfang an zeigen wo man schon gefragt hat. Das lehrt einfach der gesunde 
Knigge in einem.
Ohne all das spielt man nur alle gegeneinander aus!

Das Schlimme ist, er macht hier und da die Leute noch blöd an. Wenn man 
das so liest. Erwartet jedoch weiterhin Unterstützung. Kopfschüttel.

von Wolfram F. (mega-hz)


Bewertung
-1 lesenswert
nicht lesenswert
Example schrieb:
> Das Forum zu
> wechseln macht nur Sinn, wenn alle ihr bestes gegeben haben und leider
> doch keine Lösung zu Stande kam

Sorry, aber muss ich Dir in diesem Fall Unrecht geben!
Denn in diesem Forum geht es mehr um die Elektronik und im Arduino Forum 
mehr ums programmieren.
Sicher sind hier auch viele dabei, die weitaus besser programmieren 
können als ich, da man es von DIESEM Forum leider schon kennt, belächelt 
zu werden sobald der Begriff Arduino fällt, ist es doch völlig ok wenn 
man sich gleich im richtigen "Raum" dafür befindet!
Wenn man gutes Öl fürs Auto kaufen möchte, kauft man doch auch nicht bei 
Aldi /Lidle sondern geht gleich zum richtigen Fachhandel!
Und mal ehrlich, WEN stört/nervt es nicht, auf eine gezielte Frage eine 
Antwort zu bekommen, die damit nix zutun hat?
Nach dem Motto: wie kann ich mit 2 Transistoren einen Blinker bauen? 
Antwort: Nimm nen NE555 !
Jedem, - auch wenn Ihr das nicht zugeben wollt -, nerven solche 
Antworten!

Den Leuten, die mir Tips gegeben haben, sei nochmals recht herzlichen 
Dank ausgesprochen!

von Daniel S. (longshine)


Bewertung
0 lesenswert
nicht lesenswert
Was ist eigentlich aus dem Wandler geworden, nachdem jetzt ein wenig 
Zeit ins Land gegangen ist?

von Wolfram (Gast)


Bewertung
0 lesenswert
nicht lesenswert
der Arduino DCDC Wandler hat zum Schluss super funktioniert, nur im 
Bereich wo die Ausgangsspannung gleich der Eingangsspannung war, konnte 
er sich nicht zwischen ste-up und step-down entscheiden.
Ein Blick auf einen änlichen fertigen Chip von Linear hat mir in der 
Simulation gezeigt, daß in diesen Bereich beide Modis aktiv sind, 
schnell abwechselnd.
Dies jedoch habe ich dann aber nicht mehr eingebaut, da ich genug 
gelernt hatte!
Ich habe das Projekt abgeschlossen.

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.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

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