Forum: Mikrocontroller und Digitale Elektronik Motortreiber-IC DRV8870 Vorstellung (und Fragen)


von Tuxpilot (Gast)


Lesenswert?

Hallo!

Ich bin auf der Suche nach einer kompakten H-Brücke, bei der ich EMK 
messen kann, auf den DRV8870 von Texas Instruments gestoßen.
Was haltet ich von ihm?
- 3,6A
- 565mΩ Rds(on)
- bis 200kHz
- 6,5–45V VM
- SOIC8 Bauform (SMD, aber keine 16+ Pins für nur einen Motor)
- Keine weiteren Bauteile nötig (Außer Kondensatoren für VM)
- Ab 3€ (Mouser)
Datenblatt: http://www.ti.com/lit/ds/symlink/drv8870.pdf

Ist ein recht neuer Baustein, vermutlich nur deswegen noch nicht in der 
H-Brücken Übersicht.
Soll ich den da mal eintragen? Der sticht ja durchaus hervor.

Nun noch zwei Fragen:
1. Ich meine, ich hätte im AVR Softwarepool mal einen 
PID-Motortreiber mit EMK für Attiny861 gesehen.
Wie kann ich den (oder sowas ähnliches) wiederfinden, irgendwelche 
Vorschläge?
2. Wenn ich beide Ausgänge öffne (High-Z), kann ich über Spannungsteiler 
von den Motoranschlüssen nach GND und ein differentielles ADC-Kanalpaar 
EMK messen, richtig? (Nach einer kurzen Wartezeit, bis sich die 
EMK-Spannung aufgebaut hat.)

Für Antworten wäre ich dankbar, auch wenn ihr meine Vorstellung von EMK 
komplett umschmeißt (wenn sie Falsch ist). ;)

Gruß, Tuxpilot

P.S.: Ich möchte einen L293 ersetzen, der an meinem Lernroboter zwei 
ungleich belastete Motoren treibt. (Und kaputt ist...)

von Toralf W. (willi)


Lesenswert?

Morgen,

ich finde den DRV8871 besser. Da braucht man zur Strombegrenzung keinen 
niederohmigen Widerstand (Baugröße + Temperatur...).

http://www.ti.com/lit/ds/symlink/drv8871.pdf

LG

von Rudolph (Gast)


Lesenswert?

Den DRV8871 hatte ich mir auch schon mal aufgeschrieben als 
nice-to-have, gibt es zu dem schon irgendwo Breakout-Boards wie zu den 
DRV8801?

Wobei ich berichten kann, dass mir von den DRV8801 einige scheinbar 
grundlos abgefackelt sind und immer gleich katastrophal, also mit 
Kurzschluss durch die Brücke.
Von den Angaben kontinuierlich 1A und 2,8A Peak für die Pololu Boards 
halte ich nicht mehr viel, mit einem Motor der im Betrieb 600mA 
gebraucht hat sind die Dinger reproduzierbar abgebrannt.
So vielleicht 200mA würde ich den Dingern zutrauen.

Da versprechen die DRV8871 ja deutlich mehr und sind ein neueres Design, 
vielleicht klappt es da ja auch mit dem 600mA Motor ohne rapide 
Korosion.

von Tuxpilot (Gast)


Lesenswert?

Toralf W. schrieb:
> ich finde den DRV8871 besser. Da braucht man zur Strombegrenzung keinen
> niederohmigen Widerstand (Baugröße + Temperatur...).

Klasse, den nehm ich!
Den DRV8801 kannte ich auch schon, hat mir zu viele Pins.

von aSma>> (Gast)


Lesenswert?

Tuxpilot schrieb:
> 1. Ich meine, ich hätte im AVR Softwarepool mal einen
> PID-Motortreiber mit EMK für Attiny861 gesehen.
>...

Servus,
ich glaube der Autor nennt sich: m&m´s oder m+n, k.A. Der ist einfach 
unfähig den gleichen nickname zu nehmen.

Beitrag "Drehzahlregler für DC-Motor, ATmega48-328"

