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
STM32F1 - F4 haben dieses Feature praktisch alle. AFAIR haben auch einige aus der LPC-Serie entsprechende Timer.
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: > Also kennt ihr vielleicht solche µCs http://www.glyn.de/data/glyn/media/doc/apmc96e.pdf
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 ;)
Auch der Xmega A1 / A3 kann mit jeder Awex-Einheit 3 Phasen-PWM generieren. Deadtime ist einstellbar von 1/Fsysclk bis 255/Fsysclk
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.
Die 'Advanced Timer' selbst im kleinen STM32F1xx haben auch eine Deadtime Unit mit bei und 4 PWM Kanäle mit komplementären Ausgängen. Ansonsten kann man sich das aber auch, wie o.a. mit den 3 Timern der Mega 48-328 selber machen: https://www.mikrocontroller.net/articles/3-Phasen_Frequenzumrichter_mit_AVR
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.
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.
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.
Lutz schrieb: > Wenn aber nicht viel zu Arbeiten ist frage ich mich warum es nicht ein > AVR sein soll. Die Antwort steht ganz oben im Eröffnungspost: Peter K. schrieb: > ich bräuchte aber aufgrund der > Rechenleistung mindestens einen Cortex-M3. Weil ein AVR eben nicht die Rechenleistung eines Cortex-M3 hat.
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.
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...
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.
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.
Ich habe sowas mit nem kleinen STM32F0 realisiert, der hat auch entsprechende PWM-Hardware mit Totzeit und 6 Kanälen.
Ein Cypress PSoC5 wäre auch eine Option. Wobei wahrscheinlich die genannten Alternativen günstiger wären.
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.