01.12.2012 Aufrufe

FUNKAMATEUR – Bauelementeinformation SL (1)610C SL (1)

FUNKAMATEUR – Bauelementeinformation SL (1)610C SL (1)

FUNKAMATEUR – Bauelementeinformation SL (1)610C SL (1)

MEHR ANZEIGEN
WENIGER ANZEIGEN

Erfolgreiche ePaper selbst erstellen

Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.

Praktische Elektronik<br />

Sinusgeneratoren<br />

mit ML 2035 und ML 2036 (3)<br />

Dr.-Ing. KLAUS SANDER<br />

Im dritten und abschließenden Teil dieser Beitragsreihe werden Softwaremodule<br />

vorgestellt, die in eigene Lösungen integriert werden können. Es<br />

wird sowohl eine Möglichkeit zur Ansteuerung durch den zum Industriestandard<br />

gewordenen 8031/8051 beschrieben als auch eine über die<br />

Centronics-Schnittstelle des PC.<br />

Nach dem Aufbau des Generators nach<br />

Bild 8 können wir mit der praktischen Erprobung<br />

beginnen. Durch die Programmierbarkeit<br />

läuft aber ohne Software nichts.<br />

Am einfachsten ist sicher die Erprobung,<br />

wenn ein PC zur Verfügung steht. Der Anschluß<br />

erfolgt über das Centronics-Port. Es<br />

lassen sich dann natürlich nicht mehr die<br />

im PC installierten Druckertreiber verwenden.<br />

Das resultiert einfach daraus, daß wir<br />

nicht nur die serielle Datenausgabe durch<br />

Software realisieren müssen, vor allem jedoch<br />

ist der Ablauf der Steuersignale (SCK<br />

und LATI) nicht kompatibel zur standardisierten<br />

Reihenfolge für Drucker. Wir müssen<br />

also direkt auf die Hardware per Software<br />

zugreifen. Da wenigstens die Portadressen<br />

und die Bitbelegung standardisiert<br />

sind, sind jedoch keine Probleme zu befürchten.<br />

Dies wird sicher auch für künftige<br />

Computergenerationen gültig bleiben.<br />

Die Centronics-Ports LPT1 und LPT2 werden<br />

über die PC-I/O-Adressen 378H bzw.<br />

278H angesprochen. Dazu gehören die<br />

nächsten beiden jeweils um 1 erhöhten<br />

Folgeadressen, d. h., LPT1 wird über die<br />

Adressen 378H, 379H und 37AH angesprochen<br />

(LPT2: 278H, 279H und 27AH).<br />

Während unter Adresse 378H die Daten<br />

vom PC (normalerweise in Richtung Drukker)<br />

ausgegeben werden, ist unter Adresse<br />

379H ein Eingabeport für bestimmte<br />

Steuersignale (z. B. Busy, Papierende usw.)<br />

verfügbar.<br />

Über Adresse 37AH werden vom PC<br />

Steuersignale ausgegeben, die die Gültigkeit<br />

der ausgegebenen Daten anzeigen<br />

(Strobe), den automatischen Zeilenvorschub<br />

bewirken (Autofeed) usw. Diese<br />

Signale lassen sich auch für die Ansteuerung<br />

des ML 2036 nutzen.<br />

Wir verbinden dazu unsere Sinusgeneratorbaugruppe<br />

mit dem Centronics-Port wie<br />

folgt:<br />

SID Datenbit D0 (Pin 2)<br />

PD Datenbit 7 (Pin 9)<br />

SCK Strobe (Pin 1)<br />

LATI AUTOFEED (Pin 14)<br />

SID und PD werden damit über Adresse<br />

378H angesprochen, während die Takte<br />

SCK und LATI über Adresse 37AH ausgegeben<br />

werden.<br />

384 • FA 4/95<br />

Die in Listing 1 vorgestellte Software ist<br />

in dieser Form bereits nutzbar, soll aber<br />

vorrangig als Anregung für eigene Experimente<br />

dienen. Sie umfaßt nur die wichtigsten<br />

Unterprogramme zur Portadreßwahl,<br />

zur Realisierung der Schieberegisterfunktion<br />

(serielle Ausgabe) und zusätzlich, um<br />

erste Anwendungen zu ermöglichen, auch<br />

Unterprogramme zur Einstellung einer<br />

Frequenz bzw. zum Wobbeln der Frequenz.<br />

Die Software wurde mit dem Power-<br />

BASIC-Compiler geschrieben. Diese Programmiersprache<br />

ist ein komfortables<br />

Werkzeug und hat mit den früher bekannten<br />

und von „ernsthaften“ Programmierern<br />

meist belächelten BASIC-Interpretern<br />

außer der Bezeichnung der meisten Befehle<br />

nicht mehr viel zu tun. In Power<br />

BASIC sind die Entwicklungen anderer<br />

moderner Programmiersprachen berücksichtigt.<br />

Zudem kann mit den dazugehörigen<br />

PowerTools eine komfortable Bedieneroberfläche<br />

mit Windowtechnik<br />

