FA 86/04, S.203
Funkamateur-Melodieklingel 2
FA 4/1986, S.203-205
Schaltungen mit Mikroprozessor U 880 D
Eine Melodieklingel mit vielen Melodien
S. LEHMANN
Schon seit geraumer Zeit werden in der Amateurelektronikliteratur Schaltungen mit Mikroprozessor-Bauelementen veröffentlicht. Dieser Trend ist zu begrüßen, da damit die Qualität der Amateurgeräte entscheidend verbessert wird. Dem gegenüber steht jedoch die Scheu vor einer Verwendung dieser Technik, bei der die Funktion nicht mehr verdrahtet, sondern programmiert wird. Die Ursachen dafür sind zum Teil darin zu suchen. daß die bisher veröffentlichten Schaltungen meist umfangreich waren (Amateurcomputer, Mikrorechner). Solche Projekte sind als „Mikroprozessor-Erstlingswerk“ schon zu schwierig. In diesem Beitrag soll deshalb eine kleinere Schaltung vorgestellt werden, die durch ein leichter erreichbares Erfolgserlebnis beim Nachbau die „Mikroprozessor-Hemmschwelle“ überwinden helfen soll.
Diese einfache Schaltung (Bild 1) kommt mit nur vier Schaltkreisen aus, ist aber solchen mit Schieberegister und Tongenerator weit überlegen. Möglich wurde das erst durch Verlagerung des Aufwandes von der Hardware (Schaltung) auf die Software (Programm). Letztere bildet zusammen mit der Minimalschaltung die Funktionen „Schieberegister“, „Tonspeicher“ und „Tongenerator“ nach. Da Software nichts kostet (solange man sie nicht kaufen muß), kann man in ihr die gesamte „Intelligenz“ des Gerätes unterbringen.
Eine herkömmliche Melodieklingel benötigte immer einen steuerbaren Tongenerator. Dieser ist aufwendig und schwierig abzugleichen. Ein Mikroprozessor, ein Ausgabe-Flip-Flop und ein paar Bytes Programm können ihn nicht nur ersetzen, sondern sogar übertreffen. Da der Mikroprozessor nun schon einmal da und mit der Erzeugung der Töne bei weitem nicht ausgelastet ist, kann er auch noch die Ausgabe der Melodien und die Abfrage des Klingelknopfes übernehmen. Durch Opfern einiger weiterer Bytes EPROM-Inhalt ist die Klingel auch schon um eine „Sturmklingel-Sperre“ reicher.
In einem 1-Kbit-EPROM kann man etwa 40 einfache Melodien unterbringen. Natürlich können auch weniger, dafür aber längere Liedermelodien einprogrammiert werden. Die Speicherung der Töne erfolgt dabei byteweise, wobei ein Byte (8 Bits) einen in Tonhöhe und -länge variablen Ton darstellt. Den genauen Aufbau eines Tonbytes zeigt Bild 2. Die unteren vier Bits repräsentieren die Tonhöhe, wobei die Kombination 0000 eine Ausnahme macht. Diese erzeugt keinen Ton, sondern eine Paus, Folglich ergibt die Folge 0001 den tiefsten, 1111 den höchsten Ton. Die nächsten drei Bits bestimmen die Tonlänge in Achtelnoten. Hier bedeuten 000 eine Achtelnote, 111 acht Achtelnoten. Längere Töne sind aus mehreren Bytes zusammenzusetzen. Das Bit 7 wird als Stop-Bit verwendet. Es kennzeichnet, wenn es gesetzt ist, ein Liedende. Folgen zwei Bytes mit gesetztem Stop-Bit aufeinander, ist das Ende der Liedertabelle erreicht.
Die Arbeitsweise der Klingel ist etwa folgende: Bei Betätigen des Klingelknopfes wird über das Speicher-Flip-Flop (D4.2) im Prozessor eine Programmunterbrechung erzwungen, welche diesen aus seinem Warteprogramm herausholt. Ein internes Register (IX) zeigt bereits auf den Anfang des nächsten Liedes. Bevor mit der Erzeugung der Töne begonnen wird, muß zunächst einmal die Anzahl dar Tonschwingungen für den nächsten auszugebenden Ton errechnet werden. Dafür enthält das Programm eine Tabelle, die für jeden der 15 möglichen Töne die Schwingungsanzahl für eine Achtelnote bereithält. Durch eine einfache Multiplikation mit der Anzahl der Achtelnoten steht nun die Zahl der auszugebenden Tonschwingungen fest.
Ein raffiniert ausgeklügeltes Programm übernimm nun die Ausgabe der Halbschwingungen über das Ausgabe-Flip-Flop (D4.1) in zeitlich richtigem Abstand. Nach Ausgabe aller Halbschwingungen wird der nächste Ton des Liedes ermittelt und ausgegeben, so lange, bis ein gesetztes Stop-Bit erreicht ist Wird dieses auch noch im folgenden Byte erkannt, erfolgt das Rücksetzen des Zeigeregisters auf den Anfang der Liedertabelle. Es schließt sich eine Zeitschleife an, die das sofortige Auslösen der Klingel am Liedende bei ungeduldigen Gästen verhindert. Nun wird das Speicher-Flip-Flop (D4.2) zurückgesetzt, und die Klingel ist zur Ausgabe des nächsten Liedes bereit.
Die Stromversorgung der Schaltung gestaltet sich bei Einsatz eines 2-Kbit-EPROMs (U 2716 C, K 565 RF 2, 2716) ausgesprochen einfach, da nur eine Betriebsspannung von +5 V erforderlich ist. Beim Einsatz kleinerer EPROMs müssen zusätzliche Spannungen bereitgestellt werden, so z. B. +12 V und -5 V beim U 555 D.
Für den Anschluß des Klingelknopfes wurden zwei Varianten entwickelt, damit sowohl einfache Kontakte als auch spannungsliefernde Klingelleitungen (Potentialtrennung vom Netz beachten!) verwendet werden können. Bild 3 zeigt das Hexlisting für die Klingel. Der Abgleich der Schaltung beschränkt sich auf das Einstellen der Prozessor-Taktfrequenz mittels R1 auf 2457,6 kHz. Nach Einschalten der Betriebsspannung und folgendem Power-On-Raset (RC-Kombination am RESET-Eingang des Prozessors) muß der HALT-Ausgang des Prozessors Low-Pegel führen. Andernfalls liegt ein Schaltungsfehler oder ein Bauelemente-Defekt vor. Zur Erleichterung des Nachbaus wurde eine Leiterplatte entworfen (Bild 4), deren Bestückung in Bild 5 gezeigt ist. Diese läßt sich noch um die Stromversorgung erweitern, wodurch man ein kompaktes Gerät erhält.
Bild 1: Stromlaufplan der Melodielklingel mit Mikroprozessorsteuerung
Bild 2: Darstellung des Aufbaus eines Ton-Bytes
Bild 3: Programmlisting für die Melodielklingel mit Mikroprozessorsteuerung1)
Bild 4: Leitungsführung der Leiterplatte für die Melodielklingel (Platinengröße 105 mm x 90 mm)
Bild 5: Bestückungsplan für die Leerplatte der Melodieklingel
Berichtigung FA 2/87, S. 97
„Eine Melodieklingel mit vielen Melodien“ in FUNKAMATEUR, Heft 4/1986, Seite 203 bis 205.
Bei der Leiterplatte ist Pin 7 von D4 mit der Masseleitung zu verbinden. Diese Korrektur wurde bei der von der Firma Kolbe ausgelieferten Leiterplatte bereits ausgeführt. Im Bestückungsplan (Bild 5) liegt zwischen dem Kollektor von VT1 und der Spannung +5 V statt der Drahtverbindung der Widerstand R6 (10 kOhm).
Nicht korrekt angegeben ist die Stromversorgung für den EPROM-Schaltkreis D3. Einfach ist der Anschluß des U 2716 D. Er erfordert nur die Spannung +5 V, so daß die Angaben -5/+12 V keine Bedeutung haben. Erforderlich ist nur die Drahtbrücke an Pin 24. Die Drahtbrücke an Pin 21 entfällt, da Pin 21 der Programmiereingang ist. Außerdem sind Pin 19 (D3) mit Pin 40 (D2) mit einer Drahtbrücke zu verbinden.
Beim Einsatz des EPROMs U 555 C entfällt die Drahtbrücke an Pin 19, da an Pin 19 +12 V angeschlossen sind. Auch die Drahtbrücke an Pin 21 entfällt, an Pin 21 wird -5 V angeschlossen. Die Spannung +5 V bleibt an Pin 24. Der Programmiereingang des U 555 C ist Pin 18. Zu beachten ist, daß beim U 555 C die Spannung -5 V immer vor den beiden anderen Spannungen anliegen muß.
Wer Probleme mit dem Anschwingen des Taktgenerators hat, dem sei empfohlen, vom Ausgang des Gatters D1.3 zur Verbindung von R1 und Cl einen Widerstand 1 kOhm zu schalten. Bei der ausgeführten Leiterplatte ist außerdem darauf zu achten, daß Pin 29 (D2) keine Verbindung zur Spannung +5 V hat.