Forum: Analoge Elektronik und Schaltungstechnik PWM Erzeugung in hardware


von Alex (Gast)


Angehängte Dateien:

Lesenswert?

Hallo.

Ich habe schon seit längerem die Idee eine PWM mit digitaler Ansteuerung 
als Hardwareaufbau zu realsieren. Im Anhang ist der Aufbau Schematisch 
verdeutlicht.

Vom µC kommt der Sollwert über einen Bus (z.B. I²C), im EEPROM des DAC 
wird der Wert gespeichert, sodass auch nach Power Off die Einstellung 
wieder vorhanden ist. Bei dem DAC handelt es sich um einen 10/12biter, 
je nach Anforderung an die Auflösung. Anschließend wir das Signal auf 
einen OPV als Komperator gegeben und mit einer Dreieck oder 
Sägezahnspannung verglichen. Am Ausgang des OPV sollte nun ein PWM 
Signal anliegen. Dieses kann nun weiterverarbeitet werden z.B. als 
Schaltsignal für einen FET.


Nun hab ich einige Fragen.

1. Habe ich in meinem Konzept einen Denkfehler oder ist es schlüssig?

2. Wie sieht die technische Realisierbarkeit aus. OPVs und DACs kosten 
ja nicht die Welt. Aber wie sieht es da mit Quarzen/Oszilatoren aus, die 
eine Dreickspannung erzeugen?

3. Welche Vor und Nachteile ergeben sich gegenüber einem Aufbau mit 
NE555 oder einer PWM direkt aus dem µC?

4. Hat jemand sonstige Anmerkungen?


Alex

von Helmut L. (helmi1)


Lesenswert?

Alex schrieb:
> 1. Habe ich in meinem Konzept einen Denkfehler oder ist es schlüssig?
>
> 2. Wie sieht die technische Realisierbarkeit aus. OPVs und DACs kosten
> ja nicht die Welt. Aber wie sieht es da mit Quarzen/Oszilatoren aus, die
> eine Dreickspannung erzeugen?

Und warum machst du das ganze nicht mit den Timern des uC? Dann kannst 
du dir den ganzen Aufbau mit OPs und DAC sparen und du hast direkt 16 
Bit Aufloesung.

von MaWin (Gast)


Lesenswert?

Ein auf 12 bit präzises analogen Dreiecksignal ?
Vergiss es.
Selbst mit Konstantstromquellen schaffst du keine 8 bit.
3 Bauteile (DAC, Dreieckgenerator, Komparator)
statt 1 Bauteil (ein weiterer uC der aus dem per
I2C übermittelten im EEPROM gespeicherten Wert die
PWM erzeugt auch wenn der Haupt-uC angeschaltet ist)
oder 0 weiteren Bauteilen (der Haupt-uC erzeugt
immer die PWM, warum eigentlich nicht).

von Alex (Gast)


Lesenswert?

Weil die meisten µC ja nicht mehr als 3 timer haben. d.h. Wenn ich 8 
einzeln ansteuerbare PWM Signale haben will, brauch ich 3 oder mehr µCs.

Das Dreiecksignal soll keine 8 bit haben, sondern nur zwischen 0V und 
z.B. 10DAC+ EEPROM oszilieren. der DAC soll die Schwellspannung 
erzeugen, damit der OPV einen Schaltpunkt hat.

Ich kenne mich mit Oszilatoren nicht so aus, sndern kenne nur die 
idealen Kennlinien. Aber die realen müssten ja zumindest ansatzweise mit 
den idealen übereinstimmen. Dass da ein rauschenvorhanden sein wird, ist 
mir klar.

von Konrad S. (maybee)


Lesenswert?

Alex schrieb:
> Weil die meisten µC ja nicht mehr als 3 timer haben. d.h. Wenn ich 8
> einzeln ansteuerbare PWM Signale haben will, brauch ich 3 oder mehr µCs.

Und wieviele PWMs hat jeder Timer???
Z.B. ein ATmega88 hat schon mal 6 PWM-Kanäle.

von Helmut L. (helmi1)


Lesenswert?

Alex schrieb:
> Weil die meisten µC ja nicht mehr als 3 timer haben. d.h. Wenn ich 8
> einzeln ansteuerbare PWM Signale haben will, brauch ich 3 oder mehr µCs.

Konrad S. sagte es ja schon das ein Timer mehrere PWM Kanaele haben 
kann.
Aber andersum ein uC mehr oder weniger ist immer noch billiger und 
praeszieser als das ganze mit DAC und OPs.

von Axel S. (a-za-z0-9)


Lesenswert?

Alex schrieb:
> 1. Habe ich in meinem Konzept einen Denkfehler oder ist es schlüssig?

Es ist unsinnig. Ungefähr vergleichbar mit der Ansteuerung eines 
LCD-Monitors mit einem analogen VGA-Signal.

Ein digitaler PWM-Modulator besteht aus einem ladbaren Zähler und einem 
Flipflop. Außerdem einem Referenzzähler, der für beliebig viele 
PWM-Kanäle gemeinsam verwendet werden kann.

