harmonics w/ sin inputs
authorDan White <dan@whiteaudio.com>
Mon, 8 Apr 2013 19:03:31 +0000 (14:03 -0500)
committerDan White <dan@whiteaudio.com>
Mon, 8 Apr 2013 19:03:31 +0000 (14:03 -0500)
46 files changed:
python-lib/arb0-2013-04-08_130324_5.0-005-005.npz [deleted file]
python-lib/arb0-2013-04-08_130324_5.0-005-005.pdf [deleted file]
python-lib/arb0-2013-04-08_130324_5.0-005-005.yaml [deleted file]
python-lib/sine-int.py
python-lib/test-data/chip14/arb0/harmonic-sin-phase/arb0-2013-04-08_130324_5.0-005-005.npz [new file with mode: 0644]
python-lib/test-data/chip14/arb0/harmonic-sin-phase/arb0-2013-04-08_130324_5.0-005-005.pdf [new file with mode: 0644]
python-lib/test-data/chip14/arb0/harmonic-sin-phase/arb0-2013-04-08_130324_5.0-005-005.yaml [new file with mode: 0644]
python-lib/test-data/chip14/arb0/harmonic-sin-phase/arb0-2013-04-08_133334_5.0-010-010.npz [new file with mode: 0644]
python-lib/test-data/chip14/arb0/harmonic-sin-phase/arb0-2013-04-08_133334_5.0-010-010.pdf [new file with mode: 0644]
python-lib/test-data/chip14/arb0/harmonic-sin-phase/arb0-2013-04-08_133334_5.0-010-010.yaml [new file with mode: 0644]
python-lib/test-data/chip14/arb0/harmonic-sin-phase/arb0-2013-04-08_133500_5.0-005-015.npz [new file with mode: 0644]
python-lib/test-data/chip14/arb0/harmonic-sin-phase/arb0-2013-04-08_133500_5.0-005-015.pdf [new file with mode: 0644]
python-lib/test-data/chip14/arb0/harmonic-sin-phase/arb0-2013-04-08_133500_5.0-005-015.yaml [new file with mode: 0644]
python-lib/test-data/chip14/arb0/harmonic-sin-phase/arb0-2013-04-08_134053_5.0-005-010.npz [new file with mode: 0644]
python-lib/test-data/chip14/arb0/harmonic-sin-phase/arb0-2013-04-08_134053_5.0-005-010.pdf [new file with mode: 0644]
python-lib/test-data/chip14/arb0/harmonic-sin-phase/arb0-2013-04-08_134053_5.0-005-010.yaml [new file with mode: 0644]
python-lib/test-data/chip14/arb0/harmonic-sin-phase/arb0-2013-04-08_134159_5.0-005-020.npz [new file with mode: 0644]
python-lib/test-data/chip14/arb0/harmonic-sin-phase/arb0-2013-04-08_134159_5.0-005-020.pdf [new file with mode: 0644]
python-lib/test-data/chip14/arb0/harmonic-sin-phase/arb0-2013-04-08_134159_5.0-005-020.yaml [new file with mode: 0644]
python-lib/test-data/chip14/arb0/harmonic-sin-phase/arb0-2013-04-08_134302_5.0-005-025.npz [new file with mode: 0644]
python-lib/test-data/chip14/arb0/harmonic-sin-phase/arb0-2013-04-08_134302_5.0-005-025.pdf [new file with mode: 0644]
python-lib/test-data/chip14/arb0/harmonic-sin-phase/arb0-2013-04-08_134302_5.0-005-025.yaml [new file with mode: 0644]
python-lib/test-data/chip14/arb0/harmonic-sin-phase/arb0-2013-04-08_134411_5.0-005-030.npz [new file with mode: 0644]
python-lib/test-data/chip14/arb0/harmonic-sin-phase/arb0-2013-04-08_134411_5.0-005-030.pdf [new file with mode: 0644]
python-lib/test-data/chip14/arb0/harmonic-sin-phase/arb0-2013-04-08_134411_5.0-005-030.yaml [new file with mode: 0644]
python-lib/test-data/chip14/arb0/harmonic-sin-phase/arb0-2013-04-08_134625_5.0-005-035.npz [new file with mode: 0644]
python-lib/test-data/chip14/arb0/harmonic-sin-phase/arb0-2013-04-08_134625_5.0-005-035.pdf [new file with mode: 0644]
python-lib/test-data/chip14/arb0/harmonic-sin-phase/arb0-2013-04-08_134625_5.0-005-035.yaml [new file with mode: 0644]
python-lib/test-data/chip14/arb0/harmonic-sin-phase/arb0-2013-04-08_134839_5.0-010-005.npz [new file with mode: 0644]
python-lib/test-data/chip14/arb0/harmonic-sin-phase/arb0-2013-04-08_134839_5.0-010-005.pdf [new file with mode: 0644]
python-lib/test-data/chip14/arb0/harmonic-sin-phase/arb0-2013-04-08_134839_5.0-010-005.yaml [new file with mode: 0644]
python-lib/test-data/chip14/arb0/harmonic-sin-phase/arb0-2013-04-08_135154_5.0-010-015.npz [new file with mode: 0644]
python-lib/test-data/chip14/arb0/harmonic-sin-phase/arb0-2013-04-08_135154_5.0-010-015.pdf [new file with mode: 0644]
python-lib/test-data/chip14/arb0/harmonic-sin-phase/arb0-2013-04-08_135154_5.0-010-015.yaml [new file with mode: 0644]
python-lib/test-data/chip14/arb0/harmonic-sin-phase/arb0-2013-04-08_135413_5.0-010-020.npz [new file with mode: 0644]
python-lib/test-data/chip14/arb0/harmonic-sin-phase/arb0-2013-04-08_135413_5.0-010-020.pdf [new file with mode: 0644]
python-lib/test-data/chip14/arb0/harmonic-sin-phase/arb0-2013-04-08_135413_5.0-010-020.yaml [new file with mode: 0644]
python-lib/test-data/chip14/arb0/harmonic-sin-phase/arb0-2013-04-08_135842_5.0-010-025.npz [new file with mode: 0644]
python-lib/test-data/chip14/arb0/harmonic-sin-phase/arb0-2013-04-08_135842_5.0-010-025.pdf [new file with mode: 0644]
python-lib/test-data/chip14/arb0/harmonic-sin-phase/arb0-2013-04-08_135842_5.0-010-025.yaml [new file with mode: 0644]
python-lib/test-data/chip14/arb0/harmonic-sin-phase/arb0-2013-04-08_140025_5.0-010-030.npz [new file with mode: 0644]
python-lib/test-data/chip14/arb0/harmonic-sin-phase/arb0-2013-04-08_140025_5.0-010-030.pdf [new file with mode: 0644]
python-lib/test-data/chip14/arb0/harmonic-sin-phase/arb0-2013-04-08_140025_5.0-010-030.yaml [new file with mode: 0644]
python-lib/test-data/chip14/arb0/harmonic-sin-phase/arb0-2013-04-08_140139_5.0-010-035.npz [new file with mode: 0644]
python-lib/test-data/chip14/arb0/harmonic-sin-phase/arb0-2013-04-08_140139_5.0-010-035.pdf [new file with mode: 0644]
python-lib/test-data/chip14/arb0/harmonic-sin-phase/arb0-2013-04-08_140139_5.0-010-035.yaml [new file with mode: 0644]

diff --git a/python-lib/arb0-2013-04-08_130324_5.0-005-005.npz b/python-lib/arb0-2013-04-08_130324_5.0-005-005.npz
deleted file mode 100644 (file)
index a50ffdb..0000000
Binary files a/python-lib/arb0-2013-04-08_130324_5.0-005-005.npz and /dev/null differ
diff --git a/python-lib/arb0-2013-04-08_130324_5.0-005-005.pdf b/python-lib/arb0-2013-04-08_130324_5.0-005-005.pdf
deleted file mode 100644 (file)
index 2a22774..0000000
Binary files a/python-lib/arb0-2013-04-08_130324_5.0-005-005.pdf and /dev/null differ
diff --git a/python-lib/arb0-2013-04-08_130324_5.0-005-005.yaml b/python-lib/arb0-2013-04-08_130324_5.0-005-005.yaml
deleted file mode 100644 (file)
index 2ca3a67..0000000
+++ /dev/null
@@ -1,335 +0,0 @@
-amux:
-  csname: chain1_mux
-  otaA: {fast: 0, gain: 0, mode: 4, offset: 0}
-  otaB: {fast: 0, gain: 0, mode: 4, offset: 0}
-  selA: 16
-  selB: 16
-arb:
-  csname: chain1_conf
-  harmonics:
-  - cal: 0
-    nco: {fcw: 0, rst: 0}
-    otaA: {cint: 1, fast: 0, gain: 15, offset: 117, se: 0, zero: 0}
-    otaB: {cint: 1, fast: 0, gain: 15, offset: 117, se: 0, zero: 0}
-  - cal: 0
-    nco: {fcw: 0, rst: 0}
-    otaA: {cint: 0, fast: 0, gain: 0, offset: 0, se: 0, zero: 0}
-    otaB: {cint: 0, fast: 0, gain: 0, offset: 0, se: 0, zero: 0}
-  - cal: 0
-    nco: {fcw: 0, rst: 0}
-    otaA: {cint: 0, fast: 0, gain: 0, offset: 0, se: 0, zero: 0}
-    otaB: {cint: 0, fast: 0, gain: 0, offset: 0, se: 0, zero: 0}
-  - cal: 0
-    nco: {fcw: 0, rst: 0}
-    otaA: {cint: 0, fast: 0, gain: 0, offset: 0, se: 0, zero: 0}
-    otaB: {cint: 0, fast: 0, gain: 0, offset: 0, se: 0, zero: 0}
-  - cal: 0
-    nco: {fcw: 0, rst: 0}
-    otaA: {cint: 0, fast: 0, gain: 0, offset: 0, se: 0, zero: 0}
-    otaB: {cint: 0, fast: 0, gain: 0, offset: 0, se: 0, zero: 0}
-  - cal: 0
-    nco: {fcw: 0, rst: 0}
-    otaA: {cint: 0, fast: 0, gain: 0, offset: 0, se: 0, zero: 0}
-    otaB: {cint: 0, fast: 0, gain: 0, offset: 0, se: 0, zero: 0}
-  - cal: 0
-    nco: {fcw: 0, rst: 0}
-    otaA: {cint: 0, fast: 0, gain: 0, offset: 0, se: 0, zero: 0}
-    otaB: {cint: 0, fast: 0, gain: 0, offset: 0, se: 0, zero: 0}
-  - cal: 0
-    nco: {fcw: 0, rst: 0}
-    otaA: {cint: 0, fast: 0, gain: 0, offset: 0, se: 0, zero: 0}
-    otaB: {cint: 0, fast: 0, gain: 0, offset: 0, se: 0, zero: 0}
-  - cal: 0
-    nco: {fcw: 0, rst: 0}
-    otaA: {cint: 0, fast: 0, gain: 0, offset: 0, se: 0, zero: 0}
-    otaB: {cint: 0, fast: 0, gain: 0, offset: 0, se: 0, zero: 0}
-  - cal: 0
-    nco: {fcw: 0, rst: 0}
-    otaA: {cint: 0, fast: 0, gain: 0, offset: 0, se: 0, zero: 0}
-    otaB: {cint: 0, fast: 0, gain: 0, offset: 0, se: 0, zero: 0}
-  - cal: 0
-    nco: {fcw: 0, rst: 0}
-    otaA: {cint: 0, fast: 0, gain: 0, offset: 0, se: 0, zero: 0}
-    otaB: {cint: 0, fast: 0, gain: 0, offset: 0, se: 0, zero: 0}
-  - cal: 0
-    nco: {fcw: 0, rst: 0}
-    otaA: {cint: 0, fast: 0, gain: 0, offset: 0, se: 0, zero: 0}
-    otaB: {cint: 0, fast: 0, gain: 0, offset: 0, se: 0, zero: 0}
-  - cal: 0
-    nco: {fcw: 0, rst: 0}
-    otaA: {cint: 0, fast: 0, gain: 0, offset: 0, se: 0, zero: 0}
-    otaB: {cint: 0, fast: 0, gain: 0, offset: 0, se: 0, zero: 0}
-  - cal: 0
-    nco: {fcw: 0, rst: 0}
-    otaA: {cint: 0, fast: 0, gain: 0, offset: 0, se: 0, zero: 0}
-    otaB: {cint: 0, fast: 0, gain: 0, offset: 0, se: 0, zero: 0}
-  - cal: 0
-    nco: {fcw: 0, rst: 0}
-    otaA: {cint: 0, fast: 0, gain: 0, offset: 0, se: 0, zero: 0}
-    otaB: {cint: 0, fast: 0, gain: 0, offset: 0, se: 0, zero: 0}
-  - cal: 0
-    nco: {fcw: 0, rst: 0}
-    otaA: {cint: 0, fast: 0, gain: 0, offset: 0, se: 0, zero: 0}
-    otaB: {cint: 0, fast: 0, gain: 0, offset: 0, se: 0, zero: 0}
-  length: 16
-chain:
-  csname: chain0_conf
-  harmonics:
-  - cal: 1
-    nco: {fcw: 0, rst: 0}
-    otaA: {cint: 0, fast: 1, gain: 0, offset: 46, se: 1, zero: 0}
-    otaB: {cint: 0, fast: 1, gain: 0, offset: 127, se: 1, zero: 0}
-  - cal: 1
-    nco: {fcw: 0, rst: 0}
-    otaA: {cint: 0, fast: 1, gain: 0, offset: 110, se: 1, zero: 0}
-    otaB: {cint: 0, fast: 1, gain: 0, offset: 127, se: 1, zero: 0}
-  - cal: 1
-    nco: {fcw: 0, rst: 0}
-    otaA: {cint: 0, fast: 1, gain: 0, offset: 116, se: 1, zero: 0}
-    otaB: {cint: 0, fast: 1, gain: 0, offset: 108, se: 1, zero: 0}
-  - cal: 1
-    nco: {fcw: 0, rst: 0}
-    otaA: {cint: 0, fast: 1, gain: 0, offset: 124, se: 1, zero: 0}
-    otaB: {cint: 0, fast: 1, gain: 0, offset: 78, se: 1, zero: 0}
-  - cal: 1
-    nco: {fcw: 0, rst: 0}
-    otaA: {cint: 0, fast: 1, gain: 0, offset: 106, se: 1, zero: 0}
-    otaB: {cint: 0, fast: 1, gain: 0, offset: 103, se: 1, zero: 0}
-  - cal: 1
-    nco: {fcw: 0, rst: 0}
-    otaA: {cint: 0, fast: 1, gain: 0, offset: 56, se: 1, zero: 0}
-    otaB: {cint: 0, fast: 1, gain: 0, offset: 85, se: 1, zero: 0}
-  - cal: 1
-    nco: {fcw: 0, rst: 0}
-    otaA: {cint: 0, fast: 1, gain: 0, offset: 81, se: 1, zero: 0}
-    otaB: {cint: 0, fast: 1, gain: 0, offset: 111, se: 1, zero: 0}
-  - cal: 1
-    nco: {fcw: 0, rst: 0}
-    otaA: {cint: 0, fast: 1, gain: 0, offset: 59, se: 1, zero: 0}
-    otaB: {cint: 0, fast: 1, gain: 0, offset: 89, se: 1, zero: 0}
-  - cal: 1
-    nco: {fcw: 0, rst: 0}
-    otaA: {cint: 0, fast: 1, gain: 0, offset: 120, se: 1, zero: 0}
-    otaB: {cint: 0, fast: 1, gain: 0, offset: 127, se: 1, zero: 0}
-  - cal: 1
-    nco: {fcw: 0, rst: 0}
-    otaA: {cint: 0, fast: 1, gain: 0, offset: 80, se: 1, zero: 0}
-    otaB: {cint: 0, fast: 1, gain: 0, offset: 118, se: 1, zero: 0}
-  - cal: 1
-    nco: {fcw: 0, rst: 0}
-    otaA: {cint: 0, fast: 1, gain: 0, offset: 100, se: 1, zero: 0}
-    otaB: {cint: 0, fast: 1, gain: 0, offset: 127, se: 1, zero: 0}
-  - cal: 1
-    nco: {fcw: 0, rst: 0}
-    otaA: {cint: 0, fast: 1, gain: 0, offset: 111, se: 1, zero: 0}
-    otaB: {cint: 0, fast: 1, gain: 0, offset: 78, se: 1, zero: 0}
-  - cal: 1
-    nco: {fcw: 0, rst: 0}
-    otaA: {cint: 0, fast: 1, gain: 0, offset: 68, se: 1, zero: 0}
-    otaB: {cint: 0, fast: 1, gain: 0, offset: 127, se: 1, zero: 0}
-  - cal: 1
-    nco: {fcw: 0, rst: 0}
-    otaA: {cint: 0, fast: 1, gain: 0, offset: 127, se: 1, zero: 0}
-    otaB: {cint: 0, fast: 1, gain: 0, offset: 94, se: 1, zero: 0}
-  - cal: 1
-    nco: {fcw: 0, rst: 0}
-    otaA: {cint: 0, fast: 1, gain: 0, offset: 120, se: 1, zero: 0}
-    otaB: {cint: 0, fast: 1, gain: 0, offset: 109, se: 1, zero: 0}
-  - cal: 1
-    nco: {fcw: 0, rst: 0}
-    otaA: {cint: 0, fast: 1, gain: 0, offset: 60, se: 1, zero: 0}
-    otaB: {cint: 0, fast: 1, gain: 0, offset: 102, se: 1, zero: 0}
-  - cal: 1
-    nco: {fcw: 0, rst: 0}
-    otaA: {cint: 0, fast: 1, gain: 0, offset: 112, se: 1, zero: 0}
-    otaB: {cint: 0, fast: 1, gain: 0, offset: 97, se: 1, zero: 0}
-  - cal: 1
-    nco: {fcw: 0, rst: 0}
-    otaA: {cint: 0, fast: 1, gain: 0, offset: 103, se: 1, zero: 0}
-    otaB: {cint: 0, fast: 1, gain: 0, offset: 109, se: 1, zero: 0}
-  - cal: 1
-    nco: {fcw: 0, rst: 0}
-    otaA: {cint: 0, fast: 1, gain: 0, offset: 81, se: 1, zero: 0}
-    otaB: {cint: 0, fast: 1, gain: 0, offset: 95, se: 1, zero: 0}
-  - cal: 1
-    nco: {fcw: 0, rst: 0}
-    otaA: {cint: 0, fast: 1, gain: 0, offset: 91, se: 1, zero: 0}
-    otaB: {cint: 0, fast: 1, gain: 0, offset: 116, se: 1, zero: 0}
-  - cal: 1
-    nco: {fcw: 0, rst: 0}
-    otaA: {cint: 0, fast: 1, gain: 0, offset: 63, se: 1, zero: 0}
-    otaB: {cint: 0, fast: 1, gain: 0, offset: 102, se: 1, zero: 0}
-  - cal: 1
-    nco: {fcw: 0, rst: 0}
-    otaA: {cint: 0, fast: 1, gain: 0, offset: 127, se: 1, zero: 0}
-    otaB: {cint: 0, fast: 1, gain: 0, offset: 63, se: 1, zero: 0}
-  - cal: 1
-    nco: {fcw: 0, rst: 0}
-    otaA: {cint: 0, fast: 1, gain: 0, offset: 126, se: 1, zero: 0}
-    otaB: {cint: 0, fast: 1, gain: 0, offset: 57, se: 1, zero: 0}
-  - cal: 1
-    nco: {fcw: 0, rst: 0}
-    otaA: {cint: 0, fast: 1, gain: 0, offset: 127, se: 1, zero: 0}
-    otaB: {cint: 0, fast: 1, gain: 0, offset: 102, se: 1, zero: 0}
-  - cal: 1
-    nco: {fcw: 0, rst: 0}
-    otaA: {cint: 0, fast: 1, gain: 0, offset: 63, se: 1, zero: 0}
-    otaB: {cint: 0, fast: 1, gain: 0, offset: 95, se: 1, zero: 0}
-  - cal: 1
-    nco: {fcw: 0, rst: 0}
-    otaA: {cint: 0, fast: 1, gain: 0, offset: 72, se: 1, zero: 0}
-    otaB: {cint: 0, fast: 1, gain: 0, offset: 70, se: 1, zero: 0}
-  - cal: 1
-    nco: {fcw: 0, rst: 0}
-    otaA: {cint: 0, fast: 1, gain: 0, offset: 64, se: 1, zero: 0}
-    otaB: {cint: 0, fast: 1, gain: 0, offset: 90, se: 1, zero: 0}
-  - cal: 1
-    nco: {fcw: 0, rst: 0}
-    otaA: {cint: 0, fast: 1, gain: 0, offset: 79, se: 1, zero: 0}
-    otaB: {cint: 0, fast: 1, gain: 0, offset: 103, se: 1, zero: 0}
-  - cal: 1
-    nco: {fcw: 0, rst: 0}
-    otaA: {cint: 0, fast: 1, gain: 0, offset: 127, se: 1, zero: 0}
-    otaB: {cint: 0, fast: 1, gain: 0, offset: 86, se: 1, zero: 0}
-  - cal: 1
-    nco: {fcw: 0, rst: 0}
-    otaA: {cint: 0, fast: 1, gain: 0, offset: 79, se: 1, zero: 0}
-    otaB: {cint: 0, fast: 1, gain: 0, offset: 86, se: 1, zero: 0}
-  - cal: 1
-    nco: {fcw: 0, rst: 0}
-    otaA: {cint: 0, fast: 1, gain: 0, offset: 116, se: 1, zero: 0}
-    otaB: {cint: 0, fast: 1, gain: 0, offset: 70, se: 1, zero: 0}
-  - cal: 1
-    nco: {fcw: 0, rst: 0}
-    otaA: {cint: 0, fast: 1, gain: 0, offset: 78, se: 1, zero: 0}
-    otaB: {cint: 0, fast: 1, gain: 0, offset: 127, se: 1, zero: 0}
-  - cal: 1
-    nco: {fcw: 0, rst: 0}
-    otaA: {cint: 0, fast: 1, gain: 0, offset: 92, se: 1, zero: 0}
-    otaB: {cint: 0, fast: 1, gain: 0, offset: 101, se: 1, zero: 0}
-  - cal: 1
-    nco: {fcw: 0, rst: 0}
-    otaA: {cint: 0, fast: 1, gain: 0, offset: 58, se: 1, zero: 0}
-    otaB: {cint: 0, fast: 1, gain: 0, offset: 91, se: 1, zero: 0}
-  - cal: 1
-    nco: {fcw: 0, rst: 0}
-    otaA: {cint: 0, fast: 1, gain: 0, offset: 91, se: 1, zero: 0}
-    otaB: {cint: 0, fast: 1, gain: 0, offset: 87, se: 1, zero: 0}
-  - cal: 1
-    nco: {fcw: 0, rst: 0}
-    otaA: {cint: 0, fast: 1, gain: 0, offset: 117, se: 1, zero: 0}
-    otaB: {cint: 0, fast: 1, gain: 0, offset: 127, se: 1, zero: 0}
-  - cal: 1
-    nco: {fcw: 0, rst: 0}
-    otaA: {cint: 0, fast: 1, gain: 0, offset: 57, se: 1, zero: 0}
-    otaB: {cint: 0, fast: 1, gain: 0, offset: 96, se: 1, zero: 0}
-  - cal: 1
-    nco: {fcw: 0, rst: 0}
-    otaA: {cint: 0, fast: 1, gain: 0, offset: 79, se: 1, zero: 0}
-    otaB: {cint: 0, fast: 1, gain: 0, offset: 101, se: 1, zero: 0}
-  - cal: 1
-    nco: {fcw: 0, rst: 0}
-    otaA: {cint: 0, fast: 1, gain: 0, offset: 79, se: 1, zero: 0}
-    otaB: {cint: 0, fast: 1, gain: 0, offset: 123, se: 1, zero: 0}
-  - cal: 1
-    nco: {fcw: 0, rst: 0}
-    otaA: {cint: 0, fast: 1, gain: 0, offset: 127, se: 1, zero: 0}
-    otaB: {cint: 0, fast: 1, gain: 0, offset: 79, se: 1, zero: 0}
-  - cal: 1
-    nco: {fcw: 0, rst: 0}
-    otaA: {cint: 0, fast: 1, gain: 0, offset: 83, se: 1, zero: 0}
-    otaB: {cint: 0, fast: 1, gain: 0, offset: 102, se: 1, zero: 0}
-  - cal: 1
-    nco: {fcw: 0, rst: 0}
-    otaA: {cint: 0, fast: 1, gain: 0, offset: 93, se: 1, zero: 0}
-    otaB: {cint: 0, fast: 1, gain: 0, offset: 127, se: 1, zero: 0}
-  - cal: 1
-    nco: {fcw: 0, rst: 0}
-    otaA: {cint: 0, fast: 1, gain: 0, offset: 112, se: 1, zero: 0}
-    otaB: {cint: 0, fast: 1, gain: 0, offset: 127, se: 1, zero: 0}
-  - cal: 1
-    nco: {fcw: 0, rst: 0}
-    otaA: {cint: 0, fast: 1, gain: 0, offset: 88, se: 1, zero: 0}
-    otaB: {cint: 0, fast: 1, gain: 0, offset: 124, se: 1, zero: 0}
-  - cal: 1
-    nco: {fcw: 0, rst: 0}
-    otaA: {cint: 0, fast: 1, gain: 0, offset: 64, se: 1, zero: 0}
-    otaB: {cint: 0, fast: 1, gain: 0, offset: 70, se: 1, zero: 0}
-  - cal: 1
-    nco: {fcw: 0, rst: 0}
-    otaA: {cint: 0, fast: 1, gain: 0, offset: 86, se: 1, zero: 0}
-    otaB: {cint: 0, fast: 1, gain: 0, offset: 93, se: 1, zero: 0}
-  - cal: 1
-    nco: {fcw: 0, rst: 0}
-    otaA: {cint: 0, fast: 1, gain: 0, offset: 88, se: 1, zero: 0}
-    otaB: {cint: 0, fast: 1, gain: 0, offset: 92, se: 1, zero: 0}
-  - cal: 1
-    nco: {fcw: 0, rst: 0}
-    otaA: {cint: 0, fast: 1, gain: 0, offset: 106, se: 1, zero: 0}
-    otaB: {cint: 0, fast: 1, gain: 0, offset: 63, se: 1, zero: 0}
-  length: 48
-dac: {cs: dac, vbias_buf: 0.0, vbias_core: 0.0, vcmi: 1.24998935546875, vina: 1.24998935546875,
-  vinb: 1.24998935546875}
-date: 2013-04-08_130325
-i2c: {delay: 0.0001, interface: 3, pid: 24593, scl: 0, sda: 1, timeout: 100, vid: 1027}
-ibias: {addr: 0, gpo1: 0, gpo2: 0, posA: 128, posB: 128}
-isupply: {AVdd_atoi: 0.0020597040039062498, DVdd_ns430: 0.0004111469628906249, Vdd_digi: 0.0203649951171875,
-  Vdd_ns430: 0.02031919677734375}
-mux:
-  csname: chain0_mux
-  otaA: {fast: 1, gain: 15, mode: 2, offset: 44}
-  otaB: {fast: 1, gain: 15, mode: 2, offset: 81}
-  selA: 48
-  selB: 48
-spi0:
-  cs:
-    _idle: [-1, 200]
-    _mask: [-1, 56]
-    adc: [1, 232]
-    convst: [1, 248]
-    dac: [1, 216]
-    flash: [3, 192]
-  freq: 1000000.0
-  interface: 1
-  latency: 1
-  pid: 24593
-  pindir: 251
-  pinstate: 249
-  vid: 1027
-spi1:
-  cs:
-    _idle: [-1, 248]
-    _mask: [-1, 248]
-    chain0_conf: [0, 240]
-    chain0_mux: [0, 232]
-    chain1_conf: [0, 216]
-    chain1_mux: [0, 184]
-  freq: 1000000.0
-  interface: 2
-  latency: 1
-  pid: 24593
-  pindir: 251
-  pinstate: 184
-  vid: 1027
-v430:
-  addr: 2
-  aliases: {va: vdigi, vb: avdd}
-  gpo1: 0
-  gpo2: 0
-  posA: 201
-  posB: 159
-  va: 1.2008223529411763
-  va_range: [0.5015, 1.3887]
-  vb: 2.5009129411764706
-  vb_range: [1.9552, 2.8304]
-vatoi:
-  addr: 2
-  aliases: {va: vdigi, vb: avdd}
-  gpo1: 0
-  gpo2: 0
-  posA: 201
-  posB: 159
-  va: 1.2008223529411763
-  va_range: [0.5015, 1.3887]
-  vb: 2.5009129411764706
-  vb_range: [1.9552, 2.8304]
index 975235fa0efc25e77fec6ca15ce490bf916608b3..0af730ebf382c7be23274fc9d98fa92940324b79 100644 (file)
@@ -137,7 +137,7 @@ def cal_sleep(ts, Ns=1):
     stime = ts * 1e-6
     samplerate = []
     for i in range(Ns):
