Phasenverschobene PWM

Gast #1950843
Lesenswert?

Moin,

ich möchte gern eine PWM erzeugen. Dabei sollen insgesamt 6 
Steuersignale erzeugt werden, von denen  2 immer komplemtär sind. Also 1 
u. /1 , 2 u. /2 sowie 3 u. /3. Soweit noch ok. Jetzt müssen diese 3 
Signale zueinander 120° phasenverschoben sein. Hardwaremäßig kenne ich 
keinen AVR der das kann...

Habt ihr da eine Idee wie man das bewältigen könnte?
Die Lösung sollte wenn digital auf AVR Basis sein.
CPLD ist leider keine Alternative...




Gruß Knut
Gast #1951006
Lesenswert?

Bitte korrigiert mich wenn ich falsch liege, aber kann der AT90PWM "nur" 
Totzeit, keinen Versatz? Ich möchte mit 15-20kHz pulsen und 120° also 
max. 22µs versetzt die Signale rausgeben.

Wenn der es nicht kann, dann mach ich es halt auf die herkömmliche 
Methode mit 3 Timern (hallo XMega). In den PIC einzuarbeiten kostet 
leider zu viel Zeit, abwohl die Dinger auch hübsch sind ;-)



Gruß Knut
Gast #1951189
Lesenswert?

Sicher kann der das. Vom Prinzip her werden hier auch 3 Timer 
eingesetzt. Diese sind aber völlig anders zu konfigurieren als sonst 
beim AVR. Daher lasse ich das Argument mit der "langwierigen" 
Einarbeitung in den PIC auch nicht ganz gelten. So oder so wirst Du Dir 
viel neues aneignen müssen.
#1951668
Lesenswert?

Ingo L. schrieb:
> Wie soll ich denn da dann von 0...100% einstellen?

Oh, ich hatte wohl überlesen, daß das auch ein Kriterium sein soll... 
Auch ne, es stand ja bisher nirgends...

Was meinst du denn eigentlich? 0-100% duty-cycle oder 0-100% 
Phasenverschiebung?
Duty-Cycle: naja, den passenden Wert in das Compare-Register des 
jeweiligen Timers laden (z.B. OCRx oder so).
Phasenverschiebung: die Zählregister ein das jeweilige Verhältnis 
zueinander setzen (TCNT).
Wenn es sowas gäbe (ich wüßte aber grad nicht wo) wäre das sogar mit 
einem Timer und drei Compare-Registern in Hardware machbar...

zum Versatz: hm, ich seh das Problem nicht. Bei der Methode mit dem 
zeitversetzten Starten der Timer (oder gleichzeitiges Starten mit 
vorgeladenen Zählerregistern) hat man doch alles was man möchte :)

Vielleicht ist dieses Projekt interessant für dich:
http://www.mikrocontroller.net/articles/Frequenzumrichter_mit_Raumzeigermodulation

Da find ich den eingesetzten Brückentreiber echt praktisch, weil der das 
Erzeugen der Totzeit und das Invertieren der Signale übernimmt...
Vielleicht inspiriert dich das ja :)

Gruß

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren