PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Erweiterung von H-Bridge



SiWi
28.03.2009, 15:16
Ich hab mir eine einfache H-Bridge aus 4 BUZ21 Mosfets gemacht, von denen jeweils ein Gate Paar folgendermaßen angesteuert wird:

12V
|
|
|0|
|,|
|5|
|K|
+---Ausgang für H-Bridge Mosfets
|
C
BC547C B---------------+
E |
| |1|
GND |0|
|0|
|K|
+-----Mega32
So kann ich das natürlich nicht lassen, da ja beim Reset des AVR beide Gatepaare durchschalten würden, ich also einen Kurzschluss hätte.
Wie kann ich dieses Problem umgehen?
EDIT: Da ich noch einen BUZ21 extra herumliegen habe, könnte ich den ja so schalten, dass er beim Reset des AVR durchschaltet und sonst vom AVR ausgeschaltet wird. Dieses Signal könnte ich dann ja noch zusätzlich an die Basen der BC547Cs legen.
Allerdings bin ich mir da über ein paar Details noch nicht ganz im Klaren:
-Soll ich an den Gate des Mosfet 12V legen oder die 5V, die auch der AVR benutzt
-Mit welchem Widerstand soll ich den Source des Mosfet an die Basen der Transistoren legen?
-Kann das grundsätzlich überhaupt so gehen oder soll ich einen anderen Weg gehen?

Besserwessi
28.03.2009, 17:27
Man kann das Problem beim Einschalten umgehen durch Pull-up Widerstände an den IO Port des µC.

Für die beiden FETs auf der GND seite könnte das etwa so gehen, wenn auch nicht besonders gut. Da wäre es besser Logiclevel Fets wie ILRZ44 zu nehmen und die direkt vom µC port anzusteuern mit nur einem Widerstand.

Für das Schalten gegen die positive Spannung wird das so nicht gehen. Wenn man da mit N Fests arbeiten will, braicht man eine Spannung die etwa 5-10 V höher als die Motorspannung ist, sonst schalten die FETs nicht voll durch. Andererseits darf die Spannung auch nicht mehr als etwa 20 V gegen GND sein, denn mehr vertragen die Gates oft nicht nicht. Das geht also nur unter sehr eingeschränkten Beidngungen. Wenn man beine Wirklich große Leistung (>200 W) braucht, ist es oft einfacher da P-Mosfets zu nehmen.

SiWi
28.03.2009, 19:27
Danke für deine Antwort.
Hab jetzt gerade das mit den Pullup Widerständen probiert.
1000K sind zu groß, da schaltet der Transistor beim Reset noch etwas durch. Bei 100K bleibt der Transistor zwar beim Reset aus, allerdings schaltet er auch nicht durch, wenn der AVR Pin auf Low geht. Also muss ich die Widerstände der Schaltung wohl grundlegend anders definieren.
Könnt ihr mir dazu noch einen Tipp geben?

Besserwessi
28.03.2009, 21:42
Der Pullup sollte Werte, so um die 10K haben. Der Widerstand sollte von VCC zum IO Pin gehen. Da hat dann der µC keine Problem einen Definierten Pegel zu erzeugen. Der Basiswiderstand in der Schaltung ist noch reichlich groß. Auch da wäre etwa 5-10 K besser. Trotz allem wäre der Logiglevel FET dann vermutlich besser. Den extra Transistor wird man nur für den P-FET brauchen.

SiWi
29.03.2009, 15:48
Noch eine Frage:
Was passiert, wenn man die Mosfets nur so halbwegs durchschalten lassen würde, so dass z.B. 4V bei 12V am Drain geschalten würden. Würde das einen Kurzschluss ergeben oder hätten die Mosfets noch genug Innenwiderstand, dass es keinen Kurzschluss gibt?

Besserwessi
29.03.2009, 18:12
Wenn der MOSFET nicht ganz durchgeschaltet ist, hat man weniger Spannung für den Motor zur verfügung und der MOSFET wird heiß. Kurzzeitig und bei wenig Strom geht das, aber auf dauer ist das keine gute Lösung.

SiWi
29.03.2009, 18:47
Ich meinte jetzt eigentlich auf den Reset Status bezogen:
Ist es gefährlich wenn alle Mosfets beim Reset kurzzeitig etwas durchschalten?

Besserwessi
29.03.2009, 20:39
Solange die FETs alle halb "durchschalte" fließt ein Strom allein durc die FETs und erzeugt entsprechend Wärme. Wie lange das erlaubt ist, hängt vom dem wieviel Strom und der größe der FETs ab. Gerade bei großen FETs kann ein bischen (z.B. 3 V) an Spannung am Gate schon mal für 20 A Strom reichen. So Zeiten im Bereich von ein paar ms sind oft klein Problem.

SiWi
30.03.2009, 14:51
Frage: Davon ausgehend, dass mein Motor maximal 0.5A braucht und 12 V als Versogrungsspannung anliegen müsste man 24 Ohm Widerstand nehmen, um die Spannung in der H-Brücke zu limitieren
-> Keine große Gefahr mehr für die Mosfets in den kurzen Resetzeiten.
Ist das kompletter Schwachsinn(was ich befürchte :)) oder ein passable Idee?
Edit:
Hab noch ein weiteres Problem:
Mit der Dimensionierung des Basisvorwiderstands und des PullUpwiderstands zurecht:
-Wenn ich wie von dir empfohlen für die Basis einen Widerstand um die 10K nehme, z.B. 8K, dann schaltet der Tranisistor, wenn man Low an der Bais mit dem AVR anlegt etwas durch, d.h. es kommen aus der Schaltung nur 8.7V bei 12V Versorgung. Daher hab ich ein bisschen herumprobiert; am Besten hats bei 100K geklappt, da 11.9V als Ausgansspannung rauskommen.
Wenn ich nun versuche einen geeigneten Pullupwiderstand zu finden, hab ich große Probleme. Bei 1000K schaltet der Transistor nur 8V durch, und dann schaltet er im Reset immeroch ca. 6V durch. Die Mosfets schalten in der Konsequenz dann 4V, was wohl immernoch recht gefählrich ist. Ich bin dann in 100K Schritten nach unten gegangen. Bei 500K-600K schaltet die Mosfets im Reset nur noch ca. 1,4V durch, allerdings schalten sei bei LOW vom AVR auch nur 2,2 V.

Vielen Dank nochmals für deine Hilfe.

Besserwessi
30.03.2009, 18:26
Gerade bei so kleiner Leistung lohnt sich eine diskrete Brücke kaum. Da kann man gut so etwas wie L6502 oder L298 nehmen.
Wenn schon mit diskret dann wohl mit logic level Fets an der GND seite und P-MOSFets and der 12 V Seite. Die logic level Fets kann man sirekt von Controller steuern, die P-Fets über eine Transistorstufe, so wie gezeigt, nur mit kleinerem Widerstand an der Basis. Die Probleme damit kann ich nicht nachvollziehen, das geht auch (nur) mit kleinerem Widerstand an der Basis. Der Pullup gehört an der µC Pin und nicht an die Basis, dann sind Pullup und Basiswiderstand relativ unabhängig zu wählen.

Für die Steuerung des P-FET braucht man dann auch keinen Pullup am Transistor, sondern einen pull down.

SiWi
30.03.2009, 19:07
Ok, danke für die Aufklärung.