PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Problem mit PWM und L298



p_mork
15.02.2009, 16:17
Hallo Leute,

ich habe da ein ziemlich komisches Problem mit einem L298 - Motortreiber, der wie in https://www.roboternetz.de/wissen/index.php/Getriebemotoren_Ansteuerung#Ansteuerung_mit_dem_Sc haltkreis_L298 beschrieben angeschlossen ist und mit mit PWM gesteuert wird.

Und zwar stimmt die Spannung, die man an den Ausgängen misst, nicht mit der Spannung am entsprechendem uC-Pin überein, wenn die PWM-Frequenz hoch ist (>1kHz). Z.b. misst man am Controller-Pin 2.49V bei Vcc = 5V und OCR = 130 (8bit Fast-PWM Modus), an den Ausgängen des L298, also da wo der Motor angeschlossen wird, liegen jedoch ganze 9,9V bei Vss = 11V an. Bei OCR = 220 sinds am Controller 4.77V, am Motor 10,2V. Das heisst der Motor bekommt bei jeder eingestellten Geschwindigkeit fast immer die gleiche Spannung. Wenn man aber die PWM-Prequenz auf 225Hz senkt, ist die Spannung am Motor genau so groß wie sie sein sollte, also etwa 5,7V bei OCR = 130 und 10.2V bei OCR = 220.

Woran kann sowas liegen bzw wie kann man das verhindern? Die PWM-Frequenz auf 225Hz lassen geht nicht, weil die Motoren dann ständig biepen.

MfG Mark

PS: Einen Oszi habe ich nicht und kann deshalb auch nicht sagen, wie der Spannungsverlauf an den jeweiligen Pins genau aussieht. Alle Messungen wurden mit einem einfachen Messgerät durchgeführt.

Rollkommando
15.02.2009, 20:28
PS: Einen Oszi habe ich nicht und kann deshalb auch nicht sagen, wie der Spannungsverlauf an den jeweiligen Pins genau aussieht. Alle Messungen wurden mit einem einfachen Messgerät durchgeführt.
Und da liegt der Hund begraben, ist halt keine Gleichspannung. Beim Auschalten der Motorwicklungen entstehen Spannungspeaks, darum ja auch die Freilaufdioden. Kannst ja mal zum Verleich stattdessen eine ohmsche Last anschliessen.

Aber was stört dich denn daran? Läuft der Motor zu schnell oder wo ist das Problem?

p_mork
15.02.2009, 21:39
Hallo Rollkommando,

vor der Messung habe ich die Motoren abgeklemmt, d.h. die Ausgänge waren nirgendswo angeschlossen.



Aber was stört dich denn daran? Läuft der Motor zu schnell oder wo ist das Problem?

Je genau das ist ja das Problem. Der Motor bekommt sowohl bei OCR = 130 als auch OCR = 220 fast die gleiche Spannung und läuft dementsprechend auch fast genau so schnell. Die Software geht aber davon aus, dass er sich dann deutlich langsamer dreht.

MfG Mark

Hubert.G
16.02.2009, 13:15
Ist der Motor belastet? Ohne Last ist es leicht möglich das er sich nahezu gleich schnell dreht.

Cairol
16.02.2009, 14:25
Ein normales Digital-Multimeter zeigt dir nur Schrott an wenn du damit PWM-Spannung misst.
So ein Gerät ist nur für SINUS-förmige Wechselspannungen oder saubere Gleichspannung zu gebrauchen.

Wenn du den Effektivwert einer PWM-Spannung messen willst, könntest du:

- vor dein Digital-Multimeter noch einen RC-Tiefpass hängen.
Mit einer Grenzfrequenz von fg < fPWM/10 - also bei 1 kHz PWM-Frequenz eine fg von unter 100 Hz. (kannst auch nur 50 oder 10 Herz nehmen, dann wird das Ergebnis genauer. Die Messgeschwindigkeit spielt ja für deine Anwendung bestimmt keine große Rolle)

Die Rechnung ist einfach: fg = 1/(2*pi*R*C) wobei R dein Widerstand und C deine Kapazität ist.
Hier ist ein Rechner wo du selber mit den Werten experimentieren kannst.
http://www.sengpielaudio.com/Rechner-RCglied.htm
Als Hausnummer kannst du z.B. 330 Ohm und 4,7 uF nehmen. Das wäre für eine PWM-Frequenz von 1 kHz OK. Wenn deine Frequenz höher liegt, passt du die Werte eben entsprechend an.
Der RC-Filter glättet die PWM-Spannung so dass dein Digital-Multimeter eine brauchbare "Beinahe"-Gleichspannung auf Höhe des Effektivwerts bekommt und damit richtig anzeigen kann.

- oder du kaufst dir ein "True RMS" Digital-Multimeter.
Das kann auch bei nicht-SINUS-förmigen Spannungen - in einem bestimmten Frequenzbereich - den echten Effektivwert anzeigen.

Ob man mit einem trägen, analogen Zeigerinstrument sowas vernünftig anzeigen kann, weiß ich jetzt nicht genau.

p_mork
16.02.2009, 15:55
@ Hubert

Ja, der Motor ist belastet und dreht trotzdem fast immer gleich schnell.

@ Cairol

Sich extra eine Schaltung zu bauen, nur um die Spannnung möglichst genau zu messen, finde ich persönlich zu Overkill. Es mag schon sein, dass die angezeigten Werte etwas von der echten mittleren Spannung abweichen, aber am PWM-Pin des Controllers zeigt das Messgerät ja den richtigen Wert an, deshalb müsste es ja auch an den Ausgängen des Motortriebers funktionieren.

MfG Mark

Cairol
17.02.2009, 15:52
Naja, wenn du einen Widerstand und einen Kondensator als "Overkill" bezeichnen willst... :-s

Bei welcher PWM-Frequenz genau zeigt sich denn dieses seltsame Verhalten?

p_mork
17.02.2009, 20:32
Ab einem kHz aufwärts. Bei ca 75kHz (Fast-PWM) merkt man beim Motor überhaupt keinen Unterschied mehr zwischen OCR = 130 und 220.

Cairol
18.02.2009, 16:01
Also über 25kHz kann ich mir vorstellen, dass es Probleme gibt, weil der L298 laut Datenblatt für 25kHz ausgelegt ist. Bis 40kHz hat er noch Toleranz.
Aber wenn die Probleme schon bei 1 kHz los gehen...

Vielleicht hat ja der L298 auf deiner Schaltung auch einfach ne Macke?

p_mork
20.02.2009, 21:56
Danke für den Hinweis, dass der L298 nur bis 25 kHz ausgelegt ist. Ich habe jetzt einen neuen L298 draufgemacht und das Problem ist weg (Bei ca. 8kHz). Vielleicht hat sich ja das langjährige Betreiben des alten L298 mit 75kHz auf ihn negativ ausgewirkt und er hat deshalb den Geist aufgegeben.

Wie auch immer, der neue klappt ja. Vielen Dank für Deine Hilfe!

MfG Mark

Cairol
21.02.2009, 12:20
Ich glaube nicht, dass der L298 durch den Betrieb mit über 40kHz zerstört wird. Er kommt halt nicht mehr "hinterher" mit dem Umschalten.
Er wird wohl einen Produktionsfehler gehabt haben.
Sowas kommt selten vor, aber es kommt vor.

Schön wenn es jetzt funktioniert wie es soll.

Gruß,

Cairol