Forum: Mikrocontroller und Digitale Elektronik Zeitproblem bei Softwarepwm


von Michael (Gast)


Lesenswert?

Hallo,

ich bin momentan dabei eine Ansteuerung von 4 H Brücken mit einer 
Schaltfrequenz von 20kHz - 40kHz zu entwickeln.

Das Problem ist dass die Brücken nicht parallel ein- und ausgeschaltet 
werden sollen, sondern mit einer variablen zeitlichen Verschiebung 
weshalb ich zur Ansteuerung 16 PWMs brauche.

Um meine zeitliche Versetzung zu realisieren bräuchte ich bei einer 
Schaltfrequenz von 40 kHZ eine Zeitbasis von 1µS.

Mit einem Softwarepwm und einem normalen Atmega (+16MHz Quarz)
würde das bedeuten, dass ich pro Interupt nur 16 Takte zur Verfügung 
habe, wobei ich noch in und aus dem Interupt springen muss. Auch wenn 
dies die einzige Aufgabe des µC ist, wenig erscheinen mir diese 16 Takte 
zu wenig um 16 PWMs zu erzeugen.


Meine Frage ist deshalb ob jemand schon Erfahrung mit solchen 
zeitkritischen PWMs hat und mir sagen kann ob dieses so realisierbar 
ist. Beziehungsweise auf welchen man µC umsteigen sollte falls das 
System zu langsam ist.

Vielen Dank für jeden Antwort und jeden Tipp.

Schöne Grüße Michael

von Falk B. (falk)


Lesenswert?

@  Michael (Gast)

>Das Problem ist dass die Brücken nicht parallel ein- und ausgeschaltet
>werden sollen, sondern mit einer variablen zeitlichen Verschiebung
>weshalb ich zur Ansteuerung 16 PWMs brauche.

Oder ein Mikrocontroller mit passendem Timer, der das automatisch 
regelt, ohne 16 PWM Kanäle zu verbraten. Da gibt es einige PWM-AVRs, die 
könnten passen.

>Um meine zeitliche Versetzung zu realisieren bräuchte ich bei einer
>Schaltfrequenz von 40 kHZ eine Zeitbasis von 1µS.

Nix besonderes.

>Mit einem Softwarepwm und einem normalen Atmega (+16MHz Quarz)
>würde das bedeuten, dass ich pro Interupt nur 16 Takte zur Verfügung
>habe, wobei ich noch in und aus dem Interupt springen muss.

Das kann man wohl glaub ich vergessen. Selbst bei potimierter 
ASM-Programmierung. Die Lösung liegt in der Nutzung des richtigen uCs.

MfG
Falk

von oszi40 (Gast)


Lesenswert?

>16 Takte
scheint mir "zu wenig Luft", wenn man bedenkt, daß spätere SW-Änderungen 
andere HW erfordert. Weterhin bleibt die Frage der Ausfall-Folgen wenn 
die Zeit nicht reicht um die anderen H-Brücken sauber anzusteuern.

Bei Spielzeug mag das nicht so schlimm sein wie bei einer Fräsmaschine 
wo z.B. teure Werkzeuge wegknallen.

von MaWin (Gast)


Lesenswert?

Die Frage ist, was der uC sonst noch zu tun hat.
Nichts ?
Dann braucht es keinen Interrupt,
sondern man schreibt das Programm als Endlossschleife
und zählt selbst wie viele Befehle und Mikrosekunden
die brauchen.
Da sind Auflösungen unter 1us locker zu erzielen.

Kleine Nebentätigkeiten, wie z.B. ein Modellbauservoimpuls
als Eingang abfragen und dessen Pulsdauer bestimmen kann
man immer noch in der Schleife miterledigen.

Aber ja: Auch ich vermisse 2GHz uC, gerade mit RAM und
ROM auch dem Chip sollten die eigentlich problemlos fertigbar
sein, doch Atmel ist zu blöd.

von Klaus (Gast)


Lesenswert?

Michael schrieb:
> ich bin momentan dabei eine Ansteuerung von 4 H Brücken mit einer
> Schaltfrequenz von 20kHz - 40kHz zu entwickeln.
>
> Das Problem ist dass die Brücken nicht parallel ein- und ausgeschaltet
> werden sollen, sondern mit einer variablen zeitlichen Verschiebung
> weshalb ich zur Ansteuerung 16 PWMs brauche.

Die 4 Zweige einer Brücke vollkommen unabhängig gegeneinander ansteuern? 
Interessantes Konzept.

MfG Klaus

von Ralf (Gast)


Lesenswert?

Klaus schrieb:
> Interessantes Konzept.

;-) ?

von Klaus (Gast)


Lesenswert?

Ralf schrieb:
> ;-) ?

So der Fall High-Side und Low-Side gleichzeitig an, oder alle 4 an.

MfG Klaus

von oszi40 (Gast)


Lesenswert?

Klaus schrieb:
> Die 4 Zweige einer Brücke vollkommen unabhängig gegeneinander ansteuern?
> Interessantes Konzept.

Dann sind z.B. manchmal alle Zweige leitend zur gleichen Zeit ???
Etwas mehr Logik oder eine Sicherung die eher stirbt als die 
Brückentransistoren wäre durchaus nützlich. :-)

von Ralf (Gast)


Lesenswert?

Vielleicht meldet sich Michael ja noch mal und sagt, wozu er die ganzen 
Kurzschlüsse braucht.

von oszi40 (Gast)


Lesenswert?

Ein Vorteil von 4 H-Brücken ist, daß man schnell 8 Kurzschlüsse 
gleichzeitig programmieren könnte :-)

von Uwe (Gast)


Lesenswert?

