mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik PWM Sam7s Invertieren


Autor: mikronoob (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

habe auf meinen sam7s-ek eine PWM auf drei Kanälen am laufen. Jetzt 
brauche ich noch drei weitere Kanäle, wobei jedweils nur immer das 
invertierte Signal auf jeweils einem Pin ausgegeben werden soll. Gibt es 
da eine einfache Möglichkeit, da ja nur 4 Kanäle zur Verfügung stehen?

Autor: Stephan W. (sir_wedeck)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi,
wie wäre es mit den Timern? Wenn noch welche frei sind....

Wenn ich mich noch richtig erinnere kannst du mit einen Timer, ein Pos. 
und ein Neg. Signal erzeugen und hättest noch 3x 2 Outputs.

Stephan

Autor: mikronoob (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Also ich benutze bei allen drei Signalen bisher den selben PWM - Timer. 
SO das alle die selbe Periodenlänge haben. Später soll halt nur jeweils 
der Duty Cycle unterschiedlich sein. Kann ich denn jeden Ausgang als PWM 
Ausgang definieren und wenn ja wie?

Autor: Stephan W. (sir_wedeck)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>bisher den selben PWM - Timer
was meinst du damit????

Jeder PWM-Channel hat seinen eigenen Clk und muss selbst eingestellt 
werden!
siehe PWM Channel Mode Register (Register Name: PWM_CMR[0..X-1])!

Für den PWM-Pins stehen Ports wie: PWM0 -> PWM3 (Peripheral B, 
PA11-PA14)
als Beispiel.

Für die Timer-Pins stehen die Ports wie: TIOA0 -> TIOA2 (TIOBx)

Stephan

Autor: mikronoob (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ja, also die PWM-Channels wurden auch jeweils eigenständig eingestellt 
und haben alle einen eigenen Timer, so wie es im Beispiel vom Atmel

    PWMC_ConfigureChannel(CHANNEL_PWM_LED0, AT91C_PWMC_CPRE_MCKA, 
AT91C_PWMC_CALG, 0);
    PWMC_SetPeriod(CHANNEL_PWM_LED0, MAX_DUTY_CYCLE);
    PWMC_SetDutyCycle(CHANNEL_PWM_LED0, MAX_DUTY_CYCLE/2);

Dieses jeweils für drei Kanäle. Und dann jeder Kanel aktiviert.

PWMC_EnableChannel(CHANNEL_PWM_LED0);

So habe ich an drei Pins meine PWM, wobei ich jetzt einfach die selben 
Signale noch einmal nur Invertiert benötige.

Autor: Stephan W. (sir_wedeck)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>haben alle einen eigenen Timer
gut, jetzt reden wir von den gleichen Dingen.

Da du nur 4 HW-PWM Channels hast, kannst du nur diese benutzen.
Aber: Die HW-Timer selber können auch als PWM Generator genutzt werden.

siehe DB, Kapitel 33 Timer Counter:
The Timer Counter (TC) includes three identical 16-bit Timer Counter channels.
Each channel can be independently programmed to perform a wide range of functions including
frequency measurement, event counting, interval measurement, pulse generation, delay timing
and pulse width modulation.

vielleicht würde das für dich gehen.

Stephan

Autor: mikronoob (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das ist ja ziemlich umständlich, da ich ja eigentlich nur das 
invertierte Signal jedes Channels benötige. Vor allen dann wenn ich 
später mit interrupts arbeite und den duty cycle ständig ändere! Gibt es 
da nich doch eine andere einfachere Möglichkeit?

Autor: mikronoob (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hat den keiner noch einen Tipp für mich?

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
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.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.