Forum: Mikrocontroller und Digitale Elektronik PWM Frequenz für den VNH3SP30-E


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
von D a v i d K. (oekel)


Bewertung
0 lesenswert
nicht lesenswert
Hi,

ich habe derzeit Probleme mit der Ansteuerung der o.g. H Brücke.
(wird heiß)

Aber zuerst die Eckdaten:
Max PWM-Frequenz laut Datenblatt: 10kHz
Verwendeter µC: Atmega88
Takt: Interne 8MHz
Verwendeter OutputPin: PB2/OC1B
Prescaler: 1/8
Motoreckdaten: 03DCM454-24-5,4-3900-22 (drive-system.com) [24V max 8A]

Wenn ich >200/255 fahre, dann läuft der Motor entsprechen mit 80% stabil 
und die H-Brücke bleibt kalt.
Reduziere ich das PWM auf 20/255 so wird die H-Brücke binnen 2 Sek heiß 
(aufließgender Finger muss zurückgezogen werden ;)


Meine Vermutung:
Die Mosfets schalten zu oft(?)

Laut Berechnung ergibt sich jedoch 3906.250 Hz Grundfreqeunz.
Zur Kontrolle hier noch mal mein init():
// Timer 0 konfigurieren
TCCR0B = ((1<<CS00) | (1<<CS02)); // clk I/O/1024 (from prescaler)
  
// Timer 0  Overflow Interrupt erlauben
TIMSK0 |= (1<<TOIE0);
  
// Timer 1 konfigurieren
TCCR1B |= (1<<CS11); //Prescaler 8

//Timer 1 Fast PWM Mode, 8 Bit schalten
TCCR1A |= (1<<WGM10);
TCCR1B |= (1<<WGM12);
  
//Timer 1 Compare Output mode einstellen: Pin geht auf high bei Compare match, auf low bei Überlauf.
TCCR1A |= (1<<COM1B1);//Nur Channel B
Ich habe absichtlich den Code beider Timer gepstet, falls Jemand einen 
Seiteneffekt kennt/sieht.

Gibt es einen Fehler in meiner Berechnung?
Ist die berechnete PWM-Frequenz dennoch zu hoch? (obwohl <=10kHz)

Würde mich über jede Info sehr freuen.

Grüße Oekel



PS: Weil wir gerade beim VNH3SP30-E sind -->Datasheet Figure 33:
Einige schutzfunktionen können ja in Kombination von DIAG/ENA & einem 
der Outputs ausgewertet werden. Da am Output bei mir an die 24V liegen 
können, frage ich mich, ob dieser (*)10K Widerstand wirdklich das 
einzige zwischen der Brücke und dem µC ist? Ich kann leider das 
Sternchen* nirgends mehr im Datenblatt finden...

von Sascha (Gast)


Bewertung
1 lesenswert
nicht lesenswert
Mal EN/DIAG mit nem Widerstand an Vcc gehangen und geguckt ob das IC die 
auf low zieht?

von Sascha (Gast)


Bewertung
1 lesenswert
nicht lesenswert
Achso und weiterhin: Mit MM/Oszi messen wie die PWM Frequenz ist, würde 
deine Frage nach "schalten zu oft" direkt beantworten. Und der 
Codeschnipsel ist ohne Fuses nutzlos.

von D a v i d K. (oekel)


Bewertung
0 lesenswert
nicht lesenswert
Sascha schrieb:
> Achso und weiterhin: Mit MM/Oszi messen wie die PWM Frequenz ist, würde
> deine Frage nach "schalten zu oft" direkt beantworten.

Nach umstellen des Prescalers auf 1/1024 erhalten ich am Oscilloscope 
eine Freqzenz von 30Hz. (Und der Chip wird nicht mehr heiß)
Was allerdings in keiner Weise meine theoretische Frage beantwortet.

Was ist zu niedrig, was ist zu hoch, um eine optimale Ausnutzung (wenig 
Verlustleistung) zu erziehlen?

> Und der
> Codeschnipsel ist ohne Fuses nutzlos.

Ich finde In den Fuses des Atmega88 EINE einzige relevante FUSE. Was 
soll daher dieser Einwand? Dass ich mit dem internen 8Mhz arbeite sagte 
ich ja bereits.



Sascha schrieb:
> Mal EN/DIAG mit nem Widerstand an Vcc gehangen und geguckt ob das IC die
> auf low zieht?

Werde ich nun mit dem neuen Takt testen. (Und später noch mal mit dem 
schnelleren)

: Bearbeitet durch User
von Max D. (max_d)


Bewertung
0 lesenswert
nicht lesenswert
Ich wette du hast die Versorgung von der H-Gurke nicht richtig entstört 
und damit scaltet der nicht schnell genug.
Post doch mal ein Bild von deinem Aufbau/Layout...

