Forum: Mikrocontroller und Digitale Elektronik AT91SAM7S256 Interrupt bei PWMC


von Johannes B. (bender)


Angehängte Dateien:

Lesenswert?

Hallo,

ich arbeite mit einem AT91SAM7S256 Evaluation Board und der IAR 
Workbench. Im Anhan ist ein Oszi-Bild zu finden, welches mein Problem 
erläutert.

Im aktuellen Fall habe ich den PWM Channel auf 512 von 1024 Schritten, 
also halb an, halb aus. Der PWM Interrupt ist auf Pegel eingestellt. Man 
sieht ein kleines Gezapel im Signal. Die Interrupt-Routine gibt (unter 
anderem) einen kleinen Peak aus um zu prüfen wann er kommt.

1) Man sieht, dass der Interrupt zweimal kommt.
   Warum? Eventuell von dem Gezapel?

2) Warum überhaupt das Gezapel?
   Am Anfang des High-Pegels klar: Einschwingen.
   aber "vor dem runtergehen"?

3) laut Atmel soll man Pegel keine Flanken-Interrupte beim PWM 
verwenden.
   Wieso?


Eventuell hat jemand etwas ähnlich schon mal gesehen bzw. weis 
Antworten?

von Johannes B. (bender)


Lesenswert?

Manchmal steht man wie ein Ochs vor dem Berg.
Ich habe meine Antworten wieder gelöscht, da ich selbst auf die Lösung 
des Problems gekommen bin:

Aufgrund des PWM-Bugs, dass man nicht auf 0 fahren darf habe ich den 
einen PWM immer auf 2 stehen lassen. Das spuckt mir ordentlich in die 
Suppe, daher das Gezappel. Problem ist das meine Last so wenig 
Induktivität hat, als das Sie über diese Mikrosekunden der 
Stromlosigkeit drüber weg bügelt.


Fragen bleiben trotzdem:
1) kennt jemand eine Alternative zum Umgehen des Bugs AUSSER eben den 
Duty Cycle nicht auf Null zu stellen?

2) Es gibt von Atmel eine App-Note die die PWM-Signal Erzeugung mit dem 
TC erläutert. Kann ich ja prinzipiell auch machen. Gibt es dort 
irgendwelche Nachteile


P.S.: Ich liebe Peripherie-Features an Controllern, die nicht richtig 
funktionieren ;)

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
Noch kein Account? Hier anmelden.