- MultiPlus Wechselrichter Insel und Nulleinspeisung Conrad         
Seite 2 von 2 ErsteErste 12
Ergebnis 11 bis 14 von 14

Thema: PWM auf Treiberstufe

  1. #11
    Neuer Benutzer Öfters hier
    Registriert seit
    08.04.2008
    Beiträge
    22
    Anzeige

    Powerstation Test
    Hast ja Recht. Ich bin nur zur Zeit etwas unter Zeitdruck und muss schnell zu einer Lösung kommen. Natürlich hängt die Dauer des Hochzählen von der Grundfrequenz und dem Vorteiler ab. War auch ne doofe Frage von mir.

    Du hast mal geschrieben, dass es mit der Hardware PWM nicht gehen würde.
    Ich habe in der Atmel Doku zum Mega128 gelesen, dass man das PWM Signal invertieren kann. Es steht im Abschnitt Fast PWM in der Doku. Es wird dort "inverted PWM" genannt.

    Es gibt dort jedoch keine Beispiele dazu. Du weißt nicht zufällig etwas darüber? So eine Lösung wäre doch etwas einfacher als die mit den Timern oder?

  2. #12
    Erfahrener Benutzer Roboter Experte Avatar von sternst
    Registriert seit
    07.07.2008
    Beiträge
    672
    Ok, mit der "inverted PWM" sollte es auch in Hardware gehen, aber einfacher ist das in meinen Augen nicht. Für die nötige Totzeit bei den Pegelwechseln brauchst du einen definierten Versatz. Die normale PWM (also PWMH) muss um diesen Versatz später gestartet werden, dafür bekommt dann die invertierte PWM (also PWML) immer einen um den doppelten Versatz größeren PWM-Wert. Und beim Ändern der beiden PWM-Werte musst du dir dann noch Gedanken über die jeweilige Reihenfolge machen, damit kein Kurzschluss entstehen kann.

    Ich finde die Software-Lösung einfacher und deutlich übersichtlicher. Und sie hat nur einen kleinen Nachteil: da die Zeit zwischen Interrupt-Ereignis und Ausführen des Interrupt-Codes um ein paar Takte variieren kann, hat man ein wenig Jitter auf dem Signal. Bei (angenommenen) 16 MHz und 100 µs Periodendauer, hat eine Periode 1600 Takte. Ein Jitter von 4 Takten (sagen wir mal, den genauen Wert habe ich nicht im Kopf) würde dann bedeuten, dass man die PWM "nur" auf 0,25 % genau einstellen kann. Das sollte ja wohl kein Problem darstellen.
    MfG
    Stefan

  3. #13
    Erfahrener Benutzer Roboter Experte Avatar von sternst
    Registriert seit
    07.07.2008
    Beiträge
    672
    Oh sorry, die Software-Lösung hat natürlich noch einen kleinen Nachteil. Du kommst nicht in die Randbereiche. Eine PWM von 0,5 oder 99,5 % sind nicht möglich, braucht man aber ja normalerweise auch nicht. Bei 1600 Takten Periodendauer und Interrupt-Routinen in Assembler (sind ja nur ein paar Befehle), liegt der Einstellbereich bei ca 2 - 98 %.

    PS: Die Einstellungen 0 und 100 % sind natürlich auch bei der Software-Lösung problemlos möglich.

    PPS: Mir fällt gerade auf, dass wegen der Totzeiten auch die Hardware-Lösung nicht in die Randbereiche käme.
    MfG
    Stefan

  4. #14
    Erfahrener Benutzer Robotik Visionär
    Registriert seit
    26.11.2005
    Ort
    bei Uelzen (Niedersachsen)
    Beiträge
    7.942
    Für die Hardwarelösung gibt es 2 Möglichkeiten. Es ist für genau diese Anwendung ein invertiertes PWM Signal vorgesehen. Man braucht dazu nur den entsprechende Ausgang mit freischalten. Allerdings ist dabei die Zeit in der beide signale Low sind fest (in grenzen über vorteiler variabel) vorgegeben. Kleinere Anpassungen müßte man dann per analoger Verögerung machen.

    Die 2 te, deutlich schlechtere Wahl ist es einen 2 te PWM Kanal zu benutzen und da den invertierten PWM Modus zu wählen. Wenn man dann beide PWM Register jeweils gleich beschreibt, sollte man gerade ein invertiertes Signal haben. Dabei muß man aber aufpassen, das nicht versehentlich die beiden Register verschieden sind, sonst gibt es Rauchzeichen.

    Einfacher sollte die hardware Lösung sein. Die Softwarelösung ist flexibler, vor allem bei relativ niedrigen Frequenzen.

Seite 2 von 2 ErsteErste 12

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

MultiPlus Wechselrichter Insel und Nulleinspeisung Conrad