Mosfet H-bridge motor driver dmv PWM

Hallo,

Ik ben bezig met het bouwen van een robot (UGV). Na twee keer voortijdig oud en nieuw te hebben gevierd met mijn huidige motor driver (http://www.canakit.com/dual-motor-l298-h-bridge-control-ck1122-uk1122.…) denk ik dat het nu tijd is voor het zwaardere werk.

momenteel gebruik ik reletief "lichte" 24 volt motoren (iig genoeg om mijn huidige driver op te blazen...). In de toekomst wil ik zwaardere motoren aan gaan schaffen maar het lijkt me verstandig om het testwerk/programmeerwerk alvast met een andere driver te gaan doen.

Ik heb de volgende schakeling gezien:

http://letsmakerobots.com/node/24086

Deze schakeling maakt gebruik van MOSFET's en is relatief simpel te bouwen. Voordat ik naar mijn lokale electroboer ga (DIL) wil ik eerst even bij jullie polsen wat jullie van deze schakeling vinden.

Het is de bedoeling dat de 5 volt voorziening dmv een LM7805 gebeurd.

Zijn er volgens jullie betere alternatieven of hebben jullie nog tips?

Volgens de poster van de schakeling zijn extra diodes niet nodig omdat de interne diodes van de MOSFET's voldoende zijn. Ik vraag me alleen af of het niet verstandig is om optocouplers toe te voegen?

Alvast bedankt en met vriendelijke groet.

benleentje

Golden Member

Voordat je verder gaat met een andere driver is het zinvol om eerst eens uit te zoeken waarom je driver nu steeds kapot gaat.

Op je L298 driver zit namelijk geen actieve stroom begrenzing. Er zit zitten wel 2 shunt weerstanden die waarmee je de stroom kan meten en aan de hand van de gemeten stroom me je zelf een regeling maken die de stroom begrenst. Zolang je geen stroom begrenzing hebt blijft je driver of erger nog je motoren kapot gaan.

Mensen zijn soms net als een gelijkrichter, ze willen graag hun gelijk hebben.

Optocouplers zou ik zeker niet doen, die zijn over het algemeen te traag om een fatsoenlijk PWM signaal door te kunnen geven (of behoorlijk duur en wel snel genoeg).

Subtiel antwoord: tja, misschien werkt dat schema best voor relatief kleine stromen, maar echt geweldig is het niet.

Iets minder subtiel antwoord: gewoon bagger.

1) P-channel MOSFETs zijn niet handig, omdat er maar weinig types zijn voor hoge spanningen en grote stromen.

2) Je hebt geen volledige controle over het recirculatiepad omdat je de high-side en low-side MOSFETs altijd tegelijk aanstuurt (maar dat is geloof ik met opzet, om het aantal benodigde I/O pinnen te minimaliseren)

3) Met een BC547 gaat het nog net goed met de emitter op 5V en de basis op 0V (Vebo(max) = 6V), maar als je die zou vervangen door een BC548, BC549 of BC550 zit je al op de Vebo(max) van 5V. Dit is eenvoudig te verhelpen met een diode over de basis-emitter junctie van die bovenste 2 transistors (kathode aan de basis)

4) als je de gate van de MOSFETs probeert te laden of ontladen door een 10k weerstand, zoals hier gebeurd, krijg je enorme schakelverliezen als je gaat PWM'en

5) je moet er in de microcontroller voor zorgen dat je altijd een korte tijd beide uitgangen (A en B) laag maakt om een shoot-through te voorkomen.

6) je mag geen accuspanning hoger dan de Vgs(max) van de MOSFETs gebruiken, en dat is meestal 20V, anders gaan je MOSFETs er direct aan.

Ik moet toegeven dat de constructie met die transistors voor de bovenste MOSFETs eigenlijk wel leuk gevonden is.

Een manager is iemand die denkt dat negen vrouwen in één maand een kind kunnen maken

Even wat meer informatie:

Ik ben momenteel bezig met het maken van een library (voor arduino) om dmv een PID regeling op en aantal RPM aan te kunnen sturen.

Tijdens het debuggen (met 1 motor aangesloten) van de code ging de motor van volle vaart vooruit in volle vaart achteruit. Ik denk dat hierbij een flinke stroom door de motor is gaan lopen (volgens datasheet is de stall current 4,3 A).