von Tr (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Bin vom Markt Bereich hier gelandet. Das müssten wir doch in der 
Community schaffen wenn du die Schaltung zeigen kannst!

Vergleich mal deinen Aufbau mit einem Modul von Polulu, die laufen gut 
(oder besorg dir sowas kurzfristig, könntest du evtl. bei TME bekommen, 
und teste deinen Code gegen das geprüfte Modul).

von Max G. (l0wside) Benutzerseite


Bewertung
2 lesenswert
nicht lesenswert
Das Datenblatt ist nicht gerade ein Ruhmesblatt für ST...

Die Rise Time und wohl auch die Fall Time liegen bei 3µs bzw. 5µs 
(jeweils Worst Case). Bei 24V/8A sind während des Schaltens die 
Peak-Leistungen näherungsweise (1/2U)*(1/2)I, d.h. ca. 50W, je Leg. Für 
beide zusammen also 100W. Für den gesamten Schaltvorgang nehme ich 
i.d.R. die Hälfte dieses Werts als Mittel an, d.h. während des Schaltens 
ist die H-Brücke mit 50W Verlustleistung dabei. Dieser Wert hat mit dem 
Rds_on nichts zu tun und ergibt sich durch den linearen Betrieb während 
des Schaltvorgangs.

Bei 4kHz hast du 4000*(3µs+5µs) = 32ms Schaltdauer je Sekunde. Das sind 
also ca. 1,5W durch die Schaltverluste.

Die Rds_on-Verluste kommen noch dazu. 90mOhm für beide Legs und 8A geben 
I^2*R = (8A)^2 * 90mOhm = 5,76W.

In der Summe also rund 7W. Da solltest du schon gut kühlen, sollte aber 
lösbar sein.



Ein Gedanke kommt mir noch: ist sichergestellt, dass beim Umschalten 
nicht zwischendurch beide Legs ausgeschaltet sind? Wenn das passiert, 
hängt die Induktivität des Motors in der Luft, und die H-Brücke wird 
vermutlich klammern, um die Spannung nicht ins Unendliche gehen zu 
lassen. Und 8A wegzuklammern dürfte gut heizen.

Oszi mit vielen Kanälen tut wohl not...

Max

von D a v i d K. (oekel)


Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
> Ein Gedanke kommt mir noch: ist sichergestellt, dass beim Umschalten
> nicht zwischendurch beide Legs ausgeschaltet sind? Wenn das passiert,
> hängt die Induktivität des Motors in der Luft, und die H-Brücke wird
> vermutlich klammern, um die Spannung nicht ins Unendliche gehen zu
> lassen. Und 8A wegzuklammern dürfte gut heizen.

Das ist ein sehr guter Hinweis, den ich nicht ausschließen möchte.
Hier mal alles, was ich so bereitstellen kann:

von Falk B. (falk)


Bewertung
0 lesenswert
nicht lesenswert
Die Bauteilnamen vom Schaltplan stimmen nicht mit denen in der 3D 
Ansicht überein. Wo sind die beiden 100nF Kondensatoren C7/C9, welche 
VCC des Treibers entkoppel sollen?
Poste mal ein Datenblatt oder einen direkten Link auf den Motor.
Da du anscheinend ein Oszi hast, sollte ein Leichtes sein, die 
PWM-Frequenz mal direkt zu messen.

von Falk B. (falk)


Bewertung
0 lesenswert
nicht lesenswert
>Meine Vermutung:
>Die Mosfets schalten zu oft(?)

Es kann aber auch sein, daß der IC in den "Linear current limiter" 
Betrieb geht, warum auch immer.

Teste mal im Leerlauf, dann mit einem Leistungswiderstand, der auch etwa 
den gleichen Nennstrom zieht wie dein Motor.

von D a v i d K. (oekel)


Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Falk B. schrieb:
> Die Bauteilnamen vom Schaltplan stimmen nicht mit denen in der 3D

3D war wohl ein alter Export

> Poste mal ein Datenblatt oder einen direkten Link auf den Motor.

Zitat von MSW GmbH - R. Lindner:
"vielen Dank für Ihr Interesse an unseren Produkten.
Im Anhang finden Sie das gewünschte Datenblatt.
Leider können wir keine anderen Daten zur Verfügung
stellen."

> Da du anscheinend ein Oszi hast, sollte ein Leichtes sein, die
> PWM-Frequenz mal direkt zu messen.

Gemessen habe ich diese und entspricht dem berechneten soll.

Grüße Oekel

von D a v i d K. (oekel)


Bewertung
0 lesenswert
nicht lesenswert
Max G. schrieb:

> Ein Gedanke kommt mir noch: ist sichergestellt, dass beim Umschalten
> nicht zwischendurch beide Legs ausgeschaltet sind? Wenn das passiert,
> hängt die Induktivität des Motors in der Luft, und die H-Brücke wird
> vermutlich klammern, um die Spannung nicht ins Unendliche gehen zu
> lassen. Und 8A wegzuklammern dürfte gut heizen.

Ich habe über diesen Part noch Mal nachgedacht. Wie man im Code sieht, 
schicke ich permanent das PWM drauf.
Dann wird nur mittels A und B (jeh nach Richtungswunsch) der Motor 
"hochgefahren". Also vereinfacht gedacht, ist NUR A oder B aktiv und das 
Problem tritt dennoch auf.

Oder habe ich dich da nun falsch verstanden?

von Falk B. (falk)


Bewertung
0 lesenswert
nicht lesenswert
Hmmm.  20/255 sind ~8%, macht bei ~4kHz PWM ca. 20us Pulsbreite. Nicht 
viel, sollte der Treiber aber noch schaffen. Man sollte auf jeden Fall 
beachten, dass die INA/B Eingänge nur für relativ langsame 
Schaltvorgänge gedacht sind, so im Bereich vom 1ms und mehr. Nur der 
PWM-Eingang darf schnell wackeln. Alles andere blockt die Logik im Chip 
ab.

Der Motor sieht OK aus, der hat keinerlei komische Schutzbeschaltung, 
die vielleicht Probleme machen könnte.

Miss erstmal im Leerlauf am Ausgang und mit ohmscher Last, die kann auch 
deutlich kleiner sein (weniger Leistung!). Möglicherweise hat dein 
Treiber mit den 20us Pulsbreite ein Problem.

von Falk B. (falk)


Bewertung
0 lesenswert
nicht lesenswert
void drive_update()
{
  if (driveStatus == OFF)
  {
    INA=0;
    INB=0;
  }else
  {
    if (driveDirection == LINKS)
    {
      INA=1;
    }
    if (driveDirection == RECHTS)
    {
      INB=1;
    }
  }

}

Vorsicht! Das funktioniert nur, wenn zwischendurch SICHER auf OFF 
geschaltet wird. Aber du hast auch eine Funktion toggleDriveDirection()! 
Da wird direkt umgeschaltet!

Besser so.

void drive_update()
{
  if (driveStatus == OFF)
  {
    INA=0;
    INB=0;
  }else
  {
    if (driveDirection == LINKS)
    {
      INA=1;
                        INB=0;
    }
    if (driveDirection == RECHTS)
    {
      INA=0;
                        INB=1;
    }
  }

}

Außerdem solltest du ein wenig an deiner Projektstruktur arbeiten und 
auch ein paar Grundlagen zum Thema Softwareentwicklung nachholen, 
Stichwort Funktionsparameter und möglichst wenig globale Variablen ;-)

Strukturierte Programmierung auf Mikrocontrollern

https://www.amazon.de/Weniger-schlecht-programmieren-Kathrin-Passig/dp/3897215675?ie=UTF8&keywords=weniger%20schlecht%20programmieren&qid=1444238128&ref_=sr_1_1&sr=8-1

von D a v i d K. (oekel)


Bewertung
0 lesenswert
nicht lesenswert
Falk B. schrieb:
> Hmmm.  20/255 sind ~8%, macht bei ~4kHz PWM ca. 20us Pulsbreite. Nicht
> viel, sollte der Treiber aber noch schaffen.

Diese Werte hast du dem Code entnommen?

> Man sollte auf jeden Fall
> beachten, dass die INA/B Eingänge nur für relativ langsame
> Schaltvorgänge gedacht sind, so im Bereich vom 1ms und mehr.

Wenn ich nicht irgendwo Mist gebaut habe, passiert dies sogar nur alle 
30sec.

> void drive_update()...

Da könnte tatsächlich Mist passiert sein!?

> Nur der
> PWM-Eingang darf schnell wackeln. Alles andere blockt die Logik im Chip
> ab.
So hatte ich es auch verstanden.

>
> Der Motor sieht OK aus, der hat keinerlei komische Schutzbeschaltung,
> die vielleicht Probleme machen könnte.
>
> Miss erstmal im Leerlauf am Ausgang und mit ohmscher Last

Werde ich morgen nach der Arbeit in Angriff nehmen, derzeit dröhnt der 
Kopf (shit Wetter)

: Bearbeitet durch User
von D a v i d K. (oekel)


Bewertung
0 lesenswert
nicht lesenswert
Falk B. schrieb:

> Außerdem solltest du ein wenig an deiner Projektstruktur arbeiten und

Dein Wort in Gottes Ohren. Werde ich mir zu Herzen nehmen, sobald der 
Motor rennt.

von Falk B. (falk)


Bewertung
1 lesenswert
nicht lesenswert
@ D a v i d K. (oekel)

>> Hmmm.  20/255 sind ~8%, macht bei ~4kHz PWM ca. 20us Pulsbreite. Nicht
>> viel, sollte der Treiber aber noch schaffen.

>Diese Werte hast du dem Code entnommen?

Nö, deinem Beitrag.

>> Man sollte auf jeden Fall
>> beachten, dass die INA/B Eingänge nur für relativ langsame
>> Schaltvorgänge gedacht sind, so im Bereich vom 1ms und mehr.

>Wenn ich nicht irgendwo Mist gebaut habe, passiert dies sogar nur alle
>30sec.

Ja, wenn!!!

Ergo. Kommentier mal deinen ganzen Menukram aus und schreibe eine 
EINFACHE, ÜBERSICHTLICHE Testfunktion, wo du sicher sein kannst, daß die 
gewünschte PWM auch ausgegeben wird. Dann teste und MISS!!

