www.mikrocontroller.net

Forum: Analoge Elektronik und Schaltungstechnik Strombegrenzung für H-Brücke


Autor: Paul H. (powl)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Um meine Schrittmotoren anzusteuern benutze ich einen L298, das ist eine 
Doppel-H-Brücke mit Enable-Eingang.

Nun würde ich gerne den Strom am Motor konstant halten. Dafür hat der 
L298 einen separaten Masse-Anschluss an den man einen Shunt legen kann.

Nun war die Grundidee, mit einem Komparator die Spannung am Shunt zu 
messen und wenn diese eine Schwelle überschreitet den Enable-Eingang zu 
deaktivieren. Der Strom fließt nun durch die Induktivität des Motors 
weiter über die Freilaufdioden, durchs Netzteil durch und wieder über 
den Shunt, allerdings in die andere Richtung, weshalb hier eine negative 
Spannung anliegen müsste (was auf dem Oszi komischerweise dennoch nicht 
zu sehen ist), mit der ich erstmal so nix anfangen kann. Um nun zu 
verhindern, dass er Koparator nachdem er den Enable nun abgeschaltet hat 
und keine Spannung mehr am Shunt messen kann den Enable sofort wieder 
einschaltet, habe ich ein RC-Glied mit Schottky-Diode als Verzögerung 
eingebaut. Sobald eine Spannung am Shunt anliegt kann der Kondensator 
blitzschnell geladen werden, wenn keine anliegt dauert es erst bis die 
Spannung wieder unter die Triggerschwelle fällt.

Die Verzögerung wird so eingestellt, dass der Strom nur ein klein wenig 
abfällt ehe wieder eingeschaltet wird und der Strom wieder aufs 
höchstniveau steigt. Im Mittel bleibt der Strom also konstant.

Ich habe nur noch ein Problem. Wenn ich den Widerstand (Trimmpoti) im 
RC-Glied kleiner mache um auch das Verzögerungsinterval noch zu 
verkleinern kommt es zu sehr unregelmäßigem Stottern der Regelschaltung. 
Hört sich im Motor nicht mehr wie ein Piepen sondern eher wie ein 
Kratzen an. Drehe ich noch weiter zurück wird das Piepen wieder klar und 
die Schaltfrequenz wieder höher. Nun kann ich weiter zurückdrehen und 
erreiche wieder eine kratzige Schwelle. Darunter ist die Schaltregelung 
auf einmal wieder stabil aber hochfrequenz bei ungefär 115kHz.

Kann sich einer dieses seltsame Regelverhalten erklären?

lg PoWl

Autor: Paul H. (powl)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
...und hier noch der Anhang -.-

Autor: Der echte Gast (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Vermutlich hast du damit die Resonanzfrequenz vom Motor gefunden...

Autor: Paul H. (powl)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Sry, wie meinst du das denn, die Resonanzfrequenz des Motors? Wie kommt 
damit dieses Regelverhalten zustande?

Im L297 wird ein anderes Prinzip verwendet. Irgendwas mit einem 
FlipFlop. Kann das jemand erklären bzw. hat jemand Quellen dafür? Ich 
meine das irgendwo mal in einer Appnote gesehen zu haben aber die finde 
ich leider nicht mehr.

Autor: starwatcher (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Womit Steuerst du den L298 an??
Wenn du den L297 verwendest ist eine Strombegrenzung bereits 
"integriert", d.h. der L297 schaltet entweder den Enable-Eingang oder 
die Motorphasen selber (also Input1-4) ab (Das ganze ist über den 
CTRL-EIngang einstellbar). Das würde den Schaltungaufwand vereinfachen, 
fallst du den L297 verwenden solltest

Autor: Johannes M. (johnny-m)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Paul Hamacher wrote:
> Im L297 wird ein anderes Prinzip verwendet. Irgendwas mit einem
> FlipFlop. Kann das jemand erklären bzw. hat jemand Quellen dafür? Ich
> meine das irgendwo mal in einer Appnote gesehen zu haben aber die finde
> ich leider nicht mehr.
Ich habe das mal für eine Versuchsanleitung beschrieben. Vielleicht 
hilft Dir das im Anhang weiter. Die dort gezeigte Schaltung ist im 
Prinzip das, was auch im L297 drinsteckt, nur extern, für Verwendung 
ohne den L297. Abbildung 4 und der Text drumrum sind vermutlich das, 
was Du suchst.

Autor: Paul H. (powl)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Danke Johannes, das ist in etwa genau das was ich suche. Allerdings habe 
ich dazu noch ein paar Fragen, das Funktionsprinzip versteh ich 
immernoch nicht so ganz.

Funktioniert das also so, dass am S-Eingang des Flipflops ein Taktsignal 
anliegt. Wenn der Komparator nun vernimmt, dass die Shuntspannung die 
Schwelle überschreitet setzt er den R-Eingang des Flipflops auf high. 
Der Ausgang des Flipflops schaltet den Enable ab. Nun ist am Shunt keine 
Spannung mehr zu messen (oder bei inhibit-chopping nur eine negative), 
der R-Eingang des Flipflops liegt nun wieder auf low, allerdings wird 
auf die nächste Taktflanke gewartet ehe der Enable wieder aktiviert 
wird.

Die Verzögerung beträgt hier also quasi eine Periode des Takts? Ist sie 
bei meiner RC-Variante jedoch nicht auch immer gleich lang?

@starwatcher. Nein die Schaltung ist so wie auf dem Plan oben aufgebaut. 
Das gibt eine Schrittmotorsteuerung mit 3x L298. Demnach möchte ich auf 
3x L297 vezichten und für Takt/Richtung bzw. Halbschritt/Vollschritt 
Betrieb einen µC verwenden, der die Signale für die H-Brücke direkt 
ausgibt. Die Stromregelung wollte ich dann jeweils analog aufbauen. Viel 
günstiger wird das dann natürlich nicht aber vielleicht profitieren noch 
andere leute von einer günstigen Steuerung wenn man hier und da n 
bisschen sparen kann :-) Und wie immer lerne ich was dabei in Puncto 
Analogtechnik.

Lg PoWl

Autor: Paul H. (powl)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
So, ich habe das testweise mal so aufgebaut. Allerdings ergibt sich noch 
ein Problem aus diesem Aufbau:

Wenn S auf High liegt und ebenfalls R auf High, weil der Strom hoch 
genug ist, dann schaltet das Flipflop die H-Brücke aus, sofort danach 
sinkt R auf Low weil der OpAmp keinen Strom mehr misst. Dadurch schaltet 
das Flipflop die H-Brücke wieder an, und so geht das Spielchen 
hochfrequent weiter.

Ist der Koppelkondensator in deinem Datenblatt dazu da, um das zum 
umgehen? Übernimmt dann das FlipFlop nicht einfach nur die Funktion 
eines Latches? Wäre hier ein Flankengesteuertes Flipflop also nicht 
sinnvoller?

lg PoWl

Autor: Teeeeeeee (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
..zZzZzischHH!
PfFf.fFFtTT!
WAS
MACHT
MEIN
KOCHER???
Sollte der nicht schon längst
fertig sein!?
BUHHHHHhh..ahaHaHAHArRrr..!

Autor: Johannes M. (johnny-m)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Paul Hamacher wrote:
> Ist der Koppelkondensator in deinem Datenblatt dazu da, um das zum
> umgehen?
Es ist kein "Datenblatt" und auch kein "Koppelkondensator". Die 
Schaltung aus R, C und D ist ein Impulsgatter (und zwar eines für 
fallende Flanken) und macht aus dem eigentlich pegelgetriggerten FF ein 
flankengetriggertes! Die kleinen Bildchen vom Signalverlauf neben der 
Schaltung sollen das eigentlich verdeutlichen...

Das Impulsgatter muss so dimensioniert werden, dass es Impulse erzeugt, 
die ausreichend lang sind, um den Eingang vom FF anzusteuern, aber 
gleichzeitig möglichst kurz. Die Zeitkonstante von dem RC-Glied sollte 
also deutlich unter der Periodendauer des Rechtecksignals liegen.

> Übernimmt dann das FlipFlop nicht einfach nur die Funktion
> eines Latches? Wäre hier ein Flankengesteuertes Flipflop also nicht
> sinnvoller?
Siehe oben... Ein flankengetriggertes RS-FF war nicht erhältlich, 
weshalb ich obige Schaltung entworfen habe. Lustigerweise habe ich die 
FFs auch diskret aus Gattern aufgebaut, weil es praktisch keine leicht 
erhältlichen RS-FFs mit den geforderten Eigenschaften mehr gibt.

Wenn man eine Schaltung nachbaut, sollte man sie schon komplett 
übernehmen. Meine Schaltungen enthalten in den wenigsten Fällen 
überflüssige Komponenten...

Autor: Johannes M. (johnny-m)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
So, ich habe mal in den Altlasten gewühlt und den kompletten 
Originalschaltplan von der Chopperschaltung rausgekramt. Vielleicht ist 
Dir damit geholfen...

Das Impulsgatter ist hier auf 16 kHz Choppertakt ausgelegt. Die 
Schaltung funktioniert definitiv.

R4, R5 und R7, R8 sind übrigens die Sense-Widerstände.

BTW:
In der Versuchsbeschreibung wird nicht erwähnt, dass das FF einen 
priorisierten Reset haben muss...

Autor: Paul H. (powl)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Thx, ich nehme an diese C-RD Kombination soll steile Taktflanken 
erzeugen, richtig?

Wäre ein D-Flipflop eigentlich nicht genau das, was ich brauche?

Autor: Johannes M. (johnny-m)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Paul Hamacher wrote:
> Thx, ich nehme an diese C-RD Kombination soll steile Taktflanken
> erzeugen, richtig?
Genau das ist im Prinzip die Aufgabe eines Impulsgatters. Und die 
(schematischen) Kurvenverläufe der Signale sind in der Abbildung in der 
Versuchsanleitung dargestellt...

> Wäre ein D-Flipflop eigentlich nicht genau das, was ich brauche?
Ich habe afair damals, als ich die Schaltung entworfen habe, überlegt, 
ob es auch anders (einfacher) geht und habe einige Möglichkeiten 
durchgespielt, möglicherweise nicht alle. Ob es mit einem D-FF auch 
irgendwie funktionieren kann, kann ich so aus dem Stegreif nicht sagen. 
Ich denke aber nicht, denn welches Signal willst Du an den Takteingang 
und welches an den D-Eingang legen? Ohne Zusatzbeschaltung ginge auch 
das nicht.

Ich habe mich bei der Schaltung grundsätzlich weitgehend an den internen 
Aufbau des L297 gehalten.

Übrigens ist bei dem oben gezeigten Eingangssignal auch eine 
Priorisierung des Reset nicht unbedingt erforderlich, verhindert aber 
ungewünschte Schaltspitzen in bestimmten (seltenen) Fällen...

Autor: Paul H. (powl)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Johannes M. wrote:
>> Wäre ein D-Flipflop eigentlich nicht genau das, was ich brauche?
> Ich habe afair damals, als ich die Schaltung entworfen habe, überlegt,
> ob es auch anders (einfacher) geht und habe einige Möglichkeiten
> durchgespielt, möglicherweise nicht alle. Ob es mit einem D-FF auch
> irgendwie funktionieren kann, kann ich so aus dem Stegreif nicht sagen.
> Ich denke aber nicht, denn welches Signal willst Du an den Takteingang
> und welches an den D-Eingang legen? Ohne Zusatzbeschaltung ginge auch
> das nicht.

An den Takteingang kommt das Oszillatorsignal, an den D-Eingang der 
Ausgang des OpAmps. Bei jeder Taktflanke wird der Pegel, der grad am 
D-Eingang anliegt zum Ausgang rausgetaktet.

Das ist im Prinzip (fast) genau das, was die RS-Flipflop-Schaltung mit 
den steilen Taktflanken auch macht: Zunächst ist hier R auf Low. Ausgang 
ist auf High, der Strom Steigt. Wenn er hoch genug ist wird R high, der 
Ausgang sofort Low und damit auch gleich wieder R low. Bei der nächsten 
steilen Taktflanke wird der Ausgang wieder auf High geschaltet. Der 
einzige Unterschied zum D-Flipflop besteht darin, dass der Ausgang 
jederzeit auf Low geschaltet werden kann, auf High jedoch nur bei jeder 
positiven Taktflanke. Bei D-Flipflop wird eben nur bei einer Taktflanke 
geschaltet. Das müsste jedoch gleichermaßen funktionieren.

Ich werde aber wohl die RS-Flipflop-Variante nehmen, da der Choppertakt 
sowieso vom µC kommt und ich hier ganz eifnach mit der Hardware-PWM 
kurze Takt-Pulse erzeugen kann.

> Ich habe mich bei der Schaltung grundsätzlich weitgehend an den internen
> Aufbau des L297 gehalten.
>
> Übrigens ist bei dem oben gezeigten Eingangssignal auch eine
> Priorisierung des Reset nicht unbedingt erforderlich, verhindert aber
> ungewünschte Schaltspitzen in bestimmten (seltenen) Fällen...

Meinst du mit Schaltspitzen die, von mir vorhin schon beschriebenen, 
heftigen Oszillationen wenn der OpAmp auf High schaltet während S noch 
auf High ist? Die würden ja automatisch verschwinden wenn die 
Taktimpulse kurz genug sind.

Autor: Johannes M. (johnny-m)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Paul Hamacher wrote:
> Das müsste jedoch gleichermaßen funktionieren.
Nein, das funktioniert nicht! Die Grundidee hinter der Schaltung mit den 
RS-FFs ist schließlich, dass der Strom durch eine Pulsweitenmodulation 
geschaltet wird. Es wird einfach bei konstanter Periodendauer das 
Ein/Aus-Verhältnis variiert.

> Ich werde aber wohl die RS-Flipflop-Variante nehmen, da der Choppertakt
> sowieso vom µC kommt und ich hier ganz eifnach mit der Hardware-PWM
> kurze Takt-Pulse erzeugen kann.
Kann man auch machen.

> Meinst du mit Schaltspitzen die, von mir vorhin schon beschriebenen,
> heftigen Oszillationen wenn der OpAmp auf High schaltet während S noch
> auf High ist? Die würden ja automatisch verschwinden wenn die
> Taktimpulse kurz genug sind.
Nein. Ich meine damit die Tatsache, dass es evtl. vorkommen kann, dass 
der Strom beim nächsten Impuls am Set-Eingang evtl. noch nicht wieder 
unter dem Grenzwert ist und deshalb dann für kurze Zeit wieder 
eingeschaltet wird.

Autor: Paul H. (powl)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Ich habe das nun mal so aufgebaut und es scheint ganz gut zu laufen :-)

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.