190kHz Signalplotter und Signalgenerator
Hier ein sehr einfacher vier Kanal Signalplotter mit einer Samplerate
von 190kHz. Als Hardware wird nicht mehr benötigt als ein ATMEGA8
mit einer seriellen Schnittstelle zum PC. Allerdings muss die PC
Schnittstelle eine Datenübertragungsrate von 230,4kBaud
unterstützen. Für den AVR wird darüber hinaus ein
für genaue Baudraten ausgelegter Quarz benötigt (z.B. 14,7456MHz).
Ein andere Controller als ein ATMEGA8 wäre auch möglich,
sofern mindestens 1KB RAM zur Verfügung steht. Aufgrund der
einfachen Hardware lässt
sich der Signalplotter auch schnell und problemlos auf einem Steckbrett
aufbauen. Verwenden lässt sich der Signalplotter beispielsweise
zusammen mit einem Infrarot Empfänger (TSOP1738) zur Analyse von
Signalen von Infrarot Fernbedienungen. Da die Hardware quasi schon
vorhanden war, wurde das Programm um einen vier Kanal Oszilloskop Modus
mit 3k/s Sample Rate pro Kanal, einem vier Kanal Voltmeter und mit
Hilfe eines R2R Netzwerks um einen Signalgenerator erweitert.
Digital Signalplotter Modus
Es werden parallel vier Kanäle mit einer Sampleraten von rund 190kS/s
digital erfasst. Die Eingänge können mit einem Trigger belegt
werden. Anstelle des vierten Kanals kann auch eine beliebige logische
Verknüpfung der ersten drei dargestellt werden. Somit lassen sich
beispielsweise Unterschiede zwischen zwei Signalleitungen darstellen.
Trotz der verhältnismäßig niedrigen Samplerate und für eine serielle Schnittstelle hohe Datenrate, reicht diese nicht aus um kontinuierlich 190000 Messungen pro Sekunde zu übertragen. Um eine derartige Samplerate dennoch zu ermöglichen, werden bis zu 15 Messungen in ein Byte zusammengefasst, sofern die Eingangspegel bei allen 15 Messungen die selben waren. Daraus wiederum folgert dass bei häufigen Pegelwechseln eine größere Datenmenge anfällt. Diese wird im AVR in einem FIFO gespeichert, der sich wieder leert sobald weniger Pegelwechsel erfolgen. Bei anhaltend häufigen Pegelwechsel gehen somit aber unvermeidlich Messungen verloren. Das genaue zum PC gesendete Datenformat ist in dem Quelltextpaket beschrieben.
Trotz der verhältnismäßig niedrigen Samplerate und für eine serielle Schnittstelle hohe Datenrate, reicht diese nicht aus um kontinuierlich 190000 Messungen pro Sekunde zu übertragen. Um eine derartige Samplerate dennoch zu ermöglichen, werden bis zu 15 Messungen in ein Byte zusammengefasst, sofern die Eingangspegel bei allen 15 Messungen die selben waren. Daraus wiederum folgert dass bei häufigen Pegelwechseln eine größere Datenmenge anfällt. Diese wird im AVR in einem FIFO gespeichert, der sich wieder leert sobald weniger Pegelwechsel erfolgen. Bei anhaltend häufigen Pegelwechsel gehen somit aber unvermeidlich Messungen verloren. Das genaue zum PC gesendete Datenformat ist in dem Quelltextpaket beschrieben.
Analog Signalplotter Modus
Im Unterschied zum vorherigen Modus werden hier die Eingänge mit
dem internen A/D Wandler erfasst. Somit geschieht die Abfrage der
einzelnen Kanäle nacheinander. Die Samplerate ist recht niedrig.
Zum PC werden 7 Bit A/D Werte übertragen, auf eine Zusammenfassung
der Werte wie oben wurde verzichtet. Logische Funktionen lassen sich
nicht einstellen, dafür aber eine Triggerschwelle. 3kS/s sind
relativ wenig, um aber beispielsweise eine klassische Blinkschaltung
(Astabile Kippstufe) zu untersuchen reicht dies aus.
Voltmeter Modus
Die vier Eingänge werden mit dem 10 Bit A/D Wandler mehrfach
ausgelesen (oversampling) und ein 12Bit Mittelwert zum PC übertragen, dort wird
der Wert in Volt umgerechnet und angezeigt. Damit die angezeigte
Spannung korrekt ist, muss die Schaltung möglichst genau mit 5V
betrieben werden.
Signal Generator Modus
Am PC lässt sich eine beliebige Spannungskurvenform aus 256 Werten
mit der Maus einstellen. Diese wird zum AVR übertragen. Dort
werden die 256 Werte mit einer einstellbaren Zeit von 0,243ms bis 4551
ms
(0,949µs bis 17,8ms pro Einzelwert) ausgegeben. Ein R2R Netzwerk
als D/A Wandler erzeugt daraus eine analoge Spannung. Da die mit einem
R2R Netzwerk erzeugte Spannung lastabhängig ist, wird an den
Ausgang ein OP als Spannungsfolger betrieben. So lassen sich auch
kleine Verbraucher wie LEDs gut anschließen. Mit einem ATMEGA8
ist der D/A Wandler auf 6 Bit begrenzt. Mit einem AVR, der alle 8 Pins
von PORTB herausführt hat, wäre mit kleinen
Softwareänderungen auch ein 8 Bit D/A Wandler möglich.
Das PC Programm
Derzeit gibt es von dem PC Programm nur eine Version für Linux.
Das PC Programm verwendet die Grafikbibliothek GLUT. Diese ist für
Linux und Windows verfügbar. Eine Portierung für Windows
dürfte daher relativ einfach sein.
Bilder
Software und Schaltplan
Wie immer, Verwendung auf eigenes Risiko und ohne Gewähr.
Die Software Version 1.1 besitzt nur den digitalen Plot Modus und diesen mit weniger Funktionen als Version 2.1, dafür wird kein Rückkanal vom PC zum AVR benötigt.
Die Software Version 1.1 besitzt nur den digitalen Plot Modus und diesen mit weniger Funktionen als Version 2.1, dafür wird kein Rückkanal vom PC zum AVR benötigt.
signal-plot-v2_10.zip | Version 2.1 der PC und AVR Software (GPL) |
signal-plot-v2_10-schaltplan.png | Schaltplan Version 2.1 - passend zu Software Versionen 1.1, 2.0 und 2.1 |
signal-plot-v1_10.zip | Version 1.1 der PC und AVR Software (GPL) |
signal-plot-v1-schaltplan.png | Schaltplan Version 1.0 - passend zur Software Version 1.1 |
Verbesserungsvorschläge
- Direkt einen USB<->RS232 Wandler auf der Platine verwenden. Dann würden höhere Übertragungsraten problemloser funktionieren und die Schaltung könnte sich per USB mit Strom versorgen und bräuchte keinen Akku mehr.
- Mehr Platz für die Kondensatoren auf der geätzten Platine