Die Funktion ist wie folgt:

- alle Zähler bekommen den gleichen PWM-Takt

- wenn der Referenzzähler überläuft, löst das folgendes aus:

 * alle PWM-Zähler werden mit ihrem Sollwert geladen
 * die Flipflops werden gesetzt

- immer wenn ein PWM-Zähler überläuft, setzt er sein Flipflop zurück

Die Ausgänge der Flipflops sind die PWM-Signale. Am einfachsten begreift 
man die Funktion, wenn der PWM-Zähler rückwärts zählt. Dann ist die 
Pulsbreite am Flipflop direkt proportional zum geladenen Zählerwert. 
Aber man kann genausogut vorwärts zählen und das Ausgangssignal 
invertieren.

Man braucht für ein k-kanaliges n-Bit PWM-System also:

- k n-bittige Register für den Sollwert
- k n-bittige Zähler mit Preload-Funktion
- k Flipflops
- einen weiteren n-bittigen Zähler
- irgendeine Mimik, um die Sollwerte in die Register zu bekommen

im wesentlichen braucht mal also k*(2n+1) + n Flipflops und ein bisschen 
Logik zur Verknüpfung. All das findet man in einem PLD.

http://www.mikrocontroller.net/articles/Programmierbare_Logik


XL

von Luca (Gast)


Lesenswert?

Kennt jemand einen SPI oder I2C IC, der ca. 8 Pins und min. 2 PWM 
Ausgänge hat?

von Falk B. (falk)


Lesenswert?

@ Alex (Gast)

>Weil die meisten µC ja nicht mehr als 3 timer haben. d.h. Wenn ich 8
>einzeln ansteuerbare PWM Signale haben will, brauch ich 3 oder mehr µCs.

Macht kein Mensch so. Entweder ein uC mit mrh Timern/PWM Ausgängen oder 
digitale PWM-ICs. Analoge PWM Erzeugung ist Schnee von vorgestern.

Wenn die PWM-Frequenzen eher niedrig sind, nimmt man Soft-PWM.

von Alex (Gast)


Lesenswert?

Konrad S. schrieb:
> Alex schrieb:
>> Weil die meisten µC ja nicht mehr als 3 timer haben. d.h. Wenn ich 8
>> einzeln ansteuerbare PWM Signale haben will, brauch ich 3 oder mehr µCs.
>
> Und wieviele PWMs hat jeder Timer???
> Z.B. ein ATmega88 hat schon mal 6 PWM-Kanäle.


Das kann ich dir leider nicht sagen, da ich mich noch nicht so tief in 
die Materie der µC eingearbeitt habe um das für alle Familien zu wissen.

Von FPGAs hab ich bishr gar keine Ahnung, von daher wäre eine kleine 
Skizze zu dem was Axel geschrieben hat sehr nützlich.

von Reinhard Kern (Gast)


Lesenswert?

Alex schrieb:
> Weil die meisten µC ja nicht mehr als 3 timer haben. d.h. Wenn ich 8
> einzeln ansteuerbare PWM Signale haben will, brauch ich 3 oder mehr µCs.

Und um das zu vermeiden, nimmst du 8 DACs plus OPVs plus Beschaltung - 
ist dir nicht bewusst was für eine völlig unsinnige Argumentation das 
ist?

Nicht nur analoge PWMs sind nicht mehr Stand der Technik, diskrete 
digitale sind ebenso out, ein winziger µController kann das einfach 
besser und billiger und kleiner. Höchstens über ein CPLD/FPGA mit 8 x 
PWM könnte man noch nachdenken, aber die Entwicklungskosten dafür lohnen 
sich nicht.

Gruss Reinhard

von MaWin (Gast)


Lesenswert?

> Weil die meisten µC ja nicht mehr als 3 timer haben. d.h. Wenn ich 8
> einzeln ansteuerbare PWM Signale haben will, brauch ich 3 oder mehr µCs.

Oje, kannst du wirklich keine PWM programmieren ?

> Kennt jemand einen SPI oder I2C IC, der ca. 8 Pins und min. 2 PWM
> Ausgänge hat?

bereits ein ATTiny10.

Ist aber unsinnig, 2 Pins Versorgung, 3 Pins SPI, 2 Pins PWM, ist eine 
schlechte Ausnutzung.

PCA9626B hätte 24 PWM Kanäle, PCA9532 16, und beide sind für LEDs 
gebaut.

von Konrad S. (maybee)


Lesenswert?

Alex schrieb:
> Das kann ich dir leider nicht sagen, da ich mich noch nicht so tief in
> die Materie der µC eingearbeitt habe um das für alle Familien zu wissen.

Du musst es mit auch garnicht sagen. Ich lese das selbst aus den 
Datenblättern. ;-)

von Patrick C. (pcrom)


Lesenswert?

Es gibt auch fix-und-fertige servo drivers so wie 
http://www.pololu.com/catalog/product/207/resources

von zp5ui (Gast)


Lesenswert?

Guck mal bei IXYS -> IXDP610

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.