Pfeil

Echtzeitanzeige für Kassettenrekorder

elektronisches Zählwerk mit 7-Segmentanzeige für Tapedecks

Bedienung  Funktionsbeschreibung  Aufbau  Schaltplan  Platine  Software 

ein Kassettenrekorder im Regal
Telefunken TC 650 M
Ende 2013 hatte ich vergeblich versucht in meinem seit vielen Jahren ungenutzten Tapedeck eine Kassette abzuspielen. Das Telefunken TC 650 M mit HIGHCOM™ Rauschunterdrückung stammt aus dem Jahr 1982 und die Mechanik hatte im Verlauf der Zeit gelitten. Die Zwischenzahnräder das Antriebs hatten sich aufgelöst und die Gummiriemen lagen zerbröselt auf dem Chassisboden.
Nachdem ich das Gerät wieder in einen funktionstüchtigen Zustand versetzt hatte wurde es auch elektrisch neu kalibriert.
Ab Werk ist das Gerät auf das BASF Chromdioxid Referenzband eingemessen. Aufnahmepegel und Vormagnetisierung für die übrigen Bandsorten werden von diesen Einstellungen abgeleitet. Bei der Verwendung von Chromsubstitutbändern wie z.B. TDK SA-X gibt es jedoch Schwierigkeiten. Weil diese Bänder etliche dB mehr Wiedergabepegel als das Bezugsband aufweisen, konnten sie nie mit HIGHCOM™ bespielt werden.
Weil hier noch ein Stapel unbenutzter japanischer High-Bias-Bänder liegt und ich in Zukunft keine Ferrochrombänder mehr neu bespielen werde, habe ich das Gerät in Stellung FeCr (Typ III / IEC III) auf das BASF Bezugsband U 564 W von 1987 eingemessen. Dafür musste die Bandsortenumschaltung geringfügig modifiziert werden. Am Ende konnten alle Sollwerte laut Serviceanleitung erreicht oder übertroffen werden.
Mehr Informationen zu den verschiedenen Bandsorten hält Wikipedia bereit.
Die HIGHCOM™-Module hatte ich in den 80ern bereits mit "Soft-Switching" aufgerüstet und nach dem Einpegeln ist das Kompandersystem nicht mehr wiederzuerkennen.
Ich höre keinerlei Pumpen, Atmen oder sonstigen Artefakte mehr.
Eine Aufnahme des auch vom Telefunken Entwicklungsteam als Kompandertest verwendeten Stücks "Tomīs Diner" von Suzanne Vega kann ich nicht von der parallelen CD-Wiedergabe unterscheiden. Eine Überprüfung mit "Brothers in Arms" von den Dire Straits brachte das gleiche Ergebnis.
Zufrieden mit diesem Erfolg hätte ich das Gerät jetzt eigentlich wieder zuschrauben und im Rack verkabeln können.
Dann wäre die Geschichte hier zu Ende.

mechanisches und elektronisches Zählwerk
mechanisches und elektronisches Zählwerk
Aber ich war angefixt von der Idee das mechanische Zählwerk noch irgendwie durch eine Digitalanzeige zu ersetzen. Und wenn ich das schon mache, dann doch bitte auch mit sekundengenauer Echtzeitanzeige. Das würde dem Gerät sicher gut zu Gesicht stehen und mir noch viele Jahre Freude daran bereiten.
Da für den Bau solch einer Schaltung praktisch keinerlei Information im Netz zu finden ist, möchte ich dies mit der vorliegenden Bauanleitung nachholen.
Bei der Umsetzung der Aufgabenstellung habe ich mich an eine Patentanmeldung der Robert Bosch GmbH aus dem Jahr 2002 angelehnt.
Die von mir gebaute Schaltung leistet Folgendes:
  • Anzeige der absoluten Bandposition in Minuten und Sekunden im Aufnahme-/Wiedergabe- und Spulmodus
  • Umdrehungszähler des Wickeltellers mit Ausgabe eines Stoppsignals bei Zählwerkstellung 0000
  • Anzeige der Kopfbetriebsstunden im Aufnahme- oder Wiedergabemodus
  • Anzeige vieler weiterer Daten (welche einmal zum Debuggen dienten) möglich

Bedienung

Video herunterladen: mp4 | ogg
Wird nach dem Einlegen einer Kassette in den Aufnahme- oder Wiedergabemodus geschaltet beginnt der Controller mit einer initialen Messphase.
Währenddessen zeigt das Display blinkend "CALC" und der Bedientaster ist gesperrt.
Ist die Messung beendet erscheint im Display die abgelaufene absolute Spielzeit "T" 5-stellig in H:MM:SS oder 4-stellig in MM:SS.
Es ist egal an welcher Bandposition sich die Kassette befindet, es ist kein Rückspulen und Nullen erforderlich!
Solange das Kassettenfach nicht geöffnet und der Rekorder nicht ausgeschaltet wird bleibt das Rechenwerk auf die eingelegte Kassette "gelockt".
Durch Einschalten des Gerätes mit gedrückt gehaltener Bedientaste wird der Anzeigemodus während der initialen Messphase gewechselt: der Taster kann bedient werden und statt "CALC" werden die bisher berechenbaren Daten gezeigt, nach erfolgter Synchronisation leuchtet als Indikator der Dezimalpunkt der letzten Anzeigestelle permanent.

Mit einem kurzen Tastendruck können weitere Werte rotierend in die Anzeige geholt werden.
Umdrehungen "U" oder die Kopfstunden "h".
Der letzte Tastendruck führt wieder zur Zeitanzeige.

Die Anzeige "U" für Umdrehungen gibt die Anzahl der Tellerumdrehungen an. Die Funktion entspricht der eines herkömmlichen mechanischen Zählwerks. Der Zähler ist an jeder Stelle mit einem langen Tastendruck rücksetzbar und steuert bei Erreichen der Zählwerkstellung "0000" den Nullstoppausgang für 0,5s an. Wenn der Kassettenrekorder über eine entsprechende Funktion verfügt, kann diese hierdurch ausgelöst werden.

Die Anzeige "h" zeigt die vollen Kopfstunden im Aufnahme- oder Wiedergabemodus an.
Ein Ausschalten des Rekorders mit gedrückt gehaltener Bedientaste setzt den Betriebsstundenzähler auf 0.
Man kann die Software bequem so anpassen, dass noch weitere Daten in selbst festzulegender Reihenfolge angezeigt werden zum Beispiel Banddicke, Bandlagen, Zeitfehler uvm.
Der Programmcode ist ausreichend kommentiert um die dazu erforderlichen Änderungen durchzuführen.
Beim Öffnen des Kassettenfaches wird "CASS" angezeigt und der Werte für die abgelaufene Zeit "T" wird auf 0 gesetzt.
Der Status "synchron" wird gelöscht und bei der nächsten Wiedergabe erfolgt erneut eine Initialmessung.
Zwischen Wiedergabe und Spulen muss eine Bedienpause von 0,2 Sekunden eingehalten werden damit der Controller den Stoppmodus sicher erkennen kann.

Funktionsbeschreibung

Ich komme nun zu etwas Mathematik, denn sie ist der Kern der Anwendung.
Die Herleitung der Formeln hier ausführlich zu erläutern ist mir im Moment allerdings zu mühsam.
Das Studium der o.a. Patentschrift und etwas Gehirnschmalz erlauben es dem Interessierten dies selbst nachzuvollziehen.
Der Lerneffekt dadurch ist nicht zu unterschätzen.

Die abgelaufene Spielzeit eines auf Spulen gewickelten Bandes ergibt sich nach folgender

Formel 1: Gleichung: Spielzeit = (2*Pi*Bandlagen*(Wickelkernradius+(Bandlagen+1)*(Banddicke/2)))/Bandgeschwindigkeit

Pi, Wickelkernradius und Bandgeschwindigkeit sind bekannte Konstanten, so dass noch Banddicke und Zahl der Bandlagen auf dem Aufwickelteller ermittelt werden müssen um die Gleichung zu lösen. Die Zahl der aufgewickelten Bandlagen ergibt sich nach