Jedenfalls, wozu willst du die EMK messen? Für eine Lageregelung oder 
Drehzahlregelung? Ohne Kalibrierung ist es auch nur ein Schätzwert, dann 
kannst du auch gleich den Luenberger Beobachter nehmen.

Der von dir genannte Chip sieht ganz OK aus. Die Schaltfrequenz sieht 
ganz interessant aus, vorallem weil ich gerade so kleine portescap 
Motoren mit 40µH hier liegen habe...

mfg

von m.n. (Gast)


Lesenswert?

aSma>> schrieb:
> ich glaube der Autor nennt sich: m&m´s oder m+n, k.A. Der ist einfach
> unfähig den gleichen nickname zu nehmen.

War das nicht C&A oder P&C?
Der weiß wahrscheinlich selber nicht, wie er heißt.

Tuxpilot schrieb:
> 2. Wenn ich beide Ausgänge öffne (High-Z), kann ich über Spannungsteiler
> von den Motoranschlüssen nach GND und ein differentielles ADC-Kanalpaar
> EMK messen, richtig? (Nach einer kurzen Wartezeit, bis sich die
> EMK-Spannung aufgebaut hat.)

Keine kurze Wartezeit, sondern solange warten, bis (bevor) der nächste 
PWM-Zyklus beginnt.
Die EMV hat eine Restwelligkeit, die man aber nicht per Software 
glätten/filtern sollte. Das gibt nur Regelschwingungen bei Lastwechseln. 
Der Motor mit seiner Rotormasse gleich die Welligkeit schon selber aus.

von Tuxpilot (Gast)


Lesenswert?

aSma>> schrieb:
> Jedenfalls, wozu willst du die EMK messen? Für eine Lageregelung oder
> Drehzahlregelung? Ohne Kalibrierung ist es auch nur ein Schätzwert, dann
> kannst du auch gleich den Luenberger Beobachter nehmen.

Für eine Drehzahlregelung. Ich brauche keine bestimmte Drehzahl, sie 
soll aber unter Belastung konstant bleiben. Also eine Lastregelung.
Was genau meinst du mit Kalibrierung? Das Verhältnis von Drehzahl und 
EMK?

von Tuxpilot (Gast)


Lesenswert?

m.n. schrieb:
> Keine kurze Wartezeit, sondern solange warten, bis (bevor) der nächste
> PWM-Zyklus beginnt.

Das scheint mir bei meinen 40kHz nicht sinnvoll, da dürfte ich dann 
einfach den Spannungsabfall über einen FET messen, und somit nur den 
Motorstrom.
Meine Idee ist, den Treiber vor der Messung ausschalten, etwa 100μs 
warten, messen und dann mit PWM weiter treiben. Das ganze 40 mal die 
Sekunde.

von aSma>> (Gast)


Lesenswert?

Tuxpilot schrieb:
> Für eine Drehzahlregelung. Ich brauche keine bestimmte Drehzahl, sie
> soll aber unter Belastung konstant bleiben. Also eine Lastregelung.
> Was genau meinst du mit Kalibrierung? Das Verhältnis von Drehzahl und
> EMK?

Eine Lastregelung ist eine Drezahlregelung. Der "Zug" fährt immer mit 
der gleichen Geschw. über Berg und Tal.

Ich weiß nicht wie genau deine Regelung sein soll. In Datenblätter 
stehen alle Zeitkonstanten drin, sodass einer Umrechnung nichts im Wege 
stehen sollte. Sonst musst du deinen Sensor auf die Geschwindigkeit 
kalibrieren.

Wenn du nicht weiter kommst. Es gibt auch Tachogeneratoren, die auf die 
Motorwellenenden montiert werden...

von aSma>> (Gast)


Lesenswert?

m.n. schrieb:
> War das nicht C&A oder P&C?
> Der weiß wahrscheinlich selber nicht, wie er heißt.

Was für eine Armut. M.n verarscht sich sogar selbst. Ist das jetzt 
Selbstironie oder einfach nur zu heiß gebadet?

von Tuxpilot (Gast)


Lesenswert?

