PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : TLE 5205-2 Ist PWM Betrieb mit diesem Motortreiber möglich?



Andy11jj
04.01.2011, 22:11
Bekommen habe ich ihn noch nicht aber eine Projektgruppe hat einmal mit dem gearbeitet und alle 4 Treiber sind nach einer Zeit gestorben. Ich glaube dass es an der PWM liegt mit der sie ihn betrieben haben.

http://www.mikrocontroller.net/topic/55955

Der hier schreibt dass in einem von Infineon geschriebenes Dokument sagt, dass der Motortreiber für 20 kHz nicht geeignet ist. Im Datenblatt steht Nüsse von PWM drinnen.

Soll ich diesen Motortreiber jetzt für meinen Linienverfolgungsroboter nehmen und es mit PWM ausprobieren oder ist das Risiko zu groß?

lg andy

wisda.noobie
19.01.2011, 14:52
kann es vielleicht sein, dass man in der Schaltung die Freilaufdioden vergessen hat? Eigentlich sollte es mit PWM keine Probleme geben, wenn man diese einsetzt...ich kann mir aber vorstellen, dass die ICs sterben wenn man sie ohne die Freilaufdioden betreibt...

BMS
19.01.2011, 15:40
Der Motortreiber hat Freilaufdioden integriert, das sollte kein Problem sein (wobei zusätzliche nie schaden können).
Wenn du die PWM-Frequenz einstellen kannst, dann stelle sie so niedrig wie möglich (Prescaler beim Timer im Prozessor o.ä.).
Das reduziert die Verluste beim Umschalten und die Kabel zu den Motoren strahlen weniger HF ab.
Habt ihr die Motoren damals auch entstört? Mit Kondensatoren, Spulen?
Wurden die Motortreiber auch noch innerhalb ihrer Spezifikation betrieben und ausreichend gekühlt?
Bei dem TLE5205 hat man noch das Problem, dass es keinen separaten PWM-Eingang gibt, da muss man sich irgendwie noch zu helfen wissen, wahrscheinlich mit ein paar Dioden und Widerständen.
Die truth table sieht ja so aus:


IN | OUT
1 2 | 1 2
---------
0 0 | 1 0
0 1 | 0 1
1 0 | 0 0
1 1 | Z Z


Hier hab ich übrigens vor ein paar Tagen angefangen, im RN-Wissen eine Tabelle zu den Motortreibern zu erstellen:
http://rn-wissen.de/index.php/Getriebemotoren_Ansteuerung#Vergleich_der_gezeigte n_Motortreiber.28-bausteine.29

Grüße,
Bernhard

Andy11jj
19.01.2011, 18:57
Wenn du die PWM-Frequenz einstellen kannst, dann stelle sie so niedrig wie möglich (Prescaler beim Timer im Prozessor o.ä.).
Das wird glaube ich zum größeren Problem weil ich mit einen externen Quarz von 20MHz takte und das minimalste was ich rausbekomme 19 kHz sind. Leider kann der TLE5205 nur maximal 2kHz. Was passiert aber wenn ich ihn mit 20kHz betreibe?
Die Treiber sind noch nicht da deswegen frage ich.


Habt ihr die Motoren damals auch entstört? Mit Kondensatoren, Spulen?
Nein, nur einen Entstörkondensator der standardmäßig immer drauf ist, aber gegen das Gehäuse nicht.


Wurden die Motortreiber auch noch innerhalb ihrer Spezifikation betrieben und ausreichend gekühlt?
Ja.


Bei dem TLE5205 hat man noch das Problem, dass es keinen separaten PWM-Eingang gibt, da muss man sich irgendwie noch zu helfen wissen, wahrscheinlich mit ein paar Dioden und Widerständen.

Das stimmt zwar, es gibt aber den Zustand Z (Spannung trennen), dann rollt er sich aus. Ich dachte aber eher daran, da der Regler nicht sehr gut funktioniert hat und der Roboter sich immer aufgeschwungen hat, die Motoren über die PWM kurzzuschließen. Das soll eine schönere und vor allem genauere Ansteuerung ergeben.

Wieso oder besser gesagt was soll da denn noch dazwischen?

lg andy

wisda.noobie
19.01.2011, 19:30
Die Frequenz zu reduzieren dürfte ja kein Problem sein... Ich würd die freilaufdioden trotz der integrierten einbauen, man weis ja nie...

Andy11jj
19.01.2011, 19:36
Die Frequenz zu reduzieren dürfte ja kein Problem sein...
Ich kann zwar 8MHz intern fahren, jedoch ist das zu langsam um die Sensoren auszulesen und dann die Sensordifferenz zu berechnen. Mit 20MHz ist das schon gut so. Also wird das wohl zum größeren Problem. Mal schaun was er bei 20MHz macht.