Formel 2: Gleichung: Bandlagen = (Radius_aktuell - Kernradius)/Banddicke

Der Wickelkernradius ist wieder eine bekannte Konstante und ich benötige nun weiterhin die Banddicke und den aktuellen Wickelradius, der umgekehrt proportional zur aktuellen Tellerdrehzahl ist und sich errechnen läßt nach

Formel 3: Gleichung: Radius = Timer1*Bandgeschwindigkeit*Zebra*Vorteiler_Timer1/(2*Pi*Controllertakt)

Mit dieser Formel sind wir jetzt schon sehr nah an der Hardware dran.
Die Werte für Zählerstand, VorteilerZähler und Controllertakt beziehen sich auf den die Umdrehungen des Aufwickeltellers messenden Timer im Controllerbaustein. Die Zahl der Weißfelder auf der Welle des Wickeltellers, siehe weiter unten, geht natürlich auch in die Berechnung ein.
Um die gesuchte Spielzeit abschließend berechnen zu können muss jetzt nur noch die Banddicke bekannt sein.

Zählwerkanzeige mit Bedientasten
Bei dieser TDK MA-G 90 wurde eine Banddicke von 12,0 µm ermittelt
Bei den mir bekannten Kassettendecks mit eingebauter Echtzeitanzeige muss man bevor etwas Sinnvolles angezeigt werden kann die Spielzeit der Kassette manuell eingeben. Hinter der Tasteneingabe verbirgt sich wohl die Anweisung mit welcher Banddicke gerechnet werden soll.
Nach meinen Informationen sind in die Gehäuse von C120, C90 und C60 Kassetten Bänder mit 9µm, 12µm und 17µm eingespult.
Die hier vorgestellte Schaltung hat allerdings bei meinen C90 und C60 Kassetten Banddicken ermittelt, die auch mal bis zu 2µm von den 12µm oder 17µm abweichen. Daß es sich dabei um Messfehler handelt glaube ich nicht, da die ermittelten Banddicken für jede Kassette reproduzierbar sind. Eine C120er Kassette oder andere Zwischengrößen standen mir während der Entwicklung nicht zur Verfügung.
Weil an meinem Rekorder keine Eingabemöglichkeit für einen Banddickenwert besteht und auch nicht angebaut werden soll und ich darüberhinaus nicht jede Kassette vor der Benutzung vermessen kann und möchte wurde ein Weg beschritten, die Dicke des Magnetbandes vom Rekorder selbst bestimmen zu lassen.
Dazu führt das Gerät im Wiedergabe- oder Aufnahmemodus nach einem Kassettenwechsel jeweils eine initiale Messphase durch. Der Controller ermittelt die präzise momentane Winkelgeschwindigkeit des Aufwickeltellers über eine Sensoreinheit und berechnet daraus den Wickelradius. Mit dem Wert des Wickelradius der einige Umdrehungen vorher gemessen wurde kann nun mittels nach der Banddicke aufgelöster Formel 2 die Banddicke errechnet werden. Dieser Wert schwankt wegen der mechanischen Unzulänglichkeit des Compact-Cassetten-Systems permanent und muss durch Filter beruhigt werden. Unterschiedliche Filterungen werden während der Synchronisierphase angewandt um möglichst schnell zu einem gültigen Wert zu kommen und dann im weiteren Betrieb einen möglichst stabilen Wert sicherzustellen.