Aangezien de driver max. 2A kan hebben denk ik dat dit het probleem is. De stroom meet ik frequent, deze is binnen de perken als ik de motor "normaal" aanstuur 300 mA (onbelast). De robot die ik aan het maken ben zal snel moeten kunnen wisselen vooruit naar achteruit. Ik kan natuurlijk wel inbouwen dat de PWM waarde eerst naar minimaal gaat met een bepaalde stapgroote voordat de polariteit wordt omgedraaid

De motor(en) die ik gebruik zijn twee KAG motoren (M48x60/I, 211333). Deze worden aangestuurd op 24 Volt. Uiteindelijk wil ik overstappen op 2x (http://shop.mat-con.net/epages/62158737.sf/de_DE/?ObjectPath=/Shops/62…) met een vertanding naar max. 1000 rpm op de aandrijfas.

Ik wil een driver maken die op 24 volt werkt en oneveer 15A-20A aankan. Het liefst wil ik per motor een digitale uitgang A en B gebruiken om de richting te bepalen en een PWM puls om de snelheid mee in te stellen.

Aangezien ik zelf minimale electrotechnische kennis heb ben ik dus aangewezen op het internet. Hier zie je zeer veel schakelingen maar het is mij vaak onduidelijk wat het voltage en amperage is wat deze schakelingen kunnen hebben.

Misschien kunnen jullie mij verder helpen/adviseren.

BTW:

Ik heb ook deze schakeling nog gezien:

http://www.robotpower.com/products/MegaMotoPlus_info.html

http://www.robotpower.com/downloads/MegaMoto-v1.5-schematic.pdf

Nadeel is alleen dat deze gebruik maken van BTN7960B MOSFET's, die kan ik bij de lokale electrohandel niet krijgen.... kunnen deze ook worden vervangen door andere MOSFET's? Ik moet dan wel misschien een ander current sense mechanisme inbouwen (misschien hardware matig dmv de ratio tussen het aantal PWM en het aantal RPM?)

Alvast bedankt!

[Bericht gewijzigd door ICcircuit op woensdag 24 oktober 2012 11:14:18 (13%)

Lambiek

Special Member

Lees dit eens door, hier staat veel over mosfet's.

Bijna onderaan staat ook een schema van een H_brug, bekijk dat ook eens.
http://www.circuitsonline.net/artikelen/view/41

Staat onder verdere onderwerpen.

Als je haar maar goed zit, GROETEN LAMBIEK.

Hoi Lambiek,

Bedankt voor de link!! Ik heb het even door zitten lezen en ook het hele MOSFET principe is me duidelijk geworden.

Heb je het schema van de H-Brug (ik neem aan dat jij HvZ ben) in een betere resolutie (pdf?)? Ik probeer heb op A3 af te drukken maar dat ziet er niet scherp uit....

Ik vind dit er in ieder geval een stuk beter uitzien!! en wist niet dat er half bridge drivers bestaan (weer wat geleerd!).

Ik ga het schema vanavond eens uitpluizen met de datasheets en zal dat ongetwijfeld nog aanvullende vragen hebben :)

Bedankt!!

Lambiek

Special Member

Hier heb je het schema, ik hoop dat dit duidelijker is.
http://www.uploadarchief.net/files/download/resized/h_brug%20met%20mosfets.jpg

Als je haar maar goed zit, GROETEN LAMBIEK.

Bedankt, heb het schema nu duidelijk. Ik heb bijna alle datasheets ik mis alleen nog de datasheet van de filters. Wel type filters zijn dit?

Hmmmm Lambiek. "alle elcos zijn 100V". Ik zou denken: Zou 100nF voor C1, C3, C5, C7 niet volstaan? Dus aldaar de elcos gewoon weglaten.....

C1, C5 zijn de boost condensatoren. Die gaan charge sharen met de gate capaciteit van de mosfet. Kleinere mosfets hebben rond de 1-2nF dus dan is 100nF al wat overdreven.

C3, C7 zijn de ontkoppel condensatoren voor de driver chipjes. ALS er niks uit je voeding komt, dan gaan DIE weer charge-sharen met de boost condensatoren. Maak er 470nF van en er blijft 12V van de 15V over: ook voldoende.

[edit] Hey, tussendoor met vraag over filters. Je kan daar wat "filtering" tussenzetten. Dus een ferrietkraaltje of zo.

[Bericht gewijzigd door rew op woensdag 24 oktober 2012 13:03:02 (10%)

four NANDS do make a NOR . Kijk ook eens in onze shop: http://www.bitwizard.nl/shop/
Lambiek

Special Member

Ja over die waarde's van de condensatoren kunnen we lang rede twisten, maar dit gaaf de beste resultaten. Die 100V zou inderdaad minder kunnen.

De filtering kan je doen met feriet kernen, maar hoeft niet persé.

Als je haar maar goed zit, GROETEN LAMBIEK.

Na wat uurtjes studeren denk ik dat ik de basis redelijk door heb. Dit schema ziet er een stuk doordachter uit dan het schema dat ik in mijn eerste post heb vermeld.

Het vervangen van de transistoren door de half-bridge driver maakt het geheel ineens een stuk makkelijker te begrijpen (in plaats van een complexe schakeling m.b.v. transistoren). Waarom moeten die speciale "snelle" diodes worden gebruikt (flyback diodes)? Ik lees ook dat Schotty diodes vaak worden toegepast. Kan dat ook in dit geval? Wat is het grootste nadeel?

Waarom moeten aansluiting 8,9,12 en 13 van de NAND ook worden aangesloten? Is dit mogelijk omdat alle vier de poorten moeten worden gebruikt?

Wat is de waarde van de current-sense weerstand? Er staat 0,01E? Stel dat ik een analoge ingang van mijn arduino wil gebruiken (3.3v) dan kom ik op 0.156 Ohm uit (3.3/20)?

"Toevallig" voldoet dit schema aan mijn "eisen" en ik denk dat ik een poging ga wagen er een te bouwen :)

Ik wil alle onderdelen proberen via Conrad te bestellen (ze hebben alles behalve de gebruikte diodes D1 t/m 4 en de twee 1N4936 diodes) zijn hiervoor mogelijk nog andere alternatieven te gebruiken?

Is er mogelijk ook al een tekening van de printplaat beschikbaar? Ik heb al wat zitten schetsen maar kom er nog niet uit.....

Bedankt voor alles!

Cheers.

[Bericht gewijzigd door ICcircuit op woensdag 24 oktober 2012 22:59:24 (13%)

Ik ben het ook niet helemaal met Rew eens over die condensators; de boostrap condensator gaat niet alleen lading delen met de gate van de MOSFET, hij moet ook de bovenste gate driver van stroom voorzien, aangezien dat ding ook een (klein) eigen verbruik heeft. Met een wat grotere condensator heb je de mogelijk om de high-side MOSFET even 100% PWM te geven. Ik heb het ooit getest, met 4u7 kun je dat ongeveer 5ms volhouden, als ik me goed herinner.

Die 100V elco's is natuurlijk onzin; bij 20V zouden de gates van de MOSFETs al doorslaan, en er zijn al veel meer onderdelen geklapt voordat je ooit aan de 100V komt. Met een voeding van 15V lijken elco's van 25V me ruim genoeg, als je echt paranoide bent kun je nog eens 35V nemen, maar meer heeft m.i. echt geen zin.

C17 en C18 (parallel met de meetweerstand) zijn daarop natuurlijk de uitzondering, maar als daar ooit meer dan 25V over komt te staan, is er ook wel iets flink mis. Als de meetweerstand op de een of andere manier onderbroken zou worden, zou er nog wel wat mis kunnen gaan, maar zelfs dan lijkt het me onwaarschijnlijk, aangezien de onderste MOSFETs zichzelf dicht gooien als ze proberen hun source omhoog te trekken. Als het goed is, kun je dus nooit meer dan een paar volt over die condensators krijgen.

Een manager is iemand die denkt dat negen vrouwen in één maand een kind kunnen maken

Hmm. OK. Ik dacht dat ik ergens een datasheet gezien te hebben waarbij die stroom echt fenomenaal klein was. Maar de irf2184 en de lm5109 hebben alletwee dikke microamperes. Frappant is dat ze helemaal niks zeggen over de bootstrap condensator in de datasheets.

[update] In de datasheet van de LM5105 hebben ze een voorbeeldschema op pagina 11/12 waar "0.1 µF" bijstaat.

[Bericht gewijzigd door rew op donderdag 25 oktober 2012 09:57:42 (18%)

four NANDS do make a NOR . Kijk ook eens in onze shop: http://www.bitwizard.nl/shop/
Lambiek

Special Member

Op 24 oktober 2012 22:58:47 schreef ICcircuit:
Waarom moeten die speciale "snelle" diodes worden gebruikt (flyback diodes)? Ik lees ook dat Schotty diodes vaak worden toegepast.

Waarom moeten aansluiting 8,9,12 en 13 van de NAND ook worden aangesloten? Is dit mogelijk omdat alle vier de poorten moeten worden gebruikt?

Wat is de waarde van de current-sense weerstand? Er staat 0,01E? Stel dat ik een analoge ingang van mijn arduino wil gebruiken (3.3v) dan kom ik op 0.156 Ohm uit (3.3/20)?

Ik wil alle onderdelen proberen via Conrad te bestellen (ze hebben alles behalve de gebruikte diodes D1 t/m 4 en de twee 1N4936 diodes) zijn hiervoor mogelijk nog andere alternatieven te gebruiken?

Is er mogelijk ook al een tekening van de printplaat beschikbaar? Ik heb al wat zitten schetsen maar kom er nog niet uit.....

Antwoord 1:
De diodes zijn er voor om de fet's te beschermen, de meeste fet's hebben vrijloop diodes, maar het is toch aan te raden om externe diodes te gebruiken. En het mag ook een ander type zijn, als ze maar snel zijn en de motor stroom aan kunnen.

Antwoord 2:
Dat is om het signaal te inverteren, dan klopt het uitgangssignaal weer met het ingangssignaal. En ze waren toch over, dus waarom niet gebruiken. :)

Antwoord 3:
Stel dat je een weerstand van 0.1E zou nemen, en je motorstroom is 10A dan wordt de spanningsval over de weerstand 10 X 0.1 = 1V. Bij 20A wordt dat uiteraard 2V. Je moet nooid aan de bovenste grens van je analoog gaan zitten.
Je kan de weerstand dus zelf bepalen, wat voor jou het beste uitkomt.

Antwoord 4:
In principe kan je elke diode gebruiken, als het maar een snel type is, en ze moeten de motorstroom aan kunnen. De 1N4936 zou ik wel gebruiken.

Antwoord 5:
Ja die is er, maar daar kan ik nu even niet bij. De computer is weg voor reparatie, zit nu op mijn laptop, maar daar staat de layout niet op.

EDIT:
Heb het toch gevonden, stond op de externe harde schijf.
Het formaat is 100 X 160, en het is een enkel zijdige print.
Het is gemaakt in Sprint-layout 4.0, een programma van abacom.

http://www.uploadarchief.net/files/download/resized/print%20motordriver%20500w.gif

De brug tussen de twee filters daar kan ook een zekering komen te staan. De diode's 1 T/M 4 staan hier niet op de print, die heb ik bij de motor gezet, ivb met de ruimte. Maar als die van jou niet te groot zijn kan je ze misschien op de print kwijt.

En bij mij werkt hij prima. :)

[Bericht gewijzigd door Lambiek op donderdag 25 oktober 2012 14:00:46 (14%)

Als je haar maar goed zit, GROETEN LAMBIEK.

Hoi Lambiek,

Bedankt voor alle hulp!! Ik ben druk bezig een Conrad boodschappenlijstje te maken :) Ik denk dat ik mijn eerste PCB op een Europlaat maak. Even een vraagje:

Wat is de reden dat de kopenbanen zo breed zijn (of groot oppervlak hebben)? Ik ben gewend (van de PCB's die ik heb) dat de banen normaal gesproken dun zijn.

Hoeveel watt kan zo'n koperbaan eigenlijk hebben? stel dat er 500 watt doorheen gaat, is dit dan geen probleem?

Ik zal later mijn lijstje posten, dan hebben anderen er ook nog iets aan.

Cheers.

Lambiek

Special Member

Die koperbanen zijn zo breed omdat er behoorlijk wat stroom kan lopen. En ik hou van robuust. :) Maak veel printen voor industriele toepassingen dus vandaar de iets dikkere sporen. En hoe minder je weg moet etsen hoe beter natuurlijk.

EDIT:
En nog even dit, de anderen hebben ook hun steentje bijgedragen.

[Bericht gewijzigd door Lambiek op donderdag 25 oktober 2012 21:00:54 (14%)

Als je haar maar goed zit, GROETEN LAMBIEK.

Die koperbanen zijn zo dik om zo min mogelijk als weerstand te werken: op de plekken waar ze zo dik zijn lopen de grootste stromen. Die stuur je niet meer over een printspoortje van 0,6 of 0,8 mm.

In sommige gevallen is het ook een vereiste voor het onderdeel dat er in de buurt gesoldeerd wordt: via de pootjes van sommige FETs wordt ook enige warmte afgevoerd. Weliswaar heel weinig, maar soms toch noodzakelijk.

Daarnaast, maar dat weet ik niet zeker genoeg, kan ik me voorstellen dat een breed printspoor een veel lagere zelf-inductie (en daarbij behorende verschijnselen) heeft dan een smal printspoor.

EDIT: weer te langzaam getypt.

http://www.m-voorloop.nl --- Ik? Welnee! Ik zit nog lang niet achter de germaniums.
Lambiek

Special Member

Maar wel een goede bijdrage. :)

Als je haar maar goed zit, GROETEN LAMBIEK.

Ok, das logisch (zou Johan Cruijff zeggen ;))Het nadeel is dat ik mijn eerste model op een europrintplaat wil maken. Misschien kan ik op de plaatsen waar hoge stromen lopen ipv de koperbanen (geisoleerd) koperdraad gebruiken? Ik wil op deze printplaat namelijk ook nog een encoder circuit maken.

