Forum: Mikrocontroller und Digitale Elektronik PWM Frequenz erhöhen


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
von Sebastian (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Moin zusammen,

Ich möchte in einem aktuellen Projekt eine Spule bei Resonanz mit ca. 
375 kHz ansteuern. Dazu wurde bereits eine Gegentakt Endstufe 
entwickelt, welche positive und negative Spannungen am Ausgang erzeugt. 
Ein Arduino UNO soll nun zwei Signale liefern, welche jeweils einen 
Transistor aktivieren. Da kein Sinussignal benötigt wird, soll Amplitude 
am Ausgang einfach über die Pulsweite der Steuersignale erzeugt werden.

Mit meiner aktuellen Timer Konfiguration bekomme ich prinzipiell das 
Signal was ich haben möchte, jedoch nur mit einem Bruchteil der 
Resonanzfrequenz der Spule.

Meine Frage ist nun: Habe ich die Möglichkeit den Zählerstand der 
Counter zu limitieren, damit dieser das runterzählen z.B. schon bei 127 
beginnt?

Habe mich nun tagelang durch die Foren gelesen und bin nicht so wirklich 
fündig geworden.

Gruß, Sebastian

von H.Joachim S. (crazyhorse)


Bewertung
0 lesenswert
nicht lesenswert
Welcher Controller ist da drauf?

von Sebastian (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Ein mega328p

von Beo Bachter (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Sebastian schrieb:
> Habe mich nun tagelang durch die Foren gelesen und bin nicht so wirklich
> fündig geworden.

Die Minimal-Leistung die du erbringen müsstest wäre dein
Programm zu zeigen, und zwar in einer Form dass sie den
Regeln die hier beim Posten angegeben werden, gerecht wird.

von spess53 (Gast)


Bewertung
0 lesenswert
nicht lesenswert
hI

>Habe mich nun tagelang durch die Foren gelesen und bin nicht so wirklich
>fündig geworden.

Wie wäre es, einfach das Datenblatt deines Contrller zu lesen?

MfG Spess

von spess53 (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Hi

Contrller -> Controllers

MfG spess

von Mike R. (thesealion)


Bewertung
0 lesenswert
nicht lesenswert
Google füttern:

"arduino pwm frequency"

Sollte nicht zu schwer sein

von Reiner_Gast (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Sebastian schrieb:
> Mit meiner aktuellen Timer Konfiguration bekomme ich prinzipiell das
> Signal was ich haben möchte, jedoch nur mit einem Bruchteil der
> Resonanzfrequenz der Spule.

Ohne Code hilft das nicht viel... Wenn du die Arduino Umgebung benutzt, 
sind die Timer bereits anderwärtig eingestellt (Datails dazu finden sich 
in der Wiring Lib)

>
> Meine Frage ist nun: Habe ich die Möglichkeit den Zählerstand der
> Counter zu limitieren, damit dieser das runterzählen z.B. schon bei 127
> beginnt?

Hier empfiehlt sich ein Blick in Datenblatt des ATMega328...

Innerhalb der Arduino IDE würde sich der Timer2 anbieten (soweit ich 
weiß wird der nur benutzt für den Tone Befehl)... beim AVR Studio ist 
der Timer egal.

Hier wäre der Fast PWM Modus brauchbar (OCRA + Prescaler stellen die 
Frequenz ein und OCRB + "Clear OC2B on Compare Match" - Modus stellen 
die Impulslänge ein)

von Wolfgang (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Sebastian schrieb:
> Ich möchte in einem aktuellen Projekt eine Spule bei Resonanz mit ca.
> 375 kHz ansteuern.
> ...
> Da kein Sinussignal benötigt wird, soll Amplitude
> am Ausgang einfach über die Pulsweite der Steuersignale erzeugt werden.

Erhoffe dir aber keine zu hohe Auflösung bei der Pulsweitenmodulation. 
Dein Arduino Uno läuft maximal mit 16MHz.

von Checker (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Wolfgang schrieb:
> Erhoffe dir aber keine zu hohe Auflösung bei der Pulsweitenmodulation.
> Dein Arduino Uno läuft maximal mit 16MHz.

Das hat jetzt was genau mit Arduino zu tun?
Manchmal kann auch ein niedriger Takt günstiger sein für die optimale 
Einstellung. Hängt ja nicht nur vom Takt ab.

von Falk B. (falk)


Bewertung
0 lesenswert
nicht lesenswert

von Wolfgang (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Checker schrieb:
> Manchmal kann auch ein niedriger Takt günstiger sein für die optimale
> Einstellung. Hängt ja nicht nur vom Takt ab.

Wenn du ein sinusähnliches Ausgangssignal von 375kHz per PWM erzeugen 
willst, muss zunächst die PWM-Frequenz deutlich über der Frequenz des 
zu generierenden Signals liegen und die Basisfrequenz für das PWM-Signal 
muss noch mal um den Faktor der Auflösung über der PWM-Frequenz liegen.

Was genau würdest du da für einen Takt für eine optimale Einstellung 
vorschlagen, um ein Signal mit der Resonanzfrequenz der Spule zu 
erzeugen?

von Checker (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Wolfgang, laut TO benötigt er kein Sinus. Alles andere hängt von der 
gewünschten Auflösung ab, dann kann man Prescaler, Top und Controller 
Takt in optimalen Einklang bringen, wenn dieser noch flexibel ist.

von Checker (Gast)


Bewertung
0 lesenswert
nicht lesenswert
wobei das alles egal ist, hab mal gerechnet, bei 375kHz ist der 
Prescaler 1. Im Fast PWM Modus wäre TOP 42, was letztlich 377,4kHz 
wären. In anderen Modi würde der TOP Wert und damit die Auflösung gleich 
oder noch geringer sein. Phase Correct TOP 21. Da helfen auch keine 
20MHz statt 16MHz. Der TO muss mit der groben Einstellung leben oder 
einen anderen µC verwenden. Oder Spezial ICs.

von S. Landolt (Gast)


Bewertung
0 lesenswert
nicht lesenswert
> 377,4kHz
?

16 MHz / 42 = 380.95 kHz
16 MHz / 43 = 372.09 kHz

18 MHz / 48 würde passen, aber den Quarz bei einem Arduino tauschen ...? 
Und die Auflösung könnte ein Problem bleiben.

von Falk B. (falk)


Bewertung
0 lesenswert
nicht lesenswert
Hochauflösende PWM gibt es u.a. beim PICCOLO.

von Checker (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ich hatte auch mit 20MHz gerechnet und habe die Zahlen verhauen. Sorry.
20MHz / 52 = 377,4kHz
20MHz / 53 = 370,4kHz

Piccolo sieht auch interessant aus.

von J. Zimmermann (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Xmega verwenden, 32MHz, PWM-Out kann mittels Hires-Unit bei einigen 
Typen mit 8 multipliziert werden, d.h., 256Mz / 682 =  375.366 KHz
mfg
Achim

von Klaus (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Checker schrieb:
> Wolfgang, laut TO benötigt er kein Sinus.

Er wird einen bekommen, ob er will oder nicht.

Sebastian schrieb:
> Spule bei Resonanz mit ca. 375 kHz ansteuern.

Die Ansteuerung ist beinahe egal. Wenn das Ding in Resonanz ist, reichen 
sogar Nadeln als Ansteuerung, so ala Class C Endstufe

MfG Klaus

von Tom (Gast)


Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Falk B. schrieb:
> Hochauflösende PWM gibt es u.a. beim PICCOLO.
Oder beim ATtiny25/45/85 wenn der Timer 1 mit 64 MHz aus der PLL 
versorgt wird.

Sebastian schrieb:
> Da kein Sinussignal benötigt wird, soll Amplitude
> am Ausgang einfach über die Pulsweite der Steuersignale erzeugt werden.
Resonanz ist Resonanz. Da dürfte die Pulsweite nicht viel an der 
Amplitude machen. Viel eher kannst Du die Amplitude über die 
Anregungsfrequenz regeln.

von Falk B. (falk)


Bewertung
0 lesenswert
nicht lesenswert
@Tom (Gast)

>> Hochauflösende PWM gibt es u.a. beim PICCOLO.
>Oder beim ATtiny25/45/85 wenn der Timer 1 mit 64 MHz aus der PLL
>versorgt wird.

Naja, dann schau dir mal an, welche Zeitauflösung der PICCOLO kann. 
Dagegen sind 64 MHz PWM-Takt ein Witz.

von W.A. (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Tom schrieb:
> Resonanz ist Resonanz. Da dürfte die Pulsweite nicht viel an der
> Amplitude machen.

Natürlich lässt sich über die Pulsweite die Amplitude steuern, zumindest 
solange die Schwingungsamplitude kleiner als der Pegel des PWM-Signals 
ist.
Über das PWM-Tastverhältnis (und die Phasenlage) wird dann die Energie 
festgelegt, die in den Schwingkreis reingepumpt wird. Stell dir den 
Extremfall mit Tastverhältnis 0 vor. Dem Schwingkreis wird keine Energie 
zugeführt, also wird auch nichts schwingen.

Bei fester Anregungsfrequenz ohne Rückkopplung wird der Schwingkreis 
allerdings nie exakte in Resonanz laufen. Die Schwingungsamplitude hängt 
dann auch von der Güte ab.

von Tom (Gast)


Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Falk B. schrieb:
> Naja, dann schau dir mal an, welche Zeitauflösung der PICCOLO kann.
> Dagegen sind 64 MHz PWM-Takt ein Witz.
Ok, dann rechnen wir mal nach:

1. ATtiny25/45/85:
Taktfrequenz 8 MHz, nach PLL: 64 MHz
bei einer 8-Bit PWM (256 steps) bleibt eine PWM-Frequenz von 250 kHz.
Der Abstand zwischen zwei benachbarten Schritten beträgt 15,625 ns oder 
15625 ps.

2. TI Piccolo [1]:
Hier wird mit einer MEP von 150 ps geworben. Das ist Faktor 100.
Wenn man etwas weiter sucht, findet man auch ein Dokument, welches die 
High-Resolution PWM beschreibt [2]. Dort gibt es auch eine 
Gegenüberstellung (siehe Anhang).
Die 60 MHz Sysclkout sind mit dem ATtiny vergleichbar. Die HRPWM bringt 
gegenüber der normalen PWM 6,5 Bits mehr an Auflösung. Das passt ganz 
gut zu dem Faktor von oben: 2^6,5 = 90


Vorteil:
- Faktor 100 bessere Auflösung

Nachteil:
- Einarbeitung in ein neues System (32 Bit) mit verteilter 
Dokumentation; Immerhin gibt es das Composerstudio inzwischen für alle 
Plattformen und offenbar ohne Einschränkungen.


Ob die Empfehlung zum Piccolo für den TO die Richtige ist, wage ich zu 
bezweifeln:
- es ist unklar, ob die hohe Auflösung bzw. Frequenz hier gebraucht wird 
(keine Anforderung vom TO genannt)
- es ist unklar, ob TO mit der Komplexität des Piccolo klarkommt (liest 
Foren statt Datenblätter)

Möglicherweise ist auch meine Empfehlung schon zu komplex: Immerhin wird 
der ATtinyx5 nicht auf den gängigen Arduinoboards verbaut. Und nicht 
jeder kann bzw. will Platinen machen und löten.

[1] http://www.ti.com/lit/ds/sprs523l/sprs523l.pdf
[2] http://www.ti.com/lit/ug/spruge8e/spruge8e.pdf

PS.: Ich mag die Dokumentnummerierung von TI. Die ist supergriffig...
(Wer Ironie entdeckt, darf sie behalten.)

von Falk B. (falk)


Bewertung
0 lesenswert
nicht lesenswert
@Tom (Gast)

>Hier wird mit einer MEP von 150 ps geworben. Das ist Faktor 100.

EBEN!

>- Faktor 100 bessere Auflösung

>Nachteil:
>- Einarbeitung in ein neues System (32 Bit) mit verteilter
>Dokumentation; Immerhin gibt es das Composerstudio inzwischen für alle
>Plattformen und offenbar ohne Einschränkungen.

Tja, so eine Lösung fällt halt nicht vom Himmel und von Ratiopharm 
gibt's auch nichts. So ein Pech aber auch.

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]
  • [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.