eine Kassette mit Messschieber und elektronischen Bauteilen liegen vor einem Kassettendeck
Digitaltechnik kann viel präziser als Mechanik arbeiten
Wenn alle relevanten Werte innerhalb ihrer Grenzen und stabil sind, nicht aber vor Beginn des Synchronisierfensters von 30 Sekunden wird die errechnete abgelaufene Zeit in die Anzeige übernommen, das Flag "Synchron" gesetzt und die Zeit im Display quarzgenau weitergezählt.
Am Ende des Synchronisierfensters von 90 Sekunden wird die Synchronisierung mit der bis dahin ermittelten Banddicke in jedem Fall erzwungen, auch wenn diese noch nicht stabil und korrekt sein sollte. Im laufenden Aufnahme- oder Wiedergabebetrieb wird die Banddicke aber ständig weiter ermittelt und nähert sich dem wahren Wert hoffentlich an.
Nach der Synchronisierung läuft die Zeit in der Anzeige zunächst quarzstabil weiter. Die Spielzeit wird anhand der einlaufenden Daten im Hintergrund weiter berechnet. Diese läuft aber besonders zum Bandende hin oder wenn die Banddickenermittlung stark schwankende Werte liefert etwas ungleichmäßig oder zieht langsam weg. Die quarzgeführte Zeit wird bei Abweichungen dann in kleinen Schritten an den Wert der errechneten Zeit herangeführt.
Da die Spielzeit beim Umspulen nicht aus einer Quarzzeit abgeleitet werden kann muss sie aus den Lagen errechnet und direkt ans Display übergeben werden. Sind die Spielzeit im Display und die errechnete Spielzeit aber nicht gleich, kommt es beim Wechsel von Play zum Spulen zu einem Sprung in der Zeitanzeige Damit dies aber nicht passiert wird beim Stoppkommando der Lagenzähler auf den Wert gesetzt, bei dem errechnete Zeit und Zeit im Display identisch sind.
Die Umsetzung der Rechenanweisung in Assemblercode für den 8-Bit Controller war nicht ganz so einfach und erfolgt nach folgender

Formel 4: Gleichung: Bandlagen = (Wurzel((Banddicke/2+Wickelkernradius)^2+Zeit*Banddicke*Bandgeschwindigkeit/Pi)-Banddicke/2-Wickelkernradius)/Banddicke

Im Aufnahme- und Wiedergabebetrieb wird alle 10 Sekunden der Kopfstundenzähler bedient.
Seine Tiefe von 24 Bit reicht für 224/360 Sekunden = 46603 Stunden.
Beim Ausschalten des Kassettendecks werden die letzten Werte für Zählwerksstand, Banddicke und Kopfstunden sowie die Betriebsart ins EEPROM gerettet.
Nach dem Einschalten wird der Controller mit diesen Werten initialisiert.
Der in dieser Anwendung minimale erreichbare Anzeigefehler beträgt ca. 2 Sekunden, was bei einer C90 Kassette ca. 0,1% Abweichung von der realen Bandposition bedeutet. Über viele Kassetten ermittelt liegt der mittlere Fehler bei unter 0,6% oder 15 Sekunden.
Wie wurden die Abweichung ermittelt?
Eine C90 Kassette wurde mit SMPTE Timecode bespielt und ein Timecodeleser an den Kassettenrekorder angeschlossen. So lassen sich die Anzeigen von Timecode und Echtzeitanzeige an jeder Bandposition direkt vergleichen. Wenn die Startzeit verschiedener Lieder auf einer Kassette exakt vermessen ist lassen sich Abweichungen ebenfalls genau ermitteln. Man kann auch ab Bandanfang eine Stoppuhr mitlaufen lassen oder prüft wie weit die Zeitanzeige nach dem Rückspulen von Null abweicht.

Aufbau

Wickelteller eines Kassettenrekorders mit Schwarz-weiß-Muster und Abtasteinheit aus 2 Lichtschranken
Abtasteinheit am Aufwickelteller
Da jeder Kassettenrekorder anders aufgebaut ist kann die nachfolgende Beschreibung lediglich als Beispiel für einen Umbau dienen. Man muss sehen welche Möglichkeiten der vorhandene Rekorder bietet und welche die eigenen mechanischen Fähigkeiten erlauben umzusetzen.