Einfach die PWM schrittweise von 100% runter fahren, z.B. jede 
Schrittweite für 5s halten.

von Max G. (l0wside) Benutzerseite


Bewertung
0 lesenswert
nicht lesenswert
D a v i d K. schrieb:
> Dann wird nur mittels A und B (jeh nach Richtungswunsch) der Motor
> "hochgefahren". Also vereinfacht gedacht, ist NUR A oder B aktiv und das
> Problem tritt dennoch auf.

Sorry, habe ein paar Tage hier nicht reingeschaut.

Falks Ansatz ist völlig richtig. Software auf das absolute Minimum 
begrenzen, ohmsche statt induktive Last. Dann kannst du über die Last 
auch mal den Strom messen (praktischerweise über die Spannung über der 
ohmschen Last).

Ich meinte in meinem letzten Post den Umschaltvorgang von A nach B. Das 
müsste die H-Brücke zwar eigentlich selbst machen, aber ich habe das 
Datenblatt nicht komplett gelesen.

Max

von D a v i d K. (oekel)


Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Leider muss ich gestehen, dass ich die Messerei nicht wirklich 
verstanden habe. Die Widerstände brutzeln mir reihenweise ab, wenn ich 
sie an den Ausgang hänge.

Das PWM am Mc-Ausgang sieht sauber aus, aber wenn ich das Oszi (keine 
Ahnung ob man das darf) mit Mess und Referenz an den Ausgang hänge, 
erhalte ich ziemliches Rauschen im unteren Bereich .

