µC mit 3 Phase PWM Hardware

Gast #4770228
Lesenswert?

Hallo Leute,

ich bräuchte für einen Umrichter einen Mikrocontroller mit integrierter 
Hardware für eine 3 Phasige PWM, am besten mit einstellbarer Deadtime.

Hintergrund ist der, dass ein Programmfehler nicht zu einem verschalten 
der FETs und einem Kurzschluss führen sollte.

Grundsätzlich wäre eine externe Hardware welche zB die Daten über SPI 
erhält und eine 3 Phasige Brückenschaltung ansteuert möglich, aber aus 
Platz gründen nicht optimal.

Früher gab es mal µCs mit so etwas ähnlichem integriert zB der ADuC7026 
(ich glaub zumindest dass es der war), ich bräuchte aber aufgrund der 
Rechenleistung mindestens einen Cortex-M3.

Also kennt ihr vielleicht solche µCs oder andere Module mit denen so 
etwas möglich währe?

lg Peter
#4770321
Lesenswert?

Peter K. schrieb:
> ich bräuchte für einen Umrichter einen Mikrocontroller mit integrierter
> Hardware für eine 3 Phasige PWM, am besten mit einstellbarer Deadtime.

Hast du schon einmal darüber nachgedacht, warum u.a. der Atmega328 und 
Co 6 PWM-Kanäle hat? Diese Anzahl an PWM-Kanälen ist kein Zufall. Ich 
bin mir sicher, auch es gibt auch jede Menge Cortex mit mehreren 
PWM-Kanälen, parametrische Suche hilft bestimmt ;)
#4770363
Lesenswert?

Eine andere Möglichkeit wäre die SPC56xx Reihe. Die haben teilweise eine 
FlexPWM, die direkt für Motorsteuerung gedacht ist. Dazu gehören 
DeadTime, mehrere FAULT-Eingänge und Synchronisation mit dem ADC. 
Außerdem lassen sich alle Compare-Register gleichzeitig aktualisieren.

Obendrauf gibts noch ECC bei Flash und RAM und (optionales) Lockstep bei 
den Dual-Cores.
Gast #4770612
Lesenswert?

M. K. schrieb:
> Hast du schon einmal darüber nachgedacht, warum u.a. der Atmega328 und
> Co 6 PWM-Kanäle hat?

Natürlich ist das kein Zufall, aber der Atmega328 hat keinen CortexM3 
Kern von da her fällt er aus.

Wie gesagt der ADuC7026 hat auch so eine 3 Phasen PWM, wenn er von der 
Leistung passen würde, würde ich auch diesen verwenden.

Joerg W. schrieb:
> Eine andere Möglichkeit wäre die SPC56xx Reihe. Die haben teilweise eine
> FlexPWM, die direkt für Motorsteuerung gedacht ist.

Danke werd ich mir mal ansehen, ob ich die auch verwenden kann, 
ansonsten sehen die STM32F1 schon recht gut aus.

Matthias S. schrieb:
> Ansonsten kann man sich das aber auch, wie o.a. mit den 3 Timern der
> Mega 48-328 selber machen

Ja das ist natürlich auch möglich, aber nicht das was ich allgemein 
Suche, es geht hier primär um Ausfallsicherheit, die Software sollte 
also hier nicht all zu viel steuern müssen sondern nur Werte vorgeben. 
Deadtime und Kanalinvertierung sollten in Hardware ablaufen.
Außerdem währe noch eine externe Gate Leitung Sinnvoll, welche über die 
Hardware bei einem High oder Low Pegel alle Ausgänge auf Low setzt, das 
kann man aber im Notfall auch selbst nachrüsten.


Nur noch als Info am Rande es geht bei dem Projekt nicht um eine 
Motorsteuerung sondern um einen Umrichter um von Gleichspannung auf 400V 
3 Phasige Wechselspannung zu kommen.
#4770783
Lesenswert?

Peter K. schrieb:
> Natürlich ist das kein Zufall, aber der Atmega328 hat keinen CortexM3
> Kern von da her fällt er aus.

Deswegen schrieb ich ja, dass es sicher auch Cortex gibt, die mehrere 
PWM-Kanäle haben. Ich kenne hier leider nur die von Atmel, den SAM4s, 
der hat 3 PWM-Kanäle die auch invertiert herausgeführt sind was ja für 
ne 3-Phasen-PWM auch reicht.
#4772148
Lesenswert?

Gerd E. schrieb:
> Schau Dir mal den STM32F334 an.
> Der ist genau für sowas gemacht. Der hat eine spezielle Timer-Einheit
> namens "HRTIM". Die kann bis zu 10 PWMs ausgeben, bis zu 217ps
> Auflösung, Deadtime-Insertion und Abschaltung entweder über
> Digitalsignale oder die integrierten Komparatoren.

Peter K. schrieb:
> Danke werd ich mir mal ansehen, ob ich die auch verwenden kann,
> ansonsten sehen die STM32F1 schon recht gut aus.

Der große Vorteil von den F3 gegenüber den F1 ist, dass die noch per DAC 
einstellbare Komparatoren mit dabei haben, womit dann ein 
Überstromschutz in Hardware realisiert werden kann, ohne den Umweg über 
eine ISR oder sonst irgendwelche Softwarekonstrukte zu gehen. Der sich 
ergebende Geschwindigkeitsvorteil kann durchaus über "Rauch oder kein 
Rauch" entscheiden.
Gast #4772486
Lesenswert?

Lutz schrieb:
> Ich weiß. Doch dann schrieb er:
>
> Peter K. schrieb:
>> die Software sollte
>> also hier nicht all zu viel steuern müssen sondern nur Werte vorgeben.

Ja, aber nur, damit die Hardware sich um die PWM einschließlich Deadtime 
usw. kümmern kann. Und damit dieser Ablauf unabhängig von Software 
funktioniert...
#4772565
Lesenswert?

Huh schrieb:
> Ja, aber nur, damit die Hardware sich um die PWM einschließlich Deadtime
> usw. kümmern kann. Und damit dieser Ablauf unabhängig von Software
> funktioniert...

Genau, denke auch, dass das so gemeint war. Natürlich könnte man auch 
einen AVR die PWM machen lassen und der "Rechenknecht" sagt dem AVR nur 
wie die PWM aussehen muss/soll aber ob so eine Modularisierung sinnvoll 
ist oder nicht kann man hier nicht sagen, da wir die Randbedingungen des 
Projekts vom TE nicht kennen.
Gast #4775256
Lesenswert?

M. K. schrieb:
> Genau, denke auch, dass das so gemeint war. Natürlich könnte man auch
> einen AVR die PWM machen lassen und der "Rechenknecht" sagt dem AVR nur
> wie die PWM aussehen muss/soll

Ist natürlich möglich, aber da könnte ich auch gleich mit Timern in 
beinahe jedem µC eine Software PWM machen.

Der Grund warum ich in dem Sinne auf Hardware setzen möchte und nicht 
auf Software ist dieser, dass die Software durch Bugs oder auch durch 
andere Sachen schnell mal versagen kann, Hardware hingegen ist als 
gesonderte Komponente da wesentlich robuster gegen Störungen als 
Software.
Natürlich sollte weder Hardware noch Software versagen, aber bei 
Redundanten Systemen sollte nach Möglichkeit auch keines der Teilsysteme 
versagen.

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