Forum: Mikrocontroller und Digitale Elektronik 3 phasenverschobene Signale mit AT90PWM3


von PWMler (Gast)


Lesenswert?

Hallo Forum!
Bevor ich seitenweise Datenblätter durchforste, kann ich mit dem 
AT90pwm3 3 exact phasenverschobene PWM-signale erzeugen unter Benutzung 
des 64 Mhz High-Speed PLL?

von ah. (Gast)


Lesenswert?

Das war doch das Entwicklungsziel dieses Controllers, nein ? Das sollte 
eigentlich in der zusammenfassung des Datenblattes zuvorderst stehen.

von PWMler (Gast)


Lesenswert?

Ich habe schon mit dem Tiny 861 gearbeitet, der kann 3 highspeed PWMs 
erzeugen, aber leider nicht phasenverschoben.

Ich gehe auch davon aus, daß es geht, aber bevor ich Stunden investiere 
und zum Schluß feststelle, daß es dann doch nicht geht...

Ich vermute, daß ich 3 Timer(Powerstage) gleichzeitig laufen lassen muß, 
die Frage bekomme ich die synchron, zumal die ja schneller Laufen als 
die CPU.

von oh (Gast)


Lesenswert?

Die Timer sind zwar da, aber nicht symmetrisch. Ein aufgebohrter -2er. 
Ich wuerd das Teil als Kruecke bezeichnen. Nimm was Anderes, es gibt 
heut schon solche, die koennen auch noch eine programmierbare Totzeit. 
Leider nicht bei Atmel, bei Microchip.

von Peter D. (peda)


Lesenswert?

PWMler schrieb:
> Ich habe schon mit dem Tiny 861 gearbeitet, der kann 3 highspeed PWMs
> erzeugen, aber leider nicht phasenverschoben.

Was willst Du denn mit den Signalen steuern?

Der ATtiny861 hat einen PWM6 Mode, damit lassen sich Motoren ansteuern:
Figure 12-14. PWM6 Mode, Single-slope Operation, Timing Diagram

Es wird immer nur eine der 3 Wicklungen bestromt.
Die 3 Phasen sind also nicht überlappend, wie bei Drehstrom, sondern 
nacheinander.
Totzeit geht natürlich auch.

von PWMler (Gast)


Lesenswert?

oh schrieb:
> Die Timer sind zwar da, aber nicht symmetrisch. Ein aufgebohrter -2er.

Verstehe ich richtig, dass es zwei symmetrische Timer gibt, die ich auch 
synchron bekomme?

Hast Du eine genaue Bezeichnung des PIC?

Peter Dannegger schrieb:
> Es wird immer nur eine der 3 Wicklungen bestromt.
> Die 3 Phasen sind also nicht überlappend, wie bei Drehstrom, sondern
> nacheinander.
> Totzeit geht natürlich auch.



Ich will 3 parallele Boost-Konverter damit betreiben, die Phasenlage ist 
dabei ist wegen dem Ripple wichtig.

d.h. die Phasen sind überlappend. Außerdem brauche ich den vollen Speed 
des Timers, um die Spulen klein zu halten.

Ich weiß, daß es dafür Ics gibt, aber die kann ich nicht verwenden.

von PWMler (Gast)


Lesenswert?

Kleine Korrektur: es soll ein Buck-Konverter werden

von Hannes W. (hannes_w)


Lesenswert?

Da hast du wohl nicht sehr genau gelesen (aus dem AT90PWM3B datasheet):
- "All on chip PSC synchronization" (Kap 16.1 PSC Features)
- "The PSC can be chained and synchronized to provide a configuration 
to drive three half bridges." (Kap 16.2 PSC Overview).

'oh's Einwurf ist Murks: "Dead time control" (Kap. 16.1)

von PWMler (Gast)


Lesenswert?

Dead time control brauch ich nicht unbedingt, dass macht der 
Mosfettreiber.

Ich brauche 3 Kanäle mit 250kHz (64Hhz/256) mit genauer Phasenlage.

von temp (Gast)


Lesenswert?

da wirst du bei den dsPics fündig. z.B.:

  dsPic33EP64MC502 3 PWM Paare 3.3V

ca. 1ns PWM Auflösung!!:

  dsPic30F202      4 PWM Paare 5V
  dsPic33FJ16GS502 4 PWM Paare 3.3V

alle 3 im 28DIP Gehäuse

Sowas wünsche ich mir beiden Cortexen. Gibts blos leider nicht.
Die einzelen PWM Kanäle lassen sich einfach in der Phase gegeneinander 
verschieben. Dazu ist kein Interrupt und keine Timersynchronisation 
nötig. Einfach das jeweilige PHASEX Register beschreiben und fertig.
Such bei AVR nicht weiter. Kostet nur Zeit.

von :-) (Gast)


Lesenswert?

PWMler schrieb:
> kann ich mit dem
> AT90pwm3 3 exact phasenverschobene PWM-signale erzeugen

ja!

bei mir läuft der PSC2 als Master und die beiden anderen PSC1 und PSC0 
synchron dazu. Die Ein- und Ausschaltzeitpunkte der drei Powerstage 
Controller werden dann jeweils über ihre eigenen Register festgelegt.

Die Initialisierung der drei PSCs sieht dann wie folgt aus:


// PSC 0 Konfiguration
PSOC0 |= (1 << POEN0A);
PCNF0 |= (1 << POP0) | (1 << PCLKSEL0) | 0;
PCTL0 |= (1 << PARUN0) | 0;


// PSC 1 Konfiguration
PSOC1 |= (1 << POEN1A);
PCNF1 |= (1 << POP1) | (1 << PCLKSEL1) | 0;
PCTL1 |= (1 << PARUN1) | 0;


// PSC 1 Konfiguration
PSOC2 |= (1 << POEN2A);
PCNF2 |= (1 << POP2) | (1 << PCLKSEL2) | 0;
PCTL2 |= (1 << PRUN2) | 0;

von PWMler (Gast)


Lesenswert?

Danke schon mal für die Antworten!

von Marcus (Gast)


Lesenswert?

temp schrieb:
> Sowas wünsche ich mir beiden Cortexen. Gibts blos leider nicht.

Was stört Dich am Infineon XMC4000? Das Gehäuse?

von temp (Gast)


Lesenswert?

Marcus schrieb:
> Was stört Dich am Infineon XMC4000? Das Gehäuse?

Ja, die kleinen stehen alla auf coming soon. LQFP100 ist mir dafür zu 
fett.
Aber es ist ja Bewegung drin.

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.