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

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.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.