|
Für eine Modulation müssen allerdings die Werte für Phasenverschiebung und Amplitude ständig geändert werden (entsprechend dem Verlauf des Modulationssignals). Damit setzt die Geschwindigkeit des Interfaces zwischen steuernder Einheit (z.B. PC oder PIC) und AD7008 der erreichbaren Modulationsfrequenz eine Grenze. Das schnelle (bis zu 32-Bit breite) Parallelinterface kam für mich nicht in Frage, da ich einen PIC zur Ansteuerung benutzen wollte, und es dem an ausreichenden I/O-Pins mangelt. Das serielle Interface ist leider deutlich langsamer. Deshalb kann ich meine Lösung auch nicht als Funktionsgenerator bezeichnen. Es ist ein Sinusgenerator mit programmierbarer Frequenz und Amplitude.
Trotzdem ist eine Modulation bis zu etwa 14 kHz-Samplefrequenz theoretisch möglich . Überlegenswert wäre für die Zukunft der Anschluss des seriellen AD7008-Interfaces an MSSP des 16F876 oder den synchronen USART des 16F628. Letzterer erfordert zwar zusätzliche Inverter in den seriellen Leitungen, aber beide seriellen PIC-Interfaces schiebt mit bis zu 5000 kBaud die 32-Datenbits in weniger als 10 µs in den AD7008. Das ergäbe eine Modulation mit einer Samplerate von 100 kHz. Das reicht um z.B. die 10,7 MHz-ZF eines FM-Radios mit kompletter Stereo-Modulation zu erzeugen
Nachbau?
Der Chiphersteller Analog Devices gibt den Preis des AD7008 mit
ca.
23 $ an. Das sind garantiert nicht die Endabnehmerpreise. Als ich
1997
das erste Mal mit dem Chip in Kontakt kam, war 90 DM (also 45 €)
im
Gespräch. Außerdem kenne ich immer noch keinen Lieferanten.
Wer auf die Möglichkeit der
Amplitudenregelung/Amplitudenmodulation
und der I/Q-Modulation verzichten kann ist wahrscheinlich
mit dem
AD9835
für
7 $ besser bedient. Dieser Chip basiert auf dem gleichen Prinzip
wie
der
AD7008, hat aber kein paralleles Interface (was sich mit einem PIC
sowieso
nicht nutzen lässt) sowie keine I/Q-Multiplikatoren zur
Amplitudenregelung
in Sin und Cos. Die Frequenzerzeugung (und sogar die
Phasenmodulation)
entsprechen aber dem AD7008.
Ist FREQ0 auf den Wert 1 eingestellt, sind für einen
Zyklus
232 = 4.294.967.296 (also rund 4,3 Milliarden)
Additionen
nötig.
Bei einem Takt von 50 MHz dauert das 85,9 Sekunden. Die erzeugte
Frequenz
ist 0,01164 Hz.
Die höchste nutzbare Frequenz ist die Hälfte des 50 MHz
Taktes
(also 25 MHz) und ergibt sich bei einem FREQ0-Wert von
2.147.483.648.
Zwischen diesen beiden Extremen lassen sich über 2 Milliarden
fein abgestufte Frequenzen einstellen. Der Abstand zwischen zwei
Nachbarfrequenzen
beträgt bei 1 kHz etwa 0,01 Hz - also 0,001% . Die Abstufung wird
mit steigender Frequenz immer feiner.
Die oberen 12 Bit des 32-Bit Sägezahns werden einer sin/cos look-up-Table zugeführt. Die aus der Tabelle kommenden 10-Bit sin- und cos-Werte werden durch Multiplikatoren geleitet, durch die ihre Amplitude eingestellt wird. Die in der Amplitude modifizierten sin- und cos-Werte werden addiert, und die Summe von einem 10 Bit DAC in eine analoge Spannung gewandelt.
Um den AD7008 anzusteuern, wird ein 2-zeiliges-LCD-Display
und eine
kleine Tastatur verwendet. Beides wird an Port B eines
16F628
angeschlossen.
Am Port A hängt die AD7008-Platine. Die Schaltung zum
Anschluss
von Display und Tastatur ist mit dem Lehrbeispiel 'Tastatur&LCD-Display'
identisch,
es
werden
aber
nur
5
Tasten
benötigt. Hinweis: Fehler im nebenstehenden Schaltplan: R4 muss nicht am Pin 13 sondern am Pin 10 angeschlossen werden. |
Der PIC16F628 sowie die Stromversorgung befinden sich
auf einer
Platine (Bus628), an die
die
Generatorplatine
sowie LCD/Tastatur angesteckt wurden.
Eingebaut wurde alles in ein Plastik-Gehäuse. (Im Foto
noch ohne Filter und Verstärker.) |
Besser wäre aber der Einsatz eines TCXO, der deutlich frequenzstabiler ist. Professionelle Generatoren haben einen Eingang für ein externes 10-MHz-Referenzsignal, auf das sie sich mit einer PLL einrasten. Beides ermöglicht eine kleine Zusatzplatine. Diese wird an der Geräterückseite so eingebaut, das ihre BNC-Buchse in der Rückwand festgeschraubt werden kann. Das Signal des 10-MHz-TCXO wird verfünffacht, und diese 50 MHz werden von der SMA-Buchse aus dem Pin 30 des AD7008 zugeführt. Den 50 MHz Quarzgenerator muss man entfernen. Wird an der BNC-Buchse ein externes 10 MHz Referenzsignal eingespeist, dann wird automatisch dieses verwendet. Damit lässt sich eine deutlich genauere Frequenzerzeugung erreichen. |
Der Nutzer wird bei der Bedienung vielleicht dadurch irritiert, dass z.B. eine Erhöhung der Frequenz um 10 kHz, vom Generator nicht genau befolgt wird. Die Frequenz wird vielmehr um etwas weniger als 10kHz erhöht. Ähnlich verhält es sich mit allen Einstellschrittweiten von 0,01Hz bis 10 MHz. Das resultiert daraus, dass der AD7008 die Frequenzen nicht in 0,01Hz-Schritten verändern kann, sondern in 0,01164 Hz-Schritten. Ein Sprung um exakt 10 kHz ist deshalb nicht möglich. Das Display zeigt keine Wunschfrequenzen an, sondern die Frequenz, die auch wirklich erzeugt wird. Auf jeden Fall, kann man sich der gewünschten Frequenz aber immer bis auf einen prinzipiellen Fehler von 0,00582 Hz annähern. (mal abgesehen vom zusätzlichen Frequenzfehler, der durch den Quarzoszillator bedingt wird)
Die Hardware ist aufgebaut und funktioniert.
Nebenstehendes
Foto der Generatorplatine zeigt eine Urversion mit
abweichender
Steckerbelegung. Das
Grundgerüst für das komplette Gerät ist ein Bus628.
Generator, Filter und Verstärker funktionieren. Eine Steuerung über RS-232 ist vorbereitet, aber die Nutzung in der Software noch nicht vorgesehen. |
||
Nachdem die Schaltung zuerst für die Ansteuerung mit 7
PIC-I/O-Pins
ausgelegt war, benötige ich z.Z. nur noch 5 I/O-Pins.
Deshalb
könnte
die Platine nun auch am PortA eines 16F84 betrieben
werden. Die Software wird aber weiter für den 16F628 ausgelegt, und wird auf 16F84-Grenzen keine Rücksicht nehmen. Insbesondere die teilweise nötige 64-Bit Routinen benötigen recht viele Register, mit denen der 16F84 nicht gerade üppig bestückt ist. |
Die Software (auf 16F628) ermöglicht die
Frequenzeinstellung
von 0 Hz bis 25 MHz auf 0,02 Hz genau! (10 stellig) Die Frequenzanzeige erfolgt auf einem LCD-Display. Die Bedienung über 5 Tasten ist intuitiv. |
|
Die Ausgangsamplitude ist in 64 Schritten
zwischen 0V und
1,1 V p-p einstellbar. Unterhalb von 2 Hz und über 7 MHz
bricht
sie
etwas zusammen. Die Spannungsangabe bezieht sich auf das
Signal vor dem
Filter (an JP2). Hinter dem Verstärker beträgt die Spannung
bei voll aufgedrehtem Potentiometer etwa 4V p-p. |
|
Drei Frequenz-Amplituden-Einstellungen können abgespeichert und jederzeit wieder abgerufen werden. Beim Einschalten wird automatisch die zuletzt gespeicherte Frequenz und Amplitude eingestellt. |