aSma>> schrieb:
> Ich weiß nicht wie genau deine Regelung sein soll. In Datenblätter
> stehen alle Zeitkonstanten drin, sodass einer Umrechnung nichts im Wege
> stehen sollte. Sonst musst du deinen Sensor auf die Geschwindigkeit
> kalibrieren.
>
> Wenn du nicht weiter kommst. Es gibt auch Tachogeneratoren, die auf die
> Motorwellenenden montiert werden...

Das Datenblatt vom Motor? Gibt’s nicht... Steht auch kein Hersteller 
drauf, nur so ein +-Symbol. Alles was ich weis:
- 3-poliger Eisenanker mit geraden Nuten
- 3V Nennspannung
- 2Ω Spulenwiderstand
- 250μH
- Bei 5V: 11.000U/min und 500mA im Leerlauf
- Abmessungen: 20mmØ x 24mm
Wird aber vielleicht noch ausgetauscht und einen extra Sensor möchte ich 
nicht haben.

von Thorsten O. (Firma: mechapro GmbH) (ostermann) Benutzerseite


Lesenswert?

Hallo Rudolph,

> Wobei ich berichten kann, dass mir von den DRV8801 einige scheinbar
> grundlos abgefackelt sind und immer gleich katastrophal, also mit
> Kurzschluss durch die Brücke.
> Von den Angaben kontinuierlich 1A und 2,8A Peak für die Pololu Boards
> halte ich nicht mehr viel, mit einem Motor der im Betrieb 600mA
> gebraucht hat sind die Dinger reproduzierbar abgebrannt.
> So vielleicht 200mA würde ich den Dingern zutrauen.

Da kann aber TI bzw. der DRV8801 nichts dafür, dass liegt am Design von 
Pololu. Die dürften streng genommen nicht einfach die max. Ratings aus 
dem Datenblatt übernehmen, wenn ihr Kühlkonzept so schlecht ist, dass 
die fertige Schaltung das nicht hergibt. Aber dann würde niemand die 
Boards kaufen...

Mit freundlichen Grüßen
Thorsten Ostermann

von m.n. (Gast)


Lesenswert?

Tuxpilot schrieb:
> m.n. schrieb:
>> Keine kurze Wartezeit, sondern solange warten, bis (bevor) der nächste
>> PWM-Zyklus beginnt.
>
> Das scheint mir bei meinen 40kHz nicht sinnvoll, da dürfte ich dann
> einfach den Spannungsabfall über einen FET messen, und somit nur den
> Motorstrom.

Probiere es aus und berichte ;-)

> Meine Idee ist, den Treiber vor der Messung ausschalten, etwa 100μs
> warten, messen und dann mit PWM weiter treiben.

Bleibt die Frage, was Du nach 100 µs an dem Motor messen kannst? Die EMK 
vermutlich noch nicht.

> Das ganze 40 mal die Sekunde.

Das ist recht wenig für eine zügige Regelung. Ich hatte mit 200 - 400 Hz 
PWM gearbeitet, womit man rund fünf- bis zehnmal schneller regeln kann. 
Trotz der niedrigen Frequenz blieb der Motor recht ruhig.

Wenn Du mit nur einer Drehrichtung testen willst, kannst Du die erste 
Schaltung mit ATmega48 und FET aufbauen und modifizieren. Da bekommst Du 
schon einmal eine Einschätzung, was mit Deinem Motor geht - und was 
nicht!

von Tuxpilot (Gast)


Lesenswert?

m.n. schrieb:
>> Meine Idee ist, den Treiber vor der Messung ausschalten, etwa 100μs
>> warten, messen und dann mit PWM weiter treiben.
>
> Bleibt die Frage, was Du nach 100 µs an dem Motor messen kannst? Die EMK
> vermutlich noch nicht.
>
>> Das ganze 40 mal die Sekunde.
>
> Das ist recht wenig für eine zügige Regelung. Ich hatte mit 200 - 400 Hz
> PWM gearbeitet, womit man rund fünf- bis zehnmal schneller regeln kann.

m.n. schrieb:
> Probiere es aus und berichte ;-)

OK, mach ich. Vielleicht morgen oder noch später, schreibe gerade am I2C 
Interface des Roboters. (FEZ Cerberus, schreibt meine Schule so vor.)

