Hi, ich hab mir einen Schaltregler gebastelt, der an sich auch funktioniert. Er regelt die Spannung von ca.12V auf 5V. Eigentlich sollte doch wenn am Ausgang 1A fließt am Eingang ca. 0.5 A fließen, bei den Spannungen 12V->5V oder? Bei mir ist es aber immer gleich viel egal bei welcher Last. Der MOSFET(IRFR9024NPbF) wird auch extrem heiß. Könnt ihr mir sagen wo ich den Fehler gemacht hab?
und poste mal bitte deinen Regel-Algorythmus - eventuell geht der in Sättigung oder so.
MOSFET, aha, also nicht wie gezeichnet ein JFET, und IRFR9024NPbF, aha, also nicht wie angegeben 2N5116. Wenn von dem Plan nichts stimmt, wie soll man dann beurteilen, was falsch ist ? Der Transistor ist falsch angeschlossen, der Ausgangselko gigantisch überdimensioniert, wie soll denn da der Regler die Ausgangsspannung ändern bei so viel Ballast am Fuss, die Spule ist trotz exakter Bestellnummer unbekannt, das Schaltungsprinzip enthält keine Strommmessung und daher keinen Überstromschutz sondern da platzt der Transistor einfach bei Keuzschluss am Ausagng, und falls es ein Schaltrgker sein soll fehlt auf jeden Fall die Diode von der Spule nach Masse, und wenn der Schaltreglker schnell schalten soll, sollte man wenigstens mal gucken ob die Gate-Ansteuerung über die Widerstände überhaupt schnell genug ist. Auf gut Deustch: Der Plan ist einfach Scheisse. Falsche Vorlage genommen, falsch abgezeichnet, und dazu die Arroganz zu glauben man könne alles besser als die hunderten fertiger ICs die es für den Job so gibt, und rechnen müsse man soweiso nicht. So wird das nichts.
Mal davon abgesehen, dass das der bei weitem unübersichtlichste Schaltplan ist, den ich in letzter Zeit gesehen habe.
Also hierder Code, was meinst du mit Sättigung (entschuldige wenn ich so blöde fragen stelle). Die Schottkydiode ist eigentlich schon im MOSFET mit drin, aber ich hab jetzt zur Sicherheit noch mal eine dazu gemacht, hat aber auch nichts gebracht.
1 | #define F_CPU 8000000
|
2 | |
3 | #include <avr/io.h> |
4 | #include <util/delay.h> |
5 | #include <util/delay.h> |
6 | //////////////////////////////////////////////////////////////////
|
7 | |
8 | void HARD (void) { |
9 | |
10 | DDRB=(1<<PB0); |
11 | TCCR0A = (1<<COM0A1)|(1<<WGM00)|(1<<WGM01); |
12 | TCCR0B = (1<<CS00); |
13 | OCR0A =1; |
14 | |
15 | ADMUX |= (1<<MUX0); |
16 | ADCSRA = (1<<ADPS0) | (1<<ADPS2)|(1<<ADEN); |
17 | }
|
18 | /////////////////////////////////////////////////////////////////
|
19 | uint16_t ADCWert() { |
20 | ADMUX |=(1<<MUX0); |
21 | ADMUX &= ~(1<<MUX1); |
22 | ADCSRA |= (1<<ADSC); |
23 | while (ADCSRA & (1<<ADSC) ) {} |
24 | return ADCW; |
25 | }
|
26 | /////////////////////////////////////////////////////////////////
|
27 | |
28 | int main() |
29 | {
|
30 | OCR0A =1; |
31 | _delay_ms(1000); |
32 | |
33 | HARD(); |
34 | uint16_t Spannung; |
35 | _delay_ms(1000); |
36 | /////////////////////////////////////////////
|
37 | while (1) { |
38 | |
39 | Spannung = ADCWert(); |
40 | |
41 | if (OCR0A >255) |
42 | {
|
43 | OCR0A =255; |
44 | }
|
45 | if (OCR0A <1) |
46 | {
|
47 | OCR0A =1; |
48 | }
|
49 | if (Spannung <352) |
50 | {
|
51 | OCR0A ++; |
52 | }
|
53 | if (Spannung >390) |
54 | {
|
55 | OCR0A =1; |
56 | }
|
57 | if (Spannung >352) |
58 | {
|
59 | OCR0A --; |
60 | }
|
61 | }
|
62 | }
|
Dshing Sung schrieb: > Also hierder Code, was meinst du mit Sättigung (entschuldige wenn ich so > blöde fragen stelle). > > Die Schottkydiode ist eigentlich schon im MOSFET mit drin, aber ich hab > jetzt zur Sicherheit noch mal eine dazu gemacht, hat aber auch nichts > gebracht. Nein die Diode, die wir meinen ist einfach nicht vorhanden! Ob Dioden im MOSFet vorhanden sind oder nicht! Hier einmal einen Schaltplan - an dem du dich gern orientieren kannst. http://de.wikipedia.org/wiki/Abwärtswandler
Die benötigte Freilaufdiode ist nicht im MOSFET integriert. Bitte lies dir erst mal Grundlagen an, bevor du einen Schaltregler komplett selbstbauen möchtest. Dein Regelalgorithmus ist auch eher stümperhaft aber vermutlich nicht für das Problem verantwortlich.
Ich würde sagen, du hast das ganze Prinzip noch nicht verstanden wenn du schon nach Sättigung" fragst... - sorry aber lass es lieber!
@MaWin&Simon K. Entschuldige bitte, dass ich nicht so wie Ihr schon perfekt auf die Welt gekommen bin und schon alles kann. BTW: Wer von uns ist denn hier bitte Arrogant? Den Plan hab ich mir nirgends abgezeichnet oder so etwas, sonst wäre er ja wohl nicht so unsagbar scheiße O.o Das ich die falschen Bauteilbezeichnung verwende liegt daran das ich die richtigen i.d.R. nicht finde ich würde die Bezeichnung ja löschen wenn ich wüsste wie. Die Spule hab ich aus einem alten Sony Fernseher ausgebaut, ich dachte schaden kann es ja nicht wenn ich dazu schreibe was da drauf steht.
na das ist schonmal ganz schlecht einfach wild irgendwelche Bauteile zu nehmen - ohne zu wissen welche induktivität uä. diese haben. Fang doch einfach mal ganz langsam an. Nimm zB. PSpice und bastel einen Abwärtswandler in PSpice. Dann kannst du an dem Simulationsmodell dir ALLES anschauen vom Strom bis hin zu den Spannungen. Dann suchst du mal im Internet und guggst einfach mal wie die dinger berechnet werden und auf was du achten sollst. Dann beginnst du das in deiner Simulation nachzuvollziehen und legst die ganze Geschichte aus. Sobald du das alles gemacht hast, gehste zu deinem Elektronik-Händler deines vertrauens und kaufst dir die benötigten Bauteile (die nat. die gleichen Daten haben sollten wie in deiner PSpice Simulation). Danach gehts dann ans programmieren usw. usw. Nur wild etwas hinschmieren und dann irgendwelche Dinge zusammen suchen bei denen man nicht weiß was sie für Kenndaten haben - das ist vorprogrammiert das dies schiefgeht.
http://de.wikipedia.org/wiki/Abw%C3%A4rtswandler Lesen und verstehen. Dann ist zumindest das Funktionsprinzip klar. Und warum man da eine Diode braucht.
Das erste Problem das du beheben solltest, ist die Diode. Sonst kann das nichts werden. Lies dir mal bei Sprut bitte die Grundlagen durch. Okay: Hier die Erklährung, was ich mit Sättigung (der Spule) meine - ich habe die Erklärung bewusst jetzt nicht 100% fachlich richtig formuliert: Ab einer gewissen Strom (und dem damit verbundenen magnetischem Flus) kann die Spule keine Spannungsdifferenz mehr aufnahehmen (Magnetischer Fluss ist in der Sättigung) und der Strom steigt überproportional an. Z.B. ist das der Fall wenn deine Spule zu lange an ist. Und das wird eben durch den Regelalgo eingestellt. Bevor wir aber mutmaßen - nimm bitte ein Oszi und miss nach. Wenn ich richitg sehe, arbeitest du mit 8Mhz, durch 256 mach 31k250Hz Schaltfrequenz - das ist verdammt wenig - sprich du brauchst eine extrem große Spule. (Ich unterstelle jetzt mal, dass du die nicht hast), dann tritt das ein, was ich oben beschrieben habe. Lösung: Takt hoch, Auflösung runter. Auch wenn das jetzt nicht die gelbe Lösung von Ei ist, für den Anfang könnte das helfen.
Würde erstmal mit einen fertigen Chip anfangen. Da kann man noch genug falsch machen. Weiterhin würde ich mich mal mit einen Tiefpaß "tau=R*C" auseinandersetzen. guckst du hier. http://de.wikipedia.org/wiki/Tiefpass Gibt eine Zeitkonstante in Verbindung mit den Eingangskapazitäten des Mosfet. Bei 31 khz sollte tau mal kleiner als ... sein. Bzw. bei einer Eingangskapazität von 3 nF und 2,7 kOhm an 12 V ist tau= 81 us oder 12 kHz. Kannst das ja mal Ausarbeiten und dann hier rein stellen. Überschlagen müßte dein Mosfet eine Eingangskapazität im unteren 3stelligen pF-Bereich und weniger haben, damit da noch eine Schaltspannung am Mosfet ankommt. Typische Fehler: 1) Falsche Spule Schau mal hier und berechne eine Spule. http://schmidt-walter.eit.h-da.de/smps/abw_smps.html Bei 31 kHz würde ich auf einen RM8 Kern mit Luftspalt kommen. Das ist schon ein netter Brocken. ;-) 2) Falsche Spule 3) Falsche Spule In der Summe schaut es nach Handauflegen nach einem netten Längsregler aus.
Stimmt, Mosfet Treiber, das hätte ich auch sehen müssen. Das ganze kann man diskret mit NPN-PNP Stufe "abfangen". Was hat den dein Mosfet für eine Gate-Charge? Wenn diese über 20nC ist --> Wegschmeisen, besseren FET suchen. Spule hatte ich eigentlich noch nie Probleme - vorausgesetzt man weiß welche man verbaut hat. Den Wert kann man sich einfach ausrechen U=L*dI Integrieren über der Zeit: U*t=L*I Auflösen nach L U*t/I=L Jetzt nehmen wir als U mal 7 Volt an und 50us anzeit an. (Damit es einfacher zu rechnen ist). Sagen wir mal bei 1A ausgangsstrom 500mA Ripple in der Spule im Worst case. {Da er ja einen so großen Ausgangskondensator hat.} 7*50*10^-6/0.5=7mH ... Puh... Gibt es, aber effizente Spule ist was anderes. Ich würde als Richtwert bei dir +- 100µH vorschlagen. Kannst dir ja mal ausrechnen, welche Anzeiten du dann haben "darfst". Entsprechend legst du deinen Timer aus. Achso, noch eine Anmerkung. Überleg dir mal wie der Duty berechnet wird.
Dshing Sung schrieb: > Die Schottkydiode ist eigentlich schon im MOSFET mit drin, aber ich hab > jetzt zur Sicherheit noch mal eine dazu gemacht, hat aber auch nichts > gebracht. Die Diode muss ihre Kathode an dem Mosfet-Source-Seitigem Spulenende haben und die Anode an Masse. Die "eingebaute" Diode des MOS nützt dir garnichts, ebensowenig nützt es, eine parallel zu schalten. Unter http://www.ti.com/tool/powerstage-designer kannst du ein nettes Tool ziehen, das vielleicht einiges klarstellt. Wenn du deine Spule ausmessen kannst, dann gelingt dir damit vielleicht eine Abschätzrechnung, die zur Funktion des Wandlers ausreicht. Dies betrifft insbesondere z.B. die Schaltfrequenz und/oder den benötigten Stromripple. mfg mf
Auch OT: Nö, ich nicht. Beitrag "Re: 4 Mosfet´s mit einem Treiber ansteuerbar?" BTT: Dshing Sung haben wir wohl vertrieben?? Melde dich mal bitte. Gibts schon neue Ergebnisse?
Super! Danke an alle die mit konstruktiven Vorschlägen geholfen haben. Ich hab jetzt die Frequenz erhöht und eine Spulen mit deutlich höherer Induktivität gesucht und eingebaut. Jetzt hab ich deutlich bessere Werte. Ich werde mit dem Material das ihr mir gegeben habt das demnächst mal genau durchrechnen, vielleicht bekomme ich es ja noch ein Stück besser hin, aber es ist jetzt schon sehr gut :) Danke für die Hilfe.
Ja Super! Wenn du wirklich wissen willst wie effizient dein Wandler läuft, mach doch ein paar Messungen mit verschiedenen Lastwiderständen etc. Dshing Sung schrieb: > if (OCR0A >255) > { > OCR0A =255; > } Ist das ein 16bit-Register? Sonst ergibt dieses if keinen Sinn :) Habe hier auch noch ein paar Tiny13 liegen. Einen Schaltregler muss ich auch mal probieren... mfg mf
FET-Treiber nicht vergessen! Häng mal einen 1:10 Tastkopf an dein Gate und miss nach, ob die Spannungen stimmen.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.