realisiert werden. Von all diesen Möglichkeiten<br />

wurde aber hier kein Gebrauch<br />

gemacht. Der Grund ist sicher einleuchtend.<br />

Power BASIC ist keine Public-<br />

Domain-Software, sie muß gekauft werden.<br />

Um aber auch Nichtbesitzern die Verwendung<br />

in eigenen Programmen zu<br />

ermöglichen, wurde die hier vorgestellte<br />

Software recht einfach gehalten. Sie dürfte<br />

auch mit veralteten BASIC-Dialekten lauffähig<br />

sein oder läßt sich zumindest leicht<br />

anpassen. Aus diesem Grund ist in Listing 1<br />

auch viel Kommentar enthalten. Etwas<br />

BASIC-Verständnis muß man aber schon<br />

mitbringen. Zusätzlich bietet der Verzicht<br />

auf Unterprogramme in Maschinenkode<br />

eine einfache Möglichkeit, die Software<br />

auch auf anderen Computern zu implementieren.<br />

Das Unterprogramm zur Portauswahl bedarf<br />

sicher keiner Erläuterung. Je nach<br />

gewünschter Portadresse (erste Adresse)<br />

kann zwischen LPT1 und LPT2 gewählt<br />

werden. Im Unterprogramm SCHIEBE-<br />

REGISTER wird die eigentliche serielle<br />

Übertragung realisiert. Der Schieberegisterwert<br />

wird durch Multiplikation der<br />

gewünschten Frequenz mit 2 ermittelt.<br />

Der Faktor 2 ergibt sich durch Division<br />

der im ML2036 integrierten Teiler durch<br />

die verwendete Taktfrequenz (siehe Teil 1<br />

dieses Beitrags, <strong>FUNKAMATEUR</strong> 2/95).<br />

Es erfolgt die Ausgabe des ersten Bit (es<br />

steht auf Position D0) mit anschließender<br />

Taktung von SCK durch Bitwechsel von<br />

Strobe.<br />

Im folgenden Programmteil wird ein<br />

Schieberegister durch den Befehl SHIFT<br />

RIGHT (wir müssen in Richtung des<br />

niederwertigen Bits schieben) realisiert.<br />

Das passiert 15 mal jeweils mit Taktung<br />

von SCK. Damit sind insgesamt 16 Bit<br />

ausgegeben und wir können den Latchtakt<br />

LATI erzeugen. Der auszugebende Wert<br />

ist mit SCK = 1 verknüpft, damit während<br />

des LATI-Taktes der Pegel von SCK stabil<br />

bleibt. Es muß sicher nicht explizit erwähnt<br />

werden, daß wegen der binären<br />

Ausgaben nur mit INTEGER-Variablen<br />

gearbeitet werden darf.<br />

Im eigentlichen Hauptprogramm, welches<br />

hier nur als Beispiel dient, ist eine Auswahl<br />

zwischen Ausgabe einer einzelnen<br />

(Dauer-)Frequenz und Wobbeln durch die<br />

CASE-Anweisung möglich.<br />

Bei der Ausgabe einer einzelnen Frequenz<br />

wird der Frequenzwert eingegeben und<br />

anschließend das Schieberegister-Unterprogramm<br />

aufgerufen.<br />

Die Wobbelfunktion ist einfach erklärt.<br />

Die Frequenz wird in bestimmten Zeitabständen<br />

um 0,5 Hz erhöht. Der Zeitabstand<br />

ist in ganzen Sekunden einzugeben.<br />

Sicher läßt sich dieser Abstand verkürzen,<br />

um ein schnelleres Durchlaufen des Frequenzbereiches<br />

zu ermöglichen. Das erfordert<br />

jedoch die Nutzung von Programmteilen<br />

in Maschinenkode. Zudem muß das<br />

Schieberegister ebenfalls als Maschinenkode<br />

implementiert werden. Dabei sind<br />

eine Reihe von Zeitbedingungen, wie SCK-<br />

Taktbreite, Dauer der aktuell eingestellten<br />

Sinusperiode usw. zu berücksichtigen.<br />

Darauf wurde hier aber zugunsten der<br />

Maschinenunabhängigkeit verzichtet. Übrigens<br />

wurde das Programm nach Listing 1<br />

auf einem 486iger DX2 mit 50 MHz getestet.<br />

Listing 2 bietet einen Ansatz für die Nutzung<br />

eines Mikrocontrollers zur Ansteuerung<br />

des ML 2036. Es wurden der 8031/51<br />

bzw. dazu kompatible Typen verwendet.<br />

Diese haben sich als Industriestandard<br />

durchgesetzt und dürften sich auch in vielen<br />

Amateurgeräten ihren Platz gesichert<br />

haben.<br />

Port 0 und Port 2 werden beim 8031 für<br />

den externen Programmspeicher benötigt.<br />

Die serielle Schnittstelle läßt sich zwar im<br />

MODUS 3 direkt als Schieberegister betreiben,<br />

auf eine solche Lösung wurde hier<br />

verzichtet. Sie bleibt anderen Anwendun-

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!