PWM Frequenz erhöhen

Gast #5447522
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
Gast #5447539
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.
Gast #5447672
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)
Gast #5447783
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.
Gast #5448494
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.
Gast #5448518
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?
Gast #5448869
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.
Gast #5448905
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.
Gast #5450098
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.
Angehängte Dateien:
Gast #5450228
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.
Gast #5451148
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.)
Angehängte Dateien:
#5451212
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

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren