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
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.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.