Okay danke, soweit hab ich alles verstanden. Den Ablauf und alle zusammenhänge
Nun bin ich an einem Punkt angekommen einen Atxmega mit AweX zu nutzen. In meinem Versuchsaufbau werden meine drei IR2101 von 6 AweX Pwm-Pins angesteuert.
Damit das funktioniert wurden 3 invertierte AweX Pins erneut invertiert um auf allen 6 Pins die gleichen PWM-Flanken zu erzeugen.
Ausgegeben bekomme ich ein 12Bit 31,6Khz PWM-Signal.
Nun würde ich gerne, soweit es möglich ist, die Ansteuerung des Brushlessmotors komplett über das DMA- und Eventsystem laufen lassen. Da meine Erfahrung diesbezüglich
gleich null ist bräuchte ich eure Hilfe wie der Ablauf sein muss. So richtig weiß ich nicht welches Event was auslösen soll bzw wie ich das DMA benutze.
Mein Gedanke ist:
1. Analog Comparator auf Event_Ch0
2. Timer1 wird bei jedem Event_Ch0 interrupt ausgelesen und in den Timer2 kopiert (mithilfe vom DMA?), anschließend wird Timer1 gestoppt.
3. Timer2 startet bei einem Event_Ch0 interrupt mit 0 und zählt bis zu dem zuvor reinkopierten "Timer2-Wert"
4. Timer2 interrupt löst das DMA aus, dieses kopiert eine Variable(mit den nötigen Bits für die richtigen Phasen) in das Awexc_outoven Register. Anschließend muss Timer2 wieder von 0 gestartet werden.
Wofür ich keine Lösung habe ist bei dem setzen der Variable damit später die richtigen HS- und LS-Mosfets geschalten werden. Und ein weiterer DMA-Kanal muss das umstellen des AC_Mux Register vornehmen.
Oh Gott, ich Blick das bald nicht mehr. Ist es überhaupt möglich einen Brushless-Motor gänzlich mit dem Event- und DMA-System anzusteuern?
Tja also, welcher DMA-Kanal und welcher Event-Kanal muss WAS machen?
Leider gibt es keinen Code: http://www.jtronics.de/avr-projekte/...ontroller.html
Vielen Dank im vorraus!![]()
Lesezeichen