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
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.
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
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
Ü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 ?
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).
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.