Forum: Mikrocontroller und Digitale Elektronik PWM auf Treiberstufe


von vladoo (Gast)


Lesenswert?

Hallo Leute ich habe mir einen C-Control Pro von Conrad gekauft. Der 
Prozessor ist ein ATMega128. Habe nun vollgendes Problem.

Ich habe die Aufgabe eine Treiberstufe über zwei PWM Kanäle anzusteuern.

Die Treiberstufe wird so angesteuert, dass bei PWM_High der obere FET 
angesteuert wird
und bei PWM_Low der untere FET.

             |
PWMH       |-|
      -----|-
           |-|
             |
             |------------- OUT
             |
PWML       |-|
      -----|-
           |-|
             |

Mein Problem ist, dass ich die PWMs abwechselnd schalten muss.
Wenn PWMH = 1 dann muss PWML = 0.

Besse gesagt ist, dass mein PWM Puls variabel eingestellt wird, d.h. 
während des Betriebs sich ständig ändert.
Und der PWML immer für die Zeit, die PWMH auf 1 steht, auf 0 stehen 
muss. Wie ist so etwas zu realisieren?
Hat jemand ein Code Schnipsel?

Gruß vladoo

von nixcheck (Gast)


Lesenswert?

Und der PWML immer für die Zeit, die PWMH auf 1 steht, auf 0 stehen
muss. Wie ist so etwas zu realisieren?#

HÄ ??

Bitte google mal nach Brückentreiber Bzw. Bridge Driver.

von vladoo (Gast)


Lesenswert?

Ich glube dass du nicht verstanden hast was ich möchte.
Die Treiberstufe habe ich schon. Die habe ich versucht in der Abbildung 
im ersten Post abzubilden. Wie du schon richtig erkannt hast ist es eine 
Halbbrücke.

Mein Problem ist das PWM Signal selbst. Es muss so aussehen:

       |-----|         |-----|         |-----
PWMH   |     |         |     |         |
-------|     |---------|     |---------|

             |---------|     |---------|
PWML         |         |     |         |
-------------|         |-----|         |-----

Wie du sehen kannst ist das PWMH auf High währenddessen ist PWML auf 
Low.
Wenn ich sie beide gleichzeitig auf High setze dann schalte ich Vss auf 
Masse durch. Der PWML zieht den OUT schneller auf Low sobald er auf High 
steht. Deshalb die Zeitversetzten PWM signale. Mein Problem ist, dass 
ich nicht weis wie ich den PWML negieren kann oder so. Ich programmiere 
den µC in C.


             Vss
             |
PWMH       |-|
      -----|-
           |-|
             |
             |------------- OUT
             |
PWML       |-|
      -----|-
           |-|
             |
             Masse

von R. W. (quakeman)


Lesenswert?

Für einen Lösungsansatz hängt es grundsätzlich erst mal davon ab, du du 
die PWM per Hardware im Controller generieren lässt oder selber per 
Software erzeugst?

Bei einem Software Ansatz wäre die Lösung zu deinem Problem ja sehr 
trivial.
Bei einem Hardware Ansatz wäre das ganze etwas kniffliger. :)

Ciao,
     Rainer

von nixcheck (Gast)


Lesenswert?

Überdenke deine Treiberschaltung. Ich sehe keinen Sinn darin das durch 
Software auszubügeln. Du könntest einen einen Inverter (logisches 
Bauteil) verwenden. Der hat aber auch eine gewisse Schaltzeit was zu 
(sehr kurzzeitigen) Kurzschlüssen führt. Welchen Kontroller verwendest 
du ?

von STK500-Besitzer (Gast)


Lesenswert?

Beim Umschalten braucht man eine Totzeit, während der beide Transitoren 
sperren. Das kann man relativ einfach in Software realisieren, manche 
Controller haben aber auch entsprechende Schaltungen integriert (z.B. 
ATTiny45).

von vladoo (Gast)


Lesenswert?

Ich nutze die PWM Funktion des Kontrollers. Also Hardwarelösungsansatz.
Der Kontroller ist ein ATMega128.

Durch den Prescaler kann die Zeit eines Ticks ermittelt werden. Dann 
gibt man nach der Initialisierung der PWM Routine die Anzahl der Ticks 
vor, die das Signal auf High steht. Den rest der Ticks steht das Signal 
auf Low.

Die Treiberstufe ist ein SA305EX von Apexx.

Ich würde ungern noch zusätzliche Bauteile, wie NANDS, einbauen. Ich 
dachte eigentlich, dass der Kontroller etwas an Bord hat, um sowas zu 
realisieren.

Das Problem ist, dass ich damit eine Regelung aufgebaut habe. Mein 
Stellsignal ändert sich und dementsprechend natürlich auch die Anzahl 
der Ticks, die ich der Routine mitgebe. Mit einem PWM funktioniert das 
wunderbar, doch für die Halbbrücke brauche ich eben zwei PWM Signale wie 
oben dargestellt.

Gruß vladoo

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.