-        Nsamples = 4000
+        Nsamples = 2000
         tstart = time()
         for i in range(Nsamples):
             d = 1.0 * sin(2*pi + 1.0) * sign(sin(2*pi*5.0))
@@ -149,7 +149,7 @@ def cal_sleep(ts, Ns=1):
         duration = tend - tstart
         samplerate.append(Nsamples / duration)
         print '%5.3f, %.1f, %3.0f' % (duration, samplerate[-1], stime*1e6)
-    fs = mean(samplerate)
+    fs = max(samplerate)
     print fs
 
 cal_sleep(74, 4)
@@ -176,10 +176,10 @@ z()
 f0 = 5.0
 Nperiods = 1
 
-fh = f0 * 1
-fsin = f0 * 1
+fh = f0 * 2
+fsin = f0 * 8
 
-Nrepeat = 10
+Nrepeat = 4
 
 
 amplitude = 2.0
@@ -191,7 +191,7 @@ phase = arange(0, Nrepeat*2*pi, 2*pi/16)
 for ph in phase:
     print ph,
     dur = 1e10
-    while dur > 1.2 * (Nperiods / fsin):
+    while dur > 1.2 * (Nperiods / f0):
         z()
         adc.read()
         vstart = adc.read()
diff --git a/python-lib/test-data/chip14/arb0/harmonic-sin-phase/arb0-2013-04-08_130324_5.0-005-005.npz b/python-lib/test-data/chip14/arb0/harmonic-sin-phase/arb0-2013-04-08_130324_5.0-005-005.npz
new file mode 100644 (file)
index 0000000..a50ffdb
Binary files /dev/null and b/python-lib/test-data/chip14/arb0/harmonic-sin-phase/arb0-2013-04-08_130324_5.0-005-005.npz differ
diff --git a/python-lib/test-data/chip14/arb0/harmonic-sin-phase/arb0-2013-04-08_130324_5.0-005-005.pdf b/python-lib/test-data/chip14/arb0/harmonic-sin-phase/arb0-2013-04-08_130324_5.0-005-005.pdf
new file mode 100644 (file)
index 0000000..2a22774
Binary files /dev/null and b/python-lib/test-data/chip14/arb0/harmonic-sin-phase/arb0-2013-04-08_130324_5.0-005-005.pdf differ
diff --git a/python-lib/test-data/chip14/arb0/harmonic-sin-phase/arb0-2013-04-08_130324_5.0-005-005.yaml b/python-lib/test-data/chip14/arb0/harmonic-sin-phase/arb0-2013-04-08_130324_5.0-005-005.yaml
new file mode 100644 (file)
index 0000000..2ca3a67
--- /dev/null
@@ -0,0 +1,335 @@
+amux:
+  csname: chain1_mux
+  otaA: {fast: 0, gain: 0, mode: 4, offset: 0}
+  otaB: {fast: 0, gain: 0, mode: 4, offset: 0}
+  selA: 16
+  selB: 16
+arb:
+  csname: chain1_conf
+  harmonics:
+  - cal: 0
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 1, fast: 0, gain: 15, offset: 117, se: 0, zero: 0}
+    otaB: {cint: 1, fast: 0, gain: 15, offset: 117, se: 0, zero: 0}
+  - cal: 0
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 0, gain: 0, offset: 0, se: 0, zero: 0}
+    otaB: {cint: 0, fast: 0, gain: 0, offset: 0, se: 0, zero: 0}
+  - cal: 0
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 0, gain: 0, offset: 0, se: 0, zero: 0}
+    otaB: {cint: 0, fast: 0, gain: 0, offset: 0, se: 0, zero: 0}
+  - cal: 0
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 0, gain: 0, offset: 0, se: 0, zero: 0}
+    otaB: {cint: 0, fast: 0, gain: 0, offset: 0, se: 0, zero: 0}
+  - cal: 0
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 0, gain: 0, offset: 0, se: 0, zero: 0}
+    otaB: {cint: 0, fast: 0, gain: 0, offset: 0, se: 0, zero: 0}
+  - cal: 0
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 0, gain: 0, offset: 0, se: 0, zero: 0}
+    otaB: {cint: 0, fast: 0, gain: 0, offset: 0, se: 0, zero: 0}
+  - cal: 0
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 0, gain: 0, offset: 0, se: 0, zero: 0}
+    otaB: {cint: 0, fast: 0, gain: 0, offset: 0, se: 0, zero: 0}
+  - cal: 0
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 0, gain: 0, offset: 0, se: 0, zero: 0}
+    otaB: {cint: 0, fast: 0, gain: 0, offset: 0, se: 0, zero: 0}
+  - cal: 0
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 0, gain: 0, offset: 0, se: 0, zero: 0}
+    otaB: {cint: 0, fast: 0, gain: 0, offset: 0, se: 0, zero: 0}
+  - cal: 0
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 0, gain: 0, offset: 0, se: 0, zero: 0}
+    otaB: {cint: 0, fast: 0, gain: 0, offset: 0, se: 0, zero: 0}
+  - cal: 0
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 0, gain: 0, offset: 0, se: 0, zero: 0}
+    otaB: {cint: 0, fast: 0, gain: 0, offset: 0, se: 0, zero: 0}
+  - cal: 0
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 0, gain: 0, offset: 0, se: 0, zero: 0}
+    otaB: {cint: 0, fast: 0, gain: 0, offset: 0, se: 0, zero: 0}
+  - cal: 0
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 0, gain: 0, offset: 0, se: 0, zero: 0}
+    otaB: {cint: 0, fast: 0, gain: 0, offset: 0, se: 0, zero: 0}
+  - cal: 0
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 0, gain: 0, offset: 0, se: 0, zero: 0}
+    otaB: {cint: 0, fast: 0, gain: 0, offset: 0, se: 0, zero: 0}
+  - cal: 0
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 0, gain: 0, offset: 0, se: 0, zero: 0}
+    otaB: {cint: 0, fast: 0, gain: 0, offset: 0, se: 0, zero: 0}
+  - cal: 0
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 0, gain: 0, offset: 0, se: 0, zero: 0}
+    otaB: {cint: 0, fast: 0, gain: 0, offset: 0, se: 0, zero: 0}
+  length: 16
+chain:
+  csname: chain0_conf
+  harmonics:
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 46, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 127, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 110, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 127, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 116, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 108, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 124, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 78, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 106, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 103, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 56, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 85, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 81, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 111, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 59, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 89, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 120, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 127, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 80, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 118, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 100, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 127, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 111, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 78, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 68, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 127, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 127, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 94, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 120, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 109, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 60, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 102, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 112, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 97, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 103, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 109, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 81, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 95, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 91, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 116, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 63, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 102, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 127, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 63, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 126, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 57, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 127, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 102, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 63, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 95, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 72, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 70, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 64, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 90, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 79, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 103, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 127, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 86, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 79, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 86, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 116, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 70, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 78, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 127, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 92, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 101, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 58, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 91, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 91, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 87, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 117, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 127, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 57, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 96, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 79, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 101, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 79, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 123, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 127, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 79, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 83, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 102, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 93, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 127, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 112, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 127, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 88, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 124, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 64, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 70, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 86, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 93, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 88, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 92, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 106, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 63, se: 1, zero: 0}
+  length: 48
+dac: {cs: dac, vbias_buf: 0.0, vbias_core: 0.0, vcmi: 1.24998935546875, vina: 1.24998935546875,
+  vinb: 1.24998935546875}
+date: 2013-04-08_130325
+i2c: {delay: 0.0001, interface: 3, pid: 24593, scl: 0, sda: 1, timeout: 100, vid: 1027}
+ibias: {addr: 0, gpo1: 0, gpo2: 0, posA: 128, posB: 128}
+isupply: {AVdd_atoi: 0.0020597040039062498, DVdd_ns430: 0.0004111469628906249, Vdd_digi: 0.0203649951171875,
+  Vdd_ns430: 0.02031919677734375}
+mux:
+  csname: chain0_mux
+  otaA: {fast: 1, gain: 15, mode: 2, offset: 44}
+  otaB: {fast: 1, gain: 15, mode: 2, offset: 81}
+  selA: 48
+  selB: 48
+spi0:
+  cs:
+    _idle: [-1, 200]
+    _mask: [-1, 56]
+    adc: [1, 232]
+    convst: [1, 248]
+    dac: [1, 216]
+    flash: [3, 192]
+  freq: 1000000.0
+  interface: 1
+  latency: 1
+  pid: 24593
+  pindir: 251
+  pinstate: 249
+  vid: 1027
+spi1:
+  cs:
+    _idle: [-1, 248]
+    _mask: [-1, 248]
+    chain0_conf: [0, 240]
+    chain0_mux: [0, 232]
+    chain1_conf: [0, 216]
+    chain1_mux: [0, 184]
+  freq: 1000000.0
+  interface: 2
+  latency: 1
+  pid: 24593
+  pindir: 251
+  pinstate: 184
+  vid: 1027
+v430:
+  addr: 2
+  aliases: {va: vdigi, vb: avdd}
+  gpo1: 0
+  gpo2: 0
+  posA: 201
+  posB: 159
+  va: 1.2008223529411763
+  va_range: [0.5015, 1.3887]
+  vb: 2.5009129411764706
+  vb_range: [1.9552, 2.8304]
+vatoi:
+  addr: 2
+  aliases: {va: vdigi, vb: avdd}
+  gpo1: 0
+  gpo2: 0
+  posA: 201
+  posB: 159
+  va: 1.2008223529411763
+  va_range: [0.5015, 1.3887]
+  vb: 2.5009129411764706
+  vb_range: [1.9552, 2.8304]
diff --git a/python-lib/test-data/chip14/arb0/harmonic-sin-phase/arb0-2013-04-08_133334_5.0-010-010.npz b/python-lib/test-data/chip14/arb0/harmonic-sin-phase/arb0-2013-04-08_133334_5.0-010-010.npz
new file mode 100644 (file)
index 0000000..a22b7cf
Binary files /dev/null and b/python-lib/test-data/chip14/arb0/harmonic-sin-phase/arb0-2013-04-08_133334_5.0-010-010.npz differ
diff --git a/python-lib/test-data/chip14/arb0/harmonic-sin-phase/arb0-2013-04-08_133334_5.0-010-010.pdf b/python-lib/test-data/chip14/arb0/harmonic-sin-phase/arb0-2013-04-08_133334_5.0-010-010.pdf
new file mode 100644 (file)
index 0000000..1398dbc
Binary files /dev/null and b/python-lib/test-data/chip14/arb0/harmonic-sin-phase/arb0-2013-04-08_133334_5.0-010-010.pdf differ
diff --git a/python-lib/test-data/chip14/arb0/harmonic-sin-phase/arb0-2013-04-08_133334_5.0-010-010.yaml b/python-lib/test-data/chip14/arb0/harmonic-sin-phase/arb0-2013-04-08_133334_5.0-010-010.yaml
new file mode 100644 (file)
index 0000000..2ab2e55
--- /dev/null
@@ -0,0 +1,335 @@
+amux:
+  csname: chain1_mux
+  otaA: {fast: 0, gain: 0, mode: 4, offset: 0}
+  otaB: {fast: 0, gain: 0, mode: 4, offset: 0}
+  selA: 16
+  selB: 16
+arb:
+  csname: chain1_conf
+  harmonics:
+  - cal: 0
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 1, fast: 0, gain: 15, offset: 117, se: 0, zero: 0}
+    otaB: {cint: 1, fast: 0, gain: 15, offset: 117, se: 0, zero: 0}
+  - cal: 0
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 0, gain: 0, offset: 0, se: 0, zero: 0}
+    otaB: {cint: 0, fast: 0, gain: 0, offset: 0, se: 0, zero: 0}
+  - cal: 0
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 0, gain: 0, offset: 0, se: 0, zero: 0}
+    otaB: {cint: 0, fast: 0, gain: 0, offset: 0, se: 0, zero: 0}
+  - cal: 0
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 0, gain: 0, offset: 0, se: 0, zero: 0}
+    otaB: {cint: 0, fast: 0, gain: 0, offset: 0, se: 0, zero: 0}
+  - cal: 0
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 0, gain: 0, offset: 0, se: 0, zero: 0}
+    otaB: {cint: 0, fast: 0, gain: 0, offset: 0, se: 0, zero: 0}
+  - cal: 0
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 0, gain: 0, offset: 0, se: 0, zero: 0}
+    otaB: {cint: 0, fast: 0, gain: 0, offset: 0, se: 0, zero: 0}
+  - cal: 0
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 0, gain: 0, offset: 0, se: 0, zero: 0}
+    otaB: {cint: 0, fast: 0, gain: 0, offset: 0, se: 0, zero: 0}
+  - cal: 0
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 0, gain: 0, offset: 0, se: 0, zero: 0}
+    otaB: {cint: 0, fast: 0, gain: 0, offset: 0, se: 0, zero: 0}
+  - cal: 0
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 0, gain: 0, offset: 0, se: 0, zero: 0}
+    otaB: {cint: 0, fast: 0, gain: 0, offset: 0, se: 0, zero: 0}
+  - cal: 0
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 0, gain: 0, offset: 0, se: 0, zero: 0}
+    otaB: {cint: 0, fast: 0, gain: 0, offset: 0, se: 0, zero: 0}
+  - cal: 0
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 0, gain: 0, offset: 0, se: 0, zero: 0}
+    otaB: {cint: 0, fast: 0, gain: 0, offset: 0, se: 0, zero: 0}
+  - cal: 0
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 0, gain: 0, offset: 0, se: 0, zero: 0}
+    otaB: {cint: 0, fast: 0, gain: 0, offset: 0, se: 0, zero: 0}
+  - cal: 0
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 0, gain: 0, offset: 0, se: 0, zero: 0}
+    otaB: {cint: 0, fast: 0, gain: 0, offset: 0, se: 0, zero: 0}
+  - cal: 0
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 0, gain: 0, offset: 0, se: 0, zero: 0}
+    otaB: {cint: 0, fast: 0, gain: 0, offset: 0, se: 0, zero: 0}
+  - cal: 0
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 0, gain: 0, offset: 0, se: 0, zero: 0}
+    otaB: {cint: 0, fast: 0, gain: 0, offset: 0, se: 0, zero: 0}
+  - cal: 0
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 0, gain: 0, offset: 0, se: 0, zero: 0}
+    otaB: {cint: 0, fast: 0, gain: 0, offset: 0, se: 0, zero: 0}
+  length: 16
+chain:
+  csname: chain0_conf
+  harmonics:
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 46, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 127, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 110, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 127, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 116, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 108, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 124, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 78, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 106, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 103, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 56, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 85, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 81, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 111, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 59, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 89, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 120, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 127, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 80, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 118, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 100, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 127, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 111, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 78, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 68, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 127, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 127, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 94, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 120, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 109, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 60, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 102, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 112, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 97, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 103, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 109, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 81, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 95, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 91, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 116, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 63, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 102, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 127, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 63, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 126, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 57, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 127, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 102, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 63, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 95, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 72, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 70, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 64, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 90, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 79, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 103, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 127, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 86, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 79, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 86, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 116, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 70, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 78, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 127, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 92, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 101, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 58, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 91, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 91, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 87, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 117, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 127, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 57, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 96, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 79, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 101, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 79, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 123, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 127, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 79, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 83, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 102, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 93, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 127, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 112, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 127, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 88, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 124, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 64, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 70, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 86, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 93, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 88, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 92, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 106, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 63, se: 1, zero: 0}
+  length: 48
+dac: {cs: dac, vbias_buf: 0.0, vbias_core: 0.0, vcmi: 1.24998935546875, vina: 1.24998935546875,
+  vinb: 1.24998935546875}
+date: 2013-04-08_133335
+i2c: {delay: 0.0001, interface: 3, pid: 24593, scl: 0, sda: 1, timeout: 100, vid: 1027}
+ibias: {addr: 0, gpo1: 0, gpo2: 0, posA: 128, posB: 128}
+isupply: {AVdd_atoi: 0.0018644504150390625, DVdd_ns430: 0.0003731343408203125, Vdd_digi: 0.02032225,
+  Vdd_ns430: 0.020310037109375}
+mux:
+  csname: chain0_mux
+  otaA: {fast: 1, gain: 15, mode: 2, offset: 44}
+  otaB: {fast: 1, gain: 15, mode: 2, offset: 81}
+  selA: 48
+  selB: 48
+spi0:
+  cs:
+    _idle: [-1, 200]
+    _mask: [-1, 56]
+    adc: [1, 232]
+    convst: [1, 248]
+    dac: [1, 216]
+    flash: [3, 192]
+  freq: 1000000.0
+  interface: 1
+  latency: 1
+  pid: 24593
+  pindir: 251
+  pinstate: 249
+  vid: 1027
+spi1:
+  cs:
+    _idle: [-1, 248]
+    _mask: [-1, 248]
+    chain0_conf: [0, 240]
+    chain0_mux: [0, 232]
+    chain1_conf: [0, 216]
+    chain1_mux: [0, 184]
+  freq: 1000000.0
+  interface: 2
+  latency: 1
+  pid: 24593
+  pindir: 251
+  pinstate: 184
+  vid: 1027
+v430:
+  addr: 2
+  aliases: {va: vdigi, vb: avdd}
+  gpo1: 0
+  gpo2: 0
+  posA: 201
+  posB: 159
+  va: 1.2008223529411763
+  va_range: [0.5015, 1.3887]
+  vb: 2.5009129411764706
+  vb_range: [1.9552, 2.8304]
+vatoi:
+  addr: 2
+  aliases: {va: vdigi, vb: avdd}
+  gpo1: 0
+  gpo2: 0
+  posA: 201
+  posB: 159
+  va: 1.2008223529411763
+  va_range: [0.5015, 1.3887]
+  vb: 2.5009129411764706
+  vb_range: [1.9552, 2.8304]
diff --git a/python-lib/test-data/chip14/arb0/harmonic-sin-phase/arb0-2013-04-08_133500_5.0-005-015.npz b/python-lib/test-data/chip14/arb0/harmonic-sin-phase/arb0-2013-04-08_133500_5.0-005-015.npz
new file mode 100644 (file)
index 0000000..7278981
Binary files /dev/null and b/python-lib/test-data/chip14/arb0/harmonic-sin-phase/arb0-2013-04-08_133500_5.0-005-015.npz differ
diff --git a/python-lib/test-data/chip14/arb0/harmonic-sin-phase/arb0-2013-04-08_133500_5.0-005-015.pdf b/python-lib/test-data/chip14/arb0/harmonic-sin-phase/arb0-2013-04-08_133500_5.0-005-015.pdf
new file mode 100644 (file)
index 0000000..a60fb46
Binary files /dev/null and b/python-lib/test-data/chip14/arb0/harmonic-sin-phase/arb0-2013-04-08_133500_5.0-005-015.pdf differ
diff --git a/python-lib/test-data/chip14/arb0/harmonic-sin-phase/arb0-2013-04-08_133500_5.0-005-015.yaml b/python-lib/test-data/chip14/arb0/harmonic-sin-phase/arb0-2013-04-08_133500_5.0-005-015.yaml
new file mode 100644 (file)
index 0000000..62564ec
--- /dev/null
@@ -0,0 +1,335 @@
+amux:
+  csname: chain1_mux
+  otaA: {fast: 0, gain: 0, mode: 4, offset: 0}
+  otaB: {fast: 0, gain: 0, mode: 4, offset: 0}
+  selA: 16
+  selB: 16
+arb:
+  csname: chain1_conf
+  harmonics:
+  - cal: 0
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 1, fast: 0, gain: 15, offset: 117, se: 0, zero: 0}
+    otaB: {cint: 1, fast: 0, gain: 15, offset: 117, se: 0, zero: 0}
+  - cal: 0
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 0, gain: 0, offset: 0, se: 0, zero: 0}
+    otaB: {cint: 0, fast: 0, gain: 0, offset: 0, se: 0, zero: 0}
+  - cal: 0
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 0, gain: 0, offset: 0, se: 0, zero: 0}
+    otaB: {cint: 0, fast: 0, gain: 0, offset: 0, se: 0, zero: 0}
+  - cal: 0
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 0, gain: 0, offset: 0, se: 0, zero: 0}
+    otaB: {cint: 0, fast: 0, gain: 0, offset: 0, se: 0, zero: 0}
+  - cal: 0
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 0, gain: 0, offset: 0, se: 0, zero: 0}
+    otaB: {cint: 0, fast: 0, gain: 0, offset: 0, se: 0, zero: 0}
+  - cal: 0
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 0, gain: 0, offset: 0, se: 0, zero: 0}
+    otaB: {cint: 0, fast: 0, gain: 0, offset: 0, se: 0, zero: 0}
+  - cal: 0
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 0, gain: 0, offset: 0, se: 0, zero: 0}
+    otaB: {cint: 0, fast: 0, gain: 0, offset: 0, se: 0, zero: 0}
+  - cal: 0
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 0, gain: 0, offset: 0, se: 0, zero: 0}
+    otaB: {cint: 0, fast: 0, gain: 0, offset: 0, se: 0, zero: 0}
+  - cal: 0
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 0, gain: 0, offset: 0, se: 0, zero: 0}
+    otaB: {cint: 0, fast: 0, gain: 0, offset: 0, se: 0, zero: 0}
+  - cal: 0
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 0, gain: 0, offset: 0, se: 0, zero: 0}
+    otaB: {cint: 0, fast: 0, gain: 0, offset: 0, se: 0, zero: 0}
+  - cal: 0
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 0, gain: 0, offset: 0, se: 0, zero: 0}
+    otaB: {cint: 0, fast: 0, gain: 0, offset: 0, se: 0, zero: 0}
+  - cal: 0
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 0, gain: 0, offset: 0, se: 0, zero: 0}
+    otaB: {cint: 0, fast: 0, gain: 0, offset: 0, se: 0, zero: 0}
+  - cal: 0
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 0, gain: 0, offset: 0, se: 0, zero: 0}
+    otaB: {cint: 0, fast: 0, gain: 0, offset: 0, se: 0, zero: 0}
+  - cal: 0
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 0, gain: 0, offset: 0, se: 0, zero: 0}
+    otaB: {cint: 0, fast: 0, gain: 0, offset: 0, se: 0, zero: 0}
+  - cal: 0
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 0, gain: 0, offset: 0, se: 0, zero: 0}
+    otaB: {cint: 0, fast: 0, gain: 0, offset: 0, se: 0, zero: 0}
+  - cal: 0
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 0, gain: 0, offset: 0, se: 0, zero: 0}
+    otaB: {cint: 0, fast: 0, gain: 0, offset: 0, se: 0, zero: 0}
+  length: 16
+chain:
+  csname: chain0_conf
+  harmonics:
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 46, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 127, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 110, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 127, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 116, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 108, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 124, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 78, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 106, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 103, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 56, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 85, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 81, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 111, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 59, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 89, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 120, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 127, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 80, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 118, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 100, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 127, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 111, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 78, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 68, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 127, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 127, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 94, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 120, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 109, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 60, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 102, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 112, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 97, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 103, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 109, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 81, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 95, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 91, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 116, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 63, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 102, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 127, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 63, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 126, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 57, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 127, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 102, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 63, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 95, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 72, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 70, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 64, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 90, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 79, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 103, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 127, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 86, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 79, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 86, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 116, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 70, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 78, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 127, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 92, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 101, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 58, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 91, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 91, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 87, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 117, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 127, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 57, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 96, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 79, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 101, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 79, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 123, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 127, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 79, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 83, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 102, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 93, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 127, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 112, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 127, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 88, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 124, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 64, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 70, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 86, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 93, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 88, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 92, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 106, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 63, se: 1, zero: 0}
+  length: 48
+dac: {cs: dac, vbias_buf: 0.0, vbias_core: 0.0, vcmi: 1.24998935546875, vina: 1.24998935546875,
+  vinb: 1.24998935546875}
+date: 2013-04-08_133500
+i2c: {delay: 0.0001, interface: 3, pid: 24593, scl: 0, sda: 1, timeout: 100, vid: 1027}
+ibias: {addr: 0, gpo1: 0, gpo2: 0, posA: 128, posB: 128}
+isupply: {AVdd_atoi: 0.0018867389404296875, DVdd_ns430: 0.00037768364257812496, Vdd_digi: 0.02019706787109375,
+  Vdd_ns430: 0.02019096142578125}
+mux:
+  csname: chain0_mux
+  otaA: {fast: 1, gain: 15, mode: 2, offset: 44}
+  otaB: {fast: 1, gain: 15, mode: 2, offset: 81}
+  selA: 48
+  selB: 48
+spi0:
+  cs:
+    _idle: [-1, 200]
+    _mask: [-1, 56]
+    adc: [1, 232]
+    convst: [1, 248]
+    dac: [1, 216]
+    flash: [3, 192]
+  freq: 1000000.0
+  interface: 1
+  latency: 1
+  pid: 24593
+  pindir: 251
+  pinstate: 249
+  vid: 1027
+spi1:
+  cs:
+    _idle: [-1, 248]
+    _mask: [-1, 248]
+    chain0_conf: [0, 240]
+    chain0_mux: [0, 232]
+    chain1_conf: [0, 216]
+    chain1_mux: [0, 184]
+  freq: 1000000.0
+  interface: 2
+  latency: 1
+  pid: 24593
+  pindir: 251
+  pinstate: 184
+  vid: 1027
+v430:
+  addr: 2
+  aliases: {va: vdigi, vb: avdd}
+  gpo1: 0
+  gpo2: 0
+  posA: 201
+  posB: 159
+  va: 1.2008223529411763
+  va_range: [0.5015, 1.3887]
+  vb: 2.5009129411764706
+  vb_range: [1.9552, 2.8304]
+vatoi:
+  addr: 2
+  aliases: {va: vdigi, vb: avdd}
+  gpo1: 0
+  gpo2: 0
+  posA: 201
+  posB: 159
+  va: 1.2008223529411763
+  va_range: [0.5015, 1.3887]
+  vb: 2.5009129411764706
+  vb_range: [1.9552, 2.8304]
diff --git a/python-lib/test-data/chip14/arb0/harmonic-sin-phase/arb0-2013-04-08_134053_5.0-005-010.npz b/python-lib/test-data/chip14/arb0/harmonic-sin-phase/arb0-2013-04-08_134053_5.0-005-010.npz
new file mode 100644 (file)
index 0000000..1641d48
Binary files /dev/null and b/python-lib/test-data/chip14/arb0/harmonic-sin-phase/arb0-2013-04-08_134053_5.0-005-010.npz differ
diff --git a/python-lib/test-data/chip14/arb0/harmonic-sin-phase/arb0-2013-04-08_134053_5.0-005-010.pdf b/python-lib/test-data/chip14/arb0/harmonic-sin-phase/arb0-2013-04-08_134053_5.0-005-010.pdf
new file mode 100644 (file)
index 0000000..fd01ddd
Binary files /dev/null and b/python-lib/test-data/chip14/arb0/harmonic-sin-phase/arb0-2013-04-08_134053_5.0-005-010.pdf differ
diff --git a/python-lib/test-data/chip14/arb0/harmonic-sin-phase/arb0-2013-04-08_134053_5.0-005-010.yaml b/python-lib/test-data/chip14/arb0/harmonic-sin-phase/arb0-2013-04-08_134053_5.0-005-010.yaml
new file mode 100644 (file)
index 0000000..c86463a
--- /dev/null
@@ -0,0 +1,335 @@
+amux:
+  csname: chain1_mux
+  otaA: {fast: 0, gain: 0, mode: 4, offset: 0}
+  otaB: {fast: 0, gain: 0, mode: 4, offset: 0}
+  selA: 16
+  selB: 16
+arb:
+  csname: chain1_conf
+  harmonics:
+  - cal: 0
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 1, fast: 0, gain: 15, offset: 117, se: 0, zero: 0}
+    otaB: {cint: 1, fast: 0, gain: 15, offset: 117, se: 0, zero: 0}
+  - cal: 0
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 0, gain: 0, offset: 0, se: 0, zero: 0}
+    otaB: {cint: 0, fast: 0, gain: 0, offset: 0, se: 0, zero: 0}
+  - cal: 0
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 0, gain: 0, offset: 0, se: 0, zero: 0}
+    otaB: {cint: 0, fast: 0, gain: 0, offset: 0, se: 0, zero: 0}
+  - cal: 0
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 0, gain: 0, offset: 0, se: 0, zero: 0}
+    otaB: {cint: 0, fast: 0, gain: 0, offset: 0, se: 0, zero: 0}
+  - cal: 0
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 0, gain: 0, offset: 0, se: 0, zero: 0}
+    otaB: {cint: 0, fast: 0, gain: 0, offset: 0, se: 0, zero: 0}
+  - cal: 0
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 0, gain: 0, offset: 0, se: 0, zero: 0}
+    otaB: {cint: 0, fast: 0, gain: 0, offset: 0, se: 0, zero: 0}
+  - cal: 0
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 0, gain: 0, offset: 0, se: 0, zero: 0}
+    otaB: {cint: 0, fast: 0, gain: 0, offset: 0, se: 0, zero: 0}
+  - cal: 0
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 0, gain: 0, offset: 0, se: 0, zero: 0}
+    otaB: {cint: 0, fast: 0, gain: 0, offset: 0, se: 0, zero: 0}
+  - cal: 0
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 0, gain: 0, offset: 0, se: 0, zero: 0}
+    otaB: {cint: 0, fast: 0, gain: 0, offset: 0, se: 0, zero: 0}
+  - cal: 0
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 0, gain: 0, offset: 0, se: 0, zero: 0}
+    otaB: {cint: 0, fast: 0, gain: 0, offset: 0, se: 0, zero: 0}
+  - cal: 0
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 0, gain: 0, offset: 0, se: 0, zero: 0}
+    otaB: {cint: 0, fast: 0, gain: 0, offset: 0, se: 0, zero: 0}
+  - cal: 0
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 0, gain: 0, offset: 0, se: 0, zero: 0}
+    otaB: {cint: 0, fast: 0, gain: 0, offset: 0, se: 0, zero: 0}
+  - cal: 0
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 0, gain: 0, offset: 0, se: 0, zero: 0}
+    otaB: {cint: 0, fast: 0, gain: 0, offset: 0, se: 0, zero: 0}
+  - cal: 0
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 0, gain: 0, offset: 0, se: 0, zero: 0}
+    otaB: {cint: 0, fast: 0, gain: 0, offset: 0, se: 0, zero: 0}
+  - cal: 0
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 0, gain: 0, offset: 0, se: 0, zero: 0}
+    otaB: {cint: 0, fast: 0, gain: 0, offset: 0, se: 0, zero: 0}
+  - cal: 0
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 0, gain: 0, offset: 0, se: 0, zero: 0}
+    otaB: {cint: 0, fast: 0, gain: 0, offset: 0, se: 0, zero: 0}
+  length: 16
+chain:
+  csname: chain0_conf
+  harmonics:
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 46, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 127, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 110, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 127, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 116, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 108, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 124, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 78, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 106, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 103, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 56, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 85, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 81, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 111, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 59, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 89, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 120, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 127, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 80, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 118, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 100, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 127, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 111, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 78, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 68, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 127, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 127, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 94, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 120, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 109, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 60, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 102, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 112, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 97, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 103, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 109, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 81, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 95, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 91, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 116, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 63, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 102, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 127, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 63, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 126, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 57, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 127, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 102, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 63, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 95, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 72, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 70, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 64, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 90, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 79, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 103, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 127, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 86, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 79, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 86, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 116, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 70, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 78, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 127, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 92, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 101, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 58, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 91, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 91, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 87, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 117, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 127, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 57, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 96, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 79, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 101, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 79, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 123, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 127, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 79, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 83, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 102, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 93, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 127, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 112, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 127, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 88, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 124, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 64, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 70, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 86, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 93, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 88, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 92, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 106, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 63, se: 1, zero: 0}
+  length: 48
+dac: {cs: dac, vbias_buf: 0.0, vbias_core: 0.0, vcmi: 1.24998935546875, vina: 1.24998935546875,
+  vinb: 1.24998935546875}
+date: 2013-04-08_134053
+i2c: {delay: 0.0001, interface: 3, pid: 24593, scl: 0, sda: 1, timeout: 100, vid: 1027}
+ibias: {addr: 0, gpo1: 0, gpo2: 0, posA: 128, posB: 128}
+isupply: {AVdd_atoi: 0.0018394139892578122, DVdd_ns430: 0.00036815758789062494, Vdd_digi: 0.020673370605468748,
+  Vdd_ns430: 0.020664210937499997}
+mux:
+  csname: chain0_mux
+  otaA: {fast: 1, gain: 15, mode: 2, offset: 44}
+  otaB: {fast: 1, gain: 15, mode: 2, offset: 81}
+  selA: 48
+  selB: 48
+spi0:
+  cs:
+    _idle: [-1, 200]
+    _mask: [-1, 56]
+    adc: [1, 232]
+    convst: [1, 248]
+    dac: [1, 216]
+    flash: [3, 192]
+  freq: 1000000.0
+  interface: 1
+  latency: 1
+  pid: 24593
+  pindir: 251
+  pinstate: 249
+  vid: 1027
+spi1:
+  cs:
+    _idle: [-1, 248]
+    _mask: [-1, 248]
+    chain0_conf: [0, 240]
+    chain0_mux: [0, 232]
+    chain1_conf: [0, 216]
+    chain1_mux: [0, 184]
+  freq: 1000000.0
+  interface: 2
+  latency: 1
+  pid: 24593
+  pindir: 251
+  pinstate: 184
+  vid: 1027
+v430:
+  addr: 2
+  aliases: {va: vdigi, vb: avdd}
+  gpo1: 0
+  gpo2: 0
+  posA: 201
+  posB: 159
+  va: 1.2008223529411763
+  va_range: [0.5015, 1.3887]
+  vb: 2.5009129411764706
+  vb_range: [1.9552, 2.8304]
+vatoi:
+  addr: 2
+  aliases: {va: vdigi, vb: avdd}
+  gpo1: 0
+  gpo2: 0
+  posA: 201
+  posB: 159
+  va: 1.2008223529411763
+  va_range: [0.5015, 1.3887]
+  vb: 2.5009129411764706
+  vb_range: [1.9552, 2.8304]
diff --git a/python-lib/test-data/chip14/arb0/harmonic-sin-phase/arb0-2013-04-08_134159_5.0-005-020.npz b/python-lib/test-data/chip14/arb0/harmonic-sin-phase/arb0-2013-04-08_134159_5.0-005-020.npz
new file mode 100644 (file)
index 0000000..33df355
Binary files /dev/null and b/python-lib/test-data/chip14/arb0/harmonic-sin-phase/arb0-2013-04-08_134159_5.0-005-020.npz differ
diff --git a/python-lib/test-data/chip14/arb0/harmonic-sin-phase/arb0-2013-04-08_134159_5.0-005-020.pdf b/python-lib/test-data/chip14/arb0/harmonic-sin-phase/arb0-2013-04-08_134159_5.0-005-020.pdf
new file mode 100644 (file)
index 0000000..9457afd
Binary files /dev/null and b/python-lib/test-data/chip14/arb0/harmonic-sin-phase/arb0-2013-04-08_134159_5.0-005-020.pdf differ
diff --git a/python-lib/test-data/chip14/arb0/harmonic-sin-phase/arb0-2013-04-08_134159_5.0-005-020.yaml b/python-lib/test-data/chip14/arb0/harmonic-sin-phase/arb0-2013-04-08_134159_5.0-005-020.yaml
new file mode 100644 (file)
index 0000000..f262084
--- /dev/null
@@ -0,0 +1,335 @@
+amux:
+  csname: chain1_mux
+  otaA: {fast: 0, gain: 0, mode: 4, offset: 0}
+  otaB: {fast: 0, gain: 0, mode: 4, offset: 0}
+  selA: 16
+  selB: 16
+arb:
+  csname: chain1_conf
+  harmonics:
+  - cal: 0
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 1, fast: 0, gain: 15, offset: 117, se: 0, zero: 0}
+    otaB: {cint: 1, fast: 0, gain: 15, offset: 117, se: 0, zero: 0}
+  - cal: 0
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 0, gain: 0, offset: 0, se: 0, zero: 0}
+    otaB: {cint: 0, fast: 0, gain: 0, offset: 0, se: 0, zero: 0}
+  - cal: 0
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 0, gain: 0, offset: 0, se: 0, zero: 0}
+    otaB: {cint: 0, fast: 0, gain: 0, offset: 0, se: 0, zero: 0}
+  - cal: 0
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 0, gain: 0, offset: 0, se: 0, zero: 0}
+    otaB: {cint: 0, fast: 0, gain: 0, offset: 0, se: 0, zero: 0}
+  - cal: 0
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 0, gain: 0, offset: 0, se: 0, zero: 0}
+    otaB: {cint: 0, fast: 0, gain: 0, offset: 0, se: 0, zero: 0}
+  - cal: 0
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 0, gain: 0, offset: 0, se: 0, zero: 0}
+    otaB: {cint: 0, fast: 0, gain: 0, offset: 0, se: 0, zero: 0}
+  - cal: 0
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 0, gain: 0, offset: 0, se: 0, zero: 0}
+    otaB: {cint: 0, fast: 0, gain: 0, offset: 0, se: 0, zero: 0}
+  - cal: 0
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 0, gain: 0, offset: 0, se: 0, zero: 0}
+    otaB: {cint: 0, fast: 0, gain: 0, offset: 0, se: 0, zero: 0}
+  - cal: 0
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 0, gain: 0, offset: 0, se: 0, zero: 0}
+    otaB: {cint: 0, fast: 0, gain: 0, offset: 0, se: 0, zero: 0}
+  - cal: 0
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 0, gain: 0, offset: 0, se: 0, zero: 0}
+    otaB: {cint: 0, fast: 0, gain: 0, offset: 0, se: 0, zero: 0}
+  - cal: 0
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 0, gain: 0, offset: 0, se: 0, zero: 0}
+    otaB: {cint: 0, fast: 0, gain: 0, offset: 0, se: 0, zero: 0}
+  - cal: 0
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 0, gain: 0, offset: 0, se: 0, zero: 0}
+    otaB: {cint: 0, fast: 0, gain: 0, offset: 0, se: 0, zero: 0}
+  - cal: 0
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 0, gain: 0, offset: 0, se: 0, zero: 0}
+    otaB: {cint: 0, fast: 0, gain: 0, offset: 0, se: 0, zero: 0}
+  - cal: 0
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 0, gain: 0, offset: 0, se: 0, zero: 0}
+    otaB: {cint: 0, fast: 0, gain: 0, offset: 0, se: 0, zero: 0}
+  - cal: 0
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 0, gain: 0, offset: 0, se: 0, zero: 0}
+    otaB: {cint: 0, fast: 0, gain: 0, offset: 0, se: 0, zero: 0}
+  - cal: 0
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 0, gain: 0, offset: 0, se: 0, zero: 0}
+    otaB: {cint: 0, fast: 0, gain: 0, offset: 0, se: 0, zero: 0}
+  length: 16
+chain:
+  csname: chain0_conf
+  harmonics:
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 46, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 127, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 110, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 127, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 116, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 108, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 124, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 78, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 106, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 103, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 56, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 85, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 81, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 111, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 59, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 89, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 120, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 127, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 80, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 118, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 100, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 127, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 111, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 78, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 68, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 127, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 127, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 94, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 120, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 109, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 60, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 102, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 112, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 97, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 103, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 109, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 81, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 95, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 91, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 116, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 63, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 102, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 127, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 63, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 126, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 57, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 127, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 102, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 63, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 95, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 72, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 70, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 64, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 90, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 79, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 103, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 127, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 86, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 79, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 86, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 116, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 70, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 78, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 127, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 92, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 101, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 58, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 91, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 91, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 87, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 117, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 127, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 57, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 96, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 79, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 101, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 79, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 123, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 127, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 79, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 83, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 102, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 93, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 127, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 112, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 127, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 88, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 124, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 64, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 70, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 86, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 93, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 88, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 92, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 106, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 63, se: 1, zero: 0}
+  length: 48
+dac: {cs: dac, vbias_buf: 0.0, vbias_core: 0.0, vcmi: 1.24998935546875, vina: 1.24998935546875,
+  vinb: 1.24998935546875}
+date: 2013-04-08_134159
+i2c: {delay: 0.0001, interface: 3, pid: 24593, scl: 0, sda: 1, timeout: 100, vid: 1027}
+ibias: {addr: 0, gpo1: 0, gpo2: 0, posA: 128, posB: 128}
+isupply: {AVdd_atoi: 0.0018864336181640623, DVdd_ns430: 0.000377072998046875, Vdd_digi: 0.02047796435546875,
+  Vdd_ns430: 0.020508496582031247}
+mux:
+  csname: chain0_mux
+  otaA: {fast: 1, gain: 15, mode: 2, offset: 44}
+  otaB: {fast: 1, gain: 15, mode: 2, offset: 81}
+  selA: 48
+  selB: 48
+spi0:
+  cs:
+    _idle: [-1, 200]
+    _mask: [-1, 56]
+    adc: [1, 232]
+    convst: [1, 248]
+    dac: [1, 216]
+    flash: [3, 192]
+  freq: 1000000.0
+  interface: 1
+  latency: 1
+  pid: 24593
+  pindir: 251
+  pinstate: 249
+  vid: 1027
+spi1:
+  cs:
+    _idle: [-1, 248]
+    _mask: [-1, 248]
+    chain0_conf: [0, 240]
+    chain0_mux: [0, 232]
+    chain1_conf: [0, 216]
+    chain1_mux: [0, 184]
+  freq: 1000000.0
+  interface: 2
+  latency: 1
+  pid: 24593
+  pindir: 251
+  pinstate: 184
+  vid: 1027
+v430:
+  addr: 2
+  aliases: {va: vdigi, vb: avdd}
+  gpo1: 0
+  gpo2: 0
+  posA: 201
+  posB: 159
+  va: 1.2008223529411763
+  va_range: [0.5015, 1.3887]
+  vb: 2.5009129411764706
+  vb_range: [1.9552, 2.8304]
+vatoi:
+  addr: 2
+  aliases: {va: vdigi, vb: avdd}
+  gpo1: 0
+  gpo2: 0
+  posA: 201
+  posB: 159
+  va: 1.2008223529411763
+  va_range: [0.5015, 1.3887]
+  vb: 2.5009129411764706
+  vb_range: [1.9552, 2.8304]
diff --git a/python-lib/test-data/chip14/arb0/harmonic-sin-phase/arb0-2013-04-08_134302_5.0-005-025.npz b/python-lib/test-data/chip14/arb0/harmonic-sin-phase/arb0-2013-04-08_134302_5.0-005-025.npz
new file mode 100644 (file)
index 0000000..9fe77d6
Binary files /dev/null and b/python-lib/test-data/chip14/arb0/harmonic-sin-phase/arb0-2013-04-08_134302_5.0-005-025.npz differ
diff --git a/python-lib/test-data/chip14/arb0/harmonic-sin-phase/arb0-2013-04-08_134302_5.0-005-025.pdf b/python-lib/test-data/chip14/arb0/harmonic-sin-phase/arb0-2013-04-08_134302_5.0-005-025.pdf
new file mode 100644 (file)
index 0000000..2954624
Binary files /dev/null and b/python-lib/test-data/chip14/arb0/harmonic-sin-phase/arb0-2013-04-08_134302_5.0-005-025.pdf differ
diff --git a/python-lib/test-data/chip14/arb0/harmonic-sin-phase/arb0-2013-04-08_134302_5.0-005-025.yaml b/python-lib/test-data/chip14/arb0/harmonic-sin-phase/arb0-2013-04-08_134302_5.0-005-025.yaml
new file mode 100644 (file)
index 0000000..530245d
--- /dev/null
@@ -0,0 +1,335 @@
+amux:
+  csname: chain1_mux
+  otaA: {fast: 0, gain: 0, mode: 4, offset: 0}
+  otaB: {fast: 0, gain: 0, mode: 4, offset: 0}
+  selA: 16
+  selB: 16
+arb:
+  csname: chain1_conf
+  harmonics:
+  - cal: 0
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 1, fast: 0, gain: 15, offset: 117, se: 0, zero: 0}
+    otaB: {cint: 1, fast: 0, gain: 15, offset: 117, se: 0, zero: 0}
+  - cal: 0
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 0, gain: 0, offset: 0, se: 0, zero: 0}
+    otaB: {cint: 0, fast: 0, gain: 0, offset: 0, se: 0, zero: 0}
+  - cal: 0
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 0, gain: 0, offset: 0, se: 0, zero: 0}
+    otaB: {cint: 0, fast: 0, gain: 0, offset: 0, se: 0, zero: 0}
+  - cal: 0
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 0, gain: 0, offset: 0, se: 0, zero: 0}
+    otaB: {cint: 0, fast: 0, gain: 0, offset: 0, se: 0, zero: 0}
+  - cal: 0
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 0, gain: 0, offset: 0, se: 0, zero: 0}
+    otaB: {cint: 0, fast: 0, gain: 0, offset: 0, se: 0, zero: 0}
+  - cal: 0
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 0, gain: 0, offset: 0, se: 0, zero: 0}
+    otaB: {cint: 0, fast: 0, gain: 0, offset: 0, se: 0, zero: 0}
+  - cal: 0
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 0, gain: 0, offset: 0, se: 0, zero: 0}
+    otaB: {cint: 0, fast: 0, gain: 0, offset: 0, se: 0, zero: 0}
+  - cal: 0
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 0, gain: 0, offset: 0, se: 0, zero: 0}
+    otaB: {cint: 0, fast: 0, gain: 0, offset: 0, se: 0, zero: 0}
+  - cal: 0
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 0, gain: 0, offset: 0, se: 0, zero: 0}
+    otaB: {cint: 0, fast: 0, gain: 0, offset: 0, se: 0, zero: 0}
+  - cal: 0
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 0, gain: 0, offset: 0, se: 0, zero: 0}
+    otaB: {cint: 0, fast: 0, gain: 0, offset: 0, se: 0, zero: 0}
+  - cal: 0
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 0, gain: 0, offset: 0, se: 0, zero: 0}
+    otaB: {cint: 0, fast: 0, gain: 0, offset: 0, se: 0, zero: 0}
+  - cal: 0
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 0, gain: 0, offset: 0, se: 0, zero: 0}
+    otaB: {cint: 0, fast: 0, gain: 0, offset: 0, se: 0, zero: 0}
+  - cal: 0
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 0, gain: 0, offset: 0, se: 0, zero: 0}
+    otaB: {cint: 0, fast: 0, gain: 0, offset: 0, se: 0, zero: 0}
+  - cal: 0
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 0, gain: 0, offset: 0, se: 0, zero: 0}
+    otaB: {cint: 0, fast: 0, gain: 0, offset: 0, se: 0, zero: 0}
+  - cal: 0
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 0, gain: 0, offset: 0, se: 0, zero: 0}
+    otaB: {cint: 0, fast: 0, gain: 0, offset: 0, se: 0, zero: 0}
+  - cal: 0
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 0, gain: 0, offset: 0, se: 0, zero: 0}
+    otaB: {cint: 0, fast: 0, gain: 0, offset: 0, se: 0, zero: 0}
+  length: 16
+chain:
+  csname: chain0_conf
+  harmonics:
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 46, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 127, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 110, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 127, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 116, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 108, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 124, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 78, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 106, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 103, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 56, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 85, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 81, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 111, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 59, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 89, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 120, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 127, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 80, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 118, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 100, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 127, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 111, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 78, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 68, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 127, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 127, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 94, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 120, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 109, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 60, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 102, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 112, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 97, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 103, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 109, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 81, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 95, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 91, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 116, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 63, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 102, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 127, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 63, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 126, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 57, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 127, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 102, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 63, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 95, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 72, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 70, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 64, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 90, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 79, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 103, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 127, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 86, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 79, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 86, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 116, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 70, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 78, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 127, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 92, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 101, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 58, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 91, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 91, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 87, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 117, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 127, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 57, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 96, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 79, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 101, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 79, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 123, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 127, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 79, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 83, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 102, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 93, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 127, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 112, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 127, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 88, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 124, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 64, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 70, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 86, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 93, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 88, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 92, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 106, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 63, se: 1, zero: 0}
+  length: 48
+dac: {cs: dac, vbias_buf: 0.0, vbias_core: 0.0, vcmi: 1.24998935546875, vina: 1.24998935546875,
+  vinb: 1.24998935546875}
+date: 2013-04-08_134303
+i2c: {delay: 0.0001, interface: 3, pid: 24593, scl: 0, sda: 1, timeout: 100, vid: 1027}
+ibias: {addr: 0, gpo1: 0, gpo2: 0, posA: 128, posB: 128}
+isupply: {AVdd_atoi: 0.0019357431640624999, DVdd_ns430: 0.0003862021337890625, Vdd_digi: 0.02034667578125,
+  Vdd_ns430: 0.02032225}
+mux:
+  csname: chain0_mux
+  otaA: {fast: 1, gain: 15, mode: 2, offset: 44}
+  otaB: {fast: 1, gain: 15, mode: 2, offset: 81}
+  selA: 48
+  selB: 48
+spi0:
+  cs:
+    _idle: [-1, 200]
+    _mask: [-1, 56]
+    adc: [1, 232]
+    convst: [1, 248]
+    dac: [1, 216]
+    flash: [3, 192]
+  freq: 1000000.0
+  interface: 1
+  latency: 1
+  pid: 24593
+  pindir: 251
+  pinstate: 249
+  vid: 1027
+spi1:
+  cs:
+    _idle: [-1, 248]
+    _mask: [-1, 248]
+    chain0_conf: [0, 240]
+    chain0_mux: [0, 232]
+    chain1_conf: [0, 216]
+    chain1_mux: [0, 184]
+  freq: 1000000.0
+  interface: 2
+  latency: 1
+  pid: 24593
+  pindir: 251
+  pinstate: 184
+  vid: 1027
+v430:
+  addr: 2
+  aliases: {va: vdigi, vb: avdd}
+  gpo1: 0
+  gpo2: 0
+  posA: 201
+  posB: 159
+  va: 1.2008223529411763
+  va_range: [0.5015, 1.3887]
+  vb: 2.5009129411764706
+  vb_range: [1.9552, 2.8304]
+vatoi:
+  addr: 2
+  aliases: {va: vdigi, vb: avdd}
+  gpo1: 0
+  gpo2: 0
+  posA: 201
+  posB: 159
+  va: 1.2008223529411763
+  va_range: [0.5015, 1.3887]
+  vb: 2.5009129411764706
+  vb_range: [1.9552, 2.8304]
diff --git a/python-lib/test-data/chip14/arb0/harmonic-sin-phase/arb0-2013-04-08_134411_5.0-005-030.npz b/python-lib/test-data/chip14/arb0/harmonic-sin-phase/arb0-2013-04-08_134411_5.0-005-030.npz
new file mode 100644 (file)
index 0000000..d5e22b0
Binary files /dev/null and b/python-lib/test-data/chip14/arb0/harmonic-sin-phase/arb0-2013-04-08_134411_5.0-005-030.npz differ
diff --git a/python-lib/test-data/chip14/arb0/harmonic-sin-phase/arb0-2013-04-08_134411_5.0-005-030.pdf b/python-lib/test-data/chip14/arb0/harmonic-sin-phase/arb0-2013-04-08_134411_5.0-005-030.pdf
new file mode 100644 (file)
index 0000000..f80af1d
Binary files /dev/null and b/python-lib/test-data/chip14/arb0/harmonic-sin-phase/arb0-2013-04-08_134411_5.0-005-030.pdf differ
diff --git a/python-lib/test-data/chip14/arb0/harmonic-sin-phase/arb0-2013-04-08_134411_5.0-005-030.yaml b/python-lib/test-data/chip14/arb0/harmonic-sin-phase/arb0-2013-04-08_134411_5.0-005-030.yaml
new file mode 100644 (file)
index 0000000..3cdb2fa
--- /dev/null
@@ -0,0 +1,335 @@
+amux:
+  csname: chain1_mux
+  otaA: {fast: 0, gain: 0, mode: 4, offset: 0}
+  otaB: {fast: 0, gain: 0, mode: 4, offset: 0}
+  selA: 16
+  selB: 16
+arb:
+  csname: chain1_conf
+  harmonics:
+  - cal: 0
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 1, fast: 0, gain: 15, offset: 117, se: 0, zero: 0}
+    otaB: {cint: 1, fast: 0, gain: 15, offset: 117, se: 0, zero: 0}
+  - cal: 0
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 0, gain: 0, offset: 0, se: 0, zero: 0}
+    otaB: {cint: 0, fast: 0, gain: 0, offset: 0, se: 0, zero: 0}
+  - cal: 0
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 0, gain: 0, offset: 0, se: 0, zero: 0}
+    otaB: {cint: 0, fast: 0, gain: 0, offset: 0, se: 0, zero: 0}
+  - cal: 0
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 0, gain: 0, offset: 0, se: 0, zero: 0}
+    otaB: {cint: 0, fast: 0, gain: 0, offset: 0, se: 0, zero: 0}
+  - cal: 0
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 0, gain: 0, offset: 0, se: 0, zero: 0}
+    otaB: {cint: 0, fast: 0, gain: 0, offset: 0, se: 0, zero: 0}
+  - cal: 0
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 0, gain: 0, offset: 0, se: 0, zero: 0}
+    otaB: {cint: 0, fast: 0, gain: 0, offset: 0, se: 0, zero: 0}
+  - cal: 0
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 0, gain: 0, offset: 0, se: 0, zero: 0}
+    otaB: {cint: 0, fast: 0, gain: 0, offset: 0, se: 0, zero: 0}
+  - cal: 0
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 0, gain: 0, offset: 0, se: 0, zero: 0}
+    otaB: {cint: 0, fast: 0, gain: 0, offset: 0, se: 0, zero: 0}
+  - cal: 0
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 0, gain: 0, offset: 0, se: 0, zero: 0}
+    otaB: {cint: 0, fast: 0, gain: 0, offset: 0, se: 0, zero: 0}
+  - cal: 0
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 0, gain: 0, offset: 0, se: 0, zero: 0}
+    otaB: {cint: 0, fast: 0, gain: 0, offset: 0, se: 0, zero: 0}
+  - cal: 0
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 0, gain: 0, offset: 0, se: 0, zero: 0}
+    otaB: {cint: 0, fast: 0, gain: 0, offset: 0, se: 0, zero: 0}
+  - cal: 0
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 0, gain: 0, offset: 0, se: 0, zero: 0}
+    otaB: {cint: 0, fast: 0, gain: 0, offset: 0, se: 0, zero: 0}
+  - cal: 0
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 0, gain: 0, offset: 0, se: 0, zero: 0}
+    otaB: {cint: 0, fast: 0, gain: 0, offset: 0, se: 0, zero: 0}
+  - cal: 0
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 0, gain: 0, offset: 0, se: 0, zero: 0}
+    otaB: {cint: 0, fast: 0, gain: 0, offset: 0, se: 0, zero: 0}
+  - cal: 0
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 0, gain: 0, offset: 0, se: 0, zero: 0}
+    otaB: {cint: 0, fast: 0, gain: 0, offset: 0, se: 0, zero: 0}
+  - cal: 0
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 0, gain: 0, offset: 0, se: 0, zero: 0}
+    otaB: {cint: 0, fast: 0, gain: 0, offset: 0, se: 0, zero: 0}
+  length: 16
+chain:
+  csname: chain0_conf
+  harmonics:
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 46, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 127, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 110, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 127, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 116, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 108, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 124, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 78, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 106, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 103, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 56, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 85, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 81, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 111, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 59, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 89, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 120, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 127, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 80, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 118, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 100, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 127, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 111, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 78, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 68, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 127, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 127, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 94, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 120, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 109, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 60, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 102, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 112, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 97, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 103, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 109, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 81, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 95, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 91, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 116, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 63, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 102, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 127, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 63, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 126, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 57, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 127, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 102, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 63, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 95, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 72, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 70, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 64, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 90, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 79, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 103, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 127, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 86, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 79, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 86, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 116, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 70, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 78, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 127, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 92, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 101, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 58, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 91, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 91, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 87, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 117, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 127, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 57, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 96, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 79, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 101, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 79, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 123, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 127, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 79, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 83, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 102, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 93, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 127, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 112, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 127, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 88, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 124, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 64, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 70, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 86, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 93, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 88, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 92, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 106, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 63, se: 1, zero: 0}
+  length: 48
+dac: {cs: dac, vbias_buf: 0.0, vbias_core: 0.0, vcmi: 1.24998935546875, vina: 1.24998935546875,
+  vinb: 1.24998935546875}
+date: 2013-04-08_134411
+i2c: {delay: 0.0001, interface: 3, pid: 24593, scl: 0, sda: 1, timeout: 100, vid: 1027}
+ibias: {addr: 0, gpo1: 0, gpo2: 0, posA: 128, posB: 128}
+isupply: {AVdd_atoi: 0.0019122333496093748, DVdd_ns430: 0.00038262986328125, Vdd_digi: 0.020013874511718748,
+  Vdd_ns430: 0.01998334228515625}
+mux:
+  csname: chain0_mux
+  otaA: {fast: 1, gain: 15, mode: 2, offset: 44}
+  otaB: {fast: 1, gain: 15, mode: 2, offset: 81}
+  selA: 48
+  selB: 48
+spi0:
+  cs:
+    _idle: [-1, 200]
+    _mask: [-1, 56]
+    adc: [1, 232]
+    convst: [1, 248]
+    dac: [1, 216]
+    flash: [3, 192]
+  freq: 1000000.0
+  interface: 1
+  latency: 1
+  pid: 24593
+  pindir: 251
+  pinstate: 249
+  vid: 1027
+spi1:
+  cs:
+    _idle: [-1, 248]
+    _mask: [-1, 248]
+    chain0_conf: [0, 240]
+    chain0_mux: [0, 232]
+    chain1_conf: [0, 216]
+    chain1_mux: [0, 184]
+  freq: 1000000.0
+  interface: 2
+  latency: 1
+  pid: 24593
+  pindir: 251
+  pinstate: 184
+  vid: 1027
+v430:
+  addr: 2
+  aliases: {va: vdigi, vb: avdd}
+  gpo1: 0
+  gpo2: 0
+  posA: 201
+  posB: 159
+  va: 1.2008223529411763
+  va_range: [0.5015, 1.3887]
+  vb: 2.5009129411764706
+  vb_range: [1.9552, 2.8304]
+vatoi:
+  addr: 2
+  aliases: {va: vdigi, vb: avdd}
+  gpo1: 0
+  gpo2: 0
+  posA: 201
+  posB: 159
+  va: 1.2008223529411763
+  va_range: [0.5015, 1.3887]
+  vb: 2.5009129411764706
+  vb_range: [1.9552, 2.8304]
diff --git a/python-lib/test-data/chip14/arb0/harmonic-sin-phase/arb0-2013-04-08_134625_5.0-005-035.npz b/python-lib/test-data/chip14/arb0/harmonic-sin-phase/arb0-2013-04-08_134625_5.0-005-035.npz
new file mode 100644 (file)
index 0000000..cbf34b0
Binary files /dev/null and b/python-lib/test-data/chip14/arb0/harmonic-sin-phase/arb0-2013-04-08_134625_5.0-005-035.npz differ
diff --git a/python-lib/test-data/chip14/arb0/harmonic-sin-phase/arb0-2013-04-08_134625_5.0-005-035.pdf b/python-lib/test-data/chip14/arb0/harmonic-sin-phase/arb0-2013-04-08_134625_5.0-005-035.pdf
new file mode 100644 (file)
index 0000000..6a216ac
Binary files /dev/null and b/python-lib/test-data/chip14/arb0/harmonic-sin-phase/arb0-2013-04-08_134625_5.0-005-035.pdf differ
diff --git a/python-lib/test-data/chip14/arb0/harmonic-sin-phase/arb0-2013-04-08_134625_5.0-005-035.yaml b/python-lib/test-data/chip14/arb0/harmonic-sin-phase/arb0-2013-04-08_134625_5.0-005-035.yaml
new file mode 100644 (file)
index 0000000..54c9213
--- /dev/null
@@ -0,0 +1,335 @@
+amux:
+  csname: chain1_mux
+  otaA: {fast: 0, gain: 0, mode: 4, offset: 0}
+  otaB: {fast: 0, gain: 0, mode: 4, offset: 0}
+  selA: 16
+  selB: 16
+arb:
+  csname: chain1_conf
+  harmonics:
+  - cal: 0
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 1, fast: 0, gain: 15, offset: 117, se: 0, zero: 0}
+    otaB: {cint: 1, fast: 0, gain: 15, offset: 117, se: 0, zero: 0}
+  - cal: 0
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 0, gain: 0, offset: 0, se: 0, zero: 0}
+    otaB: {cint: 0, fast: 0, gain: 0, offset: 0, se: 0, zero: 0}
+  - cal: 0
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 0, gain: 0, offset: 0, se: 0, zero: 0}
+    otaB: {cint: 0, fast: 0, gain: 0, offset: 0, se: 0, zero: 0}
+  - cal: 0
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 0, gain: 0, offset: 0, se: 0, zero: 0}
+    otaB: {cint: 0, fast: 0, gain: 0, offset: 0, se: 0, zero: 0}
+  - cal: 0
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 0, gain: 0, offset: 0, se: 0, zero: 0}
+    otaB: {cint: 0, fast: 0, gain: 0, offset: 0, se: 0, zero: 0}
+  - cal: 0
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 0, gain: 0, offset: 0, se: 0, zero: 0}
+    otaB: {cint: 0, fast: 0, gain: 0, offset: 0, se: 0, zero: 0}
+  - cal: 0
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 0, gain: 0, offset: 0, se: 0, zero: 0}
+    otaB: {cint: 0, fast: 0, gain: 0, offset: 0, se: 0, zero: 0}
+  - cal: 0
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 0, gain: 0, offset: 0, se: 0, zero: 0}
+    otaB: {cint: 0, fast: 0, gain: 0, offset: 0, se: 0, zero: 0}
+  - cal: 0
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 0, gain: 0, offset: 0, se: 0, zero: 0}
+    otaB: {cint: 0, fast: 0, gain: 0, offset: 0, se: 0, zero: 0}
+  - cal: 0
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 0, gain: 0, offset: 0, se: 0, zero: 0}
+    otaB: {cint: 0, fast: 0, gain: 0, offset: 0, se: 0, zero: 0}
+  - cal: 0
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 0, gain: 0, offset: 0, se: 0, zero: 0}
+    otaB: {cint: 0, fast: 0, gain: 0, offset: 0, se: 0, zero: 0}
+  - cal: 0
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 0, gain: 0, offset: 0, se: 0, zero: 0}
+    otaB: {cint: 0, fast: 0, gain: 0, offset: 0, se: 0, zero: 0}
+  - cal: 0
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 0, gain: 0, offset: 0, se: 0, zero: 0}
+    otaB: {cint: 0, fast: 0, gain: 0, offset: 0, se: 0, zero: 0}
+  - cal: 0
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 0, gain: 0, offset: 0, se: 0, zero: 0}
+    otaB: {cint: 0, fast: 0, gain: 0, offset: 0, se: 0, zero: 0}
+  - cal: 0
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 0, gain: 0, offset: 0, se: 0, zero: 0}
+    otaB: {cint: 0, fast: 0, gain: 0, offset: 0, se: 0, zero: 0}
+  - cal: 0
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 0, gain: 0, offset: 0, se: 0, zero: 0}
+    otaB: {cint: 0, fast: 0, gain: 0, offset: 0, se: 0, zero: 0}
+  length: 16
+chain:
+  csname: chain0_conf
+  harmonics:
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 46, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 127, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 110, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 127, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 116, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 108, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 124, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 78, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 106, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 103, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 56, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 85, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 81, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 111, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 59, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 89, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 120, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 127, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 80, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 118, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 100, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 127, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 111, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 78, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 68, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 127, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 127, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 94, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 120, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 109, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 60, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 102, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 112, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 97, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 103, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 109, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 81, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 95, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 91, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 116, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 63, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 102, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 127, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 63, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 126, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 57, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 127, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 102, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 63, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 95, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 72, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 70, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 64, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 90, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 79, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 103, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 127, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 86, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 79, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 86, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 116, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 70, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 78, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 127, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 92, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 101, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 58, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 91, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 91, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 87, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 117, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 127, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 57, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 96, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 79, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 101, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 79, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 123, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 127, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 79, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 83, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 102, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 93, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 127, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 112, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 127, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 88, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 124, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 64, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 70, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 86, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 93, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 88, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 92, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 106, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 63, se: 1, zero: 0}
+  length: 48
+dac: {cs: dac, vbias_buf: 0.0, vbias_core: 0.0, vcmi: 1.24998935546875, vina: 1.24998935546875,
+  vinb: 1.24998935546875}
+date: 2013-04-08_134625
+i2c: {delay: 0.0001, interface: 3, pid: 24593, scl: 0, sda: 1, timeout: 100, vid: 1027}
+ibias: {addr: 0, gpo1: 0, gpo2: 0, posA: 128, posB: 128}
+isupply: {AVdd_atoi: 0.001860328564453125, DVdd_ns430: 0.00037255422851562497, Vdd_digi: 0.020016927734375002,
+  Vdd_ns430: 0.02000166162109375}
+mux:
+  csname: chain0_mux
+  otaA: {fast: 1, gain: 15, mode: 2, offset: 44}
+  otaB: {fast: 1, gain: 15, mode: 2, offset: 81}
+  selA: 48
+  selB: 48
+spi0:
+  cs:
+    _idle: [-1, 200]
+    _mask: [-1, 56]
+    adc: [1, 232]
+    convst: [1, 248]
+    dac: [1, 216]
+    flash: [3, 192]
+  freq: 1000000.0
+  interface: 1
+  latency: 1
+  pid: 24593
+  pindir: 251
+  pinstate: 249
+  vid: 1027
+spi1:
+  cs:
+    _idle: [-1, 248]
+    _mask: [-1, 248]
+    chain0_conf: [0, 240]
+    chain0_mux: [0, 232]
+    chain1_conf: [0, 216]
+    chain1_mux: [0, 184]
+  freq: 1000000.0
+  interface: 2
+  latency: 1
+  pid: 24593
+  pindir: 251
+  pinstate: 184
+  vid: 1027
+v430:
+  addr: 2
+  aliases: {va: vdigi, vb: avdd}
+  gpo1: 0
+  gpo2: 0
+  posA: 201
+  posB: 159
+  va: 1.2008223529411763
+  va_range: [0.5015, 1.3887]
+  vb: 2.5009129411764706
+  vb_range: [1.9552, 2.8304]
+vatoi:
+  addr: 2
+  aliases: {va: vdigi, vb: avdd}
+  gpo1: 0
+  gpo2: 0
+  posA: 201
+  posB: 159
+  va: 1.2008223529411763
+  va_range: [0.5015, 1.3887]
+  vb: 2.5009129411764706
+  vb_range: [1.9552, 2.8304]
diff --git a/python-lib/test-data/chip14/arb0/harmonic-sin-phase/arb0-2013-04-08_134839_5.0-010-005.npz b/python-lib/test-data/chip14/arb0/harmonic-sin-phase/arb0-2013-04-08_134839_5.0-010-005.npz
new file mode 100644 (file)
index 0000000..8190ca0
Binary files /dev/null and b/python-lib/test-data/chip14/arb0/harmonic-sin-phase/arb0-2013-04-08_134839_5.0-010-005.npz differ
diff --git a/python-lib/test-data/chip14/arb0/harmonic-sin-phase/arb0-2013-04-08_134839_5.0-010-005.pdf b/python-lib/test-data/chip14/arb0/harmonic-sin-phase/arb0-2013-04-08_134839_5.0-010-005.pdf
new file mode 100644 (file)
index 0000000..daf05c5
Binary files /dev/null and b/python-lib/test-data/chip14/arb0/harmonic-sin-phase/arb0-2013-04-08_134839_5.0-010-005.pdf differ
diff --git a/python-lib/test-data/chip14/arb0/harmonic-sin-phase/arb0-2013-04-08_134839_5.0-010-005.yaml b/python-lib/test-data/chip14/arb0/harmonic-sin-phase/arb0-2013-04-08_134839_5.0-010-005.yaml
new file mode 100644 (file)
index 0000000..b11fe7f
--- /dev/null
@@ -0,0 +1,335 @@
+amux:
+  csname: chain1_mux
+  otaA: {fast: 0, gain: 0, mode: 4, offset: 0}
+  otaB: {fast: 0, gain: 0, mode: 4, offset: 0}
+  selA: 16
+  selB: 16
+arb:
+  csname: chain1_conf
+  harmonics:
+  - cal: 0
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 1, fast: 0, gain: 15, offset: 117, se: 0, zero: 0}
+    otaB: {cint: 1, fast: 0, gain: 15, offset: 117, se: 0, zero: 0}
+  - cal: 0
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 0, gain: 0, offset: 0, se: 0, zero: 0}
+    otaB: {cint: 0, fast: 0, gain: 0, offset: 0, se: 0, zero: 0}
+  - cal: 0
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 0, gain: 0, offset: 0, se: 0, zero: 0}
+    otaB: {cint: 0, fast: 0, gain: 0, offset: 0, se: 0, zero: 0}
+  - cal: 0
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 0, gain: 0, offset: 0, se: 0, zero: 0}
+    otaB: {cint: 0, fast: 0, gain: 0, offset: 0, se: 0, zero: 0}
+  - cal: 0
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 0, gain: 0, offset: 0, se: 0, zero: 0}
+    otaB: {cint: 0, fast: 0, gain: 0, offset: 0, se: 0, zero: 0}
+  - cal: 0
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 0, gain: 0, offset: 0, se: 0, zero: 0}
+    otaB: {cint: 0, fast: 0, gain: 0, offset: 0, se: 0, zero: 0}
+  - cal: 0
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 0, gain: 0, offset: 0, se: 0, zero: 0}
+    otaB: {cint: 0, fast: 0, gain: 0, offset: 0, se: 0, zero: 0}
+  - cal: 0
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 0, gain: 0, offset: 0, se: 0, zero: 0}
+    otaB: {cint: 0, fast: 0, gain: 0, offset: 0, se: 0, zero: 0}
+  - cal: 0
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 0, gain: 0, offset: 0, se: 0, zero: 0}
+    otaB: {cint: 0, fast: 0, gain: 0, offset: 0, se: 0, zero: 0}
+  - cal: 0
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 0, gain: 0, offset: 0, se: 0, zero: 0}
+    otaB: {cint: 0, fast: 0, gain: 0, offset: 0, se: 0, zero: 0}
+  - cal: 0
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 0, gain: 0, offset: 0, se: 0, zero: 0}
+    otaB: {cint: 0, fast: 0, gain: 0, offset: 0, se: 0, zero: 0}
+  - cal: 0
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 0, gain: 0, offset: 0, se: 0, zero: 0}
+    otaB: {cint: 0, fast: 0, gain: 0, offset: 0, se: 0, zero: 0}
+  - cal: 0
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 0, gain: 0, offset: 0, se: 0, zero: 0}
+    otaB: {cint: 0, fast: 0, gain: 0, offset: 0, se: 0, zero: 0}
+  - cal: 0
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 0, gain: 0, offset: 0, se: 0, zero: 0}
+    otaB: {cint: 0, fast: 0, gain: 0, offset: 0, se: 0, zero: 0}
+  - cal: 0
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 0, gain: 0, offset: 0, se: 0, zero: 0}
+    otaB: {cint: 0, fast: 0, gain: 0, offset: 0, se: 0, zero: 0}
+  - cal: 0
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 0, gain: 0, offset: 0, se: 0, zero: 0}
+    otaB: {cint: 0, fast: 0, gain: 0, offset: 0, se: 0, zero: 0}
+  length: 16
+chain:
+  csname: chain0_conf
+  harmonics:
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 46, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 127, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 110, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 127, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 116, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 108, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 124, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 78, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 106, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 103, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 56, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 85, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 81, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 111, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 59, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 89, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 120, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 127, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 80, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 118, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 100, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 127, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 111, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 78, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 68, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 127, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 127, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 94, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 120, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 109, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 60, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 102, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 112, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 97, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 103, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 109, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 81, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 95, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 91, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 116, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 63, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 102, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 127, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 63, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 126, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 57, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 127, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 102, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 63, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 95, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 72, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 70, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 64, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 90, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 79, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 103, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 127, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 86, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 79, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 86, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 116, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 70, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 78, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 127, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 92, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 101, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 58, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 91, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 91, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 87, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 117, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 127, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 57, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 96, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 79, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 101, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 79, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 123, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 127, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 79, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 83, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 102, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 93, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 127, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 112, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 127, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 88, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 124, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 64, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 70, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 86, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 93, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 88, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 92, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 106, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 63, se: 1, zero: 0}
+  length: 48
+dac: {cs: dac, vbias_buf: 0.0, vbias_core: 0.0, vcmi: 1.24998935546875, vina: 1.24998935546875,
+  vinb: 1.24998935546875}
+date: 2013-04-08_134839
+i2c: {delay: 0.0001, interface: 3, pid: 24593, scl: 0, sda: 1, timeout: 100, vid: 1027}
+ibias: {addr: 0, gpo1: 0, gpo2: 0, posA: 128, posB: 128}
+isupply: {AVdd_atoi: 0.0020085625244140623, DVdd_ns430: 0.00040186516601562497, Vdd_digi: 0.01961084912109375,
+  Vdd_ns430: 0.01965359423828125}
+mux:
+  csname: chain0_mux
+  otaA: {fast: 1, gain: 15, mode: 2, offset: 44}
+  otaB: {fast: 1, gain: 15, mode: 2, offset: 81}
+  selA: 48
+  selB: 48
+spi0:
+  cs:
+    _idle: [-1, 200]
+    _mask: [-1, 56]
+    adc: [1, 232]
+    convst: [1, 248]
+    dac: [1, 216]
+    flash: [3, 192]
+  freq: 1000000.0
+  interface: 1
+  latency: 1
+  pid: 24593
+  pindir: 251
+  pinstate: 249
+  vid: 1027
+spi1:
+  cs:
+    _idle: [-1, 248]
+    _mask: [-1, 248]
+    chain0_conf: [0, 240]
+    chain0_mux: [0, 232]
+    chain1_conf: [0, 216]
+    chain1_mux: [0, 184]
+  freq: 1000000.0
+  interface: 2
+  latency: 1
+  pid: 24593
+  pindir: 251
+  pinstate: 184
+  vid: 1027
+v430:
+  addr: 2
+  aliases: {va: vdigi, vb: avdd}
+  gpo1: 0
+  gpo2: 0
+  posA: 201
+  posB: 159
+  va: 1.2008223529411763
+  va_range: [0.5015, 1.3887]
+  vb: 2.5009129411764706
+  vb_range: [1.9552, 2.8304]
+vatoi:
+  addr: 2
+  aliases: {va: vdigi, vb: avdd}
+  gpo1: 0
+  gpo2: 0
+  posA: 201
+  posB: 159
+  va: 1.2008223529411763
+  va_range: [0.5015, 1.3887]
+  vb: 2.5009129411764706
+  vb_range: [1.9552, 2.8304]
diff --git a/python-lib/test-data/chip14/arb0/harmonic-sin-phase/arb0-2013-04-08_135154_5.0-010-015.npz b/python-lib/test-data/chip14/arb0/harmonic-sin-phase/arb0-2013-04-08_135154_5.0-010-015.npz
new file mode 100644 (file)
index 0000000..4c84a6b
Binary files /dev/null and b/python-lib/test-data/chip14/arb0/harmonic-sin-phase/arb0-2013-04-08_135154_5.0-010-015.npz differ
diff --git a/python-lib/test-data/chip14/arb0/harmonic-sin-phase/arb0-2013-04-08_135154_5.0-010-015.pdf b/python-lib/test-data/chip14/arb0/harmonic-sin-phase/arb0-2013-04-08_135154_5.0-010-015.pdf
new file mode 100644 (file)
index 0000000..24b6238
Binary files /dev/null and b/python-lib/test-data/chip14/arb0/harmonic-sin-phase/arb0-2013-04-08_135154_5.0-010-015.pdf differ
diff --git a/python-lib/test-data/chip14/arb0/harmonic-sin-phase/arb0-2013-04-08_135154_5.0-010-015.yaml b/python-lib/test-data/chip14/arb0/harmonic-sin-phase/arb0-2013-04-08_135154_5.0-010-015.yaml
new file mode 100644 (file)
index 0000000..3f9d3f8
--- /dev/null
@@ -0,0 +1,335 @@
+amux:
+  csname: chain1_mux
+  otaA: {fast: 0, gain: 0, mode: 4, offset: 0}
+  otaB: {fast: 0, gain: 0, mode: 4, offset: 0}
+  selA: 16
+  selB: 16
+arb:
+  csname: chain1_conf
+  harmonics:
+  - cal: 0
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 1, fast: 0, gain: 15, offset: 117, se: 0, zero: 0}
+    otaB: {cint: 1, fast: 0, gain: 15, offset: 117, se: 0, zero: 0}
+  - cal: 0
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 0, gain: 0, offset: 0, se: 0, zero: 0}
+    otaB: {cint: 0, fast: 0, gain: 0, offset: 0, se: 0, zero: 0}
+  - cal: 0
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 0, gain: 0, offset: 0, se: 0, zero: 0}
+    otaB: {cint: 0, fast: 0, gain: 0, offset: 0, se: 0, zero: 0}
+  - cal: 0
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 0, gain: 0, offset: 0, se: 0, zero: 0}
+    otaB: {cint: 0, fast: 0, gain: 0, offset: 0, se: 0, zero: 0}
+  - cal: 0
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 0, gain: 0, offset: 0, se: 0, zero: 0}
+    otaB: {cint: 0, fast: 0, gain: 0, offset: 0, se: 0, zero: 0}
+  - cal: 0
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 0, gain: 0, offset: 0, se: 0, zero: 0}
+    otaB: {cint: 0, fast: 0, gain: 0, offset: 0, se: 0, zero: 0}
+  - cal: 0
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 0, gain: 0, offset: 0, se: 0, zero: 0}
+    otaB: {cint: 0, fast: 0, gain: 0, offset: 0, se: 0, zero: 0}
+  - cal: 0
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 0, gain: 0, offset: 0, se: 0, zero: 0}
+    otaB: {cint: 0, fast: 0, gain: 0, offset: 0, se: 0, zero: 0}
+  - cal: 0
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 0, gain: 0, offset: 0, se: 0, zero: 0}
+    otaB: {cint: 0, fast: 0, gain: 0, offset: 0, se: 0, zero: 0}
+  - cal: 0
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 0, gain: 0, offset: 0, se: 0, zero: 0}
+    otaB: {cint: 0, fast: 0, gain: 0, offset: 0, se: 0, zero: 0}
+  - cal: 0
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 0, gain: 0, offset: 0, se: 0, zero: 0}
+    otaB: {cint: 0, fast: 0, gain: 0, offset: 0, se: 0, zero: 0}
+  - cal: 0
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 0, gain: 0, offset: 0, se: 0, zero: 0}
+    otaB: {cint: 0, fast: 0, gain: 0, offset: 0, se: 0, zero: 0}
+  - cal: 0
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 0, gain: 0, offset: 0, se: 0, zero: 0}
+    otaB: {cint: 0, fast: 0, gain: 0, offset: 0, se: 0, zero: 0}
+  - cal: 0
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 0, gain: 0, offset: 0, se: 0, zero: 0}
+    otaB: {cint: 0, fast: 0, gain: 0, offset: 0, se: 0, zero: 0}
+  - cal: 0
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 0, gain: 0, offset: 0, se: 0, zero: 0}
+    otaB: {cint: 0, fast: 0, gain: 0, offset: 0, se: 0, zero: 0}
+  - cal: 0
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 0, gain: 0, offset: 0, se: 0, zero: 0}
+    otaB: {cint: 0, fast: 0, gain: 0, offset: 0, se: 0, zero: 0}
+  length: 16
+chain:
+  csname: chain0_conf
+  harmonics:
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 46, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 127, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 110, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 127, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 116, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 108, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 124, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 78, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 106, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 103, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 56, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 85, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 81, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 111, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 59, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 89, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 120, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 127, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 80, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 118, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 100, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 127, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 111, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 78, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 68, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 127, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 127, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 94, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 120, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 109, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 60, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 102, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 112, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 97, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 103, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 109, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 81, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 95, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 91, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 116, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 63, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 102, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 127, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 63, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 126, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 57, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 127, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 102, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 63, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 95, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 72, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 70, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 64, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 90, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 79, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 103, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 127, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 86, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 79, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 86, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 116, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 70, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 78, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 127, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 92, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 101, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 58, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 91, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 91, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 87, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 117, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 127, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 57, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 96, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 79, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 101, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 79, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 123, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 127, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 79, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 83, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 102, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 93, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 127, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 112, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 127, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 88, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 124, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 64, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 70, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 86, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 93, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 88, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 92, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 106, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 63, se: 1, zero: 0}
+  length: 48
+dac: {cs: dac, vbias_buf: 0.0, vbias_core: 0.0, vcmi: 1.24998935546875, vina: 1.24998935546875,
+  vinb: 1.24998935546875}
+date: 2013-04-08_135154
+i2c: {delay: 0.0001, interface: 3, pid: 24593, scl: 0, sda: 1, timeout: 100, vid: 1027}
+ibias: {addr: 0, gpo1: 0, gpo2: 0, posA: 128, posB: 128}
+isupply: {AVdd_atoi: 0.0019624588623046875, DVdd_ns430: 0.000391606337890625, Vdd_digi: 0.0199986083984375,
+  Vdd_ns430: 0.02000166162109375}
+mux:
+  csname: chain0_mux
+  otaA: {fast: 1, gain: 15, mode: 2, offset: 44}
+  otaB: {fast: 1, gain: 15, mode: 2, offset: 81}
+  selA: 48
+  selB: 48
+spi0:
+  cs:
+    _idle: [-1, 200]
+    _mask: [-1, 56]
+    adc: [1, 232]
+    convst: [1, 248]
+    dac: [1, 216]
+    flash: [3, 192]
+  freq: 1000000.0
+  interface: 1
+  latency: 1
+  pid: 24593
+  pindir: 251
+  pinstate: 249
+  vid: 1027
+spi1:
+  cs:
+    _idle: [-1, 248]
+    _mask: [-1, 248]
+    chain0_conf: [0, 240]
+    chain0_mux: [0, 232]
+    chain1_conf: [0, 216]
+    chain1_mux: [0, 184]
+  freq: 1000000.0
+  interface: 2
+  latency: 1
+  pid: 24593
+  pindir: 251
+  pinstate: 184
+  vid: 1027
+v430:
+  addr: 2
+  aliases: {va: vdigi, vb: avdd}
+  gpo1: 0
+  gpo2: 0
+  posA: 201
+  posB: 159
+  va: 1.2008223529411763
+  va_range: [0.5015, 1.3887]
+  vb: 2.5009129411764706
+  vb_range: [1.9552, 2.8304]
+vatoi:
+  addr: 2
+  aliases: {va: vdigi, vb: avdd}
+  gpo1: 0
+  gpo2: 0
+  posA: 201
+  posB: 159
+  va: 1.2008223529411763
+  va_range: [0.5015, 1.3887]
+  vb: 2.5009129411764706
+  vb_range: [1.9552, 2.8304]
diff --git a/python-lib/test-data/chip14/arb0/harmonic-sin-phase/arb0-2013-04-08_135413_5.0-010-020.npz b/python-lib/test-data/chip14/arb0/harmonic-sin-phase/arb0-2013-04-08_135413_5.0-010-020.npz
new file mode 100644 (file)
index 0000000..40b0cfe
Binary files /dev/null and b/python-lib/test-data/chip14/arb0/harmonic-sin-phase/arb0-2013-04-08_135413_5.0-010-020.npz differ
diff --git a/python-lib/test-data/chip14/arb0/harmonic-sin-phase/arb0-2013-04-08_135413_5.0-010-020.pdf b/python-lib/test-data/chip14/arb0/harmonic-sin-phase/arb0-2013-04-08_135413_5.0-010-020.pdf
new file mode 100644 (file)
index 0000000..50dfcda
Binary files /dev/null and b/python-lib/test-data/chip14/arb0/harmonic-sin-phase/arb0-2013-04-08_135413_5.0-010-020.pdf differ
diff --git a/python-lib/test-data/chip14/arb0/harmonic-sin-phase/arb0-2013-04-08_135413_5.0-010-020.yaml b/python-lib/test-data/chip14/arb0/harmonic-sin-phase/arb0-2013-04-08_135413_5.0-010-020.yaml
new file mode 100644 (file)
index 0000000..900bff4
--- /dev/null
@@ -0,0 +1,335 @@
+amux:
+  csname: chain1_mux
+  otaA: {fast: 0, gain: 0, mode: 4, offset: 0}
+  otaB: {fast: 0, gain: 0, mode: 4, offset: 0}
+  selA: 16
+  selB: 16
+arb:
+  csname: chain1_conf
+  harmonics:
+  - cal: 0
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 1, fast: 0, gain: 15, offset: 117, se: 0, zero: 0}
+    otaB: {cint: 1, fast: 0, gain: 15, offset: 117, se: 0, zero: 0}
+  - cal: 0
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 0, gain: 0, offset: 0, se: 0, zero: 0}
+    otaB: {cint: 0, fast: 0, gain: 0, offset: 0, se: 0, zero: 0}
+  - cal: 0
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 0, gain: 0, offset: 0, se: 0, zero: 0}
+    otaB: {cint: 0, fast: 0, gain: 0, offset: 0, se: 0, zero: 0}
+  - cal: 0
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 0, gain: 0, offset: 0, se: 0, zero: 0}
+    otaB: {cint: 0, fast: 0, gain: 0, offset: 0, se: 0, zero: 0}
+  - cal: 0
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 0, gain: 0, offset: 0, se: 0, zero: 0}
+    otaB: {cint: 0, fast: 0, gain: 0, offset: 0, se: 0, zero: 0}
+  - cal: 0
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 0, gain: 0, offset: 0, se: 0, zero: 0}
+    otaB: {cint: 0, fast: 0, gain: 0, offset: 0, se: 0, zero: 0}
+  - cal: 0
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 0, gain: 0, offset: 0, se: 0, zero: 0}
+    otaB: {cint: 0, fast: 0, gain: 0, offset: 0, se: 0, zero: 0}
+  - cal: 0
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 0, gain: 0, offset: 0, se: 0, zero: 0}
+    otaB: {cint: 0, fast: 0, gain: 0, offset: 0, se: 0, zero: 0}
+  - cal: 0
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 0, gain: 0, offset: 0, se: 0, zero: 0}
+    otaB: {cint: 0, fast: 0, gain: 0, offset: 0, se: 0, zero: 0}
+  - cal: 0
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 0, gain: 0, offset: 0, se: 0, zero: 0}
+    otaB: {cint: 0, fast: 0, gain: 0, offset: 0, se: 0, zero: 0}
+  - cal: 0
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 0, gain: 0, offset: 0, se: 0, zero: 0}
+    otaB: {cint: 0, fast: 0, gain: 0, offset: 0, se: 0, zero: 0}
+  - cal: 0
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 0, gain: 0, offset: 0, se: 0, zero: 0}
+    otaB: {cint: 0, fast: 0, gain: 0, offset: 0, se: 0, zero: 0}
+  - cal: 0
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 0, gain: 0, offset: 0, se: 0, zero: 0}
+    otaB: {cint: 0, fast: 0, gain: 0, offset: 0, se: 0, zero: 0}
+  - cal: 0
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 0, gain: 0, offset: 0, se: 0, zero: 0}
+    otaB: {cint: 0, fast: 0, gain: 0, offset: 0, se: 0, zero: 0}
+  - cal: 0
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 0, gain: 0, offset: 0, se: 0, zero: 0}
+    otaB: {cint: 0, fast: 0, gain: 0, offset: 0, se: 0, zero: 0}
+  - cal: 0
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 0, gain: 0, offset: 0, se: 0, zero: 0}
+    otaB: {cint: 0, fast: 0, gain: 0, offset: 0, se: 0, zero: 0}
+  length: 16
+chain:
+  csname: chain0_conf
+  harmonics:
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 46, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 127, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 110, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 127, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 116, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 108, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 124, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 78, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 106, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 103, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 56, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 85, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 81, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 111, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 59, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 89, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 120, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 127, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 80, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 118, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 100, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 127, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 111, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 78, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 68, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 127, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 127, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 94, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 120, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 109, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 60, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 102, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 112, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 97, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 103, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 109, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 81, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 95, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 91, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 116, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 63, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 102, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 127, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 63, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 126, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 57, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 127, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 102, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 63, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 95, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 72, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 70, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 64, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 90, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 79, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 103, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 127, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 86, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 79, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 86, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 116, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 70, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 78, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 127, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 92, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 101, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 58, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 91, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 91, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 87, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 117, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 127, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 57, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 96, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 79, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 101, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 79, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 123, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 127, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 79, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 83, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 102, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 93, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 127, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 112, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 127, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 88, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 124, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 64, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 70, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 86, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 93, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 88, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 92, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 106, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 63, se: 1, zero: 0}
+  length: 48
+dac: {cs: dac, vbias_buf: 0.0, vbias_core: 0.0, vcmi: 1.24998935546875, vina: 1.24998935546875,
+  vinb: 1.24998935546875}
+date: 2013-04-08_135413
+i2c: {delay: 0.0001, interface: 3, pid: 24593, scl: 0, sda: 1, timeout: 100, vid: 1027}
+ibias: {addr: 0, gpo1: 0, gpo2: 0, posA: 128, posB: 128}
+isupply: {AVdd_atoi: 0.001886586279296875, DVdd_ns430: 0.00037750044921874994, Vdd_digi: 0.0203161435546875,
+  Vdd_ns430: 0.020325303222656247}
+mux:
+  csname: chain0_mux
+  otaA: {fast: 1, gain: 15, mode: 2, offset: 44}
+  otaB: {fast: 1, gain: 15, mode: 2, offset: 81}
+  selA: 48
+  selB: 48
+spi0:
+  cs:
+    _idle: [-1, 200]
+    _mask: [-1, 56]
+    adc: [1, 232]
+    convst: [1, 248]
+    dac: [1, 216]
+    flash: [3, 192]
+  freq: 1000000.0
+  interface: 1
+  latency: 1
+  pid: 24593
+  pindir: 251
+  pinstate: 249
+  vid: 1027
+spi1:
+  cs:
+    _idle: [-1, 248]
+    _mask: [-1, 248]
+    chain0_conf: [0, 240]
+    chain0_mux: [0, 232]
+    chain1_conf: [0, 216]
+    chain1_mux: [0, 184]
+  freq: 1000000.0
+  interface: 2
+  latency: 1
+  pid: 24593
+  pindir: 251
+  pinstate: 184
+  vid: 1027
+v430:
+  addr: 2
+  aliases: {va: vdigi, vb: avdd}
+  gpo1: 0
+  gpo2: 0
+  posA: 201
+  posB: 159
+  va: 1.2008223529411763
+  va_range: [0.5015, 1.3887]
+  vb: 2.5009129411764706
+  vb_range: [1.9552, 2.8304]
+vatoi:
+  addr: 2
+  aliases: {va: vdigi, vb: avdd}
+  gpo1: 0
+  gpo2: 0
+  posA: 201
+  posB: 159
+  va: 1.2008223529411763
+  va_range: [0.5015, 1.3887]
+  vb: 2.5009129411764706
+  vb_range: [1.9552, 2.8304]
diff --git a/python-lib/test-data/chip14/arb0/harmonic-sin-phase/arb0-2013-04-08_135842_5.0-010-025.npz b/python-lib/test-data/chip14/arb0/harmonic-sin-phase/arb0-2013-04-08_135842_5.0-010-025.npz
new file mode 100644 (file)
index 0000000..39eadd1
Binary files /dev/null and b/python-lib/test-data/chip14/arb0/harmonic-sin-phase/arb0-2013-04-08_135842_5.0-010-025.npz differ
diff --git a/python-lib/test-data/chip14/arb0/harmonic-sin-phase/arb0-2013-04-08_135842_5.0-010-025.pdf b/python-lib/test-data/chip14/arb0/harmonic-sin-phase/arb0-2013-04-08_135842_5.0-010-025.pdf
new file mode 100644 (file)
index 0000000..16d1028
Binary files /dev/null and b/python-lib/test-data/chip14/arb0/harmonic-sin-phase/arb0-2013-04-08_135842_5.0-010-025.pdf differ
diff --git a/python-lib/test-data/chip14/arb0/harmonic-sin-phase/arb0-2013-04-08_135842_5.0-010-025.yaml b/python-lib/test-data/chip14/arb0/harmonic-sin-phase/arb0-2013-04-08_135842_5.0-010-025.yaml
new file mode 100644 (file)
index 0000000..eaa946e
--- /dev/null
@@ -0,0 +1,335 @@
+amux:
+  csname: chain1_mux
+  otaA: {fast: 0, gain: 0, mode: 4, offset: 0}
+  otaB: {fast: 0, gain: 0, mode: 4, offset: 0}
+  selA: 16
+  selB: 16
+arb:
+  csname: chain1_conf
+  harmonics:
+  - cal: 0
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 1, fast: 0, gain: 15, offset: 117, se: 0, zero: 0}
+    otaB: {cint: 1, fast: 0, gain: 15, offset: 117, se: 0, zero: 0}
+  - cal: 0
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 0, gain: 0, offset: 0, se: 0, zero: 0}
+    otaB: {cint: 0, fast: 0, gain: 0, offset: 0, se: 0, zero: 0}
+  - cal: 0
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 0, gain: 0, offset: 0, se: 0, zero: 0}
+    otaB: {cint: 0, fast: 0, gain: 0, offset: 0, se: 0, zero: 0}
+  - cal: 0
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 0, gain: 0, offset: 0, se: 0, zero: 0}
+    otaB: {cint: 0, fast: 0, gain: 0, offset: 0, se: 0, zero: 0}
+  - cal: 0
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 0, gain: 0, offset: 0, se: 0, zero: 0}
+    otaB: {cint: 0, fast: 0, gain: 0, offset: 0, se: 0, zero: 0}
+  - cal: 0
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 0, gain: 0, offset: 0, se: 0, zero: 0}
+    otaB: {cint: 0, fast: 0, gain: 0, offset: 0, se: 0, zero: 0}
+  - cal: 0
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 0, gain: 0, offset: 0, se: 0, zero: 0}
+    otaB: {cint: 0, fast: 0, gain: 0, offset: 0, se: 0, zero: 0}
+  - cal: 0
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 0, gain: 0, offset: 0, se: 0, zero: 0}
+    otaB: {cint: 0, fast: 0, gain: 0, offset: 0, se: 0, zero: 0}
+  - cal: 0
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 0, gain: 0, offset: 0, se: 0, zero: 0}
+    otaB: {cint: 0, fast: 0, gain: 0, offset: 0, se: 0, zero: 0}
+  - cal: 0
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 0, gain: 0, offset: 0, se: 0, zero: 0}
+    otaB: {cint: 0, fast: 0, gain: 0, offset: 0, se: 0, zero: 0}
+  - cal: 0
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 0, gain: 0, offset: 0, se: 0, zero: 0}
+    otaB: {cint: 0, fast: 0, gain: 0, offset: 0, se: 0, zero: 0}
+  - cal: 0
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 0, gain: 0, offset: 0, se: 0, zero: 0}
+    otaB: {cint: 0, fast: 0, gain: 0, offset: 0, se: 0, zero: 0}
+  - cal: 0
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 0, gain: 0, offset: 0, se: 0, zero: 0}
+    otaB: {cint: 0, fast: 0, gain: 0, offset: 0, se: 0, zero: 0}
+  - cal: 0
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 0, gain: 0, offset: 0, se: 0, zero: 0}
+    otaB: {cint: 0, fast: 0, gain: 0, offset: 0, se: 0, zero: 0}
+  - cal: 0
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 0, gain: 0, offset: 0, se: 0, zero: 0}
+    otaB: {cint: 0, fast: 0, gain: 0, offset: 0, se: 0, zero: 0}
+  - cal: 0
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 0, gain: 0, offset: 0, se: 0, zero: 0}
+    otaB: {cint: 0, fast: 0, gain: 0, offset: 0, se: 0, zero: 0}
+  length: 16
+chain:
+  csname: chain0_conf
+  harmonics:
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 46, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 127, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 110, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 127, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 116, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 108, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 124, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 78, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 106, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 103, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 56, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 85, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 81, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 111, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 59, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 89, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 120, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 127, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 80, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 118, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 100, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 127, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 111, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 78, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 68, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 127, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 127, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 94, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 120, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 109, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 60, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 102, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 112, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 97, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 103, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 109, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 81, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 95, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 91, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 116, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 63, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 102, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 127, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 63, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 126, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 57, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 127, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 102, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 63, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 95, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 72, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 70, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 64, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 90, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 79, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 103, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 127, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 86, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 79, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 86, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 116, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 70, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 78, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 127, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 92, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 101, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 58, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 91, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 91, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 87, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 117, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 127, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 57, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 96, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 79, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 101, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 79, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 123, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 127, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 79, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 83, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 102, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 93, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 127, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 112, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 127, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 88, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 124, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 64, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 70, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 86, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 93, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 88, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 92, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 106, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 63, se: 1, zero: 0}
+  length: 48
+dac: {cs: dac, vbias_buf: 0.0, vbias_core: 0.0, vcmi: 1.24998935546875, vina: 1.24998935546875,
+  vinb: 1.24998935546875}
+date: 2013-04-08_135842
+i2c: {delay: 0.0001, interface: 3, pid: 24593, scl: 0, sda: 1, timeout: 100, vid: 1027}
+ibias: {addr: 0, gpo1: 0, gpo2: 0, posA: 128, posB: 128}
+isupply: {AVdd_atoi: 0.0019355905029296873, DVdd_ns430: 0.00038720969726562497, Vdd_digi: 0.01976961669921875,
+  Vdd_ns430: 0.01983068115234375}
+mux:
+  csname: chain0_mux
+  otaA: {fast: 1, gain: 15, mode: 2, offset: 44}
+  otaB: {fast: 1, gain: 15, mode: 2, offset: 81}
+  selA: 48
+  selB: 48
+spi0:
+  cs:
+    _idle: [-1, 200]
+    _mask: [-1, 56]
+    adc: [1, 232]
+    convst: [1, 248]
+    dac: [1, 216]
+    flash: [3, 192]
+  freq: 1000000.0
+  interface: 1
+  latency: 1
+  pid: 24593
+  pindir: 251
+  pinstate: 249
+  vid: 1027
+spi1:
+  cs:
+    _idle: [-1, 248]
+    _mask: [-1, 248]
+    chain0_conf: [0, 240]
+    chain0_mux: [0, 232]
+    chain1_conf: [0, 216]
+    chain1_mux: [0, 184]
+  freq: 1000000.0
+  interface: 2
+  latency: 1
+  pid: 24593
+  pindir: 251
+  pinstate: 184
+  vid: 1027
+v430:
+  addr: 2
+  aliases: {va: vdigi, vb: avdd}
+  gpo1: 0
+  gpo2: 0
+  posA: 201
+  posB: 159
+  va: 1.2008223529411763
+  va_range: [0.5015, 1.3887]
+  vb: 2.5009129411764706
+  vb_range: [1.9552, 2.8304]
+vatoi:
+  addr: 2
+  aliases: {va: vdigi, vb: avdd}
+  gpo1: 0
+  gpo2: 0
+  posA: 201
+  posB: 159
+  va: 1.2008223529411763
+  va_range: [0.5015, 1.3887]
+  vb: 2.5009129411764706
+  vb_range: [1.9552, 2.8304]
diff --git a/python-lib/test-data/chip14/arb0/harmonic-sin-phase/arb0-2013-04-08_140025_5.0-010-030.npz b/python-lib/test-data/chip14/arb0/harmonic-sin-phase/arb0-2013-04-08_140025_5.0-010-030.npz
new file mode 100644 (file)
index 0000000..0236efb
Binary files /dev/null and b/python-lib/test-data/chip14/arb0/harmonic-sin-phase/arb0-2013-04-08_140025_5.0-010-030.npz differ
diff --git a/python-lib/test-data/chip14/arb0/harmonic-sin-phase/arb0-2013-04-08_140025_5.0-010-030.pdf b/python-lib/test-data/chip14/arb0/harmonic-sin-phase/arb0-2013-04-08_140025_5.0-010-030.pdf
new file mode 100644 (file)
index 0000000..657ca2e
Binary files /dev/null and b/python-lib/test-data/chip14/arb0/harmonic-sin-phase/arb0-2013-04-08_140025_5.0-010-030.pdf differ
diff --git a/python-lib/test-data/chip14/arb0/harmonic-sin-phase/arb0-2013-04-08_140025_5.0-010-030.yaml b/python-lib/test-data/chip14/arb0/harmonic-sin-phase/arb0-2013-04-08_140025_5.0-010-030.yaml
new file mode 100644 (file)
index 0000000..f5024f8
--- /dev/null
@@ -0,0 +1,335 @@
+amux:
+  csname: chain1_mux
+  otaA: {fast: 0, gain: 0, mode: 4, offset: 0}
+  otaB: {fast: 0, gain: 0, mode: 4, offset: 0}
+  selA: 16
+  selB: 16
+arb:
+  csname: chain1_conf
+  harmonics:
+  - cal: 0
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 1, fast: 0, gain: 15, offset: 117, se: 0, zero: 0}
+    otaB: {cint: 1, fast: 0, gain: 15, offset: 117, se: 0, zero: 0}
+  - cal: 0
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 0, gain: 0, offset: 0, se: 0, zero: 0}
+    otaB: {cint: 0, fast: 0, gain: 0, offset: 0, se: 0, zero: 0}
+  - cal: 0
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 0, gain: 0, offset: 0, se: 0, zero: 0}
+    otaB: {cint: 0, fast: 0, gain: 0, offset: 0, se: 0, zero: 0}
+  - cal: 0
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 0, gain: 0, offset: 0, se: 0, zero: 0}
+    otaB: {cint: 0, fast: 0, gain: 0, offset: 0, se: 0, zero: 0}
+  - cal: 0
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 0, gain: 0, offset: 0, se: 0, zero: 0}
+    otaB: {cint: 0, fast: 0, gain: 0, offset: 0, se: 0, zero: 0}
+  - cal: 0
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 0, gain: 0, offset: 0, se: 0, zero: 0}
+    otaB: {cint: 0, fast: 0, gain: 0, offset: 0, se: 0, zero: 0}
+  - cal: 0
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 0, gain: 0, offset: 0, se: 0, zero: 0}
+    otaB: {cint: 0, fast: 0, gain: 0, offset: 0, se: 0, zero: 0}
+  - cal: 0
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 0, gain: 0, offset: 0, se: 0, zero: 0}
+    otaB: {cint: 0, fast: 0, gain: 0, offset: 0, se: 0, zero: 0}
+  - cal: 0
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 0, gain: 0, offset: 0, se: 0, zero: 0}
+    otaB: {cint: 0, fast: 0, gain: 0, offset: 0, se: 0, zero: 0}
+  - cal: 0
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 0, gain: 0, offset: 0, se: 0, zero: 0}
+    otaB: {cint: 0, fast: 0, gain: 0, offset: 0, se: 0, zero: 0}
+  - cal: 0
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 0, gain: 0, offset: 0, se: 0, zero: 0}
+    otaB: {cint: 0, fast: 0, gain: 0, offset: 0, se: 0, zero: 0}
+  - cal: 0
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 0, gain: 0, offset: 0, se: 0, zero: 0}
+    otaB: {cint: 0, fast: 0, gain: 0, offset: 0, se: 0, zero: 0}
+  - cal: 0
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 0, gain: 0, offset: 0, se: 0, zero: 0}
+    otaB: {cint: 0, fast: 0, gain: 0, offset: 0, se: 0, zero: 0}
+  - cal: 0
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 0, gain: 0, offset: 0, se: 0, zero: 0}
+    otaB: {cint: 0, fast: 0, gain: 0, offset: 0, se: 0, zero: 0}
+  - cal: 0
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 0, gain: 0, offset: 0, se: 0, zero: 0}
+    otaB: {cint: 0, fast: 0, gain: 0, offset: 0, se: 0, zero: 0}
+  - cal: 0
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 0, gain: 0, offset: 0, se: 0, zero: 0}
+    otaB: {cint: 0, fast: 0, gain: 0, offset: 0, se: 0, zero: 0}
+  length: 16
+chain:
+  csname: chain0_conf
+  harmonics:
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 46, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 127, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 110, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 127, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 116, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 108, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 124, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 78, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 106, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 103, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 56, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 85, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 81, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 111, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 59, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 89, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 120, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 127, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 80, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 118, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 100, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 127, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 111, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 78, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 68, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 127, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 127, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 94, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 120, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 109, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 60, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 102, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 112, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 97, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 103, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 109, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 81, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 95, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 91, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 116, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 63, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 102, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 127, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 63, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 126, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 57, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 127, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 102, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 63, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 95, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 72, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 70, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 64, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 90, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 79, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 103, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 127, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 86, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 79, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 86, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 116, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 70, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 78, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 127, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 92, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 101, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 58, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 91, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 91, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 87, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 117, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 127, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 57, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 96, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 79, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 101, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 79, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 123, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 127, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 79, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 83, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 102, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 93, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 127, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 112, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 127, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 88, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 124, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 64, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 70, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 86, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 93, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 88, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 92, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 106, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 63, se: 1, zero: 0}
+  length: 48
+dac: {cs: dac, vbias_buf: 0.0, vbias_core: 0.0, vcmi: 1.24998935546875, vina: 1.24998935546875,
+  vinb: 1.24998935546875}
+date: 2013-04-08_140026
+i2c: {delay: 0.0001, interface: 3, pid: 24593, scl: 0, sda: 1, timeout: 100, vid: 1027}
+ibias: {addr: 0, gpo1: 0, gpo2: 0, posA: 128, posB: 128}
+isupply: {AVdd_atoi: 0.00183498681640625, DVdd_ns430: 0.00036718055664062497, Vdd_digi: 0.02088098974609375,
+  Vdd_ns430: 0.020887096191406246}
+mux:
+  csname: chain0_mux
+  otaA: {fast: 1, gain: 15, mode: 2, offset: 44}
+  otaB: {fast: 1, gain: 15, mode: 2, offset: 81}
+  selA: 48
+  selB: 48
+spi0:
+  cs:
+    _idle: [-1, 200]
+    _mask: [-1, 56]
+    adc: [1, 232]
+    convst: [1, 248]
+    dac: [1, 216]
+    flash: [3, 192]
+  freq: 1000000.0
+  interface: 1
+  latency: 1
+  pid: 24593
+  pindir: 251
+  pinstate: 249
+  vid: 1027
+spi1:
+  cs:
+    _idle: [-1, 248]
+    _mask: [-1, 248]
+    chain0_conf: [0, 240]
+    chain0_mux: [0, 232]
+    chain1_conf: [0, 216]
+    chain1_mux: [0, 184]
+  freq: 1000000.0
+  interface: 2
+  latency: 1
+  pid: 24593
+  pindir: 251
+  pinstate: 184
+  vid: 1027
+v430:
+  addr: 2
+  aliases: {va: vdigi, vb: avdd}
+  gpo1: 0
+  gpo2: 0
+  posA: 201
+  posB: 159
+  va: 1.2008223529411763
+  va_range: [0.5015, 1.3887]
+  vb: 2.5009129411764706
+  vb_range: [1.9552, 2.8304]
+vatoi:
+  addr: 2
+  aliases: {va: vdigi, vb: avdd}
+  gpo1: 0
+  gpo2: 0
+  posA: 201
+  posB: 159
+  va: 1.2008223529411763
+  va_range: [0.5015, 1.3887]
+  vb: 2.5009129411764706
+  vb_range: [1.9552, 2.8304]
diff --git a/python-lib/test-data/chip14/arb0/harmonic-sin-phase/arb0-2013-04-08_140139_5.0-010-035.npz b/python-lib/test-data/chip14/arb0/harmonic-sin-phase/arb0-2013-04-08_140139_5.0-010-035.npz
new file mode 100644 (file)
index 0000000..675b933
Binary files /dev/null and b/python-lib/test-data/chip14/arb0/harmonic-sin-phase/arb0-2013-04-08_140139_5.0-010-035.npz differ
diff --git a/python-lib/test-data/chip14/arb0/harmonic-sin-phase/arb0-2013-04-08_140139_5.0-010-035.pdf b/python-lib/test-data/chip14/arb0/harmonic-sin-phase/arb0-2013-04-08_140139_5.0-010-035.pdf
new file mode 100644 (file)
index 0000000..bc2bc07
Binary files /dev/null and b/python-lib/test-data/chip14/arb0/harmonic-sin-phase/arb0-2013-04-08_140139_5.0-010-035.pdf differ
diff --git a/python-lib/test-data/chip14/arb0/harmonic-sin-phase/arb0-2013-04-08_140139_5.0-010-035.yaml b/python-lib/test-data/chip14/arb0/harmonic-sin-phase/arb0-2013-04-08_140139_5.0-010-035.yaml
new file mode 100644 (file)
index 0000000..3fb8772
--- /dev/null
@@ -0,0 +1,335 @@
+amux:
+  csname: chain1_mux
+  otaA: {fast: 0, gain: 0, mode: 4, offset: 0}
+  otaB: {fast: 0, gain: 0, mode: 4, offset: 0}
+  selA: 16
+  selB: 16
+arb:
+  csname: chain1_conf
+  harmonics:
+  - cal: 0
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 1, fast: 0, gain: 15, offset: 117, se: 0, zero: 0}
+    otaB: {cint: 1, fast: 0, gain: 15, offset: 117, se: 0, zero: 0}
+  - cal: 0
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 0, gain: 0, offset: 0, se: 0, zero: 0}
+    otaB: {cint: 0, fast: 0, gain: 0, offset: 0, se: 0, zero: 0}
+  - cal: 0
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 0, gain: 0, offset: 0, se: 0, zero: 0}
+    otaB: {cint: 0, fast: 0, gain: 0, offset: 0, se: 0, zero: 0}
+  - cal: 0
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 0, gain: 0, offset: 0, se: 0, zero: 0}
+    otaB: {cint: 0, fast: 0, gain: 0, offset: 0, se: 0, zero: 0}
+  - cal: 0
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 0, gain: 0, offset: 0, se: 0, zero: 0}
+    otaB: {cint: 0, fast: 0, gain: 0, offset: 0, se: 0, zero: 0}
+  - cal: 0
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 0, gain: 0, offset: 0, se: 0, zero: 0}
+    otaB: {cint: 0, fast: 0, gain: 0, offset: 0, se: 0, zero: 0}
+  - cal: 0
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 0, gain: 0, offset: 0, se: 0, zero: 0}
+    otaB: {cint: 0, fast: 0, gain: 0, offset: 0, se: 0, zero: 0}
+  - cal: 0
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 0, gain: 0, offset: 0, se: 0, zero: 0}
+    otaB: {cint: 0, fast: 0, gain: 0, offset: 0, se: 0, zero: 0}
+  - cal: 0
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 0, gain: 0, offset: 0, se: 0, zero: 0}
+    otaB: {cint: 0, fast: 0, gain: 0, offset: 0, se: 0, zero: 0}
+  - cal: 0
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 0, gain: 0, offset: 0, se: 0, zero: 0}
+    otaB: {cint: 0, fast: 0, gain: 0, offset: 0, se: 0, zero: 0}
+  - cal: 0
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 0, gain: 0, offset: 0, se: 0, zero: 0}
+    otaB: {cint: 0, fast: 0, gain: 0, offset: 0, se: 0, zero: 0}
+  - cal: 0
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 0, gain: 0, offset: 0, se: 0, zero: 0}
+    otaB: {cint: 0, fast: 0, gain: 0, offset: 0, se: 0, zero: 0}
+  - cal: 0
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 0, gain: 0, offset: 0, se: 0, zero: 0}
+    otaB: {cint: 0, fast: 0, gain: 0, offset: 0, se: 0, zero: 0}
+  - cal: 0
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 0, gain: 0, offset: 0, se: 0, zero: 0}
+    otaB: {cint: 0, fast: 0, gain: 0, offset: 0, se: 0, zero: 0}
+  - cal: 0
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 0, gain: 0, offset: 0, se: 0, zero: 0}
+    otaB: {cint: 0, fast: 0, gain: 0, offset: 0, se: 0, zero: 0}
+  - cal: 0
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 0, gain: 0, offset: 0, se: 0, zero: 0}
+    otaB: {cint: 0, fast: 0, gain: 0, offset: 0, se: 0, zero: 0}
+  length: 16
+chain:
+  csname: chain0_conf
+  harmonics:
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 46, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 127, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 110, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 127, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 116, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 108, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 124, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 78, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 106, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 103, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 56, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 85, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 81, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 111, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 59, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 89, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 120, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 127, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 80, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 118, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 100, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 127, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 111, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 78, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 68, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 127, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 127, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 94, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 120, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 109, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 60, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 102, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 112, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 97, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 103, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 109, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 81, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 95, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 91, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 116, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 63, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 102, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 127, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 63, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 126, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 57, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 127, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 102, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 63, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 95, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 72, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 70, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 64, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 90, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 79, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 103, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 127, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 86, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 79, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 86, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 116, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 70, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 78, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 127, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 92, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 101, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 58, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 91, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 91, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 87, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 117, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 127, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 57, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 96, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 79, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 101, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 79, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 123, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 127, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 79, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 83, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 102, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 93, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 127, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 112, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 127, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 88, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 124, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 64, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 70, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 86, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 93, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 88, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 92, se: 1, zero: 0}
+  - cal: 1
+    nco: {fcw: 0, rst: 0}
+    otaA: {cint: 0, fast: 1, gain: 0, offset: 106, se: 1, zero: 0}
+    otaB: {cint: 0, fast: 1, gain: 0, offset: 63, se: 1, zero: 0}
+  length: 48
+dac: {cs: dac, vbias_buf: 0.0, vbias_core: 0.0, vcmi: 1.24998935546875, vina: 1.24998935546875,
+  vinb: 1.24998935546875}
+date: 2013-04-08_140140
+i2c: {delay: 0.0001, interface: 3, pid: 24593, scl: 0, sda: 1, timeout: 100, vid: 1027}
+ibias: {addr: 0, gpo1: 0, gpo2: 0, posA: 128, posB: 128}
+isupply: {AVdd_atoi: 0.0018122403076171873, DVdd_ns430: 0.000362051142578125, Vdd_digi: 0.02031309033203125,
+  Vdd_ns430: 0.02031309033203125}
+mux:
+  csname: chain0_mux
+  otaA: {fast: 1, gain: 15, mode: 2, offset: 44}
+  otaB: {fast: 1, gain: 15, mode: 2, offset: 81}
+  selA: 48
+  selB: 48
+spi0:
+  cs:
+    _idle: [-1, 200]
+    _mask: [-1, 56]
+    adc: [1, 232]
+    convst: [1, 248]
+    dac: [1, 216]
+    flash: [3, 192]
+  freq: 1000000.0
+  interface: 1
+  latency: 1
+  pid: 24593
+  pindir: 251
+  pinstate: 249
+  vid: 1027
+spi1:
+  cs:
+    _idle: [-1, 248]
+    _mask: [-1, 248]
+    chain0_conf: [0, 240]
+    chain0_mux: [0, 232]
+    chain1_conf: [0, 216]
+    chain1_mux: [0, 184]
+  freq: 1000000.0
+  interface: 2
+  latency: 1
+  pid: 24593
+  pindir: 251
+  pinstate: 184
+  vid: 1027
+v430:
+  addr: 2
+  aliases: {va: vdigi, vb: avdd}
+  gpo1: 0
+  gpo2: 0
+  posA: 201
+  posB: 159
+  va: 1.2008223529411763
+  va_range: [0.5015, 1.3887]
+  vb: 2.5009129411764706
+  vb_range: [1.9552, 2.8304]
+vatoi:
+  addr: 2
+  aliases: {va: vdigi, vb: avdd}
+  gpo1: 0
+  gpo2: 0
+  posA: 201
+  posB: 159
+  va: 1.2008223529411763
+  va_range: [0.5015, 1.3887]
+  vb: 2.5009129411764706
+  vb_range: [1.9552, 2.8304]