Forum: Mikrocontroller und Digitale Elektronik Hilfe bei PWM controller Ansteuerung


von Torsten80 (Gast)


Angehängte Dateien:

Lesenswert?

Hallo zusammen,

ich hoffe ihr könnt mir bei meinem folgenden Problem helfen.

Für eine Pumpenansteuerung benötige ich ein 12V PWM Signal im khz 
Bereich mit bis zu 50A Strom. Mein Steuergerät kann jedoch nur max. 72Hz 
und 15A ausgeben.
Ich habe mir deshalb überlegt eine Art Leistungs-PWM-Controller 
dazwischen zuhängen.  Sprich der Controller hat einen PWM Eingang und 
einen PWM Ausgang... nach einiger Recherche habe ich dazu den Controller 
HL4050 gefunden (siehe Anhang)
Leider braucht der Controller laut dem Datenblatt aber eine PWM 
Eingangsfrequenz von mindestens 100Hz.

Kann mir jemand sagen, was es bedeuten würde wenn ich da statt mit 100Hz 
nur mit 72Hz rangehen würde? Reduziert sich damit dann nur die 
Ausgabefrequenz auf 72% oder funktioniert der Controller dann gar nicht?
Außerdem ist mir die Bedeutung der "step-Resolution" nicht klar. :-(

Ich bedanke mich schon einmal für eure Antworten....

Viele Grüße
Torsten

von Torsten80 (Gast)


Lesenswert?

Hat keiner eine Idee? :-)

von Matthias S. (Firma: matzetronics) (mschoeldgen)


Lesenswert?

Wenn es dir gelingt, aus deinem 72Hz PWM Signal mit Spannungsteiler und 
Tiefpass zum glätten ein 0-5V Signal zu machen, kannst du den Controller 
auch im Potenziometer Modus benutzen, indem du dieses geglättete und auf 
5V begrenzte Steuersignal am Schleifereingang anschliesst.
Die Spezifikationen deines Ansteuersignals hast du ja nicht gepostet.
Wenn das also zwischen 0 und 12V liegt, machst du zuerst einen RC 
Tiefpass mit z.B. 10Hz Grenzfrequenz und dann einen Spannungsteiler auf 
0-5V.

von Torsten80 (Gast)


Lesenswert?

Danke für deine Antwort. :-)

Das Eingangssignal ist meinem Wissen nach ein 5V PWM Signal.

Da ich leider von elektrischen Schaltungen nicht wirklich einen Plan 
habe... gibt es solch einen Aufbau wie du ihn beschreibst irgendwo 
fertig zu kaufen?

Danke und Gruß
Torsten

von Matthias S. (Firma: matzetronics) (mschoeldgen)


Lesenswert?

Torsten80 schrieb:
> gibt es solch einen Aufbau wie du ihn beschreibst irgendwo
> fertig zu kaufen?

Als Einzelbauteile ja. Da es nur 2 passive Bauteile sind, wird es das 
fertig nirgends geben. Wenn dein Signal ein 0-5V PWM Signal ist, kannst 
du dir den Spannungsteiler sogar sparen.
Hier die Grundlagen zum RC Tiefpass:
https://de.wikipedia.org/wiki/Tiefpass

Als Beispiel - ein Tiefpass mit R = 1000 Ohm und C = 10µF hat etwa 15 Hz 
Grenzfrequenz und liegt damit schon ganz gut.
Auch z.B. 470 Ohm und 22µF haben 15 Hz, usw.
1
PWM Ausgang             Poti Schleifer Eingang
2
o------|===|----+-------->
3
        470     |+
4
               === 22µF
5
               ---
6
                |
7
Masse           |       Controller (Poti) Masse
8
o---------------+------->
Wenn die 72 Hz noch 'durchsummen', schaltest du einfach ein 2tes 
Tiefpassfilter dahinter. Der Tiefpass macht die Reaktion auf geändertes 
PWM etwas träge - hier mit etwa 1/15 ~ 70ms Zeitkonstante. Das wird dich 
vermutlich nicht stören, aber erwähnen sollte man es.

: Bearbeitet durch User
von Torsten80 (Gast)


Lesenswert?

Vielen Dank für deine detaillierte Beschreibung.