Dead Time beim Umschalten schätze ich mal, damit nicht beide 
Transistoren Leitend sind.Das würde aber heißen er hat die Schaltung 
Diskret aufgebaut nur das würde Sinn ergeben. Die PWM-AVRs können das in 
Hardware und man kann die Deadtime auch noch programmieren. Ich glaube 
sogar das die noch ne PLL drin haben und den PWM mit 100MHz oder sowas 
konnten.

von Michael (Gast)


Lesenswert?

Hallo an alle,

und gleich mal Danke für die Tipps.

Wie sicherlich/hoffentlich vermutet wird, will ich keine Kurzschlüsse 
produzieren.

Ich will mit den H Brücken 4 induktive Heizelemente ansteuern und muss 
in kürzester Zeit möglichst viel Leistung (ca 1kW bei 12Volt) liefern.
Deswegen ist sie mit diskreten PowerFets aufgebaut.
Gleichzeitig will ich aber auch keine immensen Störungen auf der 
Zuleitung verursachen und die Brücken deswegen mit zeitlich variabl 
versetzten Signalen ansteuern.

Um Kurzschlüsse, aufgrund von langen Schaltzeiten der Transistoren, zu 
vermeiden und gleichzeitig die Leistungsverluste,d urch Deadtimes 
niedrig zu halten, würde ich gerne möglichst viele Timings selbst 
einstellen können.
Im Idealfall das Ansteuersignal jedes einzelnen Transistors. Weshalb ich 
die 16 Kanäle bräuchte.

Allerdings habe ich gestern mal nach einem H-Brückentreiber mit 
shootthrough-Verriegelung und einstellbarer Deadtime gesucht und den HIP 
4082 gefunden.

Dateblatt HIP 4082:
http://www.intersil.com/data/fn/fn3676.pdf

Mit dem ich bräuchte ich nur noch 8 Kanäle, für jeden Brückenzweig 
einen. Aber weiterhin mit der Zeitbasis von 1µs.


@Falk

Wenn ich das Datenblatt vom AT90PWM316 richtig verstanden hab, sollte 
das mit diesem möglich sein.

Datenblatt AT90 PWM316:
http://www.avr-praxis.de/database/datasheet/AT90PWM216_316.pdf

8 PWM ausgänge + 2 PWM über internen Timer. Und die PWM Clockfreqzenz 
bis zu 64 MHz.

Wobei ich noch nicht ganz sicher bin, ob ich die 8 PWMs in zeitlichen 
Bezug zueinander bringen kann.


Ist diese Ansteuerung mit dem AT90PWM möglich und/oder gibts vielleicht 
noch eine andere Lösung außer einen normalen Atmega durch eine 
Endlosschleife zu jagen.

Schöne Grüße

Michael

von Klaus (Gast)


Lesenswert?

Michael schrieb:
> Ich will mit den H Brücken 4 induktive Heizelemente ansteuern und muss
> in kürzester Zeit möglichst viel Leistung (ca 1kW bei 12Volt) liefern.
> Deswegen ist sie mit diskreten PowerFets aufgebaut.
> Gleichzeitig will ich aber auch keine immensen Störungen auf der
> Zuleitung verursachen und die Brücken deswegen mit zeitlich variabl
> versetzten Signalen ansteuern.

Ich versuche das mal zu verstehen:

Heizung via H-Brücke, wenn der Strom andersherum fließt, kühlt sie ?

Möglichst viel Leistung, also dauernd an, das aber zeitlich versetzt ?

MfG Klaus

von Michael (Gast)


Lesenswert?

Hallo,

es ist ein induktives Heizsystem. Jede Spule ist um ein Kunstoffrohr 
gewickelt in dem sich ein Metallrohr befindet. Das Metallrohr wird dann 
über Induktion aufgeheizt und die H-Brücken dient zur 
Wechselstromerzeugung.

Zeitlich versetzten will ich die Phase der Wechselströme der einzelnen 
H-Brücken um zu verhindern, dass Stromspitzen entstehen die zu starke 
Rückwirkung auf meine Quelle haben.


Schöne Grüße

Michael

von Falk B. (falk)


Lesenswert?

@  Michael (Gast)

>Zeitlich versetzten will ich die Phase der Wechselströme der einzelnen
>H-Brücken um zu verhindern, dass Stromspitzen entstehen die zu starke
>Rückwirkung auf meine Quelle haben.

Also quasi ein Vierphasenwandler. Da muss man aber nur eine Phase direkt 
steuern, der Rest folgt immer um 90 Grad zeitlich versetzt. Damit kann 
man mit zwei PWMs auskommen, den Rest könnte man über einen cleveren 
CPLD verzögern.

MfG
Falk

von Klaus (Gast)


Lesenswert?

Michael schrieb:
> es ist ein induktives Heizsystem.

Ok, ein Missverständniss. Ich dachte an eine Heizung mit induktivem 
Anteil durch den Aufbau.

MfG Klaus

von Michael (Gast)


Lesenswert?

@Falk

Das mit dem Vierphasenwandler klingt ziemlich gut, nur leider geht 
dadurch die Möglichkeit verloren auch andere Verschiebungen zu testen.

Schöne Grüße

Michael

von Volker Z. (vza)


Angehängte Dateien:

Lesenswert?

Hallo

Der M16C29 von Renesas kann das. Er hat acht syncrone Kanäle (TimerS)
Schaltet man zwei zusammen kann mann Start- und Endpunkt der PWM 
setzen.

Mit der PWM steuerst du dann beide Highside-Eingänge vom HIP4082 an. 
Mit der Lowside-Eingängen bestimmst du dan die Richtung.

Volker

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.