Funktionsgenerator mit EPROM-Tabelle

vonMeinrad Götz
 aus ELO 2009
Elektronik-Labor  Labortagebuch  ELO  


Funktionsgeneratoren auf der Basis von OPs findet man in vielfältiger Ausführung. Hierbei handelt es sich um Schaltungen, die zum Bereich der Analogelektronik gehören. Auf der Basis eines EPROMs oder eines Mikrocontrollers lässt sich ein Funktionsgenerator auch recht einfach aufbauen. Dabei begegnen uns Schaltungskomponenten aus dem Bereich der Digital- und Analogtechnik. Im Gegensatz zur analogen Lösung, wo z.B. die Sinusfunktion kontinuierlich erzeugt wird, ist bei diesem Lösungsansatz die Signalfunktion als digitaler Wert in einem Speicher hinterlegt. Der Speicherinhalt wird zyklisch ausgelesen und über einen Digital - Analogwandler in einen Analogwert umgesetzt.




Wie funktioniert dies im Einzelnen:
Der gewünschte Signalverlauf wird zunächst in mehrere Abtastwerte unterteilt. Für eine Sinusfunktion gilt die Funktionsgleichung y = sin (x), wobei x der Winkel im Bogenmaß zwischen 0 und 2*Pi ist. Wenn wir nun eine Sinusperiode in 16 Werte unterteilen, dann gilt:
y = sin (2 * Pi * n/16), wobei n die Abtastwerte zwischen 0 und 15 sind. Einen Funktionsgenerator realisieren wir nun in der Form, dass wir 16 Speicherzellen in aufsteigender Reihenfolge mit den Abtastwerten belegen und diese Speicherzellen zyklisch über einen Zähler ansprechen. Den Speicherinhalt geben wir über einen Digital-Analog-Wandler in Form eines R2R Netzwerkes aus und erhalten somit die gewünschte Funktion. Ein nachgeschaltetes RC-Glied glättet die 16 (oder mehr) Stufen zu einem kontinuierlichen Signalverlauf. 




 Über einen einfachen Rechteckgenerator wird ein 4-Bit Zähler angesteuert, welcher über die Adressleitungen A0 bis A3 16 aufeinanderfolgende Speicherzellen adressiert. Über die 4 Mikroschalter an den Adressleitungen A4 bis A7 können 16 unterschiedliche Blöcke zu jeweils 16 Speicherzellen angesprochen werden. In jeden Speicherblock kann eine andere Kurvenform hinterlegt sein. Tabelle 1 gibt an, welche Speicherzellen durch den 4 Bit Zähler in Abhängigkeit von den Mikroschaltern angesprochen werden. Da es sich bei den eingesetzten EPROMs um 8 Bit Speicher handelt, bedeutet dies, dass sich in jeder Speicherzelle ein Wert zwischen 0 und 255 hinterlegen läßt. Dazu müssen wir unsere Sinusfunktion, welche ja Werte zwischen –1 und +1 liefert, in diesen Bereich verschieben.


Tabelle 2 gibt dazu die Werte für die 16 Abtastwerte an. Ebenso sind die Werte für eine Dreiecks- und Sägezahnfunktion aufgeführt. Unser Funktionsgenerator funktioniert letztendlich in der Form, dass wir eine Periode der gewünschten Funktion als 16 Werte im Speicher abgelegt haben und die Werte kontinuierlich auslesen. Dies bedeutet aber auch, dass die Frequenz unseres Taktgebers 16 mal höher als die gewünschte Ausgangsfrequenz sein muß. Für 10kHz muss unser Rechteckgenerator also auf 160 kHz eingestellt sein.


Tabelle 3 gibt einige Dimensionierungshinweise für den Rechteckgenerator und die dabei erzielbaren Frequenzen. Ergänzend möchte ich noch feststellen, dass EPROMs wie hier eines verwendet wird heute nur noch selten eingesetzt werden. Möglicherweise schlummert daher das eine oder andere EPROM in mancher Bastelkiste und wartet auf eine neue Aufgabe. Wie ein EPROM programmiert werden kann, wurde in einem anderen Beitrag auf der ELO ja schon veröffentlicht. Es ist aber natürlich auch möglich statt des EPROMs ein Mikrocontroller zu verwenden und die Funktionswerte über einen Port (8 Bit) an den AD-Wandler zu liefern.