Wenn ich es richtig verstanden habe glättet ein so aufgebauter 
Tiefpassfilter alle Frequenzen oberhalb 15Hz. Die in meinem Fall 
ankommenden 72Hz werden also als quasi statisches Spannungssignal 
ausgegeben.  Ändert sich die PWM duty rate steigt die Spannung 
entsprechend mit minimaler Verzögerung, korrekt?

Hintereinander würde dann wie folgt aussehen, richtig?

o------|===|----+-------|===|----+->
        470     |+       470     |+
               === 22µF         === 22µF
               ---              ---
                |                |
Masse           |                |
o---------------+----------------+->


Vielen Dank und Gruß
Torsten

von Matthias S. (Firma: matzetronics) (mschoeldgen)


Lesenswert?

Torsten80 schrieb:
> Wenn ich es richtig verstanden habe glättet ein so aufgebauter
> Tiefpassfilter alle Frequenzen oberhalb 15Hz.

Siehe den Wikipedia Artikel. Die Grenzfrequenz ist die Frequenz beim 
Tifpass, bei der der Ausgangspegel auf das 0,7-fache (1/sqrt(2)) 
gefallen ist.
Deswegen die Wahl von 15Hz und die Option auf ein weiteres Filter 
dahinter.

Torsten80 schrieb:
> Hintereinander würde dann wie folgt aussehen, richtig?

Genau so. Es kann aber sein, das du das zweite Filter nicht benötigst.
Da du vermutlich kein Oszilloskop hast, kannst du nur anhand des 
Verhaltens der PWM Endstufe herausfinden, ob die 72Hz noch 
'durchsummen'.

von Michael F. (sharpals)


Lesenswert?

was noch beachtet werden muß, ist, wie hoch der innenwiderstand ist, wo 
das poti angeschlossen wird. Im Zweifelsfalle könnte man einen OP als 
aktives tiefpass schalten. Ein LM358 reicht allemal. Da kannst du das 
vorgeschlagene RC-glied nehmen und dann den OV als impedanzwandler 
schalten.


Stell die PWM auf 100% und miss die spannung, die sich dann einstellt. 
der tiefpass hat ja eine last, erreicht sie dann die 5V , dan benötigst 
du keinen OPV.

könntest du den typ des gerätes nennen ?

step-Resolution , ist letzendlich die auflösungm mit der er die 
eingangsgröße in die ausgangsgröße umsetzt.

z,B wenn ich die spannung zwischen 0 - 5V regle und am ausgang sich die 
größe nur um 4 schritte ändert, dann ist die auflösung geringer, als 
wenn sie sich um 1024 werte ändert. Letzteres wäre natürlich eine 
feinere aufläsung.

von Torsten80 (Gast)


Angehängte Dateien:

Lesenswert?

Vielen Dank für eure ganzen Tipps.

Da ich das PWM Signal für ziemlich schick finde, würde ich erstmal 
versuchen damit den Controller anzusteuern. Sollte das nicht 
funktionieren, würde ich in einem zweiten Schritt die Tiefpassgeschichte 
versuchen.

Ich habe zwischenzeitlich noch einige Informationen über das Steuergerät 
und das PWM Signal erhalten...

Das PWM Signal ist ein geschaltetes Massesignal... Spannung ist da also 
auf dem Steuergeräteausgang nicht drauf.
Entsprechend muss ich eine externe 12V Stromquelle verwenden, um 
Spannung an den eigentlichen Controller zu bekommen.

Ich habe jetzt weiterüberlegt... wenn das PWM Signal nur eine getaktetes 
Massesignal ist, dann produziere ich da ja einen klassischen Kurzschluss 
und brate vielleicht das gesamte Steuergerät wenn ich da vorne einfach 
mit 12V reingehe... entsprechend bräuchte ich etwas, was mir im PWM Takt 
den Strom ein- und ausschaltet ohne nennenswerten Strom an das 
Massesignal weiterzugeben.
Nach einiger Grübelei bin ich auf die Idee mit dem Transistor 
gekommen...
Da ich die Funktion eines Transsistors aber erst seit knapp einer Stunde 
überhaupt kenne (oder besser, ich denke ich kenne sie :-D) kann es 
natürlich auch sein, dass das totaler Quatsch ist...


