Da die PC-Software für den FY6900 ziemlich buggy ist, hatte ich schon
vor längerem ein paar Zeilen Python zusammengehackt, um wenigstens
vernünftig selbstdefinierte Signalformen hochladen zu können. Da Falk
gerade einen Artikel zum FY6900 verfasst und ins Wiki gestellt hat,
habe ich dies zum Anlass genommen, mein Progrämmchen etwas universeller
zu gestalten und ein paar Fehlerprüfungen einzubauen (wfupload.py).
Das Kommando
1
wfupload.py -h
zeigt alle wesentlichen Informationen zur Benutzung an:
1
usage: wfupload.py [-h] [-p PORT] [-w NUM] FILE
2
3
Upload an arbitrary waveform to FY6900
4
5
positional arguments:
6
FILE data file with 8192 integer values in the range 0..16383,
7
separated by whitespace
8
9
optional arguments:
10
-h, --help show this help message and exit
11
-p PORT serial port, defaults to '/dev/ttyUSB0'
12
-w NUM waveform number (1..64), defaults to 1
Eine Beispieldatei (sqrlp.dat) zum Ausprobieren habe ich ebenfalls
angehängt. Sie enthält die Signalform, die entsteht, wenn man ein
Rechtecksignal durch einen Tiefpass 1. Ordnung schickt.
Nach dem Hochladen mit dem Kommando
1
wfupload.py -w 13 sqrlp.dat
kann die Signalform auf dem FY6900 als "ARB13" ausgewählt werden.
Vermutlich funktioniert das Programm auch für das Vorgängermodell
FY6800.
Windows-Nutzer müssen dem Kommando evtl. noch ein "python" voranstellen.
Außerdem bietet es sich für sie an, den Default für den seriellen Port
in Zeile 11 des Programms in 'COM1' oder dergleichen zu ändern.
https://www.mikrocontroller.net/articles/FY6900
Interessanter Artikel. Ich habe den FY6800, aber ich kann auf die
schnelle den Unterschied nicht heraus finden.
Ich meine, dass der FY6800 eine ziemlich schlechte Rauschsignalerzeugung
hat, weil die ein periodisches Rauschsignal erzeugt und damit für
Frequenzanalysen ungeeignet ist.
Am besten ist es, wenn man die Waveform mit '-w 64' auf die
Waveform-Nummer auf 64 legt, weil man dann mit dem Auswahlrad für die
Waveform mit einmal zurückdrehen gleich zur Wellenform gelangt.
Praktischer wäre es vielleicht noch, wenn das Python-Script gleich auf
die übertragene Wellenform umschalten würde.
chris_ schrieb:> Am besten ist es, wenn man die Waveform mit '-w 64' auf die> Waveform-Nummer auf 64 legt, weil man dann mit dem Auswahlrad für die> Waveform mit einmal zurückdrehen gleich zur Wellenform gelangt.
Im Waveform-Einstellmodus schaltet die OK-Taste zwischen SINE und ARB1
hin und her, so dass auch die Waveform 1 schnell erreichbar ist.
> Praktischer wäre es vielleicht noch, wenn das Python-Script gleich auf> die übertragene Wellenform umschalten würde.
Ich habe das Programm mal entsprechend erweitert. Mit der Option -c kann
angegeben werden, welcher Kanal auf die mit -w festgelegte Signalform
umgeschaltet wird. Der Dateiname kann jetzt auch weggelassen werden,
wenn nur die Signalform umgeschaltet werden soll. Weil der Upload damit
optional ist, habe ich das Programm in arbwf.py umbenannt.
chris_ schrieb:> Ich meine, dass der FY6800 eine ziemlich schlechte Rauschsignalerzeugung> hat, weil die ein periodisches Rauschsignal erzeugt und damit für> Frequenzanalysen ungeeignet ist.
Das kommt auf die Periodendauer an.
>Im Waveform-Einstellmodus schaltet die OK-Taste zwischen SINE und ARB1>hin und her, so dass auch die Waveform 1 schnell erreichbar ist.
Danke für den sehr nützlichen Tipp und die Erweiterung.
Könnte man den Frequenzzähler auch mit Python auslesen?
chris_ schrieb:> Könnte man den Frequenzzähler auch mit Python auslesen?
Ja, natürlich. Alles, was die PC-Software von FeelTech kann, kann man
auch in Python implementieren. Der PC-Software liegt die Datei "FY6900
Serial communication protocol.pdf" bei, die das Kommunikationsprotokoll
fast vollständig dokumentiert. Nur das Protokoll zum Hochladen von
Signalformen scheint vergessen worden zu sein. Solche Dinge kann man
aber selber herausfinden, indem man die entsprechende Funktion der
Originalsoftware benutzt und dabei die serielle Kommunikation abhört.
Die Datei ist einfach eine Liste von 8192 Zahlen im Bereich 0..16383 im
Textformat. Die konkreten Werte habe ich anhand der einschlägigen
Formeln für den Lade- und Entladevorgang eines Kondensators über einen
Widerstand mit einem kleinen Python-Programm berechnen lassen (s.
Anhang).
Hallo Yalu, Danke für die Info.
Ich habe mir von Siglent das EASYWAVE installiert. Dort habe ich
erfolgreich mit Sample Rate 8192 Kurven als SendWave csv Datei
abgespeichert, die erste Zeile der erzeugten Datei mit Inhalt Amplitude
gelöscht und das File in *.fy umbenannt.
Laden kann ich dann diese Datei in der DDS Signal PC Software ohne
Fehler. Jetzt würd ich halt noch gern das ganze in den FY6900 bringen.
Das ist mir jedoch noch nicht gelungen :-(
Jetzt ist es mir doch noch gelungen die neu erstellte Kurvenform ins
FY6900 zu importieren.
1. Nach Starten der DDS Signal PC Software auf TAB "Waveform Window"
wechseln. 2. Dann Button <Add Waveform> drücken.
3. Ganz links erscheint die "Superposition List"; Unter Position 17 und
18 sieht man Custom; Daneben den Button <Add" drücken; Jetzt kann das
vorher erstellte *.fy File mit Button <Öffnen> geöffnet werden. Dann auf
Button <Loading waveform> drücken. Man kommt zurück ins "Waveform
Window". Hier die "Loading Area auf den gewünschten Wert ändern(z.B.
64)- Dann Button <Send Data> drücken. Der Ladebalken nimmt zu und als
Erfolgsmeldung erscheint "Data is written to the completion of" Im
FY6900 ist unter z.B. 64 die neue Waveform gespeichert.
Viel Spass damit
Hallo zusammen,
kennt jemand von euch eine Seite mit gespeicherten Waveformen im csv
Format zum runterladen?
Ganz besonders würde mich ein csv-File für den PAL Burst interessieren.
Vielen Dank
Octave ist durchaus benutzbar. Für so einfache Themen reicht das
vollauf. Erst wenn du die Toolboxes oder Simulink brauchst, musst du auf
Matlab umsteigen.