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
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.
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).
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.
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.
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.
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
Kennt jemand einen SPI oder I2C IC, der ca. 8 Pins und min. 2 PWM Ausgänge hat?
@ 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.
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.
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
> 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.
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. ;-)
Es gibt auch fix-und-fertige servo drivers so wie http://www.pololu.com/catalog/product/207/resources
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.