Vielleicht kann mir einer von euch Profis einen Tipp geben ob meine 
Überlegung so richtig ist...

Danke und Gruß
Torsten

von Matthias S. (Firma: matzetronics) (mschoeldgen)


Lesenswert?

Torsten80 schrieb:
> Das PWM Signal ist ein geschaltetes Massesignal... Spannung ist da also
> auf dem Steuergeräteausgang nicht drauf.

Das klingt nach dem üblichen 'Open Collector' Ausgang. Der Ausgang 
besteht steuergeräteintern aus einem NPN Transistor, der an der Basis 
angesteuert wird und dessen Kollektor nach aussen geführt ist.
Um daraus ein 12V PWM Signal zu machen, reicht ein Widerstand vom 
Ausgang nach +12V (wenn du ein 12V PWM Signal brauchst) oder nach +5V, 
wenn dir ein 5V PWM Signal reicht. Deswegen macht man das mit dem Open 
Collector Ausgang so.
Als Widerstand (gemeinhin auch Pullup genannt, weil er gegen Plus geht) 
kannst du einen Wert nehmen, der den internen Transistor nicht 
überfordert. Wenn du keine Angaben über den max. Strom hast, den der 
Ausgang liefern kannst, nimmst du konservativ erstmal 1 - 2,2 kOhm  von 
+12V, oder, wenn 5V PWM reichen, einen 560-680 Ohm von +5V zum 
Steuerausgang. Direkt am Ausgang greifst du das Signal ab, das du auf 
den Power Controller schickst.

Einen Transistor oder andere Bauteile kannst du dir sparen, der eine 
Widerstand reicht.

: Bearbeitet durch User
von Torsten80 (Gast)


Lesenswert?

Öhhmm okay... ich glaube da komme ich jetzt nicht ganz mit...

Also ich habe das PWM-Masse Kabel...
Dann habe ich ein 12V Kabel...
wenn ich dich richtig verstehe, dann meinst du ich sollte die beiden mit 
einem Widerstand (Größenordnung 1kOhm) verbinden.

Was würde dann meiner Logik nach passieren? Im PWM Takt fließt der Strom 
zum Transistor. Über den großen Widerstand habe ich aber den Strom 
soweit begrenzt, dass das Ding nicht abraucht, richtig?
Okay, dann habe ich das 12V PWM Signal... das müsste ich ja noch 
irgendwie zum Controller hin abgreifen.... kann ich den Controller jetzt 
einfach zwischen Widerstand und dem Transistor Kollektor hängen? Wenn ja 
bliebe da immer noch das Problem dass ich auch dem 12V Signal noch 
irgendwie runter auf ~8V kommen muss :-/

Gruß
Torsten

von Matthias S. (Firma: matzetronics) (mschoeldgen)


Lesenswert?

Schau hier:
1
+12V z.B. vom Steuergerät
2
o-----------+
3
            |
4
            -
5
           | | 1k - 2k2
6
           | |
7
            -
8
            |
9
PWM Ausgang |
10
o-----------+--------------> zum PWM Eingang Power Endstufe
11
12
Controllermasse
13
o--------------------------> Masse zur Power Endstufe

Das ist alles.

: Bearbeitet durch User
von Torsten80 (Gast)


Angehängte Dateien:

Lesenswert?

Ah, doch so einfach :D Trotzdem ist mir die Funktion noch nicht wirklich 
klar. schäm
Was ändert sich wenn der Transistor schaltet? Fließt der Strom nicht so 
oder so durch die Endstufe??

Würde dass dann so mit dem Spannungsteiler funktionieren? dass ich da 
mit der Endstufeneingangsspannung auf max. 8V komme?

Danke und Gruß
Torsten

von Matthias S. (Firma: matzetronics) (mschoeldgen)


Angehängte Dateien:

Lesenswert?

Torsten80 schrieb:
> dass ich da
> mit der Endstufeneingangsspannung auf max. 8V komme?