Ist das normal bzw irgendwie zu erklären?
Ich vermute ich brauche bereits an dieset Stelle eine Anleitung für 
Dumme :(
(Noch verwende ich die Frequenz wie im Source Code, an höhere hab ich 
mich noch nicht ran getraut)

Grüße Oekel

von Falk B. (falk)


Bewertung
0 lesenswert
nicht lesenswert
@D a v i d K. (oekel)

>Leider muss ich gestehen, dass ich die Messerei nicht wirklich
>verstanden habe. Die Widerstände brutzeln mir reihenweise ab, wenn ich
>sie an den Ausgang hänge.

???
Hast du die Verlustleistung beachtet? Einen 1/4W Widerstand mit 10 Ohm 
kann man dort sicher nicht anschließen.

>Das PWM am Mc-Ausgang sieht sauber aus, aber wenn ich das Oszi (keine
>Ahnung ob man das darf) mit Mess und Referenz an den Ausgang hänge,

Was meinst du damit? Masse und Signal jeweils an einen Treiberausgang?
NEIN! Auch wenn du anscheinend ein potentialfreies Oszi mit 
Battiebetrieb hast. Miss die Ausgangsspannung der beiden Ausgänge jeweis 
gegen Masse der Schaltung! Masse des Tastkopfes an Masse der Schaltung! 
Was für einen Tastkopf hast du?

>Ist das normal bzw irgendwie zu erklären?

Sieht komisch aus. Die Spannung muss deutlich sauberer sein.

>(Noch verwende ich die Frequenz wie im Source Code, an höhere hab ich
>mich noch nicht ran getraut)

Im 1. Bild sieht man einen kleinen 2ms Puls, der aber nicht bis runter 
geht. Da ist was faul.

von voko (Gast)


Bewertung
0 lesenswert
nicht lesenswert
D a v i d K. schrieb:
> Ist das normal bzw irgendwie zu erklären?

Jein, denn um das definitiv zu beantworten, müsste man die 
Messbedingungen kennen. Ich vermute mal, dass wir hier in den Pulspausen 
im wesentlichen die Generatorspannung eines ungebremsten 
Gleichstrommotors sehen. Im theoretisch idealen Fall ist diese genauso 
hoch wie die Versorgungsspannung. Daher die geringen Spannungseinbrüche. 
Sie ist auch dafür verantwortlich, dass ein mechanisch unbelasteter 
Motor weniger Strom zieht, als ein gebremster. Aufgrund der Vorgänge im 
Motor können wir natürlich keine reine Gleichspannung erwarten. Der 
Ansatz, einen Motor einfach nur als Induktivität zu betrachten, würde 
hier zu kurz greifen.

Im dritten Bild sehen wir eine überlagerte 50-Hz-Schwingung (Netz). Wie 
die da eingekoppelt wird, kann ich mir ohne weitere Info nicht erklären. 
Eventuell auch über die schon angesprochene ungewöhnliche 
Tastkopf-Referenzanbindung. Während der Pulsdauer ist die Versorgung ja 
augenscheinlich recht stabil.

Kurzantwort: Aus diesen Bilder ist für mich kein Fehlverhalten der HW 
oder SW erkennbar.

Ich habe da noch zwei/drei Fragen:

Die Fehlerbeschreibung vom 27.03.2016 22:16 passt nicht zu der im 
Markt-Thread. Gibt es noch beide Fehlerbilder oder wurde das ältere 
Problem gelöst? War der Motor hierbei gebremst, ungebremst, blockiert? 
(Der Strom steigt linear mit dem Bremsmoment an!)

Über Kühlung wurde nur ansatzweise gesprochen. Wie ist der Treiber denn 
zur Zeit gekühlt? Kühlkörper? Wärmeleitpaste, -kleber, -folie?

Viele Grüße
Voko

von D a v i d K. (oekel)


Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hier kurz der miniCode, der gerade läuft:
#include "inits.h"
#include "properties.h"
#include "countdown.h"

uint8_t driveAbsolute = 0;

int main(void)
{
  ioinit();
  pwm_init();
  timer2_init();
  // Interrupts (IRQs) global erlauben
  sei();
  // Zeit vertrödeln bis sich die Spannung stabilisiert hat.
  // In die Hauptschleife gehört 'wait' oder 'delay' nicht rein!
  wait_10ms(1);
  INA = 1;
  INB = 0;
  driveAbsolute = 255;
  while (1)
  {
    ;
  }
}

ISR(TIMER0_OVF_vect)
{
  if (count.ms10.menu == 0)
  {
    PORTD ^= (1<<PD6);
    count.ms10.menu = 50;
  }
  if (count.sec.menu == 0)
    {
      driveAbsolute -= 5;
      OCR1B = driveAbsolute;
      count.sec.menu = 5;
    }
}

Dazu im Anhang die Bilder bei "offenem" Ausgang und mit einem 1mOhm 
Wiederstand. (Sorry hatte beim verbraten der anderen zuvor die Ringe 
nicht geprüft; falsch einsortiert)

Was mich jetzt bei der Messungen mit dem 1MOhm Widerstand extrem 
irritiert, ist dass die On-Zeit invertiert zu sein schein, oder täusche 
ich mich da? Habe an die Fotos immer den Wert von OCR1B angegeben, der 
zu dem Zeitpunkt gerade anlag.

Grüße Oekel

: Bearbeitet durch User
von voko (Gast)


Bewertung
0 lesenswert
nicht lesenswert
D a v i d K. schrieb:
> On-Zeit invertiert

kommt daher, dass du ja quasi am Low-Side-FET misst.

Ansonsten ist es immer schwierig nachzuvollziehen, was du da eigentlich 
misst. Eine genauere Beschreibung wäre hilfreich.

Kanal B hängt mit Faktor 1:10 am OutB nehme ich an!? Kanal A hängt wo?

Messen ganz ohne Widerstand macht m. E. keinen Sinn. Der 1MOhm deckt 
ohnehin den unbelasteten Fall ab. Gut, man sieht hier, dass der 
Low-Side-FET schaltet, wie er soll und dass es durch parasitäre 
Induktivitäten und Kapazitäten Spannungsspitzen gibt. Bei 1MOhm wundert 
mich das nicht.

Das Ersetzen des Motors durch eine ohmsche Last scheitert bei dir 
vermutlich daran, dass du keine belastbaren Widerstände (ca. 100 bis 200 
Watt) rumliegen hast. Notfalls könntest du es mit 12-V-Glühbirnen 
versuchen, musst aber berücksichtigen, dass diese kalt einen deutlich 
niedrigeren Widerstand haben. Zweimal 50 W in Serie wären ein erster 
Ansatz. (Das sind dann zwar nur knapp 4 A, aber der Motor zieht im 
Normalbetrieb auch nicht mehr. Außerdem wird der Anfangsstrom der 
Glühbirnen da auch schon bedenklich hoch, doch der Treiber hat intern ja 
wohl ausreichende Schutzbeschaltung beziehungsweise Reserven.)

Wirklich aussagefähig werden die Messungen mit derartigen Lasten erst 
(und später auch mit Motor), wenn du die Ströme misst. Hierzu musst du 
irgendwo einen Shunt (50 mOhm, 100 mOhm z. B.) in Serie zu deiner Last 
schalten (fast besser zwischen Treiber-GND und GND oder Treiber-VCC und 
VCC) um da mit dem Oszi messen zu können.

Ich würde dann später auch Messungen mit blockiertem Motor bei 
verschiedenen PWM-Frequenzen bei gleichem Tastverhältnis sehen wollen. 
Das Tastverhältnis darf aber nicht zu hoch sein, weil sonst die Gefahr 
besteht, den Motor zu überhitzen. (Eine meiner Hypothesen ist, dass der 
Motor selbst keine hohen Frequenzen mag.)

von voko (Gast)


Bewertung
0 lesenswert
nicht lesenswert
PS Bei 1/4 W kannst du bis 2 kOhm runter gehen. Vielleicht hast du ja 
noch ein paar Hundert davon rumliegen …. Das gäbe dann auch eine 
vergleichbare Last.

von D a v i d K. (oekel)


Bewertung
0 lesenswert
nicht lesenswert
voko schrieb:
> D a v i d K. schrieb:
>> On-Zeit invertiert
>
> kommt daher, dass du ja quasi am Low-Side-FET misst.
>
> Ansonsten ist es immer schwierig nachzuvollziehen, was du da eigentlich
> misst. Eine genauere Beschreibung wäre hilfreich.
>
> Kanal B hängt mit Faktor 1:10 am OutB nehme ich an!? Kanal A hängt wo?
Am OutA


> Low-Side-FET schaltet, wie er soll und dass es durch parasitäre
> Induktivitäten und Kapazitäten Spannungsspitzen gibt. Bei 1MOhm wundert
> mich das nicht.
Kann dir nicht folgen, ist das wichtig für später?

>
> Das Ersetzen des Motors durch eine ohmsche Last scheitert bei dir
> vermutlich daran, dass du keine belastbaren Widerstände (ca. 100 bis 200
> Watt) rumliegen hast.

Jup, aber vielleicht kann der Nachbar ja aushelfen. Also 2 kOhm mit 
100W?

> Notfalls könntest du es mit 12-V-Glühbirnen
Davon möchte ich Abstand nehmen.


> Hierzu musst du
> irgendwo einen Shunt (50 mOhm, 100 mOhm z. B.) in Serie zu deiner Last
> schalten
ok 50 mOhm fliegen aber auch nicht rum...

> (fast besser zwischen Treiber-GND und GND oder Treiber-VCC und
> VCC) um da mit dem Oszi messen zu können.
Diese Verdrahtung verstehe ich vom Wortlaut garnicht.

> Eine meiner Hypothesen ist, dass der
> Motor selbst keine hohen Frequenzen mag.

Und wozu würde das führen? Also rein technisch gesprochen. Induktionen, 
die was machen?

voko schrieb:
> PS Bei 1/4 W kannst du bis 2 kOhm runter gehen.
Diese Theorie verstehe ich nicht.

> Vielleicht hast du ja
> noch ein paar Hundert davon rumliegen …. Das gäbe dann auch eine
> vergleichbare Last.

Ja habe ich in der Tat. S.o. ich muss auf 100W kommen?

Grüße Oekel

von voko (Gast)


Bewertung
0 lesenswert
nicht lesenswert
D a v i d K. schrieb:
> Jup, aber vielleicht kann der Nachbar ja aushelfen. Also 2 kOhm mit
> 100W?

Nein, 3 Ohm oder mehr. Das hängt davon ab, welche Last du wirklich 
dauerhaft betreiben willst. Die 2 kOhm bezogen sich auf die 
Parallelschaltung von sehr vielen schwachen Widerständen. Kennst du das 
Ohmsche Gesetz? Kannst du eine Parallelschaltung von Widerständen 
berechnen?

Du musst dir auch klar darüber sein, welchen Strom der Treiber 
eigentlich dauerhaft liefern SOLL. 8 A ist immerhin der Strom, den der 
Motor (bei 24 V) erst dann zieht, wenn er bereits blockiert oder kurz 
beim Anlauf. Da du sogar nur ca. 23 V am Motor hast sogar weniger. 
Vielleicht ist es aber auch gar nicht erwünscht, dass der Motor 
dauerhaft den vollen Strom bekommt, z. B. um ihn zu schonen. Der Treiber 
hat immerhin einen thermischen Schutz eingebaut, der Motor nicht.

Willst du z. B. nur 5 A, dann nimm 4,7 Ohm zum Testen (23,5 V / 5 A) 
beziehungsweise den nächstverfügbaren Wert.

>
>> Notfalls könntest du es mit 12-V-Glühbirnen
> Davon möchte ich Abstand nehmen.
>
>> Hierzu musst du
>> irgendwo einen Shunt (50 mOhm, 100 mOhm z. B.) in Serie zu deiner Last
>> schalten
> ok 50 mOhm fliegen aber auch nicht rum...
>
>> (fast besser zwischen Treiber-GND und GND oder Treiber-VCC und
>> VCC) um da mit dem Oszi messen zu können.
> Diese Verdrahtung verstehe ich vom Wortlaut garnicht.

Ok, später dazu mehr. Bei ohmscher Last spielt das noch keine Rolle.

>> Eine meiner Hypothesen ist, dass der
>> Motor selbst keine hohen Frequenzen mag.
>
> Und wozu würde das führen? Also rein technisch gesprochen. Induktionen,
> die was machen?

Eisenverluste, Wirbelströme usw.. Das würde zumindest die schlechte 
mechanische Motorleistung erklären. Da das aber alles nur eine vage 
Hypothese ist und erst messtechnisch untermauert werden müsste, möchte 
ich das jetzt nicht weiter ausführen. Zumindest habe ich nirgendwo 
gelesen, was der Motor in dieser Hinsicht verträgt.

von voko (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Den Zusammenhang zwischen Strom und Drehzahl siehst du anhand der 
Kennlinie (I und N) im Datenblatt rechts unten.

von D a v i d K. (oekel)


Bewertung
0 lesenswert
nicht lesenswert
voko schrieb:
> D a v i d K. schrieb:
>> Jup, aber vielleicht kann der Nachbar ja aushelfen. Also 2 kOhm mit
>> 100W?
>
> Nein, 3 Ohm oder mehr. Das hängt davon ab, welche Last du wirklich
> dauerhaft betreiben willst. Die 2 kOhm bezogen sich auf die
> Parallelschaltung von sehr vielen schwachen Widerständen. Kennst du das
> Ohmsche Gesetz? Kannst du eine Parallelschaltung von Widerständen
> berechnen?
Logisch also für 50W = 200*0,25W a 2kOhm --> 10 Ohm
>
> Du musst dir auch klar darüber sein, welchen Strom der Treiber
> eigentlich dauerhaft liefern SOLL.

Die max. Solldrehzal liegt bei diesem Motor bei ca 12,5V (das ist das 
Ziel)
Das Netzteil liefert 24V;19V;16V;...
Wollte evtl. später auf eine niedrigere Eingangspannung gehen, um bei 
gleichem Output eine schönere PWM Verteilung zu haben.
(Das einzige was mich gedanklich davon abhält ist W=U*I. Würde ich damit 
den Chip nicht mehr belasten? Aber lasst uns erst Mal bei 24V bleiben, 
damit testen und damit wir auch alle immer vom Gleichen Szenario 
ausgehen)

> Der Treiber
> hat immerhin einen thermischen Schutz eingebaut, der Motor nicht.
Kannst du das noch mal (später) mittels simpler Formel erläutern?
>
> Willst du z. B. nur 5 A, dann nimm 4,7 Ohm zum Testen (23,5 V / 5 A)
> beziehungsweise den nächstverfügbaren Wert.
ok

> Zumindest habe ich nirgendwo
> gelesen, was der Motor in dieser Hinsicht verträgt.

Siehe 'bescheidenes' Datenblatt, muss ich mir wohl irgendwie 
herleiten/messen.

Grüße Oekel

von voko (Gast)


Bewertung
0 lesenswert
nicht lesenswert
D a v i d K. schrieb:
> voko schrieb:
>> D a v i d K. schrieb:
> Logisch also für 50W = 200*0,25W a 2kOhm --> 10 Ohm
Ich würde da ein paar mehr nehmen, da das doch einem relativ kleinem 
Strom (2,3 A) und kleiner Motorleistung und -drehmoment entspricht, aber 
wenn der Motor auch nicht stärker belastet wird ist es ok.

> Die max. Solldrehzal liegt bei diesem Motor bei ca 12,5V (das ist das
> Ziel)
Das verstehe ich nicht. Die maximale Drehzahl wird bei gleichem 
(Brems-)Drehmoment immer bei maximaler Spannung erreicht. Bei diesem 
Motor also bei 36 V ca. 7000 rpm im Leerlauf. Die 16000 rpm im 
Datenblatt beziehen sich auf einen anderen Motor. Welche Drehzahl 
brauchst du? Bei welchem Drehmoment?

>> Der Treiber
>> hat immerhin einen thermischen Schutz eingebaut, der Motor nicht.
> Kannst du das noch mal (später) mittels simpler Formel erläutern?
Nein, das ist eine rein qualitative Betrachtung. Was der Motor im 
Stillstand an Wärme abführen kann, steht nicht im Datenblatt. Ich hab ja 
auch keine Ahnung, was der überhaupt antreibt und ob dieser Fall 
überhaupt eintreten kann.

von voko (Gast)


Bewertung
0 lesenswert
nicht lesenswert
D a v i d K. schrieb:
>> Zumindest habe ich nirgendwo
>> gelesen, was der Motor in dieser Hinsicht verträgt.
>
> Siehe 'bescheidenes' Datenblatt, muss ich mir wohl irgendwie
> herleiten/messen.

Ja, und zwar relativ einfach. Wir fangen bei kleiner PWM-Frequenz an und 
steigern diese schrittweise bis die Leistung des Motors nachlässt. Dann 
müssen wir nur noch mit dem Oszi messen, ob es am Motor oder am Treiber 
liegt. Da kommt dann auch der oben genannte Shunt ins Spiel, um die 
elektrische Leistung bestimmen zu können.

von voko (Gast)


Bewertung
0 lesenswert
nicht lesenswert
D a v i d K. schrieb:
>> Kanal B hängt mit Faktor 1:10 am OutB nehme ich an!? Kanal A hängt wo?
> Am OutA

Das verstehe ich nicht. Ich war bisher davon ausgegangen, dass OutA als 
High Side konfiguriert ist und OutB als Low Side, wobei letztere durch 
PWM geschaltet wird. Dann müssten an OutA 24 V minus ein wenig 
Spannungsabfall zu messen sein. Das deckt sich also nicht mit den 
Messungen. Da stimmt was nicht. Bitte sicherheitshalber mal INA und INB 
sowie PWM aufnehmen und auch DIAG/EN A und B.

Dass PWM die Low Side und nicht die High Side schaltet, habe ich 
übrigens nur den Bilder 5 und 6 im Datenblatt entnommen. In Bild 36 
(oben) kann ich das nicht wiederfinden. So gesehen bin ich etwas 
verwirrt. Das Blockschaltbild (Bild 1) ist auch nicht sehr 
aufschlussreich, von Clamp A und B mal abgesehen.

Wenn ich jetzt die Schaltung vor mir hätte, würde ich die Ausgänge mal 
einzeln jeweils gegen VCC und GND leicht belasten und oszillografieren 
um zu sehen, ob die Abläufe tatsächlich so sind, wie angenommen. Ich 
gehe davon aus, dass die durch PWM geschaltete Seite in den Pausen 
jeweils hochohmig wird. Im Datenblatt finde ich das aber nicht explizit.

von D a v i d K. (oekel)


Bewertung
0 lesenswert
nicht lesenswert
voko schrieb:

> Wenn ich jetzt die Schaltung vor mir hätte, ....

Soll ich dir mal ein Exemplar zukommen lassen? (Habe mehr als genug 
fertig bestückt)

von voko (Gast)


Bewertung
0 lesenswert
nicht lesenswert
D a v i d K. schrieb:
> Soll ich dir mal ein Exemplar zukommen lassen? (Habe mehr als genug
> fertig bestückt)

Oje, dreimal dumm geposted und schon häng ich da mit drin ;-). Ich 
schick dir später eine PN …

von Falk B. (falk)


Bewertung
0 lesenswert
nicht lesenswert
@ D a v i d K. (oekel)

Mach mal ein Bidl von deinem Testaufbau und dem Anschschluß des 
Tastkopfes.

>Hier kurz der miniCode, der gerade läuft:

Schon mal ein guter Ansatz, daber dein Allegie gegen delay ist Unsinn. 
Gerade zum Testen spielt das GAR KEINE Rolle. Da nutzt man die, um 
einfach und schnell ein paar zeitliche Abläufe zu generieren, die ISR 
nutzt man nur, wenn es von der Software unbedingt nötig ist. Da hat man 
nämlich eine Fehlerquelle weniger.
ISR(TIMER0_OVF_vect)
{
  if (count.ms10.menu == 0)
  {
    PORTD ^= (1<<PD6);
    count.ms10.menu = 50;
  }
  if (count.sec.menu == 0)
    {
      driveAbsolute -= 5;
      OCR1B = driveAbsolute;
      count.sec.menu = 5;
    }
}

Hier wird rein gar nichts runtergezählt, OCR1B wird nie verändert! Wie 
war das mit den Fehlerquellen?

>Dazu im Anhang die Bilder bei "offenem" Ausgang und mit einem 1mOhm
>Wiederstand.

Kaum. Das wäre ein MILLIOHM, das ist ein satter Kurzschluß.

>Was mich jetzt bei der Messungen mit dem 1MOhm Widerstand extrem

Das ist ein Unterschied! M und m!

>irritiert, ist dass die On-Zeit invertiert zu sein schein, oder täusche
>ich mich da? Habe an die Fotos immer den Wert von OCR1B angegeben, der
>zu dem Zeitpunkt gerade anlag.

Also an in Anbetracht deiner "Grundkenntnisse" ist es wohl besser, wenn 
du eine Platine + Motor mir zuschickst. Dann kann ich deutlich schneller 
und besser messen als per Forum. Wenn du Interesse hast, schick mir ne 
PM.

von m.n. (Gast)


Bewertung
-1 lesenswert
nicht lesenswert
Falk B. schrieb:
> Also an in Anbetracht deiner "Grundkenntnisse" ist es wohl besser, wenn
> du eine Platine + Motor mir zuschickst. Dann kann ich deutlich schneller
> und besser messen als per Forum.

Das hatte ich ihm schon vor einer Woche angeboten, es kam aber überhaupt 
keine Reaktion. Nicht einmal den angefragten Schaltplan hat er 
herausgerückt.
Daß da 1 mOhm oder 1 MOhm verwendet werden, paßt voll ins Gesamtbild.

von D a v i d K. (oekel)


Bewertung
0 lesenswert
nicht lesenswert
m.n. schrieb:

> Das hatte ich ihm schon vor einer Woche angeboten, es kam aber überhaupt
> keine Reaktion.

Ich bin leider noch nicht in der Position, dass ich mir im Arbeitsleben 
die Freizeit nehmen kann, die ich gerne (für derartige Projekte) hätte.
Schön, dass du also von dir ausgegangen bist ;)

