So. Mein erstes Ziel ist es ja, mit so wenig Invasivität wie möglich auszukommen. Das Minimum was ich brauche ist
- Strom (GND und VCC sind an der Motorreglerplatine gutzugänglich und werden von dort abgegriffen)
- Pin 4 vom TCA955, der auf der Reglerplatine als "Testpunkt M" herausgeführt ist. Hier kann man einfach ein Kabel aufstecken. Von dort arbeite ich die Impulse der Motorwelle auf (12 Impulse pro Umdrehung)
- Pin 6-7-8 (sind zusammengeschaltet). Hier kann ich eine geringe Spannung überlagern, die den Sollwert des TC955 beeinflusst und somit den Motor regelt. An diesen Kontakt muss man ein (einzelnes) Kabel anklemmen — durch die große Kontaktfläche kein großes Problem.
Die "Version 1" soll einfach, ganz UI-los, für quarzstabilen Betrieb sorgen. Eine Herausforderung ist (bzw. war), dass die zu überlagernden Spannungen für eine Solldrehzahl sich sehr unterscheiden, je nachdem ob der Projektor auf 18 oder 24 fps gestellt ist. Da ich mit obigen Verbindungen auskommen will, brauchte ich also erstmal etwas Logik, die schnell die eingestellte Drehzahl (ohne Regelung) bestimmt. Dazu ermittle ich jeweils den Median des Abstands von 12 Impulsen (eine Motorwellenumdrehung). Da der TCA955 beim Anlauf naturgemäß etwas schwingt, brauche ich ein paar solcher Samples, bis ich sicher genug die Geschwindigkeits-Schalterstellung ableiten kann. Im Zeitverlauf sieht das so aus:
Langer Rede, kurzer Sinn: Nach i.d.R. 48 Impulsen (also vier Einzelbildern) kenne ich die eingestellte Projektorfrequenz und kann losregeln. Je nach Projektorzustand (Schmierung, Temepratur, etc) kann es auch mal 5 oder 6 statt 4 Einzelbildern dauern — macht aber nix, denn ich zähle die Impulse ab Beginn mit. Es ist in der Praxis ja auch völlig egal, ob die erstem 4 oder 6 Bilder schon gequarzt laufen oder nicht — Hauptsache, der Quarz stimmt dann schnell und smooth ein. Kurz: Nach 4-6 Bildern starte ich den TCXO-Timer und weiss dann auch genau, wieviele Impulse schon reingekommen sind, so entsteht kein Versatz.
Um den gesamten Frequenzbereich des Bauers von ca. 9 bis 34 fps zu regeln, benötige ich eine Steuerspannung von nur 0,7 bis 1,75 Volt. Ein Volt ist nicht viel. Um präzise genug regeln zu können, verwende ich einen DAC (Digital-Analog-Converter) der 12 Bit Auflösung hat. Damit habe ich 4096 Regelstufen über den gesamten Bereich. Ein invertierenden OpAmp (Rail to Rail LMC6482AIN, ein rauscharmes und präzises Modell) mact aus den 0-5V des µC dann exakt die benötigten 0,7 bis 1,75 Volt. Hier stellte sich heraus, dass Steckbrett-Aufbauten nicht sonderlich gut für Spannungen im mV-Bereich sind — erst mit ordentlich verlöteter Elektronik kam ich zum Ziel:
Sobald ich die Schalterposition des Bauers ermittelt habe, schmeiss ich den passenden Timer für 18 bzw. 24 fps an. Für eine ausreichende Regelgenauigkeit zähle ich alle (12) Impulse der Motorwelle, daher braucht mien Referenzsignal 18x12 bzw 24x12 Hz, also 216 bzw. 288 Hz. Da sich diese nicht ganz exakt aus 16 MHz des TCXO runterteilen lassen (und ich Perfektionist bin), "dithere" ich, schalte also anteilig so zwischen je zwei Timer-Konfigurationen um, dass pro Umdrehung der Motorwelle exakt 216 bzw. 224 Hz herauskommen. So liegt sämtliche Ungenauigkeit des Systems beim TCXO (2.5ppm Abweichung maximal, also maximal ein Einzelbild Abweichung nach > 6 Stunden Projektion).
Das System vergleicht laufend die Gesamt-Impulsdifferenz von Motorwelle und Quarz und füttert diese Differenz in einen PID-Regler. Dessen Tuning war (wie immer) eine etwas zeitaufwendigere Sache, denn der Projektor soll sanft nachregeln, aber muss auch schnell reagieren, ohne dabei zu schwingen.
Etwas festgebissen habe ich mich dabei im (zugegebenermaßen eher unwichtigen) Umstand, dass der Nutzer ja während des gequarzten Betriebs den Geschwindigkeitsschalter des Bauer umlegen kann, was eine erhebliche Nachregelung erfordert. Auch erschwerdend war, dass der TCA955 selber ein Regler ist, und kaskadierte Regler gern zum Schwingen neigen. Jetzt läuft der Regler nach einigen Kniffen aber prima — auch beim harten Umschalten von 18 auf 24 (oder andersrum) hat er nur ganz kurz 1-2 Bilder Versatz und ist nach weniger als einer halben Sekunde wieder Bildgenau "gelockt". Zwei hilfreiche Ansätze waren hier PID-Berechungen mit doppelter Bildrate (quasi Nyquist) und vor allem eine adaptive PID, die ihre Parameter je nach Fehlerbetrag angleicht.
Was noch fehlt:
- Ein "Auskoppeln" der Quarzung — ich muss meine überlagerte Steuerspannung noch elektronisch ganz "abklemmen" können, damit der Projektor "wie ohne Regelung" läuft
- +/- Knöpfe um manuell Bildversatz korrigieren zu können
- Eine Auswahlmöglichkeit anderer, spezifischer Frequenzen. Neben dem oben beschriebenenn "Auto" Betrieb für 18/24 dachet ich noch an 16 2/3, 23.9̅7̅6̅0̅2̅3̅ (NTSC), 25 und evtl. 29.970̅0̅2̅9̅9̅7̅ (NTSC).
- Ein kleines Display zur Bedienung (und zum Anzeigen der Ist-Bildrate, auch ungeregelt)
Die Punkte 2-4 sollen optional sein — also ohne Display oder +/- Knöpfe hat man dann immer noch die "Auto" Funktionalität. Spätestens für ESS ("V3") wid dann aber eh ein Display sehr vorteilhaft sein.
Zur Diskussion stellen möchte ich gern die möglichen Zielfrequenzen. Da die nur wenig Konfigurationsaufwand sind, bereiten die kein Kopfzerbrechen, aber wenn sie kein Mensch bruacht, muss ich sie auch nicht einbauen.
16 2/3 könnte praktisch sein zum "quick und dirty abfilmen". 25 könnte praktisch sein, wenn man Ton einer 25 fps-DVD verwenden will, die entsprechend schnelelr läuft als die 24 fps Filmkopie. Aber machen die NTSC-Frequenzen überhaupt Sinn? Oder übersehe ich noch andere praktische Bildraten? 🙂