Motor und PWM Ansteuerung, Denkanstöße gesucht

Gast #108202
Hi Experten,

ich möchte per PWM eine Motoransteurung mit einen AVR ATMega8 machen.
Dazu benötigt man ja die sogenannten beiden PWM Kanäle A und B, um
beide Richtungen per H-Brücke anzusteuern.

Das eigentliche Problem was ich habe ist die Frage welchen Softwareweg
ich gehen sollte:

1.) PWM Hardware des AVR's nutzen, Nachteile sind feste PIN
Zuordnungen an OC1A und OC1B, schwierige Änderungen der PWM Frequenz
usw. Vorteil könnte sein das sich in großen Teile die Hardware um alles
kümmert und somit in Software weniger Taktzyklen benötigt werden.

2.) per Timer + OCR1A Interrupt die Portpins selber toggeln. Vorteil
wäre großere Flexibilität und Freiheiten, Nachteil könnte sein das mehr
Taktzyklen benötigt werden.

Nun benötige ich aber noch ein klitze kleines aber wichtiges Feature
zusätzlich. Ich muß in der Lage sein die PWM Frequenz schon nach einem
Ansteuerungszyklus sehr variabel abändern zu können ! Das
Tastverhältnis bleibt im Grunde immer gleich aber die
Ansteuerungsfrequenz ändert sich permanent. Dies wird zur zusätzlichen
Datenübertragung benötigt.

Meine Frage ist nun ob einer von euch schon sowas gemacht hat oder
einfach welche Methode am aussichtsreichsten im Hinblick auf
effizienteren Code durchführbar erscheint. Da ich eben auch eine hohe
Ansterungsfrequenz benötige.

Gruß Hagen

PS: eventuell gutgemeinte Vorschläge zusätzliche Spezialhardware zu
benutzen interessieren mich nicht.
Gast #108203
Wenn du eine hohe Frequenz benötigst, würde ich Hardware PWM nehmen -
die Frequenz kannst du dann ganzeinfach mit dem vorteiler für den
jeweiligen Timer ändern
Gast #108204
" Das Tastverhältnis bleibt im Grunde immer gleich aber die
Ansteuerungsfrequenz ändert sich permanent. Dies wird zur zusätzlichen
Datenübertragung benötigt.
Meine Frage ist nun ob einer von euch schon sowas gemacht hat ... "

Das hat bestimmt noch niemand gemacht, und ich würde es aber auch nicht
als genial bezeichnen. Wozu PWM, wenn das Tastverhältnis nicht verändert
werden soll ?
Gast #108205
Das wäre dann PWM (Pulsweitenmodulation) mit fester PW (Pulsweite)...

Ich habe PWM (mit variabler PW) bisher immer per Software gemacht, ist
recht flexibel.

...HanneS...
Gast #108206
So wie du das machst hat das ganze eigentlich wenig sinn.
wenn du nur die Frequenz des PWM Signals ändern willst, wäre es besser
das PWM Signal per Hardware zu erzeugen, und per Software nur den
Vorteiler zu verändern
Gast #108207
CTC-Mode vom Timer2 (Tastverhältnis 1zu1 1Mhz)und dann eben den Timer2
mit der harware-PWM vom Timer1 disablen oder halt enablen.

Nee oder wie jetzt, die Frequenz soll sich ändern, aber das
Tastverhältnis gleich bleiben? Nö, kann ich nicht.
Ich ätte jetzt wellenpaketsteuerung weiter ausgeführt mit 1Mhz-Paketen
und entsprenden Pausen, die Variable wären...

Konfus
Axel

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 22 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.