Forum: Mikrocontroller und Digitale Elektronik PWM am XMega32 - richtig soweit?


von Matthias K. (bartimaeus)


Lesenswert?

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

von Matthias K. (bartimaeus)


Lesenswert?

huhu?
Ich würde mich über eine Rückmeldung freuen :)

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


Lesenswert?

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.

von Matthias K. (bartimaeus)


Lesenswert?

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?

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.