Der Aufwickelteller ist bei meinem Gerät mit einem Streifenmuster mit 8 weißen und 8 schwarzen Feldern versehen, welche von 2 Reflexlichtschranken abgetastet werden. Dazu wurde eine entsprechende Vorlage im Rechner angefertigt und auf Papier ausgedruckt. Der Streifen ist dann mit doppelseitigem Klebeband so auf der Walze fixiert, dass der Klebestoß genau zwischen einem Weißfeld und einem Schwarzfeld liegt.
Die Lichtschranken A und B werden so angeordnet, dass immer wenn eine auf die Mitte eines Weißfeldes gerichtet ist die andere genau auf den Übergang zwischen einem Weiß- und einem Schwarzfeld zeigt.
Auf dem Foto links erkennt man bläulich die Infrarot-Leuchtflecken, die die LEDs erzeugen. Das menschliche Auge nimmt hier in Wirklichkeit nichts wahr, der Fotoapparat "sieht" das IR-Licht jedoch.
Es ist nicht unbedingt erforderlich, dass alle Weiß- und Schwarzfelder präzise die gleiche Größe haben, da der Controller die Drehzahlen des Wickeltellers immer über ganze volle Umdrehungen ermittelt und sich so Abtastschwankungen innerhalb einer Umdrehung ausgleichen. Jedoch beschleunigt sich die Synchronisierung bei gleichgroßen Feldern etwas. Wie sich ein Verblassen des Drucks oder ein verschmutzen des "Zebrastreifens" auswirkt wird die Zukunft zeigen.
Bei anderen Rekordern sind je nach mechanischem Aufbau segmentierte oder geschlitzte Scheiben oder Trommeln besser geeignet um die Tellerbewegungen zu detektieren.
Je nach verwendeten Sensoren können Anpassungen an den dazugehörigen Komparatorschaltungen nötig werden um den richtigen Arbeitspunkt für die Phototransistoren einzustellen.
Wenn der Umdrehungszähler vorwärts und rückwärts unterschiedlich zählt oder irgendwie hakelig läuft ist das ein Zeichen für eine notwendige elektrische oder mechanische Justage der Lichtschranken.
Läuft das elektronische Zählwerk später in der falschen Richtung gibt es verschiedene Möglichkeiten zur Korrektur:
- die Tabelle zur Drehgeberdekodierung in der Datei "daten.inc" ändern
- die Signalausgänge Geber A und Geber B vertauschen
- den Blickwinkel EINES Gebers auf dem Radumfang um ein Feld in oder gegen die Drehrichtung versetzen

Auschnitt aus dem Innenleben des Kassettendecks
vom Sensor
Wickelteller
Sensor
Kassettenfach
Anzeige und
Tasterblock
Kabel von Anzeige- und Tasterblock, Lichtschranke C und Abtasteinheit
Eine dritte Lichtschranke C ist nach eigenen Möglichkeiten so in die Mechanik des Rekorders zu integrieren, dass ein geschlossenes Kassettenfach oder eine eingelegte Kassette detektiert wird.
Am Platz des ehemaligen mechanischen Zählwerks befindet sich jetzt der Block mit LED-Anzeige und Bedientaster.
Das ist eigentlich das Schwierigste überhaupt an dem ganzen Umbau. Schließlich soll sich die Anzeige so in die Front einfügen, als wäre sie schon immer da gewesen. Der ehemalige Rücksetztaster für das Zählwerk wirkt nun auf einen elektrischen Schließkontakt mit dem das elektronische Zählwerk bedient wird.

bestückte Elektronikplatine
auf der Hauptplatine laufen alle Leitungen zusammen
Im Chassis des TC 650 M ist Platz frei um genau eine Platine nachzurüsten. Welche Option da ursprünglich mal vorgesehen sein könnte ist mir leider nicht bekannt. Ich kann mich aber freuen, denn meine Zählwerkplatine passt dort so gut hin als ob sie dafür gebaut wäre.

Schaltplan

