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