Brauchst du doch gar nicht. Der Power Controller akzeptiert doch von 
3,3V bis 10V PWM Pegel. Am Poti Anschluss stehen 5V zur Verfügung. Du 
legst also einfach einen Widerstand (wie oben beschrieben z.B. 560-680 
Ohm) von der 5V Klemme auf den PWM Eingang. Siehe das Bild.

von Torsten80 (Gast)


Lesenswert?

Ah ja, du hast recht. :-D
Okay, ich werde das Teil mal bestellen und dann testen... Ich werde 
weiter berichten.  :-D

Vielen Dank und Grüße
Torsten

von Michael F. (sharpals)


Lesenswert?

falls es nicht klappt, brauchst du auch keinen teuren zusatzkontroller.

Du kannst deine 75Hz PWm in einem Attiny einlesen, indem du das 
captureevent benützt. Ich selbst benutze es zum messen der netzfrequenz 
eines Generators.

Dazu verwendest du du einen Timer, den du frei laufen lässt und das 
besagte event (capture). Er wird so programmier, das er auf einen 
flankenwechsel reagiert.

Zuerst wartest du auf die steigende flanke , tritt sie auf, setzt du den 
timerzähler ( CTC-mode ) auf null und lässt ihn hochzählen. Jetzt kannst 
mit einer schleife , oder einen zweiten captureevent ( fallende flanke ) 
herausbekommen, wie lang der impuls gewesen ist und rechnest das auf das 
tastvehältniss um. Diesen wert gibts du dann auf den zweiten Zähler, der 
im PWM mode arbeitet aus und schon hast du deine PWM im KHZ bereich ( 
oder was du immer haben willst ).

An der HW benötigst du gerade mal einen Tiny, Pufferkondensator , Und 
einen widerstand.

Hier mal einen auschnitt aus dem projekt, das sähe bei dir ähnlich aus

Nur wird hier die frequenz gemessen und in einen neuen PWM wert für ein 
powerwandler umgesetzt.


Einzig im bereich NULL-Prozent gibt das probleme. Dann solltest du einen 
Überlauf interrupt benutzen, um das abzufangen.

Das ganze läuft auf einen atiny2013 mit 1MHZ
1
procedure TIMER1_CAPT; org IVT_ADDR_TIMER1_CAPT;
2
var  t_reg,t_reg_alt:word;
3
begin
4
     inc(r);
5
     t_reg_alt:=t_reg;
6
     t_reg:=ICR1L;
7
     t_reg:=t_reg or (ICR1H shl 8);               // achtung , genauso auslesen, andernfalls gibt es fehler !!!
8
9
     buff[r and 7]:=(5040000 div (t_reg - t_reg_alt));    // frequenz div 2 da vollweggleichrichter
10
     //buff[r and 7]:=(4950000 div (t_reg - t_reg_alt));      // frequenz div 2 da vollweggleichrichter
11
     frequenz:=0;
12
      
13
     if frequenz < 400                         // unter 40 Hz komplett aus
14
       then
15
            OCR0B:=0
16
       else
17
         begin
18
            OCR0B:=(frequenz - 400) shl 1;     // nullpunkt verschieben
19
            if frequenz > 525
20
                        then OCR0B:=0;         // überlauf verhindern
21
         end;
22
23
      eukl(frequenz);                           // ausgabe des wertes über die serielle schnittstelle
24
       //-------- rest ist unitressant ---------------------
25
26
27
28
end;
29
30
begin
31
  (*
32
   ubrrh:=hi(ubrr_val);       // rs232c init
33
   ubrrl:=ubrr_val and $FF;
34
   *)
35
   UART1_Init(9600);
36
   UCSRB:= (1 shl RXEN) or (1 shl TXEN) or 128;// empfangen , senden und IRQ wenn Zeichen empfangen wird.
37
  // 8 data bits, 1 stop bit
38
   UCSRC:= (1 shl UCSZ1) or (1 shl UCSZ0);
39
40
   //-----------------------------
41
   DDRB:= $FF; //port B ausgang
42
   portb:=$FF; // alles auf low
43
   DDRD:= $FF and not (1 shl 2 or 1 shl 3 or 1 shl 3 or 1 shl 6); // INT0,INT1,port PD6 eing;
44
                                                            // Pin 6    7         8  am IC
45
   portd:=0; // keine pullubs