Schaltplan der Echtzeitanzeige
Gesamtschaltplan mit Stückliste
Die Schaltung besteht im wesentlichen aus der Spannungsversorgung, einer Versorgungsspannungsüberwachung, einem Controller ATMEGA 8 mit 4 MHz Quarz, 3 Lichtschranken mit einem LM339 4-fach Komparator und der Anzeige mit Treibern.
Die Anzeige kann 4- oder 5-stellig aufgebaut werden; bei 4-stelliger Nutzung wird einfach LED 1 nicht bestückt/angeschlossen. Damit der Controller die Anzeigedaten später richtig aufbereitet ausgibt muss die Software mit der entsprechenden Anweisung assembliert werden.
Ich habe bewußt darauf verzichtet elektrische Verbindungen zur Laufwerkssteuerung herzustellen weil so die Schaltung universell einsatzbar bleibt. Damit ist der Besitz der Schaltungsunterlagen des Rekorders nicht zwingend für den Einbau in das eigene Gerät erforderlich. Der momentane Betriebszustand (Wiedergabe, Spulen Stopp) wird nur anhand der Drehzahl erkannt.
Die Schaltung erwartet 12 Volt WECHSELSPANNUNG an ihrem Eingang, die direkt dem Trafo des Rekorders entnommen werden kann oder von einem separaten Trafo bereitzustellen ist. Die Stromaufnahme beträgt maximal 190mA und verringert sich bei 25% Displayhelligkeit auf 90mA.
Das Abschalten der Versorgungsspannung erkennt der Controller über Pin B4 worauf das Display und die IR-LEDs der Lichtschranken sofort deaktiviert werden, damit die Ladung im Speicherkondesnator C1 noch sicher für das Retten von Daten in das EEPROM ausreicht.
Bei Anschluss an die Gleichspannungsversorgung des Rekorders funktioniert dies nicht!
Wenn das Laufwerk über eine Möglichkeit verfügt es durch einen Schließkontakt in den Stoppmodus zu versetzen, kann der entsprechende Ausgang der Steuerplatine dazu benutzt werden.

Platine

Bestückungsplan
Bestückungsplan als PDF zum Download
Die Schaltung wird auf einer einseitigen Platine mit bedrahteten Bauteilen herkömmlich aufgebaut. Es sind 5 Drahtbrücken erforderlich.
Wenn von den Lesern jemand diese Schaltung in SMD-Technik nachbaut biete ich an, daß Layout hier zu veröffentlichen.
Platinenlayout und Software sind für Anzeigen mit gemeinsamer Anode oder Kathode ausgelegt.
Bei Verwendung mit einer Anzeige mit gemeinsamer Kathode werden als Transisoren T1 bis T5 NPN-Typen eingelötet und eine Lötbrücke von der gemeinsamen Emitterleitung nach Masse hergestellt. Um Anzeigen mit gemeinsamer Anode anzusteuern bitte PNP Transistoren einsetzen und die Lötbrücke von der Emitterschiene nach +5 Volt herstellen.
Im Betrieb bleibt St7 unbelegt, da er nur zur Programmierung des Controllers über die ISP-Schnittstelle dient.
Da die unterschiedlichsten Anzeigen angeschlossen werden können gibt es dafür kein Platinenlayout: die Verdrahtung zum Display, dem Taster und der Nullstoppsteuerung ist nach eigenem Ermessen auszuführen. Die Anschlussreihenfolge der 8 Anzeigesegmente A bis G und dp kann frei gewählt werden.
Wenn im Bereich "Verdrahtung Port C" der Datei "tapetimer.asm" die reale Verdrahtung der Anzeigesegmente abgebildet wird leuchten die Zeichen später sinnrichtig.
Die grüne LED liegt parallel zum Nullstoppausgang das Controllers und hat keine weitere Funktion, sie kann zu Debugzwecken genutzt werden oder bleibt zusammen mit R16 unbestückt.

PDF-Symbol Platinenlayout der Steuerplatine als PDF

Software

Die Software kann vor der Assemblierung in das hex-File an die eigenen Bedürfnisse angepasst werden.
Im Bereich "Definition fester Werte" wird z.B. die Anzeigehelligkeit, die Anzahl der gewünschten Digits, der verwendete Anzeigentyp uvm. festgelegt. Mit vielen anderen Parameter kann bei Bedarf experimentiert werden.
Der Code ist entsprechend ausführlich kommentiert.

Download Software Tapetimersoftware V1.5 (Quellcode in Assembler) als zip-File

Bei Fragen oder Anregungen kann gerne Kontakt mit mir aufgenommen werden.
Die Daten dafür befinden sich auf der Startseite.
Es muss jedoch auch mal mit längeren Antwortzeiten gerechnet werden.