Forum: Projekte & Code Programm zum Hochladen von Signalformen auf den FY6900


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
von Yalu X. (yalu) (Moderator)


Angehängte Dateien:

Lesenswert?

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.

von chris_ (Gast)


Lesenswert?

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.

von chris_ (Gast)


Lesenswert?

Gerade ausprobiert: Es funktioniert mit einem FY6800. Danke :-)
1
python wfupload.py -p /dev/ttyUSB1 -w 64 sqrlp.dat 
2
sending data ...
3
finished

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.

von Yalu X. (yalu) (Moderator)


Angehängte Dateien:

Lesenswert?

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.

1
usage: arbwf.py [-h] [-p PORT] [-w NUM] [-c 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 (if omitted, no data is uploaded)
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
13
  -c NUM      channel to be switched to the waveform (3 for both, 0 for none),
14
              defaults to 0

von Wolfgang (Gast)


Lesenswert?

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.

von chris_ (Gast)


Lesenswert?

>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?

von Yalu X. (yalu) (Moderator)


Lesenswert?

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.

von Boris Barawitzka (Gast)


Lesenswert?

Hallo Yalu,
mit welchen Programm hast Du das sqrlp.dat File erstellt/konvertiert, um 
es mittels arbwf.py auf den FY6900 laden zu können?

von Yalu X. (yalu) (Moderator)


Angehängte Dateien:

Lesenswert?

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).

von Boris Barawitzka (Gast)


Lesenswert?

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 :-(

von Boris Barawitzka (Gast)


Lesenswert?

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

von Michael S. (dg7mdu)


Lesenswert?

Ich war leider nicht angemeldet als ich den Text übers Hochladen von 
Kurvenformen erstellte.
Bei Bedarf bei mir melden.

Beitrag #6625868 wurde von einem Moderator gelöscht.
von Michael S. (dg7mdu)


Lesenswert?

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

Beitrag #6629839 wurde von einem Moderator gelöscht.
von Max G. (l0wside) Benutzerseite


Lesenswert?

Michael S. schrieb:
> Ganz besonders würde mich ein csv-File für den PAL Burst interessieren.

Mit ein bisschen Handarbeit und Octave müsste das hier helfen: 
https://sites.google.com/site/pulsepalwiki/using-pulse-pal/functions/programpulsepalparam

von Michael S. (dg7mdu)


Lesenswert?

Danke Max,
muss mich mal damit auseinander setzen.
Hoffe das Matlab privat lizenzfrei ist.
Gruß Michael

von Max G. (l0wside) Benutzerseite


Lesenswert?

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.

von Michael S. (dg7mdu)


Lesenswert?

Hallo Max,
das Beispiel verweist auf eine Hardware die Pulse Pal heißt.
siehe https://sanworks.io/shop/viewproduct?productID=1102
Muss mal schaun was Octave so Funktionen mit bringt.
V.G. Michael

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.