46
  //-------------------------------
47
  TCCR1A:= 0;                                   // CTC mode
48
  TCCR1B:=(1 shl CS10) or                       // clk src = CPU-Takt / 256 , start timer
49
          (1 shl ICNC1) (*or (1 shl ICES1)*) ;  // fallende Flanke auswählen , Rauschfilter ein
50
  TIMSK:= (1 shl ICIE1);                        // Input-capture aktivieren, Mega32: TIMSK
51
  TIFR:=  (1 shl ICIE1);                        // Schon aktive Interrupts löschen, Mega32: TIFR
52
  //-------------------------------
53
  //MCUCR:= (1 shl ISC00);                        // pegelwechsel schaltet löst int aus
54
  //GIMSK:= (1 shl INT0)                     ;    // INT0 aktivieren
55
   /// --------------------Hier für PWM -----------------------------
56
  pwm_wert:=0;                                  // PWM zähler auf null setzen
57
  TCCR0A:=(1 shl COM0B1) or (1 shl WGM00);      // phase correct PWM mode
58
  OCR0B:=0;                                     // PWM auf 0% einstellen
59
  TCCR0B:=(1 shl CS01);                         // clock source = CLK/8, start PWM
60
  
61
   // ---------------------------------------------------------------
62
   asm                                      ;   // ints freigeben
63
      SEI
64
   end;
65
   while TRUE do       // Endless loop
66
      begin
67
      end;
68
  { Main program }
69
en

: Bearbeitet durch User
von Matthias S. (Firma: matzetronics) (mschoeldgen)


Lesenswert?

Michael F. schrieb:
> Du kannst deine 75Hz PWm in einem Attiny einlesen, indem du das
> captureevent benützt. Ich selbst benutze es zum messen der netzfrequenz
> eines Generators.

Ich denke, davor solltest du den TE erstmal bewahren, das ist im Moment 
vermutlich ein wenig zu hoch für ihn - lies den kompletten Thread. Wir 
haben auch noch eine andere Alternative oben diskutiert, die man 
ausprobieren sollte, bevor man anfängt, AVRs oder andere MCs dafür zu 
programmieren.

von Michael F. (sharpals)


Lesenswert?

eben jetzt hat er alle möglichen alternativen .. aber es könnte auch für 
andere noch intressant sein ..

von Torsten80 (Gast)


Lesenswert?

Hallo zusammen,

ich habe jetzt soweit alles zusammengebaut und angeschlossen... über 
einen normalen Poti kann ich die Pumpen jetzt hoch- und runterregeln. 
Das System funktioniert also grundlegend schon mal.