> Nicht einmal den angefragten Schaltplan hat er
> herausgerückt.

So nicht korrekt, ich hatte ihn hier im Forum schnellstmöglich 
bereitgestellt, da sich doch mehr als eine Handvoll hilfsbereiter 
Menschen zu Wort gemeldet haben. (In der Form, dass man es doch sicher 
hier am Schnellsten lösen könne)

> Daß da 1 mOhm oder 1 MOhm verwendet werden, paßt voll ins Gesamtbild.

Da hab ich hier auch schon schlimmere Tippfehler gesehen, aber ich denke 
nicht das wir das nun hier breittreten müssen. Wenn doch Bedarf an 
'dispute4fun' besteht, hast du ja meine Mail auf die ich dir bereits 
geantwortet habe ;) Kann aber etwas dauern, denn ich bin wirklich im 
Stress!

hochachtungsvoll Oekel

von m.n. (Gast)


Bewertung
-1 lesenswert
nicht lesenswert
D a v i d K. schrieb:
> Ich bin leider noch nicht in der Position, dass ich mir im Arbeitsleben
> die Freizeit nehmen kann, die ich gerne (für derartige Projekte) hätte.
> Schön, dass du also von dir ausgegangen bist ;)

Du bist ja drollig, um es mal positiv zu formulieren. Da fragst Du im 
Forum 'Markt' nach Hilfe und bist völlig unfähig, auf Angebote zu 
reagieren.
Kein Wunder, daß Du schon über längere Zeit nicht zu Potte kommst.