Ich würd die freilaufdioden trotz der integrierten einbauen, man weis ja nie...
Glaube ich ist kaum notwendig. Das einzig wichtig interessante ist doch wohl was BMS damit gemeint hat als er sagt dass da noch was dazwischen gehört. Ich könnte mir eig nichts vorstellen.

wisda.noobie
19.01.2011, 19:39
Ich bin mir mit den Timern/Contern eines AVR nicht sonderlich vertraut, aber wäre es nicht eine Möglichkeit, einen Interrupt auszulösen der wiederrum einen Zähler startet, so dass z.B. 20 mal ein High auftreten muss, damit einmal ein High an einem Ausgang abgegeben wird?

Andy11jj
19.01.2011, 20:01
Ich bin mir mit den Timern/Contern eines AVR nicht sonderlich vertraut, aber wäre es nicht eine Möglichkeit, einen Interrupt auszulösen der wiederrum einen Zähler startet, so dass z.B. 20 mal ein High auftreten muss, damit einmal ein High an einem Ausgang abgegeben wird?

Hmm, also ich steuer das ganze so an, dass ich sage:
OCR1A = 0...1024;
OCR1B = 0...1024;

Theoretisch könnte ich sowas wie eine Software in einem Timer schreiben, aber das ist schon etwas komisch würde ich sagen.
Ich benutze den Atmega644, und der hat leider nun mal den maximalen Prescaler von 1024.
Und Hardwaremäßig kann ich leider nicht mehr viel machen, da alles schon geätzt ist.

Ich glaube dieses Problem lässt sich nur schmutzig lösen.

BMS
19.01.2011, 20:57
Das einzig wichtig interessante ist doch wohl was BMS damit gemeint hat als er sagt dass da noch was dazwischen gehört. Ich könnte mir eig nichts vorstellen.
Hab mal ne Skizze im Anhang.
Wenn PWM=5V dann würde der Motortreiber auf hochohmig schalten, wenn PWM=0V dann sperren die Dioden und es gelten die durch DIR_1 und DIR_2 festgelegten Richtungsinformationen. Nützlich ?

Grüße,
Bernhard

BMS
19.01.2011, 21:28
Ich glaube mit der PWM-Frequenz passt das nicht.
Schau dir mal Figure 13-9 in Datenblatt vom Atmega644 an. (Seite 96).

Da ist es zwar für Prescaler 8 gezeigt, es geht mir aber ums Prinzip.
Nach hier 8 Taktzyklen wird der Timer erst erhöht. Gesetzt wird der PWM-Pin wenn der Timer den Wert 0 enthält (und gelöscht wenn er den OCR-Wert erreicht).
Wenn der Timer auf 8 Bit eingestellt ist, wiederholt das sich aber erst nach "256 mal erhöhen".
Also müsste die tatsächliche PWM-Frequenz dann doch 20Mhz/1024/256= ca.76Hz sein.

Hast du ein Oszilloskop da, oder ein Multimeter, welches auch Frequenz messen kann? Messe bitte einmal am PWM-Pin, welche Frequenz jetzt da wirklich rauskommt (bei 50% Tastverhältnis). Dann wüsstest du das mal sicher.

Grüße,
Bernhard

Andy11jj
19.01.2011, 21:41
Schau dir mal Figure 13-9 in Datenblatt vom Atmega644 an. (Seite 96).
Du hast absolut recht.
Der TImer zählt ja bei einem 8 Bit bis 255 und wenn er erst 0 erreicht hat findet der Interrupt statt und das kann ich nocheinmal um 1024 prescalen.

Also da ich den Timer1 nutze kann ich sogar noch weiter runter auf Takt/1024/Prescaler.
Und wenn ich jetzt noch den Timer früher rücksetze kann ich das auch manipulieren. Das beruhigt mich sehr, denn die Platine hat mich 5 Stunden zum Bbestücken, austesten... gekostet.

Guter Einwand!


Wenn PWM=5V dann würde der Motortreiber auf hochohmig schalten, wenn PWM=0V dann sperren die Dioden und es gelten die durch DIR_1 und DIR_2 festgelegten Richtungsinformationen. Nützlich ?

Was spricht aber dagagen die PWM direkt auf In1 raufzugeben?
Durch umschalten des In2 kann ich dann entscheiden ob ich die PWM auf Kurzschluss betreibe oder auf den "Z" Zustand.

Danke bisher!!

WL
20.01.2011, 13:00
Was spricht aber dagagen die PWM direkt auf In1 raufzugeben?


Schau mal hier : http://141.69.160.32/~krausg/Microcontroller/CD_Microcontroller/Unterricht%20und%20Beispiele%20und%20Projekte/Unterricht_Projekte/Projekt_PWM-Fahrtregler%20f%C3%BCr%20DC-Eisenbahnen/Projektdokumentation%20und%20Beschreibung%20als%20 WINWORD-File/Microsoft%20Word%20-%20PWM-Regler.pdf

.....da ist das wunderbar erklärt.