PWM am XMega32 - richtig soweit?

OP #2719848
Hallo Community

Ich versuche gerade die PWM-Erzeugung auf einem XMega32 zu verstehen.
Ich glaube ich habe es soweit verstanden, ich möchte nur sicher gehen, 
und euch fragen ob ich so alles richtig mache.

Zum Problem: Ich möchte vier unterschiedliche PWM Signale an je einem 
Pin des µC ausgeben.

Dazu muss ich zuerst z.b. den Timer TCD0 einstellen: (dieser gibt 
standardmäßig die Signal am Port D aus)

  TCD0.PER = 0xffff;    //  Periode des Timers
  TCD0.CTRLA = TC_CLKSEL_DIV1_gc; //  Prescaler auf 1
  TCD0.CTRLB = TC_WGMODE_SS_gc    // SingleSlope Wavemode
                   | TC0_CCDEN_bm       // 4 Outputs an: OC0D (Pin 23)
                   | TC0_CCCEN_bm       // OC0C (Pin 22)
                   | TC0_CCBEN_bm       // OC0B (Pin 21)
                   | TC0_CCAEN_bm;      // OC0A (Pin 20)

  TCD0.CCA = 70;   // Bei Zählerstand 70 wird der Wert an Pin 20 
getoggled
  TCD0.CCB = 100;
  TCD0.CCC = 120;
  TCD0.CCD = 300;


  PORTD.DIR = 0xff;


Wenn ich die Signale am Port E ausgeben möchte, benutze ich dann zum 
Beispiel den Timer TCE0, der seine Signal standardmäßig auf Port E 
ausgibt.
Es stehen mir also beim XMega32 die Timer TCC0, TCD0, TCE0 mit jeweils 4 
PWM Channels zur Auswahl. Deren Outputs liegen immer auf den 
"OC0A:D"-Pins.
Ich hoffe das war richtig bisher, ich plane nämlich gerade eine 
Schaltung und überlege wo ich meine PWM-Signale anschließen muss.
Viele Grüße
Matthias
(Firma: matzetronics)
Falls du den ATXMega32A4 meinst, ist das soweit richtig. Entscheidend 
für dich ist die Tabelle 'Alternate Port Functions' auf Seite 51 und 52 
des Datenblattes.
Bedenke, das AWEX nur auf Port C zur Verfügung steht. AWEX kann die 
Erzeugung komplexerer und komplementärer Signale deutlich vereinfachen.
OP
Ja ich möchte den ATXMega32A4-AU verwenden.

Also würde ich, wenn ich AWEX nutzen möchte, meine PWM an PC0 (OC0ALS), 
PC2 (OC0BLS), PC4 (OC0CLS) und PC6 (OC0DLS) anschließen?

Low Side (LS) gibt mir immer invertierte Signale zu High Side (HS), aber 
im Prinzip liegen da die gleichen Signale an?

Eine PWM ist aber auch ohne AWEX möglich zu erzeugen, AWEX würde ich 
halt verwenden wenn ich eine spezielle Waveform benötige und nicht nur 
"ein - aus", richtig?

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 14 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

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.