mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik PWM auf Treiberstufe


Autor: vladoo (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: nixcheck (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: vladoo (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: R. W. (quakeman)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: nixcheck (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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 ?

Autor: STK500-Besitzer (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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).

Autor: vladoo (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.