Forum: Mikrocontroller und Digitale Elektronik Synchronisierung von mehreren PWM channeln verschiedener µC(ATSAM4S)


von Alex V. (bastel_alex) Benutzerseite


Lesenswert?

Der Titel sagt es schon:

Ich habe mehrere µCs (bis zu 4 SAM4S), die jeweils 4 PWM Channel mit dem 
selbem Takt (1kHz) und Duty Cycle nutzen sollen. Aktiv sind die Channel 
aber nie gleichzeitig, wichtig ist trotzdem für die Demodulation an 
anderer Stelle, dass es sozusagen einen Mastertakt gibt, auf dem alle 
Channel synchron laufen.

Nun möchte ich NICHT einen gemeinsamen Takt für die SAM4S cores.
Die Frage ist: Wie kann ich diese Synchronisierung (z.B. über eine von 
allen µC geteilte clock-line) am besten/effektivsten bewerkstelligen?

Die PWM Channel der SAM4S haben ja einen gemeinsamen clock-generator - 
nur wie synchronisiere ich die PWM clock-generatoren zwischen den µCs?

Ich freue mich auch über allgemeine Tips, die SAM4S unspeziefisch sind!

Viele Grüße
Alex

: Bearbeitet durch User
von Stefan (Gast)


Lesenswert?

Bei dem SAM3X weiß ich, dass es die möglichkeit gibt, den Clock 
Generator von extern zu takten. Dann könntest du z.B. einen Quarz nehmen 
und ihn an alle yC (den Pin für den PWM - Masterclock) anschließen. 
Somit wäre es absolut synchron.

Die Frage ist, wie weit de Controller voneinander entfernt sind, ggf. 
musst du dann bei einer hohen Taktfrequenz auf gutes Schaltungsdesign 
achten (wegen parisitären Kapazititäten)


Freundliche Grüße

Stefan

von Alex V. (bastel_alex) Benutzerseite


Lesenswert?

Ich möchte ja eben darauf verzichten die kompletten Systemtakte zu 
synchronisieren - sondern das auf die PWM perioden begrenzen! Ich sehe 
nur noch keine Möglichkeit dafür...

von Stefan (Gast)


Lesenswert?

Ja ich rede auch nicht vom Systemtakt. Sondern rein den 
PWM-Master-Clock. Der SAM3x hat einen Pin bei dem man diesen takt 
einspeisen kann

von Alex V. (bastel_alex) Benutzerseite


Lesenswert?

Achso, sorry!
Ich habe grade im Datenblatt vom SAM3X geschaut aber auf die schnelle 
nichts finden können (da ist immer nur die rede von clock generator, der 
clocks aus der division der PWM master clock (MCK) erzeugt), was auf 
einen externen Pin hinweist.
Kannst du mir da noch einen Tip geben - zB PinNamen o.Ä.? Vielleicht 
finde ich eine solche Möglichkeit beim SAM4S auch nur deshalb nicht, 
weil ich Blind für den Bezeichner bin...

von Stefan (Gast)


Lesenswert?

Bin leider gerade unterwegs und hab das Datenblatt nicht zur Hand. Aber 
ich glaube du darfst nicht unter PWM suchen, sondern unter PMC also 
Power Management Controller. Hier gibts zig verschiedene Möglichkeiten 
die verschiedenen Peripherien zu takten. Da kannst dich mal einlesen.


Mfg Stefan

von Alex V. (bastel_alex) Benutzerseite


Lesenswert?

Danke für den Hinweis! :)
Ich habe dort bisher (momentan im SAM4S Datenblatt) allerdings nur 
finden können, dass (wie) man die programmierbaren Clock Outputs auf die 
PCKx pins ausgibt (das ist schonmal gut, einer der µCs wird das ja auch 
müssen), nicht aber andersherum... Entweder das ist sehr verschlüsselt 
geschrieben oder ich komme nur einfach nicht auf den grünen Zweig

von Stefan (Gast)


Lesenswert?

Mir ist grade noch eine andere (eventuell einfachere) Lösung 
eingefallen. Beim SAM3x gibt es beim PWM-Modul die sogenannte Fault 
Protection. Der Controller hat 3 Fault-Inputs.
Liegt an diesem Pin ein vorher definierter Pegel an (High oder Low) wird 
der PWM-Ausgang mit einem gewünschten Wert überschrieben (High oder Low) 
und das PWM-Modul zurückgesetzt.


The fault protection on a channel is triggered when this channel is 
enabled and when any one of the faults that are enabled for this channel 
is active. It can be triggered even if the PWM masterclock (MCK) is not 
running but only by a fault input that is not glitch filtered.
When the fault protection is triggered on a channel, the fault 
protection mechanism forces the channel outputs to the values defined by 
the fields FPVHx and FPVLx in the “PWM Fault Protection Value Register” 
(PWM_FPV) and leads to a reset of the counter of this channel. The 
output forcing is made asynchronously to the channel counter.


Man könnte also bei jedem Controller erst eine kurze Zeit ein Signal an 
den Fault-Input anlegen, dann müssten alle PWM-Signale Synchron laufen.

von Alex V. (bastel_alex) Benutzerseite


Lesenswert?

Vielen Dank für die gute Idee! Habe deine Antwort leider erst jetzt 
gesehen.
Der SAM4S hat auch fault inputs - sogar 8 - das lässt sich also 
übertragen.
:)

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.