Angezien dit mijn eerste grote project wordt zal ik mogelijk dus nog wel om wat hulp vragen :)

En natuurlijk wil ik iedereen bedanken!! De tutorial m.b.t. MOSFET's heeft mij in een klap geholpen. Veel beter dan ik tot nu toe op het internet heb kunnen vinden.

Cheers.

Lambiek

Special Member

Wat versta je onder een encoder circuit, kan je de encoder niet direct op je controller aansluiten.

Als je haar maar goed zit, GROETEN LAMBIEK.

Bij Conrad hebben ze helaas niet de volgende diodes:

DHG40C600PB

Welke diodes zou ik als vervangers kunnen gebruiken:

http://www.conrad.nl/ce/nl/category/SHOP_AREA_17304/Diodes

Alvast bedankt :)

Lambiek

Special Member

Het maakt niet veel uit welke diode's je gebruikt, als ze de stroom maar aan kunnen en snel genoeg zijn. Ik weet niet wat voor stroom er straks gaat lopen.

Als je haar maar goed zit, GROETEN LAMBIEK.

Stroom is tussen de 15-20 A.

Ik wil deze motoren gaan gebruiken:

http://shop.mat-con.net/epages/62158737.sf/de_DE/?ObjectPath=/Shops/62…

Is dit iets:

http://www.conrad.nl/ce/nl/product/160748/Schottky-diode-DSSK80-006B-T…

[Bericht gewijzigd door ICcircuit op vrijdag 4 januari 2013 09:49:49 (13%)

Lambiek

Special Member

Je kan beter een fast recover type nemen voor zoiets, dit type is niet echt snel.

Als je haar maar goed zit, GROETEN LAMBIEK.

Hallo Lambiek en anderen,

Ik heb alle onderdelen (behalve de diodes) besteld.

Zou je misschien een voorbeeld van een fast recovery diode kunnen geven (beschikbaar via Conrad) die voor deze driver geschikt is?

Klopt het dat een fast recovery diode meestal geen schottky diode is?

Heb je mogelijk ook een digitale versie van de printplaat beschikbaar (zonder tekst enz...)? Ik wil de file graag in eagle importeren en aanpassen. Mijn kennis op het gebied van het ontwerpen van printplaten is helaas beperkt....

Alvast bedankt voor alle hulp!!