Viel länger als 100μs möchte ich nicht warten, dann schläft der Treiber 
ein.

Attiny13A, 841 und Atmega32 hätte ich zum testen da, kann der Atmega48 
etwas besonders nützliches? (Meines Wissens nicht)

von Toralf W. (willi)


Lesenswert?

Abend,

ich nutze den DRV8871 mit 62,5kHz PWM. Zum messen schalte ich alle 5 ms 
für 640µs die PWM ab. Gemessen wir 8 mal (daraus der Mittelwert) 
begonnen wird mit der ersten Messung nach 320µs Pause. Treiber sleep 
spielt keine Rolle, der wacht schnell wieder auf.

Damit bekommt man ausreichend genaue Werte um die Drehzahl nach regeln 
zu können. Bei mir macht das übrigens ein Tiny85 mit interner 16MHz 
(PLL).

LG

von Rudolph R. (rudolph)


Lesenswert?

Thorsten O. schrieb:
>> Wobei ich berichten kann, dass mir von den DRV8801 einige scheinbar
>> grundlos abgefackelt sind und immer gleich katastrophal, also mit
>> Kurzschluss durch die Brücke.
>> Von den Angaben kontinuierlich 1A und 2,8A Peak für die Pololu Boards
>> halte ich nicht mehr viel, mit einem Motor der im Betrieb 600mA
>> gebraucht hat sind die Dinger reproduzierbar abgebrannt.
>> So vielleicht 200mA würde ich den Dingern zutrauen.
>
> Da kann aber TI bzw. der DRV8801 nichts dafür, dass liegt am Design von
> Pololu. Die dürften streng genommen nicht einfach die max. Ratings aus
> dem Datenblatt übernehmen, wenn ihr Kühlkonzept so schlecht ist, dass
> die fertige Schaltung das nicht hergibt. Aber dann würde niemand die
> Boards kaufen...

Zu heiss war definitiv nicht das Problem, die sind verstorben bevor die 
überhaupt heiss werden konnten, entweder gleich beim Einschalten oder 
beim Umschalten der Drehrichtung.

Und immer gab es dabei einen Kurschluss durch die Brücke, was besonders 
witzig ist wenn man das Ding nicht zum Testen an einem Labor-Netzteil 
betreibt.

Ach ja, die sind auch verstorben mit Labor-Netzteil dran bei dem die 
Strombegrenzung auf unter 2A eingestellt war.
Übrigens bei 12V.

von Simon K. (simon) Benutzerseite


Lesenswert?

Rudolph R. schrieb:
>
> Zu heiss war definitiv nicht das Problem, die sind verstorben bevor die
> überhaupt heiss werden konnten, entweder gleich beim Einschalten oder
> beim Umschalten der Drehrichtung.
>
> Und immer gab es dabei einen Kurschluss durch die Brücke, was besonders
> witzig ist wenn man das Ding nicht zum Testen an einem Labor-Netzteil
> betreibt.
>
> Ach ja, die sind auch verstorben mit Labor-Netzteil dran bei dem die
> Strombegrenzung auf unter 2A eingestellt war.
> Übrigens bei 12V.

Dann war der bulk Kondensator an der Versorgungsspannung wohl zu klein 
und der Motor hat beim Bremsen zurückgespeist und die ZK Spannung über 
das zulässige Maß ansteigen lassen.

von m.n. (Gast)


Lesenswert?

Rudolph R. schrieb:
> Ach ja, die sind auch verstorben mit Labor-Netzteil dran bei dem die
> Strombegrenzung auf unter 2A eingestellt war.
> Übrigens bei 12V.

Dann ist es vermutlich zu Überspannung an den Ausgängen gekommen. Heute 
ist es ja 'incool', wenn man bei Applikationen Freilaufdioden an den 
Ausgängen vorsieht.
Ferner dürften diese Winzlinge sofort Probleme mit der internen 
Verlustleistung bekommen, falls die ext. Kühlung zu gering ist. Mit 
einem Innenwiderstand von knapp 0,6 Ohm ist der Chip ganz fix 
aufgeheizt. Erwarten würde ich von 'modernen' Treibern eher 50 mOhm.

