- 12V Akku mit 280 Ah bauen         
Ergebnis 1 bis 8 von 8

Thema: Schaltregler-Dimensionierung

  1. #1
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    25.08.2006
    Beiträge
    105

    Schaltregler-Dimensionierung

    Anzeige

    E-Bike
    Servus,

    vielleicht kann sich jemand mal meine Berechnungen zu dem Schaltregler anschauen, den ich bauen möchte.

    Es handelt sich um einen einfachen Step-Down-Regler.

    Es wird mein erster Versuch eines solchen Reglers.
    Die Vorlage habe ich aus der Atmel Appnote AVR450.

    Angepasst habe ich das ganze auf einen AtTiny461 und einen anderen Spannungsbereich.


    Hier die Werte für den Schaltregler:
    Code:
    			fOSC	64MHz
    			Vsat	0,50	V
    Input voltage: 		VI	20,00V
    Output voltage: 	VO	15,00V
    Max output current: IO,max	2,00A
    			
    Tastverhältnis DC (Duty cycle)	0,75	
    			
    8-bit Fast PWM:			
    	Prescaler	2	
    	OCR1C		255	
    	f(pwm)		125kHz
    	T		8µs
    	t(on) 50%	4µs
    			
    Spule			
    	L	4,5µH	=(v_in-v_sat-v_out)*t_on/(2*i_max)
    	t(on)	8µs
    			
    Diode			
    	Ipeak = Iout /DC	8A
    
    Kondensator				
    	dUout	100mV	max. Stärke der Schwankung
    	C_min	120µF	
    	ESR	0,100Ohm	( Tantal Low ESR 100µF 10V 100mOhm bei 100khz)
    	dUout_esr	266,6mV	Schwankung durch ESR
    Und hier die Dimensionierung für die Strom- und Spannungsmessung:
    Code:
    Anzahl Zellen			4 	
    Ladeschlussspannung pro Zelle	4,1V
    Ladeschlussspannung		16,4V
    Maximale Kapazität		172,800	Wh = 622080	Ws
    			
    			
    Spannungsteiler	
    	R1	96 kOhm 1%
    	R2	22 kOhm 1%
    	Rx	5,364	
    			
    Strommessung	
    	Ri	0,440	Ohm
    
    
    Referenzspannung	Uref	3,670V
    Verstärkung		GAIN	20	
    Messzylkus		t	1s
    			
    Vmax (ergibt sich aus Spannungsteiler)	19,68V
    Imax (max. Strom durch Ri)		2,237A
    Imax (max. Strom bei max. Zellspannung)	7,465A
    Pmax Ri (max. Verlust über Ri)		2,202W
    			
    Auflösungen	
    	V	19,22	mV/step
    	I	2,18	mA/step
    	P	41,99	mW/step
    
    
    Bsp.:
    U	16,40 V
    I	2,000 A
    	
    U(Ri)		0,9842 V
    U(ADC_U)	3,058 V
    U(ADC_I)	3,241 V
    	
    ADC_U	853
    ADC_I	961
    Diese Komponenten habe ich mir rausgesucht:
    Spule: 4,7µF 4,8A http://www.csd-electronics.de/de/gro.../items2411.htm

    Kondensator: Elko 200µF parallel mit Kerko oder 1 oder 2 größere Tantals

    Diode: irgendne dicke mit >10A z.B. http://www.csd-electronics.de/de/gro...7/items896.htm

    Als MosFET habe ich noch ein paar große P-Kanal-Typen von IRF mit geringen Rdson.

    Die Schaltpläne habe ich mit angehängt, allerdings sind dort noch die ürsprünglichen Werte aus der Appnote enthalten

    Wenn jemand ein paar Kritiken zu meinen Ideen hat, bin ich echt dankbar

    Viele Grüße Tobias
    Miniaturansichten angehängter Grafiken Miniaturansichten angehängter Grafiken regler.gif   spannungsmessung.gif  
    Angehängte Dateien Angehängte Dateien

  2. #2
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    14.01.2006
    Ort
    Hattingen
    Alter
    59
    Beiträge
    984
    Hi, interessantes Projekt.
    MIt ist nur aufgefallen, dass die Strommessung ja nur mit recht geringer auflösung erfolgen kann, da du ja nur die Differenz aus der Spannung vor dem Shunt - Spannung nach dem Shunt als Maß für den Strom hast. Wenn man das allerdings nicht genauer benötigt, dürfte die Schaltung kaum an Einfachheit zu überbieten sein. Kritisch ist ggf. noch, dass die Spannungsteiler ja sehr genau sein müssen, aus o.g. Gründen. Daher auch die 0,1% Toleranz. ggf. kann man aber hier auch ein kleines Poti nehmen oder eben die Widerstände vorher selektieren.

    Gefällt mir ansonsten ausgesprochen gut. Werde mir mal den App-Note ansehen. P-Kanal-Fets und Schottky-Dioden liegen noch reichlich im Lager..


    Sigo

  3. #3
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    30.09.2006
    Beiträge
    734
    Hallo OnkelTobi,
    ich habe die Appnote zwar nicht gelesen, aber ist die Mosfetansteuerung für 125kHz nicht ein wenig schwach? Das Gate wird schließlich über einen 680R Widerstand geladen.
    Du könntest dir den Quarz sparen indem du aus der PLL (64MHz) mit :4 Teilung eine Taktfrequenz von 16MHz erzeugst.

    Wenn ich deine Werte bei http://schmidt-walter.fbe.fh-darmsta.../abw_smps.html eingebe, bekomme ich eine Induktivität mit 37µH? Das unterscheidet sich doch stark von deinem Wert, überprüf's nochmal. Spulen gibt es günstig unter http://www.pollin.de/shop/detail.php...=Mzk3OTk4&ts=0, das war das einzige was ich im Moment gefunden habe

    Du baust anscheinend einen lion-lader, deswegen die 4,1V. Wie wäre es wenn du einfach mit 4,2V rechnest, dann kannst du auch lipo laden?
    Unter http://freenet-homepage.de/thhe01/mo...ader/lader.htm ist ein solcher Lader beschrieben, vielleicht kannst du dir etwas abschauen?

    Noch ein kleiner Link ganz allgemein zur Dimensionierung von step-down wandlern: http://sprut.de/electronic/switch/index.htm

    Den 200µF Kondensator könntest du durch 2*100µF ersetzen, dann sinkt der ESR. Wie kommst du denn auf 100mV erlaubten Ripple? Aus dem Gedächtnis machen lipo zellen bei 4,235V (Ladeschlusspannung 4,2V) die Biege. Lion weiß ich nicht auswendig, aber ähnlich imho. Vielleicht rettet dich die Induktivität der Anschlusschnüre?

    So genug unqualifiziertes Gemecker Ich weiß selber nicht wie man's macht, das was ich gerade gesagt habe wird wahrscheinlich total falsch sein.
    Deswegen finde ich es super, dass du tatsächlich so etwas auf die Beine stellst. Mit der Frequenz könntest du noch hoch bis auf 250kHz, aber nicht höher, oder? Kannst du mir vielleicht etwas source code von der PWM initialisierung schicken wenn es fertig ist?

    Viel Glück!

  4. #4
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    25.08.2006
    Beiträge
    105
    Die 64Mhz erzeugt dieser Typ der AtTiny-Serie meines Wissens intern.
    Gesehen habe ich das bisher bei den Tiny15, Tiny26 und bei deren Nachfolgern 261 und 461.
    Den 461 gibts grade bei CSD-Electronics.de im PDIP-Package.
    Der sollte noch ausreichend Ressourcen für ein kleines LCD haben...



    Die Berechnungen für die Spule habe ich der Appnote von Atmel entnommen.

    Wie die zustande kommen, weis ich aber auch nicht - dein Link zu dem Berechnungs-Tool ist klasse - allerdings kommen total andere Werte raus.
    Mit meinen Berechneten Werte wäre mein Regler nicht lauffähig.

    Nach dem Link oben habe ich nochmal gesucht, und diesen Berechner gefunden:
    http://www.daycounter.com/Calculator...lculator.phtml
    Der sagt mir auch, dass meine Induktion zu gering ist.

    Ich habe mir einige Spulen besorgt, ein Oszi habe ich ebenso da - also kann ich ein wenig rumprobieren.


    Wegen der 4.1V:
    In der Appnote stand ein Hinweis, dass es 2 Arten von Zellen gibt: Mit einer Ladeschlussspannung von 4.1V bzw 4.2V.
    Ich werde bei meinen Akkus wohl 4.2V annehmen.

    Alle meine Akkus sind zudem mit einer zusätzlichen Elektronik (Max1665) geschützt (Abschaltung bei 4,225V/Zelle).
    Die Akkus sind also schonmal sicher...

    /edit
    Eine Excel-Tabelle von TexasInstruments zum Berechnen von einem Schaltregler gibts hier:
    http://focus.ti.com/docs/toolsw/fold...-convcalc.html

  5. #5
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    17.04.2006
    Beiträge
    2.193
    Ich habe mich von der AVR450 auch inspirieren lassen und einen NiMH-Lader-Baublock entworfen. Ub ist 8-15V, Akkuspannung 3,6 oder 4,8V nominal, Ladestrom 750mA. Der MOSFET-Treiber ist um eine Gegentaktstufe mit BC807/817 erweitert, ausserdem hat das Ganze noch einen RC-Snubber bekommen und komplett Schottky-Dioden. Die Regelung ist inzwischen ein PI-Regler, weil die Trivialregelung aus der Appnote zumindest eins nicht geschafft hat: regeln. Die Abschalterkennung hat auch beim Schiefangucken ausgelöst, insofern ist nun d2U/dt2-Abschaltung drin, mit -dU/dt, Absolutspannung und Zeit als Backup. f ist 125kHz, L 15uH.

  6. #6
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    25.08.2006
    Beiträge
    105
    @avion23
    Hier die Initlaisierung des PWM-Ausgangs des AtTiny461:
    Code:
    #warning Setup() Registereinstellungen prüfen!
    
    // Timer1 Asynchronous Mode PLL Initialization - Page88
    	PLLCSR  = (1 << PLLE);					// Enable PLL
    	_delay_us(50);							// Wait 100µs for PLL to stabilize
    	_delay_us(50);							// Split due to limits of _delay_us at frequency at 8mhz
    	loop_until_bit_is_set(PLLCSR, PLOCK);	// Poll PLock until set 
    	PLLCSR 	|= (1 << PCKE);					// Enable Asynchronous Mode
    
    // PWM
    /**************************************************************************************
     	Tiny15 - Originalvalues from Appnote:
    		TCCR1A  = 0x81;         // define timer1 as 8-bit PWM  
    		TIFR    = 0x80;         // clear counter1 overflow flag  
    		TIMSK   = 0x80;         // enable counter1 overflow interrupt
    		TCNT1   = 0x00;         // set counter1 to zero      
    		TCCR1B  = 0x00;         // PWM disabLED
    
    	Tiny461:
    		OutPut OC1B, PB3 											PWM1B	= 1
    		Fast PWM  													WGM11..0= 00
    		Non-Inverting Compare Mode - Cleared on Compare Match 		COM1B1 	= 1
    		Asynchrone Clocking Mode, Prescaler = 1  CLK = PCK  		CS10 	= 1
    		8 bit from BOTTOM(0x00) to TOP(0xff) TOV1-Flag set on TOP 	OCR1C 	= 0xFF
    ***************************************************************************************/
    	TCCR1A 	= (1 << PWM1B) | (1 << COM1B1);
    	TCCR1B 	= (0 <<  CS13) | (0 <<  CS12) | (0 << CS11) | (1 << CS10);
    	TCCR1D 	= (0 << WGM11) | (0 << WGM10);
    	OCR1C 	= 0xff;
    
    	//TIFR	= (1 << TOV1);  // clear counter1 overflow flag  
    	//TIMSK	= (1 << TOIE1); // enable counter1 overflow interrupt
    	TCNT1	= 0x00;         // set counter1 to zero      
    	OCR1B	= 0x00;         // PWM disabLED
    
    	DDRB	= (1 << PB3);	// PB3 as Output
    TimerClockSource taktet intern mit 64Mhz.
    Prescaler = 1
    PWM mit 8 bit Auslösung.
    Ausgabepin ist PB3
    Ausgabefrequenz 250khz

  7. #7
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    30.09.2006
    Beiträge
    734
    Super! Ich danke dir! Ich werde in der nächsten Woche 10x attiny26 bestellen

  8. #8
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    25.08.2006
    Beiträge
    105
    Ich habe jetzt den Li-Ion-Lader aufgebaut:
    Bild hier  
    http://farm2.static.flickr.com/1244/...d43ef87b_o.jpg


    Die Software aus der Appnote war mir zu zu wurstig, da habe ich mir die Ablaufsteuerung selber geschrieben...

    Die Schaltung erkennt 2- 3- und 4-Zellen-Akkus.

    Ladestrom moderate 500mA bis 1000mA.

    Der Schaltregler arbeitet echt sauber - sehr geringe Restwelligkeit, gute Stellgenauigkeit (bei Konstantspannungmodus +-50mV).

    Kurz die Eckdaten:
    L=220µH
    C=100µF + 100nF (Kerko)
    f=31khz
    Transistor ist ein IRF5210 Rdson=60mOhm
    µC ist ein Tiny461
    Vin=19V
    Tastverhältnis bei Vout=17V/1A: 50%

    Versuche mit einer höheren Schaltfrequenz hatte ich aufgegeben, da ich dachte es klappt nicht. Das Problem lag aber in einer Falschen ADC-Auswertung. Nachdem der Fehler korrigiert war, wollte ich aber die Spule nicht mehr austauschen

    Schaltplan:
    Bild hier  
    http://farm2.static.flickr.com/1244/...de6c5d_o_d.jpg

    Wenn Interesse an dem Code besteht, stell ich den hier mit rein...

    Gruß Tobias

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

LiFePO4 Speicher Test