Hallo alle zusammen. Ich bin jetzt schon seit einiger Zeit am Suchen und finde keine Lösung fürt das Problem, zumal ich recht neu in der Materie bin. Konkret möchte ich 2 PWM Signal multiplizieren und in Gleichspannung umwandeln. Dabei ist es egal in welcher Reihenfolge das passiert. PWM -> Multi -> Gleichspannung PWM -> Gleichspannung -> Multi Ratschläge wie dies am besten zu machen ist? Danke schonmal für die Antworten greetz decola977
Was meinst du mit "2 PWM multiplizieren" Es gibt beim PWM ja nur die Zustände 0 und 1. Demnach sollte das ganze mit einem AND-Gatter zu multiplizieren sein ( 1&1 =1 1&0=0 0&1 =0 0&0=0) Dahinter dann ein Tiefpass deiner Wahl (zB RC Glied) um daraus eine Gleichspannung zu erzeugen.
Also wenm ich richtig bin kann ein PWM Signal verschiedene Zahlenwerte repräsentieren. Also wenn das Signal kurz ist steht das für eine 10 und wenn es 128 (zum Beispiel). Diese beiden Zahlenwerte würde ich gerne multiplizieren.
Beschreibe mal das Problem als ganzes. Woher kommen die PWM-Signale, in welcher Form liegen sie vor (Frequenz, Spannung), was repräsentieren sie, wieviel Ausgangssignale soll es geben, was soll mit dem Ausgangssignal geschehen, welche Form soll dieses haben, und was soll damit gesteuert werden?
Kolja B. schrieb: > Ratschläge wie dies am besten zu machen ist? Multiplizieren ist in Analogtechnik schlecht zu machen. Also sollte man die PWM Signale digital erfassen, das gehr sehr genau, binär multiplizieren, und wieder in ein PWM Signal wandeln, welches dann gefiltert werden kann.
Analog würde das in etwa so aussehen: http://de.wikipedia.org/wiki/Analogmultiplizierer#Prinzipaufbau Wobei natürlich noch die Wandlung der PWMs fehlt. Mach was MaWin sagt. Er wird Dich schon nicht die Spannung in der Steckdose mit der Zunge prüfen lassen... hoffe ich ;)
MaWin schrieb: > Multiplizieren ist in Analogtechnik schlecht zu machen. Also sollte man > die PWM Signale digital erfassen, das gehr sehr genau, binär > multiplizieren, und wieder in ein PWM Signal wandeln, welches dann > gefiltert werden kann. Man muss es nicht übertreiben. Als analoge Lösung kann man das erste PWM-Signal mit einem Tiefpass in ein Analogsignal umwandeln und dieses mit einem Analogschalter mit dem zweiten PWM-Signal takten. Ein Tiefpaßfilter dahinter gibt einem ein Analogsignal proportional zum Produkt der beiden PWM-Steuersignale. Ob die Bandbreite bei diesem Verfahren reicht, hängt von der Anwendung ab.
Mein Eindruck ist, es geht schlicht und ergreifend darum, ein PWM-Signal in 0..10V zu wandeln - richtig? Also einfaches RC-Glied als Tiefpass am PWM Ausgang und anschließend OP-Schaltung mit Verstärkung von 2, d.h. zwei gleiche Widerstände in der Rückkopplung.
mir ist nicht klar was du da multiplizieren möchtest. PWM = Puls-Weiten-Modulation. Das ist erstmal ein digitales 0/1 Signal Angenommen, du möchtest eine Glühbirne mit PWM ansteuern. Wenn du in 1 Sekunde die Hälfte der Zeit Spannung auf der Leitung hast, und die andere Zeit nicht, hast du ein Tastverhältnis von 50% Wegen mir kannst du da auch eine Wandel- und Ansteuer-Routine haben, welche dir aus 0 .. 255 ein entsprechendes Pulsverhältnis von 0 .. 100% "macht". aber was nützt die dir Multiplikation von 128 (=50,0%) mit 10 (=0,04%)? Heraus kommt 2% (oder dein ursprünglicher Binärwert "5"). Aber was machts du nun damit? Was soll dieser Rechenwert ausdücken?
:
Bearbeitet durch User
Erst mal danke für die Antworten. Ich werde jetzt mal versuche etwas Licht ins Dunkle zu bringen. Ziel ist es mit einem Raspberry PI einen Show Laser mit Hilfe des ILDA Standards zu kontrollieren. Der ILDA Standard schreibt vor das Position, Intensität und andere Parameter des Lasers über eine Gleichspannung im Bereich von -5V bis 5V geregelt werden. Der Rasperberry PI ist ein Minicomputer der ein GPIO (General-purpose input/output) Interface hat, welches die Möglichkeit hat PWM Signal auszugeben. Dieses PWM Signal kann 1024 verschiedene Zustände darstellen (oder hat 1024 verschieden lange Tastgerade wenn man so will). Dies ist aber für die Steuerung eines Laser zu wenig da dann die darstellbaren Formen zu "Eckig" sind. Aus diesem Grund möchte ich gerne das Signal von 2 PWM Ausgängen mit einander multiplizieren, so dass ich auf 1024*1024 = 1048576 Zustände komme (wobei 16Bit => 65536 ausreichend sind). Die Frequenz des PWM Signals lässt sich im Bereich von 4600Hz bis 19.2MHz frei einstellen. Die Spannung kann bis zu 5V erreichen. Es gebe auch die Möglichkeit ein UART, SPI oder I2C Ausgang zu nutzen, aber ich frage mich ab dass nicht noch komplizierter wäre. @Wolfgang: Wäre dein Lösungsvorschlag für dieses Scenario geeignet?
Kolja B. schrieb: > Ich werde jetzt mal versuche etwas Licht ins Dunkle zu bringen. Das ist gut. Optimalerweise schreibt man das gleich im ersten Beitrag. > Ziel ist es mit einem Raspberry PI einen Show Laser mit Hilfe des ILDA > Standards zu kontrollieren. Läuft das Ganze schon mit 10 Bit? Ich könnte mir vorstellen, dass der Raspberry PI dafür zu langsam ist. Nicht von der Rechenleistung, sondern von der Ausgabegeschwindigkeit. > Dies ist aber für die Steuerung eines Laser zu wenig da dann die > darstellbaren Formen zu "Eckig" sind. Aus diesem Grund möchte ich gerne > das Signal von 2 PWM Ausgängen mit einander multiplizieren, so dass ich > auf 1024*1024 = 1048576 Zustände komme (wobei 16Bit => 65536 ausreichend > sind). Da würde ich dir stark von abraten. Das multiplizieren funktioniert schon, z.B. so wie von Wolfgang vorgeschlagen, aber es wird zu ungenau werden. D.h. du wirst es kaum schaffen zusätzliche 6 Bit zu gewinnen. Damit man eine Auflösung von 16 Bit ausschöpfen kann, braucht man eine Genauigkeit von 15 ppm. Das ist analog sehr schwer und bei deinen Vorkenntnissen unmöglich. Jedenfalls ist es viel einfacher einen Mikrocontroller zu verwenden, der schon 16 Bit Ausgänge hat. > Es gebe auch die Möglichkeit ein UART, SPI oder I2C Ausgang zu nutzen, > aber ich frage mich ab dass nicht noch komplizierter wäre. Das wäre auch eine Möglichkeit, wenn du keinen anderen Prozessor verwenden willst. An diese Ausgänge kannst du dann einen externen DAC anschließen. > Die Frequenz des PWM Signals lässt sich im Bereich von 4600Hz bis > 19.2MHz frei einstellen. Die Frequenz des einen PWM Signals, das per Hardware erzeugt wird. Wenn du mehrere haben willst, brauchst du Soft-PWM.
:
Bearbeitet durch User
Also ich denke es wird dann eine Varinate mit SPI werden. Dazu brauche ich dann mehrere DACs die ich mit nur einem Master ansteuern kann (also die Adressierbar sind). Jemand ne Idee was für Bauteile man dort nimmt? Ideal wäre es diese Bauteile könnten von 0 bis 10 Volt arbeiten. Gibt es sowas? Alle die ich gefunden habe arbeiten nur bis 5 Volt.
Kolja B. schrieb: > Jemand ne Idee was für Bauteile man dort nimmt? Du solltest erstmal das Timing klären, d.h. mit welcher Frequenz deine Analogwerte aktualisiert werden müssen.
Nimm einen 2. µC der genügend 16Bit PWM Kanäle anbieten kann. 2 - 3 Kanäle wirst du bei vielen µC finden, Brauchst du mehr solltest du dir mal die TMS570 von TI ansehen, aber die Versionen mit dem Modul HET (HighEndTimer). Die können bis zu ~30 PWM Kanäle parallel. Diesen zusätzlichen µC schließt du per SPI an. Je nach µC geht diese SPI mit bis zu sysclock/2 , das könne dann auch mal gute 30 Mbit/s sein. Über die SPI gibt du die einzustellenden Werte an den 2. µc Die Basteleien die du ursprünglich mal angefragt hast sind nur Murks und werden niemals zu einem befriedigendem Ergebnis führen. Willst du mehrere DAC verwenden mit je einer separaten SPI geht das allerdings auch recht einfach. 2 Möglichkeiten. 1. Alle DAC's parallel an den SPI und jeweils eine eigene ChipSelect Leitung. Über diese Chipselect kannst du den einzelnen DAC adressieren. 2. Alle DAC's in Reihe an den Spi. Dann alle Daten in der richtigen Reihenfolge durchtakten und die Dacs übernehmen die Daten mit wegnahme des CS.
Kolja B. schrieb: > Also ich denke es wird dann eine Varinate mit SPI werden. Dazu brauche > ich dann mehrere DACs die ich mit nur einem Master ansteuern kann (also > die Adressierbar sind). Jemand ne Idee was für Bauteile man dort nimmt? > Ideal wäre es diese Bauteile könnten von 0 bis 10 Volt arbeiten. Gibt es > sowas? Alle die ich gefunden habe arbeiten nur bis 5 Volt. Ein OP-Amp um 5V auf 10V zu boosten sollte jetzt aber nicht das große Problem sein. DIe erste Schaltung, die ich mit Google gefunden habe http://ruggedcircuits.com/html/circuit__20.html R1, C1 sind in dieser Schaltung nur deshalb drinnen, weil da mit einer PWM reingegangen wird. Brauchst du daher mit einem DAC nicht. Der Rest ist ein Verstärker mit einem Verstärkungsfaktor von 2 (die beiden 10k Widerstände)
:
Bearbeitet durch User
Ralph schrieb: > Nimm einen 2. µC der genügend 16Bit PWM Kanäle anbieten. Braucht er doch garnicht. So wie schon gesagt reicht ein DAC mit SPI oder I2C der die benötigte Auflösung und Bandbreite bereitstellt. Dahinter dann noch nen OP der das Signal von 0-5V auf -5-5V verschiebt.
Hallo, typischer Fall von Denkblockade. Einen Analogwert per PWM auszugeben dient dazu, eine Schaltstufe, z.B. eine H-Brücke, anzusteuern um Verlustleistung zu sparen. Den PWM-Ausgang mit Filtern wieder in einen Analogwert zurückzuverwandeln ist eine Schnapsidee (allerdings eine verbreitete), da nimmt man den Analogwert und gibt ihn auf einen DAC, dazu wurden die erfunden. Und die Frage der Multiplikation (eine weitere Schnapsidee, die sich aus der ersten ergibt) existiert garnicht, man wählt ganz einfach den DAC so dass er die nötige Auflösung hat, und alles wird gut. Gruss Reinhard
Wolfgang schrieb: > Als analoge Lösung kann man das erste PWM-Signal mit einem Tiefpass in > ein Analogsignal umwandeln und dieses mit einem Analogschalter mit dem > zweiten PWM-Signal takten. Ein Tiefpaßfilter dahinter gibt einem ein > Analogsignal proportional zum Produkt der beiden PWM-Steuersignale. Genau so hat man früher präzise Multiplikatoren gebaut. Gruss Harald
Harald Wilhelms schrieb: > Wolfgang schrieb: > >> Als analoge Lösung kann man das erste PWM-Signal mit einem Tiefpass in >> ein Analogsignal umwandeln und dieses mit einem Analogschalter mit dem >> zweiten PWM-Signal takten. Ein Tiefpaßfilter dahinter gibt einem ein >> Analogsignal proportional zum Produkt der beiden PWM-Steuersignale. > > Genau so hat man früher präzise Multiplikatoren gebaut. Was heißt hier "früher", das macht man immer noch so. Aber Multiplikation war ja (abgesehen vom Rest) auch falsch. Denn wenn man zwei "schmale" DAC zu einem "breiten" kombinieren will, dann multipliziert man die Ausgangssignale nicht, sondern addiert sie mit passender Gewichtung. Z.B. kann man aus 2 8-bit-DAC einen 16-bit DAC machen, indem man das Ausgangssignals des 2. im Verhältnis 1:256 abschwächt und zum anderen addiert. Wie genau das wird und ob die unvermeidlichen Sprünge beim Updaten der Einzel-DAC zur Anwendung passen, ist wieder eine andere Frage. XL
Harald Wilhelms schrieb: > Genau so hat man früher präzise Multiplikatoren gebaut. Wie "präzise" wurde man denn da?
Wolfgang schrieb: > Kolja B. schrieb: >> Jemand ne Idee was für Bauteile man dort nimmt? > > Du solltest erstmal das Timing klären, d.h. mit welcher Frequenz deine > Analogwerte aktualisiert werden müssen. Das PDF zum ILDA Standard Projector erwähnt ein Pestpattern, das 30000 Punkte pro Sekunde enthält. Dafür braucht man 60KB/s pro DAC-Kanal. Davon sind es mindestens 5 (X, Y, R, G, B) und optional noch ein paar mehr. Allein für die 5 Kanäle braucht man also 600KB/s oder 4.8Mbit/s bei serieller Übertragung. OK, vermutlich muß man soviel nicht können. Zumindest so lange man keine Projektoren baut sondern Steuergeräte. Trotzdem ist das recht sportlich. XL
Kolja B. schrieb: > Dies ist aber für die Steuerung eines Laser zu wenig da dann die > darstellbaren Formen zu "Eckig" sind. Aus diesem Grund möchte ich gerne > das Signal von 2 PWM Ausgängen mit einander multiplizieren, so dass ich > auf 1024*1024 = 1048576 Zustände komme (wobei 16Bit => 65536 ausreichend > sind). Das ist ein großer Irrtum Durch die Multiplikation bekommst du nur ein_ _einziges Bit dazu !!! Du hast
!!!
Alexander Schmidt schrieb: >> Genau so hat man früher präzise Multiplikatoren gebaut. > > Wie "präzise" wurde man denn da? Nun, in den siebziger Jahren hat man solche Multiplizierer (Multiplikatoren war falsch) zur Leistungsmessung in der Energietechnik benutzt. Ich denke schon, das die Genauig- keit besser 1% war. Gruss Harald
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.