@Sparky: lees eerst dit eens voor je begint te blaten:
http://www.circuitsonline.net/artikelen/view/10/2
Altijd van worst-case uitgaan.
De Tj sowieso niet hoger laten oplopen dan 100 graden als je het spul voor langere tijd heel wilt houden.
De Rds-on van een mosfet loopt op naarmate de Tj stijgt.
Rds-on is bij een Tj van 100 graden al 0.007 x 1.5 = 0.01 Ω
Niet 25 graden als Ta kiezen (lijkt me sterk dat de TS een fan in z'n robot gaat plaatsen om de fetjes te koelen)
Ta was afgelopen week al 36 graden, en dan hebben we het nog niet over een halfgeleider die ingebouwd zit in een behuizing en zelf warmte produceert en daarmee z'n omgeving opwarmt.
Een Ta van 50 nemen is een stuk realistischer zolang je niet weet hoe de boel ingebouwd wordt.
Verder hebben we het over een nominale motorstroom van 10A. En wat wordt de stroom als er een helling wordt opgereden of de robot vast komt te zitten en los probeert te komen? en wat wordt Tj dan?
Bij 10A is P = I.I.R = 10 x 10 x 0.01 = 1 Watt.
Tj = Ta+ P.(Rthj-a) = 50 + 1x62 = 112 graden
Schakelverliezen nog steeds verwaarloosd.
Parallel schakelen werkt sterk verbeterend,
Bij 2 stuks wordt niet alleen de totale Rds gehalveerd, zonder koelplaat wordt toch het oppervlak verdubbelt (als je ze vrij wegzet) waardoor ze kouder blijven waardoor de Rds-on weer lager blijft waardoor de warmteproductie weer lager uitpakt...
En je krijgt ook nog eens het voordeel dat je ietsje meer spanning overhoudt voor de motor en veel minder koelplaat hoeft mee te zeulen.
SparkyGSX
Een manager is iemand die denkt dat negen vrouwen in één maand een kind kunnen maken
Ik zal de eerste twee regels en de ondertoon van je berichtje maar negeren, misschien was het niet bedoeld zoals het op mij over komt. Daarbij betrap ik mezelf met enige regelmaat op dergelijke berichtjes, dus het zij je vergeven.
Van een junctie temperatuur van 112 graden worst-case wordt ik nog niet zenuwachtig hoor, ze mogen 175 graden worden, al is daarmee natuurlijk niet gezegd dat dat verstandig is.
Ik heb de aannames (10A max, 25C omgeving, 62.5K/W) er toch duidelijk bij gezet. Als je het niet met die aannames eens bent (de TS riep zelf 10A), kan dat natuurlijk. Je hebt op zich gelijk dat het aannemen van een constante Rdson (zonder temperatuursquotiënt) een beetje kort door de bocht was.
Wat ik bedoelde te zeggen, is dat ik het een beetje onzin vind om FETs parallel te zetten, als de FET een Id max heeft van 75A, en je 10A moet schakelen. Als je niet in staat bent om de warmte af te voeren, ben je naar mijn idee nog steeds beter af met een FET in een SOIC package, waarbij een Rdson van 1.5mohm ook al haalbaar is, tegenover het parallel schakelen van TO220 FETs.
Ik vind dat je met duty-cycles van 80% en een marge van 10x op de drain stroom wel heel erg conservatief bezig bent. Naar mijn idee (en ervaring) is een factor 2 tot 3 marge ruimschoots voldoende.
[Bericht gewijzigd door SparkyGSX op (15%)]
Ik ben het hier met SparkyGSX eens.
Het parallel zetten van mosfets die al zo overgedimensioneerd zijn is echt onnodig.
Daarbij wordt een goede driver gebruikt wat de schakelverliezen al minimaliseerd en zoveel zal er niet geschakeld hoeven worden aangezien het hier een DC motor betreft.
Als ze dan nog steeds te warm worden bevestig je ze op een koperen vlak van je PCB of zet je er een klein koellichaam op. Er hoeft maar 1 watt te worden gedissipeerd wat nou niet echt spectaculair is.
Zelf hou ik ook een factor 3 of meer aan en heb hier nog nooit problemen mee gehad.
Bedoelt u dit als een kleine koellichaam?
Dus 1 van die mosfet kan de motor makkelijk aan zonder al te heet te worden. Als ik met een factor 3 doe, dan kan de mosfet ook 2 motoren aan (10.5*2*3= 63 ampere), dan word hij wel warm denk ik. Dan is 2 mosfets op de dit koellichaam verstandig?
Als je het koellichaam waar je naar toe linkt (2x dezelfde) echt die specificaties heeft kan je makkelijk 2 motoren op die mosfets gooien.
Die koellichamen hebben een koelcapaciteit van 8,2K/W wat betekend dat je mosfet 8,2°C stijgt ten opzichte van de omgevingstemperatuur als er 1W gedissipeerd wordt.
Bij 10A en 10mohm wordt er 1W gedissipeerd wat betekend dat de temperatuur van je mosfet 8,2 graad zal stijgen. Bij 20A wordt dit 4W, wat op een stijging van 32,8 graden neerkomt.
Bij een omgevings temperatuur van 40°C (wat al zeer hoog is) wordt je mosfet 72,8°C.
Meestal wordt 70°C als maximum genomen om veilig te zitten maar 73° kan ook prima, zeker voor hobby gebruik.
Echter weet ik niet zeker of die 8,2K/W klopt omdat heatsinks met deze specs meestal een stuk groter zijn.
Als dit wel klopt (er zal vast wel iemand zijn die hier meer vanaf weet), zorg dan wel dat je koelpasta tussen je heatsink en je mosfet doet, anders zal het koellichaam niet goed werken.
SparkyGSX
Een manager is iemand die denkt dat negen vrouwen in één maand een kind kunnen maken
Hoe hoog de case temperatuur mag worden, is natuurlijk afhankelijk van de thermische weerstand en impedantie van de devices, en van de verwachtte thermische piekbelastingen. Je kunt een MOSFET best heel houden op hogere temperaturen, maar als je het echt goed wilt doen, houd je ook rekening met de schakelverliezen, en dan niet gemiddeld over langere tijd, maar bereken je de opwarming van de junctie bij elke keer dat je schakelt. Dat moet je dus wel een goed model hebben van alle thermische weerstanden en capaciteiten in het device.
Je kunt een MOSFET goed slopen met maar 1W dissipatie, gemiddeld genomen over een seconde, als dat 500W is gedurende 2ms.
Oke, ik zal de onderdelen deze week bestellen.
Heb ik mijn schema nu hellemaal goed getekent zodat ik niks vergeet bij het bestellen.
Er komt nog 2 electriese condensatoren van elk 10000µF tussen de plus en de min.
Ik heb de onderdelen een paar dagen geleden bestelt, nu maar wachten.
Kan ik nu mooi even kijken hoe het moet met de software.
Als besturings PIC gebruik ik een 16F690, Omdat die 4 PWM uitgangen heeft. En je kan in de software een h-brug maken.
Op blz 369 staat een schema hoe ik het moet aansluiten. Dus heb ik het zo in mijn eigen schema aangepast, klopt dit?
Ook vondt ik dit stukje teks, hoe je PWM moet instellen.
11.3.7 SETUP FOR PWM OPERATION
The following steps should be taken when configuring
the CCP module for PWM operation:
1. Disable the PWM pin (CCP1) output driver by
setting the associated TRIS bit.
2. Set the PWM period by loading the PR2 register.
3. Configure the CCP module for the PWM mode
by loading the CCP1CON register with the
appropriate values.
4. Set the PWM duty cycle by loading the CCPR1L
register and DC1B<1:0> bits of the CCP1CON
register.
5. Configure and start Timer2:
- Clear the TMR2IF interrupt flag bit of the
PIR1 register.
- Set the Timer2 prescale value by loading the
T2CKPS bits of the T2CON register.
- Enable Timer2 by setting the TMR2ON bit of
the T2CON register.
6. Enable PWM output after a new PWM cycle has
started:
- Wait until Timer2 overflows (TMR2IF bit of
the PIR1 register is set).
- Enable the CCP1 pin output driver by clearing
the associated TRIS bit
Ik heb nu deze stukje code
Device 16F690 ;Gebruik een 16F690 type
Config HS_OSC, CP_OFF, DATA_CP_OFF, PWRTE_ON, MCLRE_OFF
XTAL 20
; 76543210
TRISC = %00000000 ;(0=uitgang, 1=Ingang)
CCP1CON = %01001100 ;Instelling voor hele H-brug
T2CON = %00001110 ;Zet Timer2 aan, Prescale=16
PR2 = %11111111 ;Zet PR2 om 1.22 kHz er uit te krijgen.
Duty = 500 ;Duty van 50%Om de motor rechtom / linksom te laten gaan moet ik P1M<1:0> naar 01 of 11 zetten, maar hoe dit moet snap ik niet echt.
Klopt de code een beetje?
rew
four NANDS do make a NOR . Kijk ook eens in onze shop: http://www.bitwizard.nl/shop/
Op 5 juli 2010 19:44:02 schreef lethalshot:
Die koellichamen hebben een koelcapaciteit van 8,2K/W wat betekend dat je mosfet 8,2°C stijgt ten opzichte van de omgevingstemperatuur als er 1W gedissipeerd wordt.
Nee. De CASE van de fet zal 8.2 graden per watt boven omgevingstemp komen.
Bij 10A en 10mohm wordt er 1W gedissipeerd wat betekend dat de temperatuur van je mosfet 8,2 graad zal stijgen. Bij 20A wordt dit 4W, wat op een stijging van 32,8 graden neerkomt.
Dus waar je normaliter met junction-to-ambient van (hier in deze thread gelezen) 62 graden per wat moet rekenen, mag je nu met een CASE temp van Ambient+8 rekenen, en moet je de junction-to-case thermal resistance nemen.
[edit] Even opgezocht: De junction-to-case thermal resistance is 1.25 graden/W. (voor de IRF 5210, ik weet even niet zo snel welke FET jullie het nu over hebben). Voor het gemak kan je dus 8.2 + 1.25 = 9.45 nemen. Dan is 1W prima te doen, en 4W ook. Maar wat lethalshot doet, de junction-to-case weerstand verwaarlozen kan niet zomaar....
Dus met die koelichaam zit het wel goed, als ik het goed begrijp.
Ik heb de code iets verandert, moet het zo?
Als ik het naar een hex bestand doe dan krijg ik geen foud
Device 16F690 ;Gebruik een 16F690 type
Config HS_OSC, CP_OFF, PWRTE_ON, MCLRE_OFF
XTAL 20
Dim Duty As Word
; 76543210
TRISC = %00000000 ;(0=uitgang, 1=Ingang)
CCP1CON = %01001100 ;Instelling voor hele H-brug
T2CON = %00001110 ;Zet Timer2 aan, Prescale=16
PR2 = %11111111 ;Zet PR2 om 1.22 kHz er uit te krijgen.
Duty = 500 ;Duty van 50%
Loop:
CCP1CON.4 = Duty.0 ;Store duty to registers as
CCP1CON.5 = Duty.1 ;a 10-bit word
CCPR1L = %01 ;Full-Bridge output forward; P1D modulated; P1A active; P1B, P1C inactive
GoTo Loop[Bericht gewijzigd door Brandon op (86%)]
Hallo,
Ik heb mijn bestelling gekregen. En ben met de code aan de slag gegaan. Ik heb nu dit. Ik heb als 'belasting' 4 leds gebruikt om te kijken wat hij doet. Het werkt wel maar af en toe dan flikkert de onderste led's van de h-brug (die aan staat word feller, en de andere licht even op. Waar kan dit eigelijk aan liggen?
Device 16F690 ;Gebruik een 16F690 type
Config HS_OSC, CP_OFF, PWRTE_ON, MCLRE_OFF
XTAL 20
Dim Duty As Word
; 76543210
TRISC = %00000000 ;(0=uitgang, 1=Ingang)
Duty = 100 ;Duty van 10%
While 1 = 1
GoSub Linksom
Wend
Linksom:
CCP1CON = %11001100 ;links instelling
T2CON = %00001110 ;Zet Timer2 aan, Prescale=16
PR2 = %11111111 ;Zet PR2 om 1.22 kHz er uit te krijgen.
CCP1CON.4 = Duty.0 ;Store duty to registers as
CCP1CON.5 = Duty.1 ;a 10-bit word
CCPR1L = Duty >> 2
ReturnOm de motor de andere richting te laten draaien moet ik
CCP1CON = %01001100dit stukje veranderen.
Dus heb ik dit er nog bij gedaan om hem steets om te draaien
Device 16F690 ;Gebruik een 16F690 type
Config HS_OSC, CP_OFF, PWRTE_ON, MCLRE_OFF
XTAL 20
Dim Duty As Word
; 76543210
TRISC = %00000000 ;(0=uitgang, 1=Ingang)
Duty = 100 ;Duty van 10%
While 1 = 1
GoSub Links
DelayMS 2000
GoSub Rechts
DelayMS 2000
Wend
End
Links:
CCP1CON = %11001100 ;links instelling
T2CON = %00001110 ;Zet Timer2 aan, Prescale=16
PR2 = %11111111 ;Zet PR2 om 1.22 kHz er uit te krijgen.
CCP1CON.4 = Duty.0 ;Store duty to registers as
CCP1CON.5 = Duty.1 ;a 10-bit word
CCPR1L = Duty >> 2
Return
Rechts:
CCP1CON = %01001100 ;rechts instelling
T2CON = %00001110 ;Zet Timer2 aan, Prescale=16
PR2 = %11111111 ;Zet PR2 om 1.22 kHz er uit te krijgen.
CCP1CON.4 = Duty.0 ;Store duty to registers as
CCP1CON.5 = Duty.1 ;a 10-bit word
CCPR1L = Duty >> 2
Return Dan doet hij de eerste wel 2 sec en de andere maar heel kort.
En als ik onder de while 1 = 1 nog een keer delayms 2000 zet dan doet hij de eerste goed en daarna laat hij alle 4 de leds branden 
Weet iemand wat ik hieraan moet doen?
Alvast bedankt
