mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Raumzeigermodulation auf LPC2468


Autor: Gerhard (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,
ich möchte eine Steuerplatine für einen Frequenzumrichter bauen.
Gleich vorneweg - das ist nicht mein erstes derartiges Projekt, und von 
Leistungselektronik habe ich mittlerweile einige Ahnung.
Ich habe sowas schon mal mit einem HCS08-Mikrocontroller realisiert. Das 
Problem dabei war, dass ich da eigentlich nur 2 PWM-Kanäle zur Verfügung 
hatte, aber mittels diverser Tricks konnte ich dann doch alle 3 Phasen 
korrekt ansteuern. Der Umrichter ist dann auch gelaufen! Wenn auch nur 
bis wenige 100 Watt.
Wie auch immer - der LPC2468 hat doch diesen schönen PWM-Block, der 6 
Ausgänge hat. Das schreit geradezu nach einer FU-Anwendung! Der Vorteil 
da wäre natürlich, dass jeder dieser 6 PWM-Ausgänge direkt einen eigenen 
Transistor (High- und Lowside) der Leistungsstufe ansteuern könnte. Und 
rein durch Software könnte man damit dann wahlweise bürstenlose DC
en oder DAMs ansteuern - die benötigen ja unterschiedliche 
Ansteuerverfahren.
Soweit zur Theorie. Jetzt die Praxis: erlaubt der LPC2468 eine solche 
Anwendung des PWM-Blocks? Ich bin bisher davon Ausgegangen, dass ich 
jeden PWM-Ausgang einzeln kontrollieren kann, und musste beim Studium 
des Handbuchs gerade feststellen, dass dem gar nicht so ist. Entweder 
habe ich den "single-edge mode", wo dann alle PWM-Signale gleichzeitig 
auf 1 wechseln und beim entsprechenden Match dann wieder auf 0 gehen, 
oder ich habe den "dual-edge mode", wo PWM1 bei Match 0 gesetzt und bei 
MAtch 1 gelöscht wird, PWM2 bei Match 1 gesetzt und bei Match 2 gelöscht 
usw.
Frage: Ist es somit, wenn ich nur die Pins des einen PWM-Blocks zur 
Verfügung habe, trotzdem irgendwie möglich, "center aligned" PWM-Signale 
zu bekommen? Ausserdem soll jede zweite PWM genau invertiert sein (incl. 
deadtime, das müsste doch auch machbar sein?).
Kurz gesagt:
ich will eine Raumzeigermodulation machen, und die 6 PWM-Ausgänge über 
Gatetreiber direkt zur Ansteuerung der High- und Lowside-FETs benutzen 
(ich will also KEINE externe Logic mehr benutzen - früher musste ich 
mittels Inverter die Highside-Ansteuerung generieren sowie extern noch 
eine deadtime in die Signale rein mogeln, was ich mir hier ersparen 
möchte).

Autor: toby (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi,

ich habe genau die gleiche Aufgabe zu lösen. Die 3 DutyCyles habe ich 
bereits per SVPWM modellbasiert entwickelt und über Simulink/TargetLink 
codegeneriert.

Problem bei mir: Meine PWM-Kanäle auf dem S12X sind zwar 
Center-Alligned, aber es ist keine Totzeit einstellbar, d.h. irgendwie 
muss ich hier die Gateansteuerungen verzögern. Leider fehlt mir noch die 
entscheidende Idee. Eine Softwarelösung fällt meines Erachtens wegen der 
sowieso schon hohen CPU-Load aus.

Kannst Du mir vielleicht in der Zwischenzeit deine damalige Analoglösung 
zeigen? Hab ein paar Studenten die an dem Thema Umrichter arbeiten, und 
die könnten sicher einen funktionierenden Ansatz brauchen.

Ich schau mal ob ich eine Softwarelösung für das PWM hinbekomme, sodass 
der CO-Prozessor sind um die PWM-Erzeugung kümmert.
Ich nehme an auf deinem µC ist nicht mehr viel Rechenleistung frei nach 
der SVPWM, oder?

Grüße,
Toby

Autor: Gerhard (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi toby,
doch der Prozessor hat genug Ressourcen, um die SVPWM relativ problemlos 
erledigen zu können. Wie gross die CPU load ist, kann ich dir nicht 
genau sagen, aber ein serielles Terminal mittels Polling läuft nebenbei 
völlig fehlerfrei, ebenso wie die Auswertung einer Tastatur sowie eine 
kleine Displayausgabe.

Meine Totzeit habe ich wie folgt generiert:
Mit dem digitalen Signal über einen Widerstand auf einen Kondensator und 
dann auf den Eingangspin eines 74HC14, dann nochmals 74HC14, damit es 
nicht invertiert ist.
Der Eingangs erwähnte Widerstand ist mit einer Diode überbrückt, und 
zwar so, dass bei einer logischen eins die Diode sperrt (der Kondensator 
muss also erst aufgeladen werden, bis am Ausgang des letzten '14er eine 
eins raus kommt), und bei einer logischen 0 leitet die Diode und der 
Kondensator wird sehr schnell entladen. Somit wird das Einschalten 
verzögert, das ausschalten jedoch mehr oder weniger kaum beeinflusst.
Bedingt aber, dass man Portpins hat, die ein bisschen Strom sourcen und 
sinken können; sollte dies nicht der Fall sein, einfach den letzten 
74HC14 als Treiber 'missbrauchen'.

Autor: toby (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi Gerhard,

ich hab nun vorerst einen Fahrtregler (Hextronik 120) aus dem Modellbau 
missbraucht. Das Gerät hat pro Halbbrücke einen Gatetreiber "IR2103" 
verbaut, welchen ich mit gleichphasigem PWM ansteuern kann. Funktioniert 
prima soweit. Die genannte Lösung ist für die selbst gefertige Platine 
eine gute Option, vielen Dank soweit.

Grüße,
Toby

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.