Schön, daß man nicht jede Erfahrung selber machen muß ;-) Dann werde ich 
wohl weiterhin auf den uralten L6201/03 setzen, sofern die 
Versorgungsspannung >= 12 V beträgt.

Tuxpilot schrieb:
> Attiny13A, 841 und Atmega32 hätte ich zum testen da,

Den Tiny13 hatte ich zuerst verwendet, geht also auch.

> kann der Atmega48 etwas besonders nützliches?

Der kann schnell (20 MHz), klein (28/32 Pin), viel 
IO/Timer/ADC/USART/IIC und DIP ;-)

von Rudolph (Gast)


Lesenswert?

m.n. schrieb:
> Heute ist es ja 'incool', wenn man bei Applikationen Freilaufdioden an den
> Ausgängen vorsieht.

Da die Brücke komplett integriert ist und da nur OUT+ und OUT- raus 
kommem, ist das etwas schwierig, da zusätzliche Freilaufdioden mit dran 
zu packen.

von m.n. (Gast)


Lesenswert?

Dioden gegen V++ und GND für jeden Ausgang. Ich sehe da kein Problem.

von Thorsten O. (Firma: mechapro GmbH) (ostermann) Benutzerseite


Lesenswert?

Freilaufdioden braucht man bei integrierten MOSFET-Brücken vor allem, um 
die Verlustleistung im Chip zu reduzieren. Wenn die Pololu-Boards schon 
beim Einschalten sterben, liegt das Problem eher an zu kleinen 
Puffer-Elkos (da sind aus Platzgründen meist nur ein paar Kerkos drauf) 
und einer zu hohen Versorgungsspannung (bzw. zu wenig Reserve zur 
Maximalspannung des Treibers). Gerade bei DC-Motoren sind die 
Kondensatoren wichtig, weil bei schnellen Drehzahländerungen die Energie 
irgendwo hin muss. Ins Netzteil kann meist nicht zurück gespeist werden, 
also steigt dann die Versorgungsspannung an. Wenn die Elkos zu klein 
sind, kann das erhebliche Spannungsspitzen verursachen.

@m.n.: Das ist kein Grund an Dinosaurieren wie dem L6203 festzuhalten. 
Wenn man FET-Brücken vernünftig designed, gibt es da inzwischen deutlich 
bessere Lösungen.

Mit freundlichen Grüßen
Thorsten Ostermann

von m.n. (Gast)


Lesenswert?

Thorsten O. schrieb:
> @m.n.: Das ist kein Grund an Dinosaurieren wie dem L6203 festzuhalten.
> Wenn man FET-Brücken vernünftig designed, gibt es da inzwischen deutlich
> bessere Lösungen.

Ein Blick auf Deine Seite zeigt mir sogar noch L298.
Dagegen ist der L6203 ja noch ein Baby ;-)

von Rudolph (Gast)


Lesenswert?

m.n. schrieb:
> Dioden gegen V++ und GND für jeden Ausgang. Ich sehe da kein Problem.

Du hast völlig Recht, ich habe da ein Problem gesehen wo gar keines ist.


Das mit dem Elko werde ich dann auch mal im Hinterkopf behalten fürs 
nächste Mal, da waren aber mindestens 100µF zusätzlich mit dran 
geklemmt.

von Thorsten O. (Firma: mechapro GmbH) (ostermann) Benutzerseite


Lesenswert?

Hallo m.n.,

> Thorsten O. schrieb:
>> @m.n.: Das ist kein Grund an Dinosaurieren wie dem L6203 festzuhalten.
>> Wenn man FET-Brücken vernünftig designed, gibt es da inzwischen deutlich
>> bessere Lösungen.
>
> Ein Blick auf Deine Seite zeigt mir sogar noch L298.
> Dagegen ist der L6203 ja noch ein Baby ;-)

Auch den setze ich schon lange nicht mehr für neue Designs ein. 
Bestehende Produkte muss man deswegen natürlich nicht über Board werfen, 
so lange es eine Nachfrage dafür gibt.

Mit freundlichen Grüßen
Thorsten Ostermann

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.