From 002a50a29b5b9643ae07b8108fa43190b51a2e9a Mon Sep 17 00:00:00 2001 From: Dan White Date: Mon, 8 Apr 2013 14:03:31 -0500 Subject: [PATCH] harmonics w/ sin inputs --- python-lib/sine-int.py | 12 +- .../arb0-2013-04-08_130324_5.0-005-005.npz | Bin .../arb0-2013-04-08_130324_5.0-005-005.pdf | Bin .../arb0-2013-04-08_130324_5.0-005-005.yaml | 0 .../arb0-2013-04-08_133334_5.0-010-010.npz | Bin 0 -> 2976 bytes .../arb0-2013-04-08_133334_5.0-010-010.pdf | Bin 0 -> 13691 bytes .../arb0-2013-04-08_133334_5.0-010-010.yaml | 335 ++++++++++++++++++ .../arb0-2013-04-08_133500_5.0-005-015.npz | Bin 0 -> 2976 bytes .../arb0-2013-04-08_133500_5.0-005-015.pdf | Bin 0 -> 13664 bytes .../arb0-2013-04-08_133500_5.0-005-015.yaml | 335 ++++++++++++++++++ .../arb0-2013-04-08_134053_5.0-005-010.npz | Bin 0 -> 2976 bytes .../arb0-2013-04-08_134053_5.0-005-010.pdf | Bin 0 -> 13655 bytes .../arb0-2013-04-08_134053_5.0-005-010.yaml | 335 ++++++++++++++++++ .../arb0-2013-04-08_134159_5.0-005-020.npz | Bin 0 -> 2976 bytes .../arb0-2013-04-08_134159_5.0-005-020.pdf | Bin 0 -> 13642 bytes .../arb0-2013-04-08_134159_5.0-005-020.yaml | 335 ++++++++++++++++++ .../arb0-2013-04-08_134302_5.0-005-025.npz | Bin 0 -> 2976 bytes .../arb0-2013-04-08_134302_5.0-005-025.pdf | Bin 0 -> 13657 bytes .../arb0-2013-04-08_134302_5.0-005-025.yaml | 335 ++++++++++++++++++ .../arb0-2013-04-08_134411_5.0-005-030.npz | Bin 0 -> 2976 bytes .../arb0-2013-04-08_134411_5.0-005-030.pdf | Bin 0 -> 13656 bytes .../arb0-2013-04-08_134411_5.0-005-030.yaml | 335 ++++++++++++++++++ .../arb0-2013-04-08_134625_5.0-005-035.npz | Bin 0 -> 2976 bytes .../arb0-2013-04-08_134625_5.0-005-035.pdf | Bin 0 -> 13672 bytes .../arb0-2013-04-08_134625_5.0-005-035.yaml | 335 ++++++++++++++++++ .../arb0-2013-04-08_134839_5.0-010-005.npz | Bin 0 -> 2976 bytes .../arb0-2013-04-08_134839_5.0-010-005.pdf | Bin 0 -> 13631 bytes .../arb0-2013-04-08_134839_5.0-010-005.yaml | 335 ++++++++++++++++++ .../arb0-2013-04-08_135154_5.0-010-015.npz | Bin 0 -> 2976 bytes .../arb0-2013-04-08_135154_5.0-010-015.pdf | Bin 0 -> 13642 bytes .../arb0-2013-04-08_135154_5.0-010-015.yaml | 335 ++++++++++++++++++ .../arb0-2013-04-08_135413_5.0-010-020.npz | Bin 0 -> 2976 bytes .../arb0-2013-04-08_135413_5.0-010-020.pdf | Bin 0 -> 13661 bytes .../arb0-2013-04-08_135413_5.0-010-020.yaml | 335 ++++++++++++++++++ .../arb0-2013-04-08_135842_5.0-010-025.npz | Bin 0 -> 2976 bytes .../arb0-2013-04-08_135842_5.0-010-025.pdf | Bin 0 -> 13640 bytes .../arb0-2013-04-08_135842_5.0-010-025.yaml | 335 ++++++++++++++++++ .../arb0-2013-04-08_140025_5.0-010-030.npz | Bin 0 -> 2976 bytes .../arb0-2013-04-08_140025_5.0-010-030.pdf | Bin 0 -> 13668 bytes .../arb0-2013-04-08_140025_5.0-010-030.yaml | 335 ++++++++++++++++++ .../arb0-2013-04-08_140139_5.0-010-035.npz | Bin 0 -> 2976 bytes .../arb0-2013-04-08_140139_5.0-010-035.pdf | Bin 0 -> 13660 bytes .../arb0-2013-04-08_140139_5.0-010-035.yaml | 335 ++++++++++++++++++ 43 files changed, 4361 insertions(+), 6 deletions(-) rename python-lib/{ => test-data/chip14/arb0/harmonic-sin-phase}/arb0-2013-04-08_130324_5.0-005-005.npz (100%) rename python-lib/{ => test-data/chip14/arb0/harmonic-sin-phase}/arb0-2013-04-08_130324_5.0-005-005.pdf (100%) rename python-lib/{ => test-data/chip14/arb0/harmonic-sin-phase}/arb0-2013-04-08_130324_5.0-005-005.yaml (100%) create mode 100644 python-lib/test-data/chip14/arb0/harmonic-sin-phase/arb0-2013-04-08_133334_5.0-010-010.npz create mode 100644 python-lib/test-data/chip14/arb0/harmonic-sin-phase/arb0-2013-04-08_133334_5.0-010-010.pdf create mode 100644 python-lib/test-data/chip14/arb0/harmonic-sin-phase/arb0-2013-04-08_133334_5.0-010-010.yaml create mode 100644 python-lib/test-data/chip14/arb0/harmonic-sin-phase/arb0-2013-04-08_133500_5.0-005-015.npz create mode 100644 python-lib/test-data/chip14/arb0/harmonic-sin-phase/arb0-2013-04-08_133500_5.0-005-015.pdf create mode 100644 python-lib/test-data/chip14/arb0/harmonic-sin-phase/arb0-2013-04-08_133500_5.0-005-015.yaml create mode 100644 python-lib/test-data/chip14/arb0/harmonic-sin-phase/arb0-2013-04-08_134053_5.0-005-010.npz create mode 100644 python-lib/test-data/chip14/arb0/harmonic-sin-phase/arb0-2013-04-08_134053_5.0-005-010.pdf create mode 100644 python-lib/test-data/chip14/arb0/harmonic-sin-phase/arb0-2013-04-08_134053_5.0-005-010.yaml create mode 100644 python-lib/test-data/chip14/arb0/harmonic-sin-phase/arb0-2013-04-08_134159_5.0-005-020.npz create mode 100644 python-lib/test-data/chip14/arb0/harmonic-sin-phase/arb0-2013-04-08_134159_5.0-005-020.pdf create mode 100644 python-lib/test-data/chip14/arb0/harmonic-sin-phase/arb0-2013-04-08_134159_5.0-005-020.yaml create mode 100644 python-lib/test-data/chip14/arb0/harmonic-sin-phase/arb0-2013-04-08_134302_5.0-005-025.npz create mode 100644 python-lib/test-data/chip14/arb0/harmonic-sin-phase/arb0-2013-04-08_134302_5.0-005-025.pdf create mode 100644 python-lib/test-data/chip14/arb0/harmonic-sin-phase/arb0-2013-04-08_134302_5.0-005-025.yaml create mode 100644 python-lib/test-data/chip14/arb0/harmonic-sin-phase/arb0-2013-04-08_134411_5.0-005-030.npz create mode 100644 python-lib/test-data/chip14/arb0/harmonic-sin-phase/arb0-2013-04-08_134411_5.0-005-030.pdf create mode 100644 python-lib/test-data/chip14/arb0/harmonic-sin-phase/arb0-2013-04-08_134411_5.0-005-030.yaml create mode 100644 python-lib/test-data/chip14/arb0/harmonic-sin-phase/arb0-2013-04-08_134625_5.0-005-035.npz create mode 100644 python-lib/test-data/chip14/arb0/harmonic-sin-phase/arb0-2013-04-08_134625_5.0-005-035.pdf create mode 100644 python-lib/test-data/chip14/arb0/harmonic-sin-phase/arb0-2013-04-08_134625_5.0-005-035.yaml create mode 100644 python-lib/test-data/chip14/arb0/harmonic-sin-phase/arb0-2013-04-08_134839_5.0-010-005.npz create mode 100644 python-lib/test-data/chip14/arb0/harmonic-sin-phase/arb0-2013-04-08_134839_5.0-010-005.pdf create mode 100644 python-lib/test-data/chip14/arb0/harmonic-sin-phase/arb0-2013-04-08_134839_5.0-010-005.yaml create mode 100644 python-lib/test-data/chip14/arb0/harmonic-sin-phase/arb0-2013-04-08_135154_5.0-010-015.npz create mode 100644 python-lib/test-data/chip14/arb0/harmonic-sin-phase/arb0-2013-04-08_135154_5.0-010-015.pdf create mode 100644 python-lib/test-data/chip14/arb0/harmonic-sin-phase/arb0-2013-04-08_135154_5.0-010-015.yaml create mode 100644 python-lib/test-data/chip14/arb0/harmonic-sin-phase/arb0-2013-04-08_135413_5.0-010-020.npz create mode 100644 python-lib/test-data/chip14/arb0/harmonic-sin-phase/arb0-2013-04-08_135413_5.0-010-020.pdf create mode 100644 python-lib/test-data/chip14/arb0/harmonic-sin-phase/arb0-2013-04-08_135413_5.0-010-020.yaml create mode 100644 python-lib/test-data/chip14/arb0/harmonic-sin-phase/arb0-2013-04-08_135842_5.0-010-025.npz create mode 100644 python-lib/test-data/chip14/arb0/harmonic-sin-phase/arb0-2013-04-08_135842_5.0-010-025.pdf create mode 100644 python-lib/test-data/chip14/arb0/harmonic-sin-phase/arb0-2013-04-08_135842_5.0-010-025.yaml create mode 100644 python-lib/test-data/chip14/arb0/harmonic-sin-phase/arb0-2013-04-08_140025_5.0-010-030.npz create mode 100644 python-lib/test-data/chip14/arb0/harmonic-sin-phase/arb0-2013-04-08_140025_5.0-010-030.pdf create mode 100644 python-lib/test-data/chip14/arb0/harmonic-sin-phase/arb0-2013-04-08_140025_5.0-010-030.yaml create mode 100644 python-lib/test-data/chip14/arb0/harmonic-sin-phase/arb0-2013-04-08_140139_5.0-010-035.npz create mode 100644 python-lib/test-data/chip14/arb0/harmonic-sin-phase/arb0-2013-04-08_140139_5.0-010-035.pdf create mode 100644 python-lib/test-data/chip14/arb0/harmonic-sin-phase/arb0-2013-04-08_140139_5.0-010-035.yaml diff --git a/python-lib/sine-int.py b/python-lib/sine-int.py index 975235f..0af730e 100644 --- a/python-lib/sine-int.py +++ b/python-lib/sine-int.py @@ -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/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 similarity index 100% rename from python-lib/arb0-2013-04-08_130324_5.0-005-005.npz rename to python-lib/test-data/chip14/arb0/harmonic-sin-phase/arb0-2013-04-08_130324_5.0-005-005.npz diff --git a/python-lib/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 similarity index 100% rename from python-lib/arb0-2013-04-08_130324_5.0-005-005.pdf rename to python-lib/test-data/chip14/arb0/harmonic-sin-phase/arb0-2013-04-08_130324_5.0-005-005.pdf diff --git a/python-lib/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 similarity index 100% rename from python-lib/arb0-2013-04-08_130324_5.0-005-005.yaml rename to python-lib/test-data/chip14/arb0/harmonic-sin-phase/arb0-2013-04-08_130324_5.0-005-005.yaml 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 index 0000000000000000000000000000000000000000..a22b7cf373ea178fff4dbf2144015523b455d195 GIT binary patch literal 2976 zcmcguc~DbF7!Riisep|KLMu?NAW)8Q6d8BrvLYfNws?1ufVDiUPIovCAl#wtv*I-^{+>`}Tdm@7US*?fNfM zQDre`v5U=gS2d^!52oJfp-zn`Tbp?P)_s1fmiw<(Vt6yQn@2<@gbU1F4b9!6T+FQu z&7*jNL_uhL2u~0ZNzZ$S#wJ8k^9h?m`H_@v!L~BoVK_xJDaVwsp#PNE`x;U>Q(`B) zjo5Iu$oYt%NFjDyNlN{ZmL@P3>e#QUD?+U|2DdmAx1gSS&zL$Y*YOEI0TjVwTJ=PjEkoyk>a&&B$y5f%DZF`(wnQ>wHG7 zTwMyrP7bMOCCWifY3WJkm)!tZhiQ3hbb^XB3nihv5wuuaq%tpMpt^NGb!9oUqTw@c z4VXmUPFRT^uZ+Xq_H{Olp zyPQIXN}E7;<>Kc%+r(h^*_Zd#7fZncodS)8Kn`y2f13QsdMPOIDRt`GE(SXTN`lUD zn!p;n>c{M|JjA^B?V1r$3(^S6`K`7_f;L|c%&K;hAzo4LYV##M=!RESwXwboWw&#` zYtNCO4v*Bdo3I6GjmDUk*Y81fM;-`Uk2ZqxC!elua1nz)uk^Vn&5{E9y&eWLvgP3B z19@OdniQ~&^*iqz76ZH9zT>rV*Foi;oE6*EzCmFj8~A3SEy(z?EBpM21g&%KlZ-!= zqVyEb=LLm5C}4xriJAZz`n|%^dLXR}UCF)RF?gXBopySsdD!>>QodH!B7D&ZoYyv# zp6u@g`F>mx?`Suey5mK`nP!u_ZaTH=_?to#BHzZgqklJA=309OjT&_TjJ@ENk;7-H z9e)u0IoRN`ioGrRC7D--Nhhj$tH#wJwx15G&Nf|g^=3kBrwtkR`>(BAq6@K~nXot_ zg>xu|MR>EIci+pef61Lg_&CB(Ayp9`QFH7F_fl@J%x$evKfP zAu5j5F(&?v;X;qwtFw=NK;oD{W`>@28OM~wGli0?>+2dD%t%~wcv|b&)Bt9Do z{p2=UkJuy+OBg7!lv?gsK=QGICT;PBKHAnKFKakFyTUK}s13>QL)cw5s#LFMOY*dZ zzRiclZ4YfpzIO130dQV=%8ul158u~)C>lz%C;8jM4EtTNs*4;*9S(3{rP&hJG!ChU z1A~*U8kw|mNL`MwCO>-2q0o`k=Lp#snC%{6PNYsJnAcJM{mKQ-q+Vw@`ocdue8`#9 z?E)hV2BQ)#x+pZeL5Gc2xEyG#xz@u z#jZCd;u{eEK8x_Y7167M2#=33pYW3j-N9Lndu$|>{j6uY%%M5W4q?f7$@tFCwAg|Ja0+XZD$_VKR$)=`nwoM2tR{5!07d68DPv5;PsbU zaAU4Ie&ZV`p&xA|hdfs4_16-E;ajFluGzXRA_ljQTb7JqLd^&XPr?`M8(q7E7* zWtPf6U+m~SX-OB-PkhZ&=7+C(ZE)D5(P>YMHKm4NXV%Oj}m literal 0 HcmV?d00001 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 index 0000000000000000000000000000000000000000..1398dbc4f907efcd034210fc70fb85c2ec2fd3a7 GIT binary patch literal 13691 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 Jp1D5k{{a65)j0qF literal 0 HcmV?d00001 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 index 0000000..62564ec --- /dev/null +++ b/python-lib/test-data/chip14/arb0/harmonic-sin-phase/arb0-2013-04-08_133500_5.0-005-015.yaml @@ -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 index 0000000000000000000000000000000000000000..1641d486f4e742b3a23ecac304ff03b0456004c7 GIT binary patch literal 2976 zcmcImYfw{16b`QhdL?)N<#BmZCKY?85@{*Dhi1p+|o-~2L)0r%K27SyhCkzwA7KD%SZF&7t&lumy zZ^HNBHx&g-Op7VLS2Qi^3pb?E$T^OPO(98`Mv?q1KEd^2_|rtcAf56PVYYZh?%c6^zd3 zDkuuG*=6mz8t$zO`)JNDA}BA+`L5M43ku!UhAr7jxS(lgwQ0s`Xz_V^E!|WC8LKq< z^~cn3n4>nalHl5&TW%Xhjk9e zTkUJ3EME;v?*;$hR3qjr4lHsQXjuy_PO>6+ePWo{npeyhZ-!mtmfKty%7%e@KfUZz z737sq)N_YQV9-FxZ|CP0!?vNtxf=r4LG7|ai$ApaFzBpQX`?HGXSO>;Rz6Ze8~ejf zfu>pT+p|Z9?w^)%l1j}h2cD_mmrbqnGxkNmEB4I7IT4rtblCtUj|Yo(>O`=j zyx(#5CLU+(jn_u!yN=vCGs22Ak(ZqCCa&E`n3LUuA_p9=a*({wx#;MXrMlXKaX%;4 zFN&EadWqK!L5i;We)W(EK>B8&x}yGPf377!dRBmTv+K;Vc@qG#V*~c`*RXf3vcuK2j zG%zQyX-UBzC+x==SmsW#I>2_p{#?L~x|oyaes#ru8Q^=1J*f|)r(^$2pb6`oY4MPW z<8T8Dv~KNg88dJ^EZ}@uyd&7k9mnMk`X*I|iN2nR<9i?6IWS;wYKjMr(*uO+cVEAJ z+XKft3mop|RJHG)h2!=F4ij!`d*z-ueov6=nUiE3;Dz(>0^JK;=h>RFaXxGiol@uM z+{ngxd4t+*qCu}6-Z(#Rz&v7kC2)lg&eI1JT`fPjaE33=*B1;t4=;%C^~HJn0lxhc zL2`{BrPw|3TG<*&TnTbo5;IJiAQMXX|50v*?EhQp4G8;VFa1BBn8eq<@suh{JT|X* zV*Yf?`)TBfAo;yE9#*+&ruOGp`JT!!P+TiJW4k^=o z&JWA=RR}N5Me_I~Bt@QRpVfyjJ5N8Xzwu5aL+j;>m+DB^g6n% zY%{{nkCBw&{CgS@R>mW}UHZ@v%d zkDOC%KEi|PNE+hv4eCewVK~3c5xa3nuX!Spoh3-m4)bhPXuSyQZGVCAgEdInHzIvH z5qEfqfuXI@s~bD=UXVkrA-|~2qjIPX8L3GQwMIpJ1;h1%%Aqz=!-QeZGvYhaR#92h zhj5f7Hu~GMNTpE=*(j~UWNcZZGO0yqlo?O7y@KJAMCDM6$0+9}$-$+B%A)@1M_DnZ ZV@p7IhzZ$p6aD8nS|w38uaGSP?Jo;WslEUJ literal 0 HcmV?d00001 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 index 0000000000000000000000000000000000000000..fd01dddd24136348f299f5e6b1003ce33db28820 GIT binary patch literal 13655 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 B!v_EW literal 0 HcmV?d00001 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 index 0000000000000000000000000000000000000000..9457afdce0f6aa7786684f8c5f915cb5eeceef3d GIT binary patch literal 13642 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 Q|EbHWr|M=m-4d|=0xgG{f&c&j literal 0 HcmV?d00001 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 index 0000000000000000000000000000000000000000..29546243ac3b879088c45e79378525335951f793 GIT binary patch literal 13657 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 M|-`92+$&FUJa%g(jd!A(( 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 KWsR(j5&s7stjh%e literal 0 HcmV?d00001 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 index 0000000..3cdb2fa --- /dev/null +++ b/python-lib/test-data/chip14/arb0/harmonic-sin-phase/arb0-2013-04-08_134411_5.0-005-030.yaml @@ -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 index 0000000000000000000000000000000000000000..cbf34b094c027198e7048c9e5d6355e336164118 GIT binary patch literal 2976 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 aMY{yB{q@L}o9I6cXy=K#*-o|uw7&t2_`PTV literal 0 HcmV?d00001 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 index 0000000000000000000000000000000000000000..daf05c586f2c303d7e3448d9f1bfa899adeb21ba GIT binary patch literal 13631 zcmb_@2{={V7dM$Nm03!<2pR8uuWQOYWFA5<%EdL5*)>EYLn34rp^O~$;zUSlF&N*xEz4n^UUcYnBB5JImC4-X1!bC4UgO@kJP;eyN z)BZ3_Q4x+XKk7w>Bh*P0lAEV99AQjyCi}wCV1OxHSs6z5aD)cR{V~DH$o??dfdVH` z$AAeG3fad4j)N{?2xA{l2QxASZVgyzXaV-*Knfh8>kine{W_}uI_ko0;Rww@inbYr zL?Oem%M8q1NRF-^&T#xPdo5273LHZ{|4$qg5)f7t(Dw24^MXUFsGGqN8f1T02ePR) zSPWd5`;a_*y+}S}4~L^GsxFULR)%y19h7BdVF&}Vqbo_xGZ2UlvBweca4ZH5$!JRU z_4M;`0Cs`wV7kHxG8I@92ne|N!im(r|Ad6DS7g+3bpu9%BedLrrW#}iPe(9QpX}jG zae<>CZ%~cxOYtF-++l&)H?0iLa1+>X&R_X}(m62x?Ze=S?pS&j38t1<0kthsPogy6 za`G}C-+TXuQiStUHqMK#!MWu#N|tHe22-|or%HuBwab0tX)=oHv4~eW^XAp z_;_?KJLhDxOq~Ro=c2BCgs}4Uw>c@<+nY^l#Ls;PBEduLAPFf*6Ai0ViU zq1px7FWGWpEVria@)uT54~EvrMY{|)_Rn?iZ0+wuM+ahxmN;DHh)m(zT4q*QqlTp zT(7}AnanJsdjTb4QI%#8D;HDrEibv&T|P$r?W8+4Pqrj_xXYke^Vk%-y-N(o{zA5w z64zxUv%&i6$$b6j0(UQw-X2d)BZkA)FJI(||5#BNF zE!n=~V}F!Ro|}VuEN%Rzw$~bkMW*>;URydMPTFce&=9aYb;Lt&yXv(`B|^?a6gm6# z^h5tsl>?@EkG?-kWy~_E8M^JSx4kmoM26><#IBG-y;=Lt2kAcHH#kyy-tT^o|Dn-q z0U@=NDr`vyZ%See{z4jGcV#>JP7u<~h{E^3k<1nwO zYX`4c5xd%Nxb*WKCROT@hk8d$UsT^~J*p$I;w{sLO9yMW-TIJ|c1zRSeRjXf5~t15 z!nFVUJt|A@uR7aQ?8cgC!+3&h^9E_@C~uaTe|}r{`B?cht}i?Q;9X`-3L!l*0OQ`l** zYRS8$G<^7IOz79^7mi&)elv@TX)L2}EfMQsmTHMRd*JL)c!l(%D2emmVr5^SUA*Bp zcD|JLA*bwQeSRm+3E|eI6v2o4ax4Wel~>-;z%$Q}q5BlS1nv=BY%GgtEty(imZ~^& zc4!geA|RG%Tlz8XA!;`9#Y5c}$_-_pw z)9&H^W)k1REXA$WqferCOR%ws=paXhI6}kj96Vz@gMByFZx0J z>n$R|2a9S`ho_A_FvG56?u*aA$(=hoH`eWp-Hu4dN8Eeppm?UvnkhJe?vP;n z`z@FVVI2wo>rRq;oM|fpkN)_YB*F8+(l^9+zGK_-y$#x-609RjSG(U|fHLf_eg9Xk zrRD=DaiDN0!b$>0LD_ag*#t|3^7ijkf;*$Pg-(b~eV!PFK$?a|dI^?Q6wg1$lm200 zVI4-?=8Z^-)6=(md)8r0)ZFN@@@|nc4Z1}3Qey(Wk&8YX#_fUVhc3!bAkRW;*oY;Hy}YXleD(T9pTo!^sI zb9@JU-!m_xhT!Y+oM^LA(#dH0TsG;GW^;_01$MaWTBh+iZwo3t4*8v!3NkDIGS4Jw zE1UA8yRc#Em49VEFCI;wB=^A;iec~ z&G65-!+OYf*U>yjj3v&dW;E|d+OR%-m*4dht*f7N@?r2bx`^sI?}!Jw-@keX(UkuP zVjS7}KtR}P9SQ%$kpD|UGyrR>0@Ap9vpS0ThBJ(}gnQEo$6Sk>eoIH(`xHnVOKMgf zsmw=9J9{PG=qbzVZ>^JUsuE_s>?iuRD+``0^*%4Nx~l)lOFOUaVh6)`33jhtN=EgY=}>GlN(_8*%|X)EpKKDRtB>#K(lTWhR+&p8Yu|<0*l$WnAaWvH_b#|@ zKVij))BYS8OR{?5k-TYZg!DekT$zJxNl(>mbrv48k6zYy%vZd^q2MLXSHPrfzT<#k zkcxr^&w&cvR;vLE+rv4Pn*^$RTl|!I%IGKi#g9nrGB#JcNm)7{{Pa63jVEGe9o?Yk zg$?PpS~aSb!&rg}agvWJ_@yiW9$fGwzKcPouzl$Kqpm6 z_g|^WFNJAXN~oBW?_#h|Dfi)mPG%msRs9pDLMaKs-CRmBI@LZm2^ObD6D^bPI*W?& zvyX^X8Pqn9KTE5P%si{cFl7}sK&ff?CZKOMUKu$jN#Y%dFv!J~Mmp6dI5@Tj&bR2t zM4fEqG(H!S#!{AX=HW9Ikz#EF|JjymYy5j5je}kH)2nh8vWR@zjo|>=C<1bxAUHN z`R(8(vh(OX*k*1}V%sQqlgVGeY15}doOA^L4BcJ_7$L|zP``a>){h@YA3S)($jKNj z#pm65hr!J6Nk?X@QE?pWtj+z+9rYZK$=eFgrM1UJiWmr)>f}v}m10yA=?ltD3gQLY zLf>?YiAQ^<>O0N3Z}F6! zJ8R5mKla0gzLA%L5SHpjD76}kDLn2W<{D}!lf zPEwk@l6}ZEm8J7!sfF*I_doq$<=JB+xsLrd3Udgnb2X+0X@WGaq_M~NViWUCpuI{gE$2yIG1!z7BTV9?O**@UET6tKQ_rUUbT622E+ftP5Vou9EV@y= zfCE2G>8l+^slGNkB#+uuD zHRe@%$epbOYzdQJyk5)ZkpY(juzOy9OA0r&hXQbleCN!kAMu^xGvS$96f(+>ezWi8 zF~vPXHo-_OUd{=#ewBn8o68>$s(syZZF_Z#>S5hiHR6g-{DO>RJ^1diZ*{CUUobRz zJKKl3^>!bN5@+3*)w>Xdtg1KL&&j;d`8snnVFa-r=ww=mB;CU z+;@3 zEmbAfCcdbbm^=6RqEve$3sthe@Uv$Io_wn1@!H?3x3LuyN8H5M_K#Qb!_2QXPbRXN z#Myh@Q|IE;8g$Khyv@&h>(7-{-;WP+xJ{ZHJL|VP5A6xouuv8*Ey6;l*t@=cX3w#*j6jCOp{58oL6XN z@zPH=h9U22cJ@!?7w!L^{bMvK{iE>J;kyp& zhe6Cn5gZ!528(R`UFV)VHc4y;euAjR&-qvJ0iFthc#^zi0>3sBc$doT> zZJFKvx2?8|dmC2oa2V8ZbFiIx!~K{;e-E8d&MZ>2Lx4vjq`DxEC~r6s^UA)gO}6Ph zDdcuBD!)a*lEJ9Y(Kub{z1W4Fe4n2W#6Q=?o<6tJz;I#Ui1uBR)50k6 zLjDOf$Ajz&dsrSzo4f){l7}H<+P7;&dCA4r+F+eX+bAN$U{*s0O#s~5kj%rcxNYE= zDd+J|jfR$Qeq2lQk{?n0%*M=uRwC;ZKf|XxMotKPEV6VwHIR5-D?#H9`*VrB=8BK? zjp=u6Iy_?b&E@Ufn^8nS->c{=yQX~+e_9JCCGrZc9vNiuy62tAuw(0tzt9_bGu~(~ z=_PfB>QuijiBx)b)#pz{UVHK?ay(BO#2RX&ce5HTm+EK^IS&R^_dq^R?Q( z@?0p9hX3pxa=JZ=>eQ(epJFsr@|JH)^3s)S-=q?I`6YM5+|DO25quS=vOci*$&(El zTXLViysMVN{NB`i(+A-l9=1C*ueuq%VyWFLnT)Y76ui^VlJqFKmxDWl@k`(K@7H7a zuf*S(%DpwRw}p6q<~twn^@tbixMri68U+IWPfTraMwPP_2_9%eqjJNlXg}prg7*D9 zE|Z9V$1ocgmUI%ytZ2_RgA{EH`aZV5P|pjWuqeu}smOeo^%rr< zc4%~$lQL#-9c?y>P4TPaY~2K=a;r3^UQL!yhwV-mZ4Fykt!Q@mDQh*XYHGL@dy$iv z6T7Y)op1&tO=m67%ux9&$KMLQ=US4KeC0u+l`VUxvS_+%?$Mbclj*FyGm=tA z1P?!LV!k1qS{GttNX~8uW~yy*ma_aFLRa!iK5QLbHwps@s}XGtvTpe`kr@(8FhvsZ zrbrYHda&Naa^h^g4f3`CvU^*JG?VmcJ5@(jX%RECk}d44`K{~~TW*JU6w}hoyxN9d zN1TnKDl}>hq%gk00Ui{=(>3cv@3C3J{qCafpYFS}3)S#yoT*v*ovG3CUCEaujCLyP z*+(}(UF_aY}S+-;6Lp^+!mn2uig=ejp zZ=2mIbQaNqRo3vnLc75_xX<0K+t_Yra-9}t+h@SIblGR#^x1nQ0nhwXsgw^Di<6(b z@5?kADkW$%++2)3;$18c)9}(d{4th7YOC&0FC3u9DbXFdN>ec!v`BE#rtpWo<%$`{ z773^?J-&W-hAukRbe(rt*p0$G6n?e4G!ykWTjAi9Wwx632W`e1_{ujrYKDPSE>>Srm@Dq?(4*x4EWK=3MZ;QmmJ` zb~Jr4~bwqf5` zn-{vfg=l-#2ll`EIb79hJ}Y^0+i{((Z>skT&Y0Qz#k~DkWRTH?KFU)vX*9fK!nVm{ zsjow|_F7zy{S@cpwwB$BlUR`*;)Bw=&L|k|aEfZb6F;6K%Wrp{mlkK8cJBnyU7n!Q zkhuL?SbNP=aLsgnrL^&+nTLow2k6I4EPB9XG)MUB_`}fv337|h1$`~e4NV_ z)PMASiK4rofuYQ;TXDjtRYNpXI&s+K$jd=3rwc6~u9Wvgz1JD;kUw>#L(`@+y~SBW zdIEJv@lN>r;RSxd#Y;V%HB9Y@p?Q9bx1}uIYVD^nwXKo~t&$y8b~D0d!GUIlt);u4 zjGtaoZu8{}=e;H3(u`PqRW1^Et5EZ)lGAXl_11J(?KJN6h*{U(?g_maY0JCgi}0aQ z9tE|-mSOqGfcB%Z321k+#u1WpL}7c|*QqCGis)@$x04IyHZ5jKw$Sa%>T%15|Lk}p zbP>&7T=8a~_%#!rfay+~n)=2ZU9|PQX6!xg-kFxnF9B!K<@XehrgIe;YA)~x*U@jz z8J`|Hk{P9Sjd)v1^cdbh$miqDtOHv+OLcU39yY)X3p%*5UlBDc+a)es z{A|$WGxF$`^9G_8(oe+dQnvf-;8op+IvZ$+DlfQ}ml^$N=6Xrlbw8)HhpydSZO1>k zSYlF?T5!|i9}HeEoL8(ZeQkZ=3TtYJ%2l}>U1L3KUUma;8C|-j+=uXU;1{A;P#{4Zbf&0{I2xp8Chgmv@6 z0kdw;%c-9Ydb*e%%P4jgv-9LLHkVtwn5B0&kk@B3Wp^Op0vNtgd^^j*s)5uo$jnOVOuAY)Qt8 zic#iG&fSf-9%pmF_0nJ|Dam(5S%0!+jLHhUayYX0j7We|klp^cNKV>rZmxnO2jp+G zX2t)jSWLV3C5KOi)inVJ9-Yk%-cNbntA9G$u^sMoHa!+*YZ1d6sycT;`*O&WKc+fC63D9^sUV3{6jhXNb~ul~1x=#}D3vtC~ID<9e*GEXQF_7C$*EKp=|^ zdsiU3hf6UU!570|)PuIH zi4YY@t{}T_OM?qXfBs7+P#0#tj%zjwBMGZFKwMlE2l)6z7hK%OjJL9TpQ5J;-f0~( zq(ki7nvs9|pUn;7B3^!_|MrX6)=Ow+IP`{(d6ym1L1`(Kh>VZkHL5@4#mgD8jyxNM zk{IG@fs{=3JQ%=>@B0$hRf;|s_~e$3z8g7ieXhs642GbqL#1Z0m5T12PCkXv5B=g} z`_km&O}E3&Q$p`#@x=>PK8G4kKJn?#vad1{=tOkXnp@>rj1;KPMeX6*N+a{)1jE=Z zfu%XVlG}roQ9iA~j+^ZEJ@Qa#SMTT7IiSix`kut|y3qKF+t~X(aLY%RqVg#Ar#7e4 zNZcyl9CNm0=t6X4T5{RW2Xk?SAFOZN#*mDyt%vCYo%+~^Mw8+>Fth#q-Um32>{WVG zV1mAC!oStP`PkeD+VoRDVEdqBq)XlTzM8n*?kU}~ue?OYa)(t}QJ=l9q#L=-pOvsk z`oN&jMN4<{$7pi={oohUaW=zm^~FE*yIvIFx_nE}{zt@KH@$NgV{ zTAn`czble3gq0GfU$tH^gxYdplne@qM!{vUC_Eg6mqUTtB|HICNd1|f$I)1%84{1% z-!X|M;5XIyG)s&4iojWSL*V)$4ecQq>~Bd?t9B_+QKdolb?|ZZqImki0eGesT^W+x zLD7^3`7p`C&kU4x!4Obwm;s66<4UdBl0_mR90q=WpMlyfHIgrxT0{27OgO^Q)sf=j z3rA54%V3D#W`K&}FrcQ(h2#SjvVjrMJ^H)iYnhRjtB)@Q8UjZy%kV#q14C$ffO;>e zq)kx~hR|?zaw0?ZXrP+R8V;Zh0@SBDfa*6S96>Eqb0a%}f;sA`kE^o_1&+nS5e}a2 z?j$%C4?4&`uAYu?@X-SiME3E7BRoCGFa#w4oKakS$iPBQpjHk1b@d15zQ8m%FpEs( z1aLNj?CnQ#gUbP$1)K={OoF43U};Ct117-`pajqbj&KE3u!0+KFzECEtALfk1rP=B z_62Lf5q@xlKin4ftAOygk{}ik`lMe5LgT2fa91iD{>;0OhoR~_83+_pUHL!F2+H{= zWOobT4XB9D*%z1&hOp9ERtylA%NQXC{Si7;wrk@CjxZnvQUd_^9}Bpslf3@pqYLUF zT^&?CoZZOKTB^%J64BJEiWNOpP?9wq4~+N!p~3!Nd0~vP@LCIx!NZ6+ zB%A;W7SIG790LjjpoRl-LjBNq42T2j5!~ls{QqjOm3|Bu3pI$xO2dHHfyD_>!=d45A`S)`91lVf2Y{m-fK>z#!2~%V01})-N2nhI8Yq7u zfcX$lq8t$%mub+EstkqzgN~38kWx^?gZmhoivx-;^8jPPy3}(F78pW~+HeFS^++TD zc>x`dLIVYt*TsT$abRzQavRi#14lVvEa*sWXlNXsY6R#Atxt6tWI!MTFenUK69?u{ zjj|#fbcEuJDh(F8Ktd*h#D-LZj-XNf0WG)OV7OmC`^{?k1PHjy0u3|<({PYfKyqk0 z6b38qS~&uj!BzyJa=?ODBS3Ac_)r}D<`0d6bfN|m-~?U&<^lmLop z`HT!DD=-uWas~CP1Q5g-4y>^}9o%rsXRcs>Sw3@tgAIe)>jtNO^8+(H!3_q{U?8bb zUl2j+z^N}#z?m-`+$Yo-KA`q``OFVWfK(c&)c(cKA4-K(F3bBr`05Ld0IBDf6IM28 zs483wMESC8|MmZoi2fr&gMK;gKO(fwU&KFw@_&Ft#@*G!52*0Vhz8(RU)JV7ZdAfb zaI9N3^&5(;Mr62^4EGlz!^i?x%TWLR_h&UE!qs2`2c4@lW)V|0Pmqi2?@YO zqPt^QX<`SN1pfwPkl-tFs(bo@JPojeo~t7STBz0crch!0a?)M?mx2G31Vws(Oa>+G z6jx6V4XDI_kA^%Ni2`3(k#b;5l*15ZkT`K9Qe1-ie*=zw4xmPUk2{It<>pCobG3(i zIXc1ZNe)MVSHTc<`kO`o31=-oIq;;khK2)$eSgt#_`l)+C-*lEkN!Ij z@K^wF)~tcYL)iuT`OilHc&zm~5>Et4dd)Zj8X%OlG~D0(2y%bNfgHGL*3Ol~{%vPD zu<+V(MChqw&ALQ1?k`&r34h4~?$tl_p!kqn-N-)Fe{|CIaPovx_a=~OOg%lJEsdI2 f%v^)WU{hFriY56_sM`bzJi4G@qN18cTCo2EtMJ*( literal 0 HcmV?d00001 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 index 0000000..b11fe7f --- /dev/null +++ b/python-lib/test-data/chip14/arb0/harmonic-sin-phase/arb0-2013-04-08_134839_5.0-010-005.yaml @@ -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 index 0000000000000000000000000000000000000000..4c84a6b330572b26572c3d1997ea1eb9a78c6338 GIT binary patch literal 2976 zcmcImX;4#F6b_3EJ8^KKE(C;xU4(!UZO=7ou!0y7T5tf3Bq>24GyyRUw1|il87Ww; z3(^r8mjMNLS`kXEfTOi4RHQ{5Whv+k*ct`2YTx7D49%OiKk9gA?)!31?peP3?mPF0 zgH25BSoF{)=Lt<`G{i+xzv(%insOiSNpiIki%Oj7w|ke zJh@Vps*)tHRjQ;iS}&3$s%4a39WP0dQL?L>Cnu9*Fw7~()UZQhgV@onvabwctKUZK zja_y7dD}`Du^T;_UwVMBwoO<3My9a zeBRfm0t=b-clB-6Fl5qHIiAuZm#e1|8nU3L-DV}vPXjlU+5Md1Y*5Htom5@xplj+t zgukQ!EE6JFW~G_%vM*niZ=D9OMWUV>hjeIU7jhk~w?edK6?=%I1+`P@6_v3Xj_$kt z&D>p|LDT9>%Iq~sFcSBLZc{@F*qyqY?lG7O!WA11va^$5|4CuRj#t&t;u0y?bw>(w zbkA$+Ugm<=R+oL}GPICuF@Mf+q=9Lcg_{m^WPxPPJIxss%JYNfL>_A_i`_&-vQ(P($q(hN- zI?os~;bP@)35$MDflFo;Tc+qXLbqvq?5de+=wFl*r4nxkEC0{WS`X&H!h=!XzHaHT zw7%{zx|s!hwyy7%u?EhwdsqciWT3ct;zZo>Ea1FqJY@e<3Ru^459PF=`a`aD?*>LF zz{g6s?s!%;6xX(mI6kcgt(D|!kI({`cungto7#`CW0N13geE~z=a$|PRxSv>4LbSb zHB^u4_H4I4TnI{}Sh*x22{yD;<&}Mq1jkl!Maz?upyx{y2aor)VEg3$EU~#73{QMf zWFA+4>ddI!NQsxIWpCry>9>2D*OKrTj_rW4A8tANeU{Pw2a!i0RuJL#Ny2NQH%4hk zF7#h`IS%3VX6VAHYjuGlON7_iAlAKsE73u0g#AoH<a4NC4 zM-P>GX4B8SL;TD@1y5~L*W8&&{5haK7efX^KIIUzkUV`*$n^sqtq*)izH`ypK{(%C zF_+}+i)OJO6zNiZN&dbl*Ec88^gTbq!w(Iv<_6hK;1fQ46q(lS=zN1uc=@A--3fpC z?e!=8{E=IYW!vKQ0fc7&DsDeCM`qX=V%6yt58PnBVrTY>R$2u8ggPzF*Yy3SgybrM%J&-$8w?sV?ObBj;vos;tdl%og~kiLcD%j1V%pLrz86j zF2MS8gh!+kmT!}ND<*N)6TW)>znsDA!lE#S5+1e0t~Lqlhs7B6`Cljc0Ftke@GB>A zmJy!4golvi-AnxH|JT2tXPMZ4BK4lc!A8b*CjZ{p(dUC6S)1u6Zu6Kn%!Z6!Nsp|} z8ProgS}&M3%tmU|VAN)qdg|LMrWNxd9J5L``P;R~G-DRBF|(d=hGmUu$t*%+mT^?u xD<3UMOdDqL7_+%Y+mKSiv|@hrV^%Q}3`>AGcpTkwQ~l>e)@iD4w$UvC>n}xggK+== literal 0 HcmV?d00001 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 index 0000000000000000000000000000000000000000..24b62386cf766c4810b75e4dd18b07e6b044c8d1 GIT binary patch literal 13642 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 X0(fh+$&s6wKlNzUMBi*9M*`YkeuA(u literal 0 HcmV?d00001 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 index 0000000000000000000000000000000000000000..50dfcda6b338b88c0fbecc7f7ab13f5a728c8e24 GIT binary patch literal 13661 zcmb_@2{={V7q@x1$P^OkAY-`my{;+qka>(3<>HDm-)o3SMN-HtLK#DoDV0((luS{i zQksMkk$P$L?Q>Oc3FHbP4Z>+gwlp%0 z0^t@J*m{#aef)Pqghlp-0sb@yOF#cl95f0LekouS91s!+!K&!lLP&i|sE-H5#t1A1 zuIz%z{?tHnFvZ_v&o5OM$7^Z9x`GbcqOu62ImOe5tQ!yxM2Feqi3A9T#lSM!P^bYR z!5+XaupMlEF@jA676k$VE>ws_@B2?k`1+TOhCaT)ND$J{7ig+a@d)q)GtDUeJ89k! z8ukX=*i>3Dh3tn2&uert4_Hg$Yn;0<&0msatCGFtZIg_<2&WIP62EwsrhbYxAE&86 z){Pr?@1Mkmmvuvu+CE_gXC@lI1ctoox}Drjebp7IH!2pbHNmlsC|h#)%R&3a|a*E8trervhIO$ZOF9R&bCHjooneC4=E4q zas5<9C*x8^E?(UPv+YD~(t%@W)ucR!zTV_C`R3u~UTGcq=No4u_$0S;yzFOp&Cd1X zV98G1utz9SV?bO`ZVmpB+{-&#k3Y3=q{t=|O6FG$uuApiJZkyT^!`N#2&FeQ+s~Sik;ctpZD(;~k#wqpePSi7H;FCk8lZ+O2{I zhSMIlYZ*T5lhHHnGu9RIe7|0C!!ex;hhokBBptgsxW0J)GdA8U+jr7YD51t*-AO>T zaKE#F*iOS~af&92^+ZCRv|p;UHaD*0;aa`CQ{~F?Pp!812~>}YS1_IvHWzT^zWps? zkF`(5flA7==j=Cm5xGow>k%^r&YmA3_s2OqBtoedjiLw74M?eovL0G9z-QP`hBh|V z*M+iQpmtRkDm-6jVAXo2?xUDawo*c6&!xOERi<7|cN&kLaYEvJOm&eCFH6276yh)1 zu~m83J(j?K0;b$uRpfLssn)ZZ0qdR-JThAS~A&Ku1@U3 z^+J+Ua%|7q8r|w(>lP~raOkd5e8swds{dS!> z({8&!L#_W~f@4ZjT^JL1Z=A-2lL&d6{sbjrVW{kn^O`Hl|e4h6K7Mm>~0XWYZ$Y(#9aj8)zEO~z|1 zi5m6qr&3Q*CX{r#Jztx|%e0r<^kaF(OIebW2N>S_zBVWiYd)qQI`shW{aDS%3h%V% zo(_+y8+WN$w03|`AWb6t)|0f`dVZT~sF%*`+<#zlu<}kv`kGzOH^_f-s?tH?pBK+I zZ60OT{FSlin7`}6vUBNd z_UV~&8~Pd2*LV%azA+_^m$LmB*Kpi>yW!D~%@iV%a?E90wfx*?p+w2Np0xA z@p00-Ms@VnVbvk~t)owCg}+~FOvlu7u=OM%*6lzIXLMd7sv9wubwOgcj;E!IRTRe} z8qfDm#4t7_>dp#r=W8{73!iyA(Rp;}Yx;?ap$l^@YiY62l_oO#t03vca41W)Daf`SFrbk48N*4dk%6`@^cV`FZY!4|ZiI*QTr^??y?3>y?px`mveWot!L;d4R&J=b3 zYYI0mNt%0YkNWW?M(5RlhF8^|=)+?-gLc2~svhfXnSM%kw_;J~wnz_&8t-TRN4)XN zbjjYK(q~-*pC$!czRPHGQg@F3VE1;JW`^_c&#dq>6VtN=oL10y9Pw9rM#H&yRk;R7 zg0uSXM1wzOx`tVjTW^jOheX*##|BDNo-dnwMj-#g$;mZ@yeWJzHPO_}?cH&Y7czF1 z=d?CSA8Rln@l{w6SuDNHxUs(XWTrc4&oBkf*YX_R9^yvoyr;?R#Qb7P5?^*Sk^S-VdR+WI8WvLW)angGUjn0zRn zrGQ)MknIdxPO%&QvY|~<{=4ET{~aOwM1RcC*^7Y@K2!=D?BiNqu-V>K{TtUJ=5$6Ar5Cfpx zl7O`8*E-?PA>F=S!4U#~iue?ix=J%eLU#ho67H>O%@X1w((H>#z$ z&V|Ul>&S%)Hoq^-sj2RJ_|h$Kz3lcFVWQi(Pttlk?ZtsIl}z3JZ8Fn2dqX0}uUm?S z?-C6TW#QMmX1>?(w=$0wvk;1gujsmgIVtJF(>b3qa47hfC zj#rz(wr&N}z}R{<_bP#~#4*6b7OFtp*2(w<4B7~Mv=xHF|ElLU}HTjqV%?{{Rw8-0vDLUw%apT@*{P-*M7 z0_E-8sgHGCjprZm4WBdfEYi5ZuO28TQp~PpC*~v(p{=ejc87Rt`<(t)?&WEXQ3b* z&YsS|cHza2@C=KCP3mHpVgB^g^?aLd=9(TgH_p&B`L_A>r;bu!#oArP zcQ}L~$14xnOExP=Y!cK=Fs=!1Bsv@(PT7`rd#8-7DBn}rYV*3LS5GqQVsnn`vW_~& z4A5#DzKEMSzN(6yQ6viw95gS$SHybNC3|?bgwHjbCBz+S5wJQDmC0F|eeC`dPU$iu z^U%rW8fU_LN&Vu_Sfz}cx8*l6##?x7Lfos0;onbctUA&-%0&`xI!wvWRpR#Zmbn^{ z9M{yFS6fQHHCQk>`-9!UIkI>KFThWStMLK`r@F)o%GRVbW*v^sF`)=u>izfCovCvR zZx9`f2M_5%YRW-Yw=DUxHV=Pjx37EgK4;y{u$zU?Izq&RNqj=a_tx2&m%Cn*Xk-r+ z_hOnY!7CjUonYSLfgnZ%g`3@aG#Mg_XNer#ZRur&*(?%trCgW@()3Y zvkiLWp5q;KYg%|JzMMYoMB@3o&qi#*M9@_?r@|uLxo6%(=x*U z-ZJHW!S2j^eI(UhZ=b{#^gFDQ=ADuLEu&ZN*sZ-TRC(gKm5BR`@7^reglR~r%^mE| zj#0R&J#){C`Lf+)ac*Y=Ok_m{u3D7A#SYNMrrSZSakl_0a>HGahi#iXOB!bUi;a_HQUr5BcGF zc|&*<_k?Lx^LS~b(%$pB8@oQ5sfU?JH%^xc@_X^J+T`S?W~ynrM_tlhI7!(&|Mkw@ z+3#FJ@-B)i*l)EkhqyFXV{1{?D61+4cPtglN|iQ^1G}a)7xt94N;az_6yMp~%h!P+ zplwh%9BYkPcT%A{DoNYPG)0GG^&QSimUaTjzoo&h7TnEhkgzOb z)Qb(FaL6T#&p}1ROo_dVsV^%KAyvS}a59Sf;tGqd7O!AYxFxG&owzo4K-?Ql`W`z=a1!iM-Q2&=Z-0wieBO>Xt|g$mKD{?OT?A4ha{Oc^E@5! zc0zOqhAgNz8a)cbYlxh%d)qH^OvGAf^s}U8QT&^&FZXK5OS(j&421bcc# z)}K&)7yaJwK}X_wZ^`KPZE_PbZcl7w4Fo(b>K*-$4irok%9l|OQAMG*kB%I&8Fk-w zW*@hDfD-bNQhP=h7sl|kd4XzpdvsFn$32;2;olj3XQ}Ed7=E>A2(!%H23A*-^cFD) zhue3h$bvBA%%K~aTMYx_B>&lx_K(2v!%e2#)foXVjSO`(xo(KWy~MWO6^Ya7i7nC2 z`y|Sj6MpEiq5pVjV9&J{Y$AzCr0t);vimvzx;z}oW0&LW@ynP=)NL@a6AH3B8Dut7 zS#vjOaDVAV-`e}B?`ynxy-?bsm*(DeD#LmX zbusy4P)({)Nbj9Tc_ihWM^mRK&Gzy-%H~+VR>&X2XvtN~x>!U_)o$n;DJr%9n)iJ; zHS2@a#i7E1H``>abCL#5r(D)pNIW_7gE{$>6a8iE(uYCpY7ra;vkZ(_s@H($z6nyC zN{VQrpWEHq96RJ(z)8;<9)TamA3o|E$!;HQ=Q#Ulre0X|u;{$7?aT$u$(Go+nwR4_ zUcb~mPTrJ*CG#gyGVS6*3Q;x1i6k|Pk%Te#$~Ki7@5xa&%g{y5;@em)dp)hPG~dgf z+92}r*+9}W6Wr15Oqf(Ra{i{#9w&?Wf!#*8t&d8f9;GPqh}jU7gKWh_uxrLM(PEWH120tqsL7G`7|S!jA5IHG9os+neu~G6U6~YJBA8 z;KXQBjLV)7vOHr)#6Og7^E^C|a?&tazm@NqLSfVS4_B^bwYs$XCv2T5+^{9Pl!)m* z-&=Xf=rrM|A%3&;7^D{);V|AcWj*BCG7&2IM$J|@K2T{vkF_Qvq(dQt#ZTwiL+SAV zVGaH#Y_+4owO7piKi!ye<|-IebFTJd*XGQk4!f~2w6<_QW@vr#cvx6LexrTE5tHU~ zA6(?rt?GL#Y1fD`qU`HPZY^o&)(moFQry^J~ook6+%_P3L%T6T~zvCFbwC z!Qi5=%U%35WSGpI$Ci3>6T{F$%(Hb!j}&| zU%@r2#nfmJ@PA@z^J6*!Ehz9n8y!~=Q_VPAK#SP=W1n&gVTyG!F(&m8ibKPldjchM zE#m77`x4VYLh@%BQ3DN*U0hE@>{yLFj^xijd|LRf^yQni=0_*^srTzjXhds8zsCIb z`KG9o!yE1EH{~CYaDE%B(zoe@0TcD19qR7eTc)PRPES4>-sq);9b7@1)nZe^(l}c& zfoWf_NVuY_B4W(l+QC@M9aAThci^zIE>0)ofFob2m#i0`i7K;HHXFm8I-%Dq$g*mf zM_6iEgOn>FENE^$s{MX}@EEnXqFan=zn|vvxi+l*B|J9#uqJ0quxndfAJ3NI`YznH zWXzMKPn28p<<;62z3l6x1h*BNe40FhwR`ho!2Nu2kqc5yN}wz4)fsK+y=pbL^_+)t zqSY?!dnfr`a6wUV%%9AtQaPpl*=FNR|FK8bZ*vQeDQ?~^vFq^-j;m4`^-(Ssl)Q#W z_PXYso40+9VlE$3i&;U})xtpHQbb#es$YCfWQ)QPZBRsl4GN8iAFP=;_aDFFg1RY= z>ReZ@#IAJIO~+G5N!r%7d<`F0Q48PsH8&5mmoYL-jIG10AkJ!06$ZTwQdnK(2M>zi z>6&Y#XYVBOZf9xd55G-$CAtJ%fs9x{kWn;1rdP?# z^&)1X5=Pg~JsrrZ)x%|blcKq>ij`s;?wb;F0~G}uPCaSCe&O+>F+0RdR69exC2oWD zQ1ETub=)^|1dmE_Z#8FII2Sx;^W?pzctFwN4BGVh&#ymr-c`P4p_#1T(D?bt?w~R? zgnppmt`A3O-!t$B+YAMPFHKQg~_p0Tx1pOV@3Lz zHgIV~+P}O4p4g}n4u_Xq(^o@_Xm8rkJB=->Yh|6=6O_Gc~dIR=jKZdGX z>?Rctt=nhJ`=-WTV#3xvB;nnMQuFK%%pRfg*Oo&I*4#|~3%%_+b(a$J-A4r;v^8(i zc#V@5lN(gpcud_=%q#9zYtpNH6;Zd7!i;$5%O{ zBzvNYBQp?5fSnvt!q(CZc%KncAJo@j10FeX{p%s@YT@;tv0I20paV?-c88Q zV`rqpua_7+*7O>xbLP$RG0I$F7C}GS-$9-P|m* zmk=5e{Gl<|iT6&0v9Zwo282a%`&!e7S@XF^a_{wbPCv_@6WzDKh<&-2aRsNW7H*>P zOW`KSCh(S~Pqo+K6sY2OTYbAPY@tHr^VYfm2Icq*GPac)<)q4<40?Y=?OAiuT*g7^ zp=^En`d~3(ovrBO;TGsK#g__m;`=8qmseg6@yfjK)7jCsZ`OMoHeItB|5k3=e0=_- zMqS0Y^QjA58By97Rr5`(&`}rM_ZR1d?vu(}_gqWVC`Um$$lV|DZcdcJ>-x6Kw_dS6 zWhCxdLCe(wMf9?qX`W)bh6&`%In6j^%-XTRH+$Hs4}1+U>4@AHObWrWbwzv z4w~M~FBYe~9N^QM5zkvFaS=hwIo>GeQY>{>jo;;F;mvZdaI?(?y(9$^g|O?(EgM}!~bmz+LQ$a#k0>ebKtotx&JY&!$aWqdU6>R^AM ztkF@%CsdUEAu3O+jU*AEwp&$Y1zlH*yq1GvybbC6Q*G{vD1<8%6WX0O###|Q_3Ti_ z4uoEv!;#!%;Y^>;6iIvKbd?*ECVmNGALi~L5(Lw>$viIQPPO{15odQ}XXmx+5AygS z(@aEqdfIInt{>dl!z$uq9=o?3lMd62aI;U06=3XKD_FeSN$qM&Zqhf6GR7@0`Ge0p zUJ~~ZGUjOrdMxx_Z+1`nddTZ|))9oOLxOO$&de#Jb5V1Sc8*Zrq_|07Vv<#AOz8f{ z#@wV@;j87yFHRZ9IcbwerKXCS1WdZ}++Eea@M_VN%5M-}bzVr``o(zjZnMW>#U?&o zQt9Wj4FZS(QJR;vXH`1(ZSRJ3Y#+$`?Cq`0_mIyOrNo7a=W^q2i^q2fYQ$p&GCoGh zNAEC|ZIDmhvWBN{-wui5#5}eDMrz;5`XkIDGmpp@#NFcVwdIaPX)6jwxP4g|oZs`~ z8?$(QjNJ;ZSuKntF5Lj}iPikz;}dgaSuY2{(d~V@sR4MWwbz0fxq&yk=;l8>4F{wH zLn^-YNxNQAFv#}kIq)K=a)&Y6P_tb6)$nc0D?0*(1)^4vXSGlgOIj+Brj4mTD|qpJ zSK+dD>9l!pLB;UY(|yh-y6h?uNalKUMmBea%$B!lhp}eSpMqUqT7PKt-L-R6a!Q3z zHt!g`qv6oQ;J#eu%u|fb zY#(5Iul;F<-p;$aa&DVOO^%NRO1~%=(&0jX47!kI={t8^!69{;RlS3ex$*mOTGHLf z=Sqn#L+{Mwru%$OiwmB+F5&+D;1*xg6E3$m#~Z9Izb4NSJ*XoXwAZn1&a+rQtd8-4 zwBUfZ3?H{ZbI&B|L-?&dAZ65ze$@9a)|co{=GT<3X?vX~RCW5>+3srb0$$n3fVyKD zU0vm|Lj9o;<@I+xHuQ%TeEsr`QH7yUbOne0U-7bSh&zp59cCC1?DxA~2}}G{0QIvH z41v^LESpkBqcCVl8HXl7Xo4ylR5lTapnmGl^!y5gL)oGTc>DI(7$SkGHn>Sinko%( zZGyq|eFnxI2*lr#qL=Japx#QKLiGp+1sMUs5CG5gk}M0dA1JBPr|cp-gxG?jF9Z^< z95W}=f_>-}T`DLPjKje1?=w)@rAww#=oMyv%!H8Jd^~C1R0vHkJ3}CUn*lDB!-9%0 zZ*nkP<_1Q<_vr6>uti3OKEYHPJOn~5%J4spgFqVigK99i;7vmVfzVf zN^kDhEQkhCyxM)MA)01J76N;dGR4zR7v`H==ksSrNC?HEDA}&(5otb z>G2CCIYR_sy#Egk@&C#Li&h1pg9f32f>gn4EdrK+AmLFE5fm(7h_#TR*iv0z>LITi;Dp-OLfB8h$^5rMpbPC#RTf{W|oz`A&_x52p$ z?!$wlDlis&q&EyajzBj8e1zAhI}J7Dcsd*gzufif2waBvB?z4Z4!jxx zYSYDsU#;*_8e{AFQ3NDaIes18vr1ZoB zwr>axzeoaI^qret`U5WLyF2hV=t2D4|1t0*Gt2_6YNqE25C(M0Vh+Ll%#`r14+4YU z17`*dJ&7TH?)|`+i#_yo0Y19Wuju&#^RvqVxMh({2BEchMuC$R7>WS7g8o$k2(l9b z)>xblZn(uWAF#hHo_RxH!=U&2LiBHbU`7DA!C)E!Bo+D#B3K=W{sIM@Q6X@j&}RgL z%Iw9n5I6zSX`qh#C%;fQ71FsZ?*HJcFFXRIo}W(mwL!x*3RKK>y6MhB9id9p;p~zB1hX0k}{z7C} z72s-R`rrTlEQMrPyY`nDtLc~b@D2<`F039<7b99y9FmUjOyFWTGRQ9RHz0!r|0Snh zKnTdw06Uoac*3BCUYl_)ketr1!^UQ1DLk3Gmm4{{cW=Uk!sogDj?B7@`NW0)X(( z5oi_g8|~AHj{`gG-!%BXUd9g%hyD^8xFCR-Tt>qZL2xglVE|ZL zMnjXp=DL)I#sK1S8VYQnf6;J%(NH83yh|-v7l42KU+V(@F1H`3WP|sdC38_2EPgpZ z6b27A^yT9Sf9nf!#$Rh-Q6z9vFI@wRg`XXk(Qp88ET<7kf6)LQ_-if>PP5DA;s}51 zhJ(@9@^PvFZ7-wYF#w1xr@={OIZgF%8pwHn$xOhb{<0~70N;-A&+m9f5mW*4SVkkF z;LU&OI3gC_IG54zfAb@%{v8LZ7y$B?%~i$yZD&;?oNAV?K|;f+VHphrfW>ke@h@4> z7~G$F(1OW6zLa44zd@P!dj&xBy$NI*n}7g#OQYu%Tb~FD*c29@V#&cY`Zj^a;8oEG L85sjhL&X09hL_r# literal 0 HcmV?d00001 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 index 0000000..900bff4 --- /dev/null +++ b/python-lib/test-data/chip14/arb0/harmonic-sin-phase/arb0-2013-04-08_135413_5.0-010-020.yaml @@ -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 index 0000000000000000000000000000000000000000..39eadd1e3db8ff5c4510dc86d5c4a595f9bd35e3 GIT binary patch literal 2976 zcmcImc~DbF7!PtI3Z_^DQ3FNJfE*F22W$mF1!6>K!GjthDIfwS92HP*2$vjfsW?i3 zI%vi502F5sKee=j14Us_q*xuq6PRLE6hWcyv76GoY5PYVcV^!&yKjHr_xm>czWoGV z$|`y+y7@=RR;w6Y4i2Dx(_M|~VmsT&=sjQY{e1+1N-PgnqIrl&8Z0qi&M{vpb~fj7 z%*9cX7>O|Q^C(G(h@STlMo2}}yfjo8EuzL2mR!zWjzZI-3{y=H2^4&3+B^*)6@ZFb6h2_%i1}eppc`-@=*d(bku zHv_6-0?n&(3h{SQHOkh8C@BR^lcwuk>B7ayBeUj59DC$%Kk) zmx8tg=YlY>GyG6j3Cv7C_(#Q98hB2u>nY7Gfb0ARySypB@?lr)l@|H%{7pl|)+ZUD z^`=5sr#~GMy^@-CYGi_&_OoNYvAN(doOOw#oB`@v&y*GL3jluk{`yn44Aic?)))^c zf-9OvttRd{aF#oKi%sq0sY}ONW1MoJ-JM?KUK2Iewq0EAp^fl59mKl(`_-+Ua}c(}Mn^*8d53oD5#C(nF)&%) zTc}U?252Bkra8afkk~Oo`6Ie9n{O>3_7^GZEu#O*IX-o7iLH#Gjm3}g?BRcJncl+VnUH9yWUVC(Q z*tOw)jXlxrfELcVSNtNzf#`QYSq>QyDlU#B4o5V+$;?wvok!x~p@7&HW7F$A64z36 zxitKZW7$#?-%@0GUc1|EhZBj@36=DmJhRDq8Hslp8Xptn2ftWG;&w(MM$g64CTB*n zd+zwfZ+_Hipu0BJ`OzXtSX9V=q}wpw|4sEulzqiR|H>-+f_-$P<0!kDnAcUSNa7Y${er4iTeO5;#D z#*4c!>Ly?;DZ%Jbhw+{}#+$n_N^&ud9>wUJg|TxZMhAb473(mzgkf|!g;DNrbs!!$ z6T2^}@R*y9QILjFjp#Z@*2z(B=QPn*TZ-4W9mL2cdgSvF#9xUYet(X{{VCD)knoO> z`0L60q?LGmwGd-Hd7n$r{WCnDAi}6Y^p3{j@k^px%Lk8T)fi6_-SYjMM|kr6=Mw$p zWdG!PjuXG~|8HO|ws(IoM%x;U>&gG}HPIE>(C#YmQktQs{O^SweJ<#hl1e{unaAWX z3o?2o-BMDMsHb=;Uobh$LTZXI#TliZ^0JD_VqS#PtVrd*U5iW_Gm%Zx9;hm&H71jp zgr=FnRM{(@N=Zx(GkHvN?$R8RN|-F>M?cNlrmmO*1YW9i$xYRt8mu}hZ+6oq0qalM CF09c2 literal 0 HcmV?d00001 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 index 0000000000000000000000000000000000000000..16d1028e7bab7fcb6e316a31bcff5aabcf775e31 GIT binary patch literal 13640 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 literal 0 HcmV?d00001 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 index 0000000..eaa946e --- /dev/null +++ b/python-lib/test-data/chip14/arb0/harmonic-sin-phase/arb0-2013-04-08_135842_5.0-010-025.yaml @@ -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 index 0000000000000000000000000000000000000000..0236efba847ac9d913e0c87d518eee148aa4b75c GIT binary patch literal 2976 zcmcImdo)#97{6Ynx+0^;E!8Et5t1uO4ZFOW!JR9bp~&F6%Z{~+C-Rf}hVd-8ymex8o&lF9 z4hahn^A7e32^0CzdOPnRsUM}6?(h!vqvU0J2HZW|Nn<)?m>L>LILWu~eGjKezNH_- zx6=Z}#m%)R8NQzdwfhL=SuA=gQ?W&cM1+5^cQaE1M)K1?<9E7r#HYc=BO`)K&RHP7 zCvR(CoDcQ~_~vDWB@i+<= zMB@9W)TIv6v|9#NMBRcCaoHm7(@Kz7cSt<-WN;{It^1q7Vi?Z;VS7S;0etFu==-XG zG~l{(-1}QnAvncPt`^DFbndiW(Pw9Mi~9o)LC+Fy0O7)Xt= zds|Wh_Nsk4S?c*PRd91evNIE2u+diIu5|cv&g(Z9yRx8F4GGoU&cddg_bIbeDgQGp z1eYHGd}}*odS0^<-j}S24rA9qTzlTRIpsHibx+Sn-MIlq^P@dQ#SP%lQ|58pt_Fr3 zU;Nk|UJ3pD_&y^wfG5w2M>A0RzQ9auNq`kaQNo{kM_J;@QfGb6}8sE znc|TxYusxgu{(8{3#SGoBYmk^$(7*jo?KG8^(s6L+|Z_&R18n7mn13VoQ00Fwbl=G zGGOwFPjXAp9Y1x`s8biZ!&~b2F^(PmyU}Bwp^fXXR*MzJXI6K#__4cN`icC`YMc3H zz36~ZqL)VzdF9W_-zy=!e;O*k+#s{CV8$l9W znmMD`4e+-=cBM`OJ=xS0g!+Z~hlu{8-1?jT-%>9}*`Ivq-{{9*omA#`eDH~9R9Wh> zAylxAc*{=3uPT@(@K9qu3U;Sv19MMIfq_5a#n zMPno9_81ODVZ3`1>y7d-=FY+wHP&<@IITpSS}`Ujsme;Lsv=TbV$!jS5dt*nR3wrF`M?Z0!$K)^@GI}RH_U_wFJ;h`7g2`bvQe%WM z&Rgm^-c~VL%!_b>6|C^LYmrG~7P1Lim(t|2#$+;!&;-+$YJ0_FC5g#l7LN%|E6pLL igvnz5^b;)4sgp~9&_RiAxvBnBnN>v9&1SkKVEqNq&ASo+ literal 0 HcmV?d00001 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 index 0000000000000000000000000000000000000000..657ca2e77918edb897cb92540fb40614a4aa0cae GIT binary patch literal 13668 zcmb_@2{=^W8$a0x*@>iUC(GwerzrW}I{Ks?LJMTH?J@0nU`?>eNBWb3stAJL-AtWz8hc472&=3mp zbKZ+kQGt+F`~1leQp<_rE%d-* z;G0#TlW&l}Qy|&bW#5vji{sVQU|m56Wl>oK(wOY(>7?lw21JM1M&F*yf4=y;sHus}53}_`Wk=9(7L|f{QN*|1hu(*=yWa~7mpJ|X|vA{SEH@3ypmuK zeuWo1A=Ycfl%KarlZAKVduZ>;1Kb3KKssaD@XebL*Cl;FI_n=TDteZv`(!wu$R6xS z!PtJ~%(;}V(JeYXcC5*>HQA$E$Gfs-H`aWktCx{}Q|)6eCv8)LMsjRco?}n`IwD2* zd}EiMR?BYd?cPi?$#cbNKAD^T%k*rOqIgsGP%2|bq6va`3ZF+6(dHzTB&2es#j4kZ zoFZ*ciCr&$vQrR3~ ze-HP(^>>?WN9)^OTtt}cGP|nz*id!koR9OHP3hQR;)NUm1IDbB!k=oFT$pJUHj3*S z?mB*am`(iruCEKNZMNS%$4X`N&dS*+;il^gFP+@*E@{V1k%qHj1AWq!Al#h^^fgBg zaqhk9F1`jVkJhDC9x7^KekFMS!A)hM)B2S7)6rJxclKhq+Z?C8Wa)5@@ubV|Wm8{e z=A))Po)SLSa>{Eu)FsU-$BN`BGLBZ`9}7P1?LR&lQ+D$058O}U0p%Hv+&aqvo(9ZF zD00XzV>n$jlBpeimbbRbm#|UQ|Krfbj+(+-!S18)r#UFwE_7Y4g@l4%9hpH$dhmSp z4*prb-&N$omy_>jzqAiIr)%h~KQmdl-gIa}zc)1o>ngdD#&bE+~9Nr`PW z?GVCcb_wx1@DEbV=*AV?%#1w5!wVXF_PvtV-JVIf8sFOWsFKmRxQbCHJ%+fcw}DHB zeP?$;ztEF{FElQ3xmxEkTfdHpu=SB1;LGe<(%Xoji(Z=^KkMDnVdA$D3I{%StHFkBvu5XNc(Jbza zc3V0EeeDhzDCNz56CJvkdpLnHH2tiiNcqA|t62_#P>%jz%h6732}ecck?<2=_8ntYG{F8Zd8#%Gq=+XwbnRq<^|IP@G#$PzQ| zHP_7Cojw-aK$D}F_ZD%&h>lw54;y{^k8WjLZcGxmj^QT^239LY^$_u=*-@XkrgOdrkEJZO`TYQn^DVJ$PL z-3YBlCEkn|NzB_coZWS0jD^NsK4T6>Y$JoYhxWcZqm`>0rlonzQg`9L+_kg=yEZ-Z zsSL-|wJr3kb@}d&`1xOy#+yEjo9)bZ&Id={JRZz+d5|7Ab+fq>Vog5da4ajf$Z&nP z@VmY^>G=y~^TrMiFV)(3Y;NI9zdsbLU7+P9Or^qU_*ZiHm5`}P1I{jJJRY}{rO|Lo zUQ^1!k>KS1JKx|>8m^}kWz(7^#UN1@kF3Ad5OujtIM{2f7nESc3?mFzRc5i1CHC*4<8s=syfZ=PKX=m=id-0&{<&^H z2IaDf%7259|CLZzD2F9fo1x55I22Q|ZmfFRsd&v}q5}FfcRJr5W*Ldv$*3-ruf$X? z6(`3|bN3y))G76gGSLVi8 z4m!og(dV+s$68J?W)?W&uj^VQ=6oo);=3pK&`7xDg_&8VEv6wM0jl>q1gHO%3-dP$ z`deyVy638CuVA<-Mv5wf4H#cLht(e29tI1{5prH@p}zXlh-kPUS_fx zDd`P6Q1-0PCiB~WVhoIOVju0lMt7ugD&WXNgKu90!f7u22xol3@laUIb`=T#2Acm% zLJUB3%L3A@gIx>FeA6AlU&6cYkZZ1Weei;pPxn?Qt_4lo))eM_rEOiZV}@$VMjSPY zw=2Y0F9l0}XwQOjrLa9;A4_S}v08?z@qZLRVhlHMC4 z))UBw>8--u+rZ4DBcifTr`Z2>)#K1U9Cxo9t4SJdxyiPK^)!xRyLU!?DAy(#K0Hx$ z*01i~EQdOcW%Vkifg$!CkNBstf{3 z4dL>3U+k0KS03Ehu4}<8rapCwtalG#@4W8x2@*HbbK9J!&>>q!yxw&5F(=zszRBx2 zj>vDf$yM0RcIug?gZ|uO&cRDYuK6mLxwiUC3luP^S#8`Y60W{gn{Q{iL9=b2wZq<= zE9-nynQKJTJDO1x~3v>=R?ED zUde%?=3$%7vyv5>Y9}YMIxSje`Kx#zC|uTiz;#UlL2u5ZI){ z$uMFY)kmqS{ZH7)_RW>(sVz?YeMgLQ@uksj)hAqBo5NHcuz)xHqOLF0`c%l6xShA{gq?&BdjF;hNI-1EO|B` z56PS1Ct@19v#W}n?)K;QfBDIzW4FIx6)(UyiEHr!2B);l3kv3>WI7Gzj#0jF&7emg zD>_ciE{q}CX^+HeLCOjNW_L|F)8qy}x9+GO`k1+)F|;x7Wqa^OeiA32{=*Gc#w8AQ zBK1rm!fxxn6yoKN2#(Wjb3qWp1Hz2%KAi{_#MAHZ_cC=e!^jB)wB2E_41Us@*=$;z zz&c_7fW7qw*JJXA!ZWFN6Qae9MJ@F6-b|AGpsNY5s_qpgKij_F6;{RSN?p$jUU-2S%*w0>lN7$y!ryiwIMJ-0ik zvJS;(J2i53W0LXJIU@4)oa&qL`R{ZkMRxqF7;w#q0gGN{K%J8v?DPOJe6$+k{w%0g z8rPTmp| zncs=oX|zepsVk$sH4SrZ<4}$9k&E7`R+o;1s4#NWoF`vkjx6FywJ(>|!r`l*RvU9t6O@OP zJuk`s^{ye?5R)Cpt>IHUv<`}FLw~@^tF{gIZX3DLX2pApuk1{QnSk@q4-fh}ehN}d zuAS-SNithd*X*kT&U8m9oa04511W*NI;?9`eBOy>jWbpoLXCOl%lYnOTPLiEmC99+ zcbFv4>$^1C^iKtn?mHGFRHP=g1d5a(k{Nb6_K$5eKYmy)HRdRMex{y@3r=FVxOt)T|u^`DA)xZF4xEHZOWr7EjBM_f~1I7^nB z`_}g0%MVsQ8T&1(*l(>chqydfW2;c+D6=ax&e$LD9eJwrpzTi=F0$-Up%a8(=0 z(;@pHPwviho%zbl#M(;bma=A4j@@)g_VHNb(^;ci3GN*Quj{V~RW@ntH5jduR(TQ}ZmQ@jaG#UI^@i1)iTQ_#ZtSfO+gVh(Yldtm z!L4G&n9v!e50M{rAGarzdx%E1+DMN}IzG3Q(&2VBsj>Av-j_R>CsQ008zcz5e|jv| zV#L|z!a=sJe)7nt@~tVItQg(%#<@yit&xdY)B93K!+y|ue+k;Uis9FahA=DKtz&jG zQEL%{FgyN`-=7<*pE__`b-S*AjOeay$-B5Sjy4#wRiya6*3;EcWxXvB^BQ~Sfk2E# zS9GCz_KYBBW?1YqUEg;h{#|v=*aXr#ftFqV#g8(-+CLf2W|HRY@=2LW(5yAE;tQ}k z8(=h5R{0>Y|4`9Y@2W?qK8Pkp8yZMTrAJzBS*Vt^+w$(24$l?+;X|j5aYORkw33}W z&!w2pqOP8p4yZh(7u?I9gwX*GTd7R*x3W2-7&YnAFZL!8lU18~hVzSd ze9QhZcq;9)*wul&zA+m~^UTD)^GVlL781@*{iHi_ZYTAb?DCsI>{<~V2D1W;m~O2E z_kH7}7{w&P1Ruu-Rhd@ES--QcmF(O<^*>K*>q+e%X=T3nbgG75@TlM%zva|r)rscl z_o~<9nBTtE%y5#(#*be=bN)@sZHKqm$Bj4HZ#kz4(AS_&&!o0wc7!zA3P}f;RBm+X z*Y;Xl57>`lZ~h>NFXVj49AZ;m$fL~{^%6ZSd7kZ61HJ5?RGUw zQ~fA)Zj-?D%f7^y2Dsz9*I`aMI^{@=bnP^m>+{mPXMS7^EnO%$jNy8iUG9v?V`)*| zirB)(kp4cX{e{|shl8E*Dv`EUM2N*MhYUIZxV4~|2S$1AA?%3zn=f@HHe)}orTQzs zP?=_9X2GbE^^2bq(p;m5g+CYBxE}3GI;(p^`wr(z*}R7G&o}DQ?%22b#&4g>+q5mc zh={pg-d%Q0?>ynSE?!Q26w-_-X+GfEJRTxCrfkU{=P$pY#ZZ|N+%B6!@1ybZ ziTFD|eig3gj8!9nRX2=$XKqj0vF7$G+g125sk5X74LUN?+-YWcMsw%+vq64Ynaw+D zj~O&w`fM+~)vTtwj8aF85@gyya%@h%w7%cNkEU6TV>(~A#PfUVugC}{;r|n$@3FW2RFN^Vf$CnX06zi zusqIIO|d?yxB3_k!E>s(zej^{g9I|1T^$?5HYBbD%>@Ob`3E z!J1B7-3iR|#2ND4xsnQXlWwLBVmvkl1~U`KuvTM3ea__t`SwUIh1k3 z9@Qv}>ex^s&m@1`QNvY3Ufj~MWIZQqelutJ`o_bp#k4fzqZ=@*h_hByg+Z@?6lOQM zz>OlfyJj8kIxsS}{#$rz&pmI({>Sb^p|g$?sj!2( z3myAwpul?^8`v5%d5(**Z8v6IxD+^R@%*EzuwVYs6w0Ua`M1*@4;1Q5R8MHv*3TdF z3Mf`aX#4B#{d|n#)Kb~1RoF+5SEcj1N>e@|Ys3h|+dx_3aq_ zIZ)ATHL)dj!$EzHvC17H3;dmC%2kzbc?xrC-F^=qM+khepit6`A7!F?ZIaNnvZ_H>Gd8jJ zn)jJbD`ubXNk2-;Epgl)Ds?q!qrF;R9$mn$dc+Nvfnuvg}b+qtGsmoIe2eAFLkRX*y~s$<`l*5s}&Ka9Ska_8{JfjL2u z`HP)xRZMr0PiF$M9Ol0z z?$LmpAH5(RcB@e5nX21BwH-&Ar(P;=+K~y*u8v{Dae142Z|0$=gM3>x_u53|qeAcQ zQ#^t3A!~a%xgROK+wyhf$;l#mhj(|$g-Yw@Gq*I+ZO`iT&WC=sj)|Vfa2A)3ZI`}g z&KLT=&A#eJU5)|9ZdT{mecrC|rp%ep49tc5Tlb~$6q)GE3GT0FQHZ-NX<4>eTCDhazsEFc-}$&mnkbA;OvX|Fe^yocFX4a z-8T#`Xo>q)(Q>Uo5xpX38Yda9Uk7sLtZEE0ig&bsY#(FA;ctEh?NPQ?k%47*46?NR z>3wn0{f3P>1;XUleVl4j!r2Rj_5x^W+uJ3qTZ){O;`Tb4c+fx0le6n`nq&{zFmm`b zRCM4PgYuA5UuR9({qkrBm(beH2A=)5!o!YmiGDhk$8v$@=FRy-b`5hoEj#=!rA!-l zwlh6eP-!pbfxoJCic?!ICD&K6*O8l-;OuOwh zS75pAHDMP%efHXbXM7*EzU*rig4{CFjv*YZG(iBKH_d)ykaOww^uj;2x2JgltAX+Mu4ZHOJ@#rk*-o7Iutz*pf9Ip}vJD-0{DK z{<(cWztaiVL|Luknzh16;_?j;pHRUCUOv(7FYab0*gAeZZKwmDX&o@3LvG?o&u`qt zUVB*FKe+UJkGR7PS)Fv3uERqCWqb6|x~e7OZwBv~-q_>M&mFOfJZpuLSkiKVR4ojB z8Nh?@2eQ}Ii#{0#=9UglzBp)irqiknfuyTJr=+u$N^X0fd=zUGITPsc+Wd39_g?oA z(Md%@@tkeop4!+afjwEy6{f;%$ku8r+dS(R1zJ-vGCUkK3a<_^4BZl5m=Y*y?7tEd z*u39$o#XaiU-i3MJ%ai>HMpFsp{4 zT21>{oTtx2l9P?QscQoDIqdE}kTR-ArnNl^v_*PPaH+~vw!F>eyK?^f#rqY)xg1ja z{i;u8lRtXqfKcb=CgFyT%DSFv112TPT^6>;NY^tkhyo9RP>VABPvanvI=-MN46b`qQ9&TJJ>A^M zaM2nlIkSTRv_XO*HWyGLhk}sQYBq1O8>p(Io(6ildr%-84nn&4`S>_NI0EP(2YULs zLg1wbGMpUf2O<4@$p|DR6r52!0?EKaZlItI{Pzq2=Rv?Ucrc4hr!75;7@CAqhcn5*CAY?Fv41pXF zzp4y>D+yu&Y2@_FKo~sr5$;lD!{2!q_Ap$crvQUusw@Ae89~h-h3sPuya89*xd#E$ zA&|EEi;4l_Vyz?Wpua+g%64VkKuBY!Flqn*|Kk7`Ehqm!d<;Obq^FC9ue&!HUQ1(9 zND_uxRk5VU5=ydz2*7y%9~$ESl?N8B1VRT5LIVXUfyY_|ECE5nqaY$ESilhR5Ec{& zzzq-Ng!|#~SP%!)Be>4N`2W=qOZ`|d7H%+)rG^JDjzI7L11RA@1B^&Y5D~mWAb_yO zgT;w(!($)}36B5`B7jiD1K_9xU=rdUf{bsdz0t8%SfdLwWX?R#FAUQl84ud6kEggZ&5KDqk zIpDyf5ui3zd^iq%^M^;lI#GiOaDu=8<^l_aLLsPqzZj4RBxtF@fv^|@a2zaeR9l0% zfMepXMvVtJCYBmCR({0<91njtST5>!zypqrr3PzGK;eN8fvj*0tkOtIz$b8AfE4q0 zTZ)OLBWx7lcLenapa0dUzFzEy$NX+^Tu|c<939}K2EVVSW{jm5*MDu})Cw+;Nq%kM zz@*f~0=91m4L?W%UDTbMTKWUNPoiTp?;(03(T)BYv7hevJ(ic#WOOTtiVtN$Q9JL z5kU!g`GFaJ-~xkb2#{2$4~SrOAnF4Ya25oC z>x4QZ5EN)Ho(01RkV*sP+`ssRz^RbRWpV!pZ++nrAocum!qNr}myYX#C|{KAPyb(u z=noMd^viL7i10f95dQ|se*lSskEd@iP~n#mjlre9sLda4RKikltXeho8;UGPWcZ~F z_YWe&Dgsw4Q2+n=w;YmTty*7W%s#z-h_|N6w`XvHI%(0O!jO1eM?5Rdv3@3ze*qaR z_>!Dje!(D51MFbv=?a4uYKguDTs^;-bQgbD@JC5dr1#fkQ1?#p^z+q*e+M9=t&BmT z!5dbT5*qAd7`y@sFO5P;%Tj+_;2P`#3h8BhoGAX@eiUy{XUN~x4RUsJ@d922L$qL4 z01*B?0<8%C0$t=G4+_O!8HxNeSuw~>(U(k-{VOWM0?BR&IAtI}*824UNeK@^*A4nj zgD+tC1Nr`5C1Z3PVj%)5ey#$ZtY$cKVAy5)1xDBM3Z6o~}yBFokV;QwFwFerFWS~d<;vcbE| z3K|wvzpbRf*>5F{0FcZ|8VLZ16*MdwM*r~Vx8G3U$>F~=92~wY#wmeWD`>z3|I7uy z8Tm&K9N}NxaB#9($&Uo;3RckY7;p==1Qi5fxlP zX;G?{aVrrQkiyj&=(qqQ3>F2EYJswJfELhNu=XYQGBj_-{;1=dx%qO=yWiR7zH<+M z!!$i}Lj7=JvR3Ia?uZ1`fAun;R+yWsG$!$g-M(R`<8b!GE)2|~T5Q?bQIE8^bUyBCK|OCD!V5DkXmx`w(cvZA0@FXK)c ztGq#HZD8tvp$jxFl>5$|BGEv&}ld#dZ8dY)|#7C zO$0+tA*mn#?$I;-#tG!@Z;g&ChWEhCUvmvU%Z`QiKAGoWnhN?J9q2&5Ra$Z^nOmgMcwtbWdcd}dS(!<4Yta(m* zH#?GaFS)U;S1Ba(XV_MbNmQ_Qp;NW^h(C1Q;b1q(riP(&2XLG3QkY@L>g6pJ=xao+zzwi7C&6J8tL2cQ6vj zqS8R=-epN-*^1ws*@+4mG}n6J&vq)Z>DHrIzLgMy$k>VzmI?;9Uw+;?DkdlE@GPXJ z*lWEK?i#Qu7jy(dMq8$deerJS-y6R?C^!e!{mrTwxwZ$ss=Qfq-|!&ZW_C!=_jfU@ zwi_tyxhN&MeYfHmyCtymntw-Zu!5Ykp#4V8xn#1mcIUdpY!!K$71Epj$x8BS-texY zJ^RU6-MZFz7Zof%$Fy~ePJzKq4;n43GGIK>Gdyv?A2y%h1r92eaD`P-#VvuH)IRa~ zf-J|$Q)fh_5ECJki$CPCvv66ndEE91iLj4sw)IF)dGZIAUz6LpTUbevZ?Rq%D88%e zt9qjk(0(IOb+x|6hi3xNK2tz+4&K|g&I}+sv%%TWuQ)|J%`tB-;Pt=#rv1=-%(n#n z(OE_du6>N{FhK6uthg^9TVZ<(K|%G#p^a%a*sd**5cy}LW-Y?@7lCD~9|h)?*kM2R zz+|7L=_QT>_U8be-3_XJ@S`L4%LLyWmn04d7GwV`p!Dl;H6CE$IGjL0zEhV|sxyv< z4eVQ_h3idSa9l26Y+kuvVfm{07IJ`*O?n~a6TL$P~5e(f5^dkd4fB~BPTox zJ#l`XfK_4Ax;n%Q=jjCwKe?jX}^#m8H1A5^gI$xKySnb73YjoY68-)WyyK#o?bfJii~-LYH2BgMA!tJ= zb4R#63(H;zt#c5s6&n2w{{8VG*w1pcRsnaK6?*A^ENo*5iGr7ohq@ z3?u#1`A9avaUI2Vn#^yqE*Dmz{Vn$p?!|Ub;(9gKHBc9gj;{H%cMo>d@zXpRN;RM{ zkItbFWQai!8OjtjN7FCp9Qq(N#rc!^J2_U-S@er=iY1-)uWOM`qc^fCTDQJ-Tcb1S zO=yZKqQ>4ZO-rJ4=*?q_)2Zg*RzhddKl&+FkfC-9;BU}ZkKEM!Ih`n{`ev(oBq06) DqIZ#3 literal 0 HcmV?d00001 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 index 0000000000000000000000000000000000000000..bc2bc078168b344e1384c1a309bd409170e8c5cf GIT binary patch literal 13660 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 U8hx8UWAN%Igq)nQjS1ra0Nzf_ng9R* literal 0 HcmV?d00001 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 index 0000000..3fb8772 --- /dev/null +++ b/python-lib/test-data/chip14/arb0/harmonic-sin-phase/arb0-2013-04-08_140139_5.0-010-035.yaml @@ -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] -- 2.25.1