PWM zeitversetzt ansteuern

Gast #2022497
Lesenswert?

Hi,

ich brauch hier mal Hilfe, um den richtigen Denkanstoß zu finden.

Ich hab eine Software-PWM mit acht Kanälen. Die PWM-Werte stammen aus 
einer Wertetabelle. Jede Zeile der Tabelle möchte ich einmal vorwärts 
und rückwärts durchlaufen, danach die nächste Zeile, usw. bis zum 
Tabellenende.
Die PWM-Kanäle sollen zeitversetzt angesteuert werden (alle mit der 
gleichen Zeit und die Dauer bis zum nächsten Wertesprung ist ebenfalls 
identisch).
Wie kann ich das nun am besten realisieren? Alles was ich mir an PAPs, 
Notizen, etc. zusammengestellt hab, will nicht so recht fruchten, ich 
komm schon auf dem Papier nicht zu einer Lösung :(
Es hat eigentlich nur bis dahin gereicht, dass ich mit einer 
State-Machine für jeden Kanal arbeiten muss (denke ich) bzw. mit einer 
State-Machine und jeder Kanal hat eine eigene State-Variable sowie 
Indizes für die Tabellenposition.

Kann mir jemand n Schubs in die richtige Richtung geben?

Ralf
#2022503
Lesenswert?

So richtig versteh ich noch nicht, wo da jetzt das Problem liegt. Für 
jeden Kanal ein eigener Index, welches der nächste Tabelleneintrag ist. 
Und bei der Weiterschaltung wird halt jeder Kanal extra behandelt und 
unabhängig von allen andern weitergeschaltet.

Oder denke ich da jetzt zu einfach? Zu naiv?
(Kann schon sein. Denn im Moment hab ich das Gefühl die Fragestellung 
nicht verstanden zu haben)
Gast #2022778
Lesenswert?

Hallo Karl Heinz,

> So richtig versteh ich noch nicht, wo da jetzt das Problem liegt.
In der Komplexität :) Zumindest sieht jeder Ansatz den ich bis jetzt 
hatte nach kurzer Zeit sehr komplex aus.

> Für jeden Kanal ein eigener Index, welches der nächste Tabelleneintrag ist.
> Und bei der Weiterschaltung wird halt jeder Kanal extra behandelt und
> unabhängig von allen andern weitergeschaltet.
Ja, so in der Art dachte ich das auch. Und wie stellst du jetzt den 
Zeitversatz der Kanäle zueinander her? Das bedeutet zwangsläufig, jeder 
Kanal muss mindestens den Zustand/Index des vorhergehenden Kanals 
kennen.

> Oder denke ich da jetzt zu einfach? Zu naiv?
> (Kann schon sein. Denn im Moment hab ich das Gefühl die Fragestellung
> nicht verstanden zu haben)
Kann sein, macht ja nix :)
Die Frage ist einfach, wie man das am einfachsten realisiert. 
State-Machine, etc.

Ralf
#2022798
Lesenswert?

Du moechtest einem Polyphasenwandler bauen. Alle PWM haben dieselbe 
Frequenz. Der erste kanal startet bei phase=0, der Zweite bei Phase= 45, 
der Dritte bei Phase = 90, ... und jeder Kanal hat die Pulsbreite, die 
er eben hat. Ja. Falls die Hardware das unterstuetzt ... sonst muss die 
Software ran. Per software ... man laesst einen Timer laufen der einer 
achtel frequenzperiode entspricht und laedt jdes mal den naechsten PWM.

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