Moin zusammen,
da mir gerade auffiel, dass es in der Mehrzahl der Threads hier eher um die Reparatur von Fertiggeräten oder Kleinkram geht, möchte ich mal testen, ob auch so ein Thread noch hier funktioniert ![]()
Mir ist aufgefallen, dass die meisten Dimmerpacks auch bei mehreren Phasen mit einer MCU auskommen. Beim Schreiben der 3p-Firmware für meine Packs ist mir aufgefallen, dass die Umsetzung gar nicht so trivial ist.
Mir fallen grundsätzlich folgende Ansätze ein:
1MCU/Phase
+ einfach machbar
- teurer
- gilt nicht :wink:
für jede Phase einen 16bit-Timer
- Es gibt nur wenige (teure) MCUs mit mehr als 2 16bit-Timern
Man lässt einen 16bit Timer als Zeitreferenz kontinuierlich laufen und berechnet die Zündpunkte als aktuelle Zeit +Zündwinkel.
Der Vergleich der Zündzeiten mit der aktuellen Zeit erfolgt möglichst oft in einer Schleife.
- Man trifft in der Vergleichschleife nie den exakten Zeitpunkt sondern eher etwas später, so dass ein Zeitfenster sinnvoll ist. Dieses Konzept scheitert in meiner Theorie beim Überlauf der 16bit-Zeitreferenz.
Man berechnet anfangs die Phasendifferenz und speichert sie als Offsets zur Referenzphase. Nun berechnet man die einzelnen Zündwinkel, addiert ggf. die Phasenoffsets und positioniert alle Zündwinkel auf der Halbwelle der Referenzphase.
+ so arbeite ich bislang mit vernünftigen Ergebnissen und akzeptabler MCU-Auslastung
- ändern sich die Phasendifferenzen (Lastwechsel,...) stimmen die Zündwinkel der Slave-Phasen nicht mehr.
- eine unsaubere Nulldurchgangserkennung wirkt sich auf Grund der höheren aktuellen Spannung auf den Slavephasen ungleich stärker aus.
-> Die Phasen müssen also unabhängig voneinander ausgewertet werden.
Fällt Euch noch eine Variante oder eine Lösung ein?
Viele Grüße,
Hendrik