mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik 2 PWM-Ausgänge synchronisieren


Autor: Sparfuchs (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

meine Anwendung braucht 2 Rechtecksignale mit unterschiedlichen, im 
Betrieb einstellbaren Frequenzen und einer definierten und im Betrieb 
einstellbaren Phasenlage (-90° bis 90°) zwischen den beiden Ausgängen.

Kann man das mit AVRs realisieren?

Dachte daran 2 CTCs zu verwenden. Die Synchronisierung bereitet noch 
Kopfschmerzen: Habe Tips gefunden, dass man sich die Anzahl der Zyklen 
zwischen der Initialisierung der beiden Ausgänge zu debuggen und TCNT 
entsprechend vorher einzustellen. Finde ich nicht gerade elegant. Geht 
das besser?

Danke im Voraus für Hilfe!

Autor: Michael G. (sparrenburg)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

geht das auch analog? Wäre unter Umständen einfacher.

Ansonsten: Mit einem Cortex M3 habe ich vor ein paar Tagen eine 
Simulation geschrieben, damit er meinem DUT einen Inkrementalgeber 
simuliert. Da habe ich eine Phasenverschiebung von 90° fest. Realisiert 
über zwei Timer-IRQ's.

Wie genau solls denn sein?

Grüße
Michi

Autor: slw (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ja, allerdings nicht mit allen. Schau Dir PWM3 an. bei xmega bin ich mir 
nicht sicher.

Autor: Sparfuchs (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Erstmal danke für die ersten antworten!

Michael G. schrieb:
> geht das auch analog? Wäre unter Umständen einfacher.

Ich brauche auf jeden Fall ein digitales Interface, daher die Idee einen 
uC zu verwenden. Aber selbst wenn ein DA-Wandler oder ein digitales Poti 
verwendet wird, wie kann man sowas analog einfacher realisieren? Ich 
dachte, da Rechtecksignal, ist es auf jeden Fall digital besser und 
einfacher zu machen.

> Realisiert über zwei Timer-IRQ's.

Ein Timer, zwei OCR und zwei Timer IRQs. Ist eine gute Idee... Mal 
drüber gedanken machen....

Michael G. schrieb:
> Wie genau solls denn sein?

8 bit für beides (Frequenz und Phasenlage) wäre Wunsch. 6 Bit sollten es 
mindestens sein. Frequenz zwischen 40-60kHz. Phasenlage (zwischen den 
beiden Signalen!) zwischen -90° und 90°. Die Rechtecksignale haben 
jeweils eine feste Pulsweite = 50%.

Würde gerne einen Atmega oder Attiny verwenden. Habe mit denen Erfahrung 
und eh noch ein paar hier rumliegen.

Was ist PWM3? Meinst Du PWM-Mode = 3?

Autor: Michael G. (sparrenburg)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Also ich habe das folgendermaßen gelöst:

1) Timer 1 generiert mir ein Reckeck mit einem Duty-Cicle von 50%.
2) Im IRQ des Timer 1 wird der Port-Pin (A) invertiert (dadurch halbe 
Frequenz!)
3) Im IRQ des Timer 1 wird ebenfalls Timer 2 gestartet, welcher das 
gleiche Setupt hat wie Timer 1 (gleich Frequenz,...), das wäre bei dir 
dann anzupassen.
4) Im IRQ des Timer 2 wird dieser gestoppt
5) Im IRQ des Timer 2 wird der entstrechende Port-Pin (B) invertiert.

Das ganze funktioniert sehr gut und sehr genau. Der Cortex läuft mit 
72Mhz und zählt auch zusätzlich die Impulse.

Bei der Umkehr der Zählrichtung werden einfach die Port-Pin's A und B 
getauscht.

Ich kenne die AVR's nicht mehr so genau, aber rechenintensiv ist es 
nicht. Und die Werte könnten über DMA-Register nachgeladen werden (denke 
ich).

Grüße
Michael

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.