www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik PWM mit T89C51CC02


Autor: AT89-Fan (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich programmiere einen T89C51CC02 von Atmel mit der Sprache C. Nun 
versuche ich, ein PWM-Signal auszugeben. Von welchen Einstellungen hängt 
die Frequenz des Signals ab?

Das Register CMOD besitzt zwei Bits, nämlich CPS0 und CPS1. Damit kann 
ich den Quelle für den Takt des PCA-Timer einstellen, darunter:

- PCA-Takt / 6
- PCA-Takt / 2
- Timer 0
- Externer Takt auf Pin 1.2

Das Programm sieht in so aus (aus Atmel FAQ):

CMOD = 0x00 // using PCA timer
CCON = 0x40
CCAP0H = 0xa0;
CCAP0L = 0xa0;
CCAPM0 = 0x42;

Hier werden quasi Compare-Register CCAPxy gesetzt, die mit dem aktuellen 
PCA-Timer-Wert verglichen werden. Je nach Ergebnis (< oder =>) wird dann 
das PWM-Signal auf Low oder High geschaltet.

Gibt es auf der Software-Seite noch Faktoren (irgendein Register oder 
so), die die Timer-Frequenz, die als Basis für das PWM-Signal herhalten 
muß, beeinflußen? Hängt alles ausschließlich an den Bits CPS0 und CPS1 
sowie der CPU-Frequenz?

Autor: ARM-Fan (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ja, leider ist das so. So nett das PCA-Modul ist, da ist es echt
etwas unflexibel.

Autor: AT89-Fan (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wieso kann ich nicht ein PWM-Signal schneller als T (Periode) 1 / 16 kHz 
erzeugen? Ich verwende doch ein Oszi mit 16 MHz. Ich dachte, daß das 
PCA-Modul  (nach Clock-Blockdiagramm aus dem Data-Sheet) die Hälfte von 
16 MHz bekommen sollte. Was mache ich falsch? Wo denke ich falsch?

Autor: Matthas (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Die Taktfrequenzen für die PCA sind sehr eingeschränkt. Eventuell kannst 
Du versuchen, im PCA-Timer-Interrupt den Zählumfang des PCA-Timers zu 
verkürzen. Das geht aber auf Kosten der PWM-Auflösung. Andere Variante 
wäre eine PWM mit Hilfe der High Speed Output Modis nachzuempfinden.

Eine ausführliche PCA-Beschreibung (Original Intel) als Anlage. Atmel 
ist weitgehend kompatibel dazu.

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.