Allerdings funktioniert meine PWM gesteuerte PWM Regelung immer noch 
nicht. :-( Ich habe zwei mögliche Fehlerquelle ausgemacht...

1. Meine Verkabelung ist falsch...

Momentan habe ich sie so angeschlossen:

---[PWM Controller +5V]o---|640|---┐
                                   |
---[PWM Controller PWM in]o-------<┘

---[PWM Controller GND]o----------------[PWM Generator]---> GRD

Alternativ könnte ich mir auch noch folgende Schaltung vorstellen... 
allerdings weiss ich nicht ob die überhaupt so funktionierten kann bzw. 
habe ich auch Schiss dass ich so etwas am PWM Generator grillen 
könnte...

---[PWM Controller +5V]o---|640|---┐
                                   |
---[PWM Controller PWM in]o--------┴---[PWM Generator]---> GRD

---[PWM Controller GND]o--------> GRD

2. Falls es mit der ersten Schaltung funktionieren sollte, dann bleibt 
nur noch Option zwei, nämlich dass der PWM Controller tatsächlich 
unwillig ist mit dem 72Hz Signal vom PWM Generator zu arbeiten. :-/
Kann mir jemand dazu eine einfache Lösung anbieten mit der ich die 
Frequenz von 72Hz auf >100Hz hochsetzen kann?

Danke und Gruß
Torsten

von Michael F. (sharpals)


Lesenswert?

was passiert dann ? Knurrt es ? Oder reagiert garnichts ?

Kannst du ein Oszilloskop bekommen ? Nicht, daß deine Pegel nicht 
stimmen und  es deshalb zu problemen kommt.

Ich finde jetzt leider deinen PCM-generator nicht , hab ich ihn 
übersehen ?

Gruß Michael

von Matthias S. (Firma: matzetronics) (mschoeldgen)


Lesenswert?

Torsten80 schrieb:
> 1. Meine Verkabelung ist falsch...

Ich habe dir doch oben ein Bildchen gepostet, was ich mit viel Mühe 
hingekliert hatte:-P
Beitrag "Re: Hilfe bei PWM controller Ansteuerung"

Bei deiner Ascii Grafik blicke ich nicht ganz durch, wo ist denn der PWM 
Ausgang nun angeschlossen?
Ausserdem darfst du nicht vergessen, die Jumper auf der Endstufe auf 
externe PWM zu setzen.

von Torsten80 (Gast)


Angehängte Dateien:

Lesenswert?

@Matthias: Ich hatte ja wirklich fest vor mich an deinem Bild zu 
orientieren - allerdings hab ich doch das Problem, dass aus meinem 
Steuergerät nur ein Kabel herauskommt und nicht wie bei dir beschrieben 
zwei.

Entsprechend habe ich das Ganze so wie auf dem Bild verkabelt in der 
Annahme das es so tut.
Ein Oszi habe ich... Gemessen zwischen 5V-in und Speed GRD habe ich ein 
schönes 50% PWM Signal... dennoch tut sich rein garnichts.

von Matthias S. (Firma: matzetronics) (mschoeldgen)


Lesenswert?

Verlinke doch mal bitte den PWM Generator, den wir bisher immer als 
Blackbox angesehen haben.
Der hat mit Sicherheit einen Masseanschluss, der mit der Masse des 
Endstufe verbunden werden muss.
Und dann hat er einen PWM Ausgang. Der scheint dir aber Probleme zu 
bereiten, die ich im Moment nicht ganz durchblicke, weil du so komisch 
zeichnest.
Zwei Dinge sind auf jeden Fall wichtig. Wenn du den PWM/Brake In Eingang 
an der Endstufe benutzt, müssen die Jumper auch so stehen.
Das zweite - wir haben oben auch noch eine Alternative, die den Poti 
Eingang der Endsufe benutzt, als zweite Option erwähnt:
1
        680                      +5V vom Potianschluss
2
   +----|===|-------------------->
3
   |
4
   |                              Speed Input (Poti Mode)
5
o>-+---|===|----+-------|===|----+->
6
von PWM 470     |+       470     |+
7
               === 22µF         === 22µF
8
               ---              ---
9
                |                |
10
Masse           |                |
11
o---------------+----------------+->
Das ist eine um einen Pullup 680 Ohm ergänzte Schaltung des Tiefpasses 
von oben.

von Torsten80 (Gast)


Lesenswert?

Hmm, verlinken kann ich den PWM Generator nicht... eigentlich handelt es 
sich dabei um eine Unterfunktion in einem Steuergerät eines Fahrzeuges.

Derjenige der das Steuergerät verbrochen hat, hat mir erklärt, dass 
dieser PWM Generator nichts anderes macht als das Kabel im PWM Takt auf 
Masse zu schalten. Deswegen habe ich da auch nur ein Kabel dran, was 
rauskommt.

Besser kann ich es leider nicht erklären - ich hoffe du verstehst was 
ich meine?! :-/

Grüße
Torsten

von Matthias S. (Firma: matzetronics) (mschoeldgen)


Lesenswert?

Torsten80 schrieb:
> Besser kann ich es leider nicht erklären - ich hoffe du verstehst was
> ich meine?! :-/

So ungefähr. Na, dann probier doch die Shaltung aus meinem vorigen 
Posting, dazu muss die Endstufe wieder auf Potimodus gejumpert werden 
und du baust den Tiefpass, so wie wir ihn vor einiger Zeit mal 
gezeichnet haben.

Die einzige Ergänzung ist nun der 680 Ohm Pullup, der an die Endstufe 
auf die +5V Speisung geklemmt wird, die eigentlich mal fürs Poti gedacht 
war.

Die unterste Leitung im Bild geht an die Steuergerät Masse und die 
Endstufen Masse.

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.