von Falk B. (falk)


Bewertung
2 lesenswert
nicht lesenswert
Ich hab mal ein wenig getestet. Mit 3900 Hz pfeift das Ding wie Sau, 
auch mit 488 Hz ist es noch nicht wirklich gut. Ich hab mal die Software 
auf Phase Correct PWM mit 8 Bit und Presclaer 256 geändert, da kommt man 
bei 60 Hz raus, außerdem erreicht man dauerhaftes LOW und HIGH ohne 
Handstände. Damit läuft der Motor ruhig und der Treiber bleibt auch bei 
kleinen Tastverhältnissen eiskalt. Ich habe das Problem lokalisiert. Es 
sind die Entstörkondensatoren im Motor! Der hat nämlich je einen 
Kondensator von einigen Dutzend Nanofard zwischen jedem Anschluß und 
Gehäuse. Damit werden die Störungen des Kollektors im Motor (der 
Polwender) gedämpft. Dumm ist nur, daß die bei PWM immer hart umgeladen 
werden. Macht man das mit zu hoher Frequenz, fließt ein sehr großer 
Strom, der Treiber wird heiß und schaltet irgendwann mal ab. Das kann 
ich hier sehr leicht mit PWM = 10 und 3900 Hz PWM-Frequenz nachstellen, 
der Treiber wird in Sekunden sehr heiß, man kann ihn gerade noch 
anfassen (bei 12V Versorgung).

Lange Rede, kurzer Sinn. Mit 60 Hz ist der Motor bestens angesteuert, er 
pfeift nicht und dein Treiber wird nicht heiß, auch nicht bei kleinen 
PWM-Werten. Unterhalb von 10% dreht sich bei dem Motor mit der Last aber 
kaum was (bei 12V).

*Wenn man einen Motor mit PWM und hohen Frequenzen ansteuern will, darf 
der KEINE Entstörkondensatoren eingebaut haben!*

Ein kleines Problem hab ich auch noch gefunden. Auf grund der 
Ansteuerlogik im Treiber muss man zum Bremsen beide Eingänge auf 0 
setzen aber PWM auf 100% (hier 255)!!! Denn nur so bremst man mit 
maximaler Kraft (Motor kurzgeschlossen). Bei INA=0 und INB=0 und PWM=0 
geht der Treiber in den Freilauf, sprich, die Augänge sind hochohmig 
(tristate) und der Motor bremst nur durch die mechanische Reibung im 
Lager. Das muss man in der Software berücksichtigen.

In ioinit() war auch noch ein kleiner Bug, dort hast du anstatt |= ein 
paar mal = geschrieben, und damit die Einstellung von einigen Zeilen 
vorher wieder überschrieben. Nur durch Zufall hat es funktioniert, weil 
vorher dort sowieso nur Nullen reingeschrieben worden sind.

Im Moment kann ich nur mit 12V testen aber mit 24V wird es ähnlich sein. 
Das kann ich aber erst nächste Woche machen.

Noch ein paar Anmerkungen.

- IC1/Pin10 (ENAB) ist an ADC7 angeschlossen. Das ist ein REINES 
ADC-Eingangspin, das kann man nur über den ADC auslesen. Besser ist es, 
das an PC3 anzuschließen, das ist noch frei und einfach als Digitalpin 
lesbar.

- D1 und F1 scheinen mir für 8A Nennstrom "etwa" unterdimensioniert. 
Wenn da WIRKLICH mal jemand was verpolt, brennt das weg. Außerdem hält 
die Sicherung nie und nimmer 8A Dauerstrom aus.

- Bist du sicher, dass J2 sinnvoll angeschlossen ist? Wenn dort ein 
Verbraucher ohne weitere Masseverbindung angeschlossen wird, schaltet 
der niemals.

- Wenn gleich R1 den Strom durch die Klemmdioden auf ~2mA begrenzt, ist 
es sinnvoll, noch einen Widerstand gegen GND dort anzuschalten, damit es 
ein richtiger Spannungsteiler wird.

von Falk B. (falk)


Bewertung
0 lesenswert
nicht lesenswert
OK, heute hab ich das mal mit 24V getestet. Wie der OP schon bemerkte, 
wird der IC bei PWM=10 und 3900Hz innerhalb von 2-3s sehr heiß. Bei 60 
Hz ist das kein Problem, der IC wird nur lauwarm.

von aSma>> (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Servus,
also du hast jetzt den PWM pin auf high gesetzt und steuerst mit phase 
correct an?!

Ansteuerung mit 60Hz scheint mir etwas wenig zu sein. Mithilfe eines 
shunts würde ich den Rippel angucken.

Ein snubber könnte auch hier helfen.

mfg

von Falk B. (falk)


Bewertung
0 lesenswert
nicht lesenswert
@aSma>> (Gast)

>also du hast jetzt den PWM pin auf high gesetzt

Nö. Normale PWM

> und steuerst mit phase correct an?!

Ja.

>Ansteuerung mit 60Hz scheint mir etwas wenig zu sein.

Es reicht.

>Mithilfe eines shunts würde ich den Rippel angucken.

Der ist hoch, das ist klar, aber mit den fest eingebauten 
Entstörkondensatoren geht es nicht anders.

>Ein snubber könnte auch hier helfen.

Nö.

von aSma>> (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Falk B. schrieb:
> Nö. Normale PWM

Naja, laut Datenblatt schaltet man mit den PWM Pin die Low-Side Fets 
frei.

Ich würde mal den PWM Pin auf high setzten und die beiden Eingänge 
complementär oder mit phase correct ansteuern.

mfg

von Falk B. (falk)


Bewertung
0 lesenswert
nicht lesenswert
@aSma>> (Gast)

>> Nö. Normale PWM

>Naja, laut Datenblatt schaltet man mit den PWM Pin die Low-Side Fets
>frei.

Richtig.

>Ich würde mal den PWM Pin auf high setzten und die beiden Eingänge
>complementär oder mit phase correct ansteuern.

Und ich würde, wenn ich du wäre, mal das Datenblatt lesen. Dann würde 
ich (du) feststellen, daß die Steuereingänge INA und INB VERDAMMT 
langsam reagieren und nur der PWM-Eingang ein schnelles Signal verträgt. 
Warum auch immer die Entwickler das gemacht haben, es ist so. 
Wahrscheinlich wollten sie die Bootstrapkondensatoren einsparen, wie sie 
ein L620x hat. Ob DAS so sinnvoll war, zumal der IC 4 NC Pins hat?

von D a v i d K. (oekel)


Bewertung
0 lesenswert
nicht lesenswert
aSma>> schrieb:

> Ich würde mal den PWM Pin auf high setzten und die beiden Eingänge
> complementär oder mit phase correct ansteuern.

Siehe Datenblatt, das ist so nicht vorgesehen und irgendwo hatte Jemand 
auch eine Erklärung Parat, weswegen man dies NICHT anders tun sollte.

Ich bin jedenfalls heilfroh, dass die Hardware im groben und ganzen wie 
bestückt funktioniert.
Werde die Verbesserungsvorschläge durchgehen und in kürze einbinden.

Vielen Dank Falk!!

von aSma>> (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Falk B. schrieb:
> Und ich würde, wenn ich du wäre, mal das Datenblatt lesen. Dann würde
> ich (du) feststellen, daß die Steuereingänge INA und INB VERDAMMT
> langsam reagieren und nur der PWM-Eingang ein schnelles Signal verträgt.

Tatsache. Aber immer noch schneller als 60Hz :=).

"In normal operating conditions the DIAGX/ENX pin is considered as an 
input pin by the device. This pin must be externally pulled high.

PWM pin usage: In all cases, a “0” on the PWM pin will turn off both 
LSAand LSBswitches. When PWM rises back to “1”, LSAor LSB turn on again 
depending on the input pin state."

Wenn man sich die "Waveforms in full bridge operation" (Figure 36.) ff. 
anguckt, dann ändert sich OUTA/B nur wenn ENA/B in Verbindung mit InA/B 
geändert wird.

Bei Änderung von PWM Pin bleibt OUTA/B gleich? Ist irgendwie dubios.

von Volkmar P. (voko)


Bewertung
0 lesenswert
nicht lesenswert
Falk B. schrieb:
> Handstände. Damit läuft der Motor ruhig und der Treiber bleibt auch bei
> kleinen Tastverhältnissen eiskalt. Ich habe das Problem lokalisiert. Es
> sind die Entstörkondensatoren im Motor! Der hat nämlich je einen
> Kondensator von einigen Dutzend Nanofard zwischen jedem Anschluß und
> Gehäuse. Damit werden die Störungen des Kollektors im Motor (der
> Polwender) gedämpft. Dumm ist nur, daß die bei PWM immer hart umgeladen
> werden. Macht man das mit zu hoher Frequenz, fließt ein sehr großer> *Wenn man einen Motor mit PWM und hohen Frequenzen ansteuern will, darf
> der KEINE Entstörkondensatoren eingebaut haben!*

Herzlichen Glückwunsch zur erfolgreichen Fehlersuche. Zur Theorie möchte 
ich noch etwas hinzufügen:

Ja, es liegt wie oben ja auch von mir schon vermutet an der zu hohen 
Frequenz, aber nicht an den Entstörkondensatoren.

Die PWM kehrt ja die Spannung nicht um, sondern schaltet nur den 
Low-Side-FET ab. Es entsteht also kein wechselstrommäßiger Kurzschluss, 
wie von dir nahegelegt. Außerdem könnte man den Strom vernachlässigen. 
Ich habe anhand deiner Angaben ca. 5 mA bei 3900 Hz berechnet. Auch wäre 
dieser Effekt ja unabhängig vom Tastverhältnis.

Das Problem ist, dass der Motor (auch ohne Entstörkondensatoren) nicht 
für diese Frequenzen ausgelegt ist. Man muss sich einmal fragen, warum 
dieser Motor laut Datenblatt wesentlich langsamer dreht als die anderen 
Motoren aus dieser Serie. Wenn er 4000 Hz gut verarbeiten würde, könnte 
er ja auch so schnell drehen, wie die anderen.

Die maximale Drehzahl von 7000 rpm entspricht knapp 120 Hz. Das liegt in 
der Größenordnung der von dir ermittelten 60 Hz PWM. Ich würde daher 
vermuten, dass es mit 120 Hz PWM auch noch geht.

Da er aber bei 4000 Hz einen stark verminderten Wirkungsgrad hat, bleibt 
er unter Last stehen. Bei einem stehenden Motor steigt immer der Strom 
an und daher wird der Treiber heiß. Die zugeführte Leistung wird in der 
Ankerwicklung und -eisen in Wärme umgesetzt.

Das würde auch erklären, warum der Effekt bei einem größeren 
Tastverhältnis wie vom OP angegeben nicht eintritt. Dann dreht der Motor 
nämlich noch.

Das wichtigste ist aber, dass dem OP geholfen werden konnte.

von Falk B. (falk)


Bewertung
0 lesenswert
nicht lesenswert
@  Volkmar P. (voko)

>Ja, es liegt wie oben ja auch von mir schon vermutet an der zu hohen
>Frequenz, aber nicht an den Entstörkondensatoren.

Das glaube ich nicht so ohne weiteres.

>Die PWM kehrt ja die Spannung nicht um, sondern schaltet nur den
>Low-Side-FET ab.

Ja.

>Es entsteht also kein wechselstrommäßiger Kurzschluss,
>wie von dir nahegelegt.

Jain.

> Außerdem könnte man den Strom vernachlässigen.
>Ich habe anhand deiner Angaben ca. 5 mA bei 3900 Hz berechnet. Auch wäre
>dieser Effekt ja unabhängig vom Tastverhältnis.

Stimmt. Aber so einfach ist es nicht. Denn der IC hat eine lineare 
Strombegrenzung. Nun kann es sein, daß die beim Schalten auf den 
Kurzschluß (die Kondensatoren) anspricht und damit die Endstufe in den 
Linearbetrieb geht. Außerdem hat der Treiber ein Problem mit derartig 
kurzen Pulsen. Bei 1 MHz PWM-Takt und PWM = 10 sind das gerade mal 10us 
Pulsbreite. Das schafft der Treiber gerade so.

>Das Problem ist, dass der Motor (auch ohne Entstörkondensatoren) nicht
>für diese Frequenzen ausgelegt ist.

Mag sein, aber deswegen wird der Treiber nicht in SEKUNDEN schweineheiß, 
schaon gar nicht bei so kurzen Pulsen.


>Die maximale Drehzahl von 7000 rpm entspricht knapp 120 Hz. Das liegt in
>der Größenordnung der von dir ermittelten 60 Hz PWM. Ich würde daher
>vermuten, dass es mit 120 Hz PWM auch noch geht.

Das tut es ja, wie ich bereits schrieb.

>Da er aber bei 4000 Hz einen stark verminderten Wirkungsgrad hat, bleibt
>er unter Last stehen. Bei einem stehenden Motor steigt immer der Strom
>an und daher wird der Treiber heiß. Die zugeführte Leistung wird in der
>Ankerwicklung und -eisen in Wärme umgesetzt.

So einfach ist es nicht. Die Pulsbreite ist nur 10us. In der Zeit kann 
der Strom einers normalen Motors ohne Entstörkondensatoren gar nicht so 
schnell ansteigen, auch nicht bei stehendem/blockiertem Motor.

Da ich das Ding ja noch rumliegen habe, werde ich mal ein wenig mit dem 
Oszi messen, wenn gleich die praktikable Lösung schon gefunden ist.

von Volkmar P. (voko)


Bewertung
0 lesenswert
nicht lesenswert
@  Falk B.
> @  Volkmar P. (voko)
>
>>Ja, es liegt wie oben ja auch von mir schon vermutet an der zu hohen
>>Frequenz, aber nicht an den Entstörkondensatoren.
>
> Das glaube ich nicht so ohne weiteres.
Gut, es mag durchaus sein, dass die Entstörkondensatoren in dem Konzert 
irgendwo mitspielen. Sie ALLEIN können es aufgrund der 
Leistungsbetrachtung nicht sein. So meinte ich das.

>> Außerdem könnte man den Strom vernachlässigen.
>>Ich habe anhand deiner Angaben ca. 5 mA bei 3900 Hz berechnet. Auch wäre
>>dieser Effekt ja unabhängig vom Tastverhältnis.
>
> Stimmt. Aber so einfach ist es nicht. Denn der IC hat eine lineare
> Strombegrenzung. Nun kann es sein, daß die beim Schalten auf den
> Kurzschluß (die Kondensatoren) anspricht und damit die Endstufe in den
> Linearbetrieb geht. Außerdem hat der Treiber ein Problem mit derartig
> kurzen Pulsen. Bei 1 MHz PWM-Takt und PWM = 10 sind das gerade mal 10us
> Pulsbreite. Das schafft der Treiber gerade so.
Auch ohne Linearbetrieb fließt der Ladestrom im ungünstigsten Moment, 
wenn der FET noch relativ hochohmig ist. Daher sind wir uns durchaus 
einig, dass die Kondensatoren die Situation für den Treiber nicht gerade 
verbessern.

> So einfach ist es nicht. Die Pulsbreite ist nur 10us. In der Zeit kann
> der Strom einers normalen Motors ohne Entstörkondensatoren gar nicht so
> schnell ansteigen, auch nicht bei stehendem/blockiertem Motor.
>
> Da ich das Ding ja noch rumliegen habe, werde ich mal ein wenig mit dem
> Oszi messen, wenn gleich die praktikable Lösung schon gefunden ist.
Wenn du die einfach bestimmen kannst, würde mich dabei einmal die 
ungefähre Induktivität einer Ankerspule interessieren.

von Volkmar P. (voko)


Bewertung
0 lesenswert
nicht lesenswert
@  Falk B.

Falk B. schrieb:
> Kondensator von einigen Dutzend Nanofard zwischen jedem Anschluß und
> Gehäuse. Damit werden die Störungen des Kollektors im Motor (der

Ersetze "einige" durch 50 und es passt langsam alles zusammen. Ich habe 
nämlich gerade 300 pF grob gemessen, d. h. 2x 600 pF in Serienschaltung. 
Bei der Größe werden dann auch die Ströme so groß, dass sie den Treiber 
aufheizen können. Eventuell kommt ja auch noch eine höherfrequente 
Schwingung dazu.

Dennoch müssen sich die Kondensatoren über die Motorwicklung entladen 
und da kommt dann meine Theorie ins Spiel. Bei laufendem Motor bleiben 
die Kondensatoren teilweise geladen und dadurch wird der Effekt 
wesentlich kleiner.

Der stehende Motor schwingt übrigens mit ca. 5 kHz. Somit ist die 
Induktivität ca. 3,4 mH.

von Falk B. (falk)


Bewertung
0 lesenswert
nicht lesenswert
@ Volkmar P. (voko)

>Ersetze "einige" durch 50 und es passt langsam alles zusammen. Ich habe
>nämlich gerade 300 pF grob gemessen, d. h. 2x 600 pF in Serienschaltung.

pF? Oder meinst du eher nF?

>Dennoch müssen sich die Kondensatoren über die Motorwicklung entladen
>und da kommt dann meine Theorie ins Spiel. Bei laufendem Motor bleiben
>die Kondensatoren teilweise geladen und dadurch wird der Effekt
>wesentlich kleiner.

Ja.

>Der stehende Motor schwingt übrigens mit ca. 5 kHz. Somit ist die
>Induktivität ca. 3,4 mH.

Kann sein.

von Volkmar P. (voko)


Bewertung
0 lesenswert
nicht lesenswert
Ja, sorry. nF natürlich.

von IMHO (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Auch, wenn der Beitrag schon Jahre zurück liegt, ein Hinweis auf eine 
mögliche Fehlinterpretation. In diesem Beitrag
<https://www.mikrocontroller.net/articles/Motoransteuerung_mit_PWM>;
wird mit Link nach hier geäußert, dass die Entstörkondensatoren im Motor 
die Ursache zu großer Erwärmung der H-Brücke sind. Meine Rechnung dazu 
zur Diskussion:
Annahmen: 12V 4kHz-PWM 50nF (100mOhm Verlustwiderstände)
=> Ladezeit ~5*R*C=5*50nF*0.1Ohm=25ns => vollständige Ladung/Entladung
=> gespeicherte Energie eines C: (C/2*U²)=25nAs/V*144V²=3.6µWs
=> 8000 Auf-/Entladungen je Sekunde => max. 28.8mWs/s
=> wird in 3..4s heiß ??????????????

von D a v i d K. (oekel)


Bewertung
0 lesenswert
nicht lesenswert
IMHO schrieb:
> => wird in 3..4s heiß ??????????????

Also meiner wurde immer warm,, aber nie heiß im Sinne dass ich mich dran 
verbrennen konnte. Vielmehr hatte der angeschlossene Motor kaum 
Drehmoment, was für die angegebenen 30A (Verbrauch ca 3A) war das 
letztendlich unbrauchbar.

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.