Files
MiPi_TEST/__pycache__/rigol_scope.cpython-312.pyc

70 lines
9.2 KiB
Plaintext
Raw Normal View History

2026-04-09 08:45:57 +01:00
<EFBFBD>
2026-04-20 12:13:26 +01:00
Z<><5A>i<EFBFBD><00> <00><><00>UdZddlZddlZddlZddlmZdZdZdZdZ dZ
d Z d
Z d Z daejdzed <d efd<0E>Zd<0F>Zd efd<10>Zd<11>Zd<12>Ze fded efd<14>Zddededed efd<18>Zded efd<19>Zded efd<1A>Zy)u<>
2026-04-09 08:45:57 +01:00
rigol_scope.py
Controls the Rigol DS1202Z-E at 192.168.45.5 for 1.8 V supply rail monitoring.
Called from dual_capture() in mipi_test.py during the LP pass.
The scope is armed (single trigger) just before the Agilent LP capture.
The LP→HS current step droops the 1.8 V rail, triggering the Rigol.
The waveform is then read over SCPI and written directly to the local data/ folder.
2026-04-20 12:13:26 +01:00
<EFBFBD>N)<01>Pathz 192.168.45.5皙<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>?g<><67><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>g<EFBFBD><67><EFBFBD><EFBFBD><EFBFBD>ư>g)\<5C><><EFBFBD>(<28>?g.@皙<><E79A99><EFBFBD><EFBFBD><EFBFBD>?g<><67><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>rigol<6F>returnc<00><><00> tjt<00>adt_tj d<02>j <00>}td|<00><00><02>y#t$r}td|<01><00><02>daYd}~yd}~wwxYw)N<>
2026-04-09 08:45:57 +01:00
z*IDN?z[RIGOL] Connected: Tu9[RIGOL] Connection failed — 1.8 V monitoring disabled: F) <09>vxi11<31>
Instrument<EFBFBD>
2026-04-20 12:13:26 +01:00
RIGOL_HOSTr<00>timeout<75>ask<73>strip<69>print<6E> Exception)<02>idn<64>es <20>0/home/david-rice/Python/MiPi_Test/rigol_scope.py<70>connectr'sp<00><00> <15><15> <20> <20><1A>,<2C><05><1A><05> <0A><13>i<EFBFBD>i<EFBFBD><07> <20>&<26>&<26>(<28><03> <0A>#<23>C<EFBFBD>5<EFBFBD>)<29>*<2A><13><> <14><15> <0A>I<>!<21><13>M<>N<><14><05><14><><15>s<00>AA<00> A;<03>!A6<03>6A;c<00>^<00>tr tj<00>dayy#t$rY<00>wxYw<01>N)r<00>closer<00><00>r<00>
disconnectr5s3<00><00> <0C> <11> <11>K<EFBFBD>K<EFBFBD>M<EFBFBD><15><05>  <0A><><19> <11> <10> <11>s <00> <00> ,<03>,c<00><00>tduSr)rrrr<00> is_connectedr?s <00><00> <10><04> <1C>rc<00>"<00>tjd<01>tjd<02>tjd<03>tjd<04>tjd<05>tjdtd<07><04><02>tjdt
d<07><04><02>tjd <09>tjd
<EFBFBD>tjd <0B>tjd t d<07><04><02>tjd td<07><04><02>tjdtd<0F><04><02>tjd<10>tjd<11>tjd<12>tjdtd<07><04><02>tjd<14>tjd<15>tjd<16>tjd<02>tdttdz<00><00>dt<00>d<1A><05>y)z<>
Configure Rigol CH1 for 1.8 V supply monitoring and CH2 for SN65DSI83 INTB pin.
2026-04-09 08:45:57 +01:00
AUTO trigger sweep: if no droop occurs, scope still captures on timeout
so we always get a supply snapshot even when the rail is healthy.
2026-04-20 12:13:26 +01:00
<20>:STOPrz:CHANnel1:DISPlay 1z:CHANnel1:COUPling DCz:CHANnel1:PROBe 10z:CHANnel1:SCALe z.3fz:CHANnel1:OFFSet z:CHANnel2:DISPlay 1z:CHANnel2:COUPling DCz:CHANnel2:PROBe 1z:CHANnel2:SCALe z:CHANnel2:OFFSet z:TIMebase:MAIN:SCALe z.2Ez:TRIGger:MODE EDGEz:TRIGger:EDGe:SOURce CHANnel1z:TRIGger:EDGe:SLOPe NEGativez:TRIGger:EDGe:LEVel z:TRIGger:SWEep AUTO<54>333333<33>?<3F>:RUNz2[RIGOL] Configured: CH1=1.8 V rail, CH2=INTB pin, g<00><>.Au µs/div, trigger <z V falling (AUTO sweep, running)N) r<00>write<74>time<6D>sleep<65> V18_SCALE<4C>
V18_OFFSET<EFBFBD> INT_V_SCALE<4C> INT_V_OFFSET<45> V18_TIMEBASE<53>V18_TRIG_LEVELr<00>intrrr<00> configurer,Gs}<00><00> 
<EFBFBD>K<EFBFBD>K<EFBFBD><07><18><08>J<EFBFBD>J<EFBFBD>s<EFBFBD>O<EFBFBD>
<EFBFBD>K<EFBFBD>K<EFBFBD>%<25>&<26> <09>K<EFBFBD>K<EFBFBD>'<27>(<28> <09>K<EFBFBD>K<EFBFBD>$<24>%<25> <09>K<EFBFBD>K<EFBFBD>"<22>9<EFBFBD>S<EFBFBD>/<2F>2<>3<> <09>K<EFBFBD>K<EFBFBD>#<23>J<EFBFBD>s<EFBFBD>#3<>4<>5<>
<EFBFBD>K<EFBFBD>K<EFBFBD>%<25>&<26> <09>K<EFBFBD>K<EFBFBD>'<27>(<28> <09>K<EFBFBD>K<EFBFBD>#<23>$<24> <09>K<EFBFBD>K<EFBFBD>"<22>;<3B>s<EFBFBD>"3<>4<>5<> <09>K<EFBFBD>K<EFBFBD>#<23>L<EFBFBD><13>#5<>6<>7<> <09>K<EFBFBD>K<EFBFBD>'<27> <0C>S<EFBFBD>'9<>:<3A>;<3B> <09>K<EFBFBD>K<EFBFBD>$<24>%<25> <09>K<EFBFBD>K<EFBFBD>/<2F>0<> <09>K<EFBFBD>K<EFBFBD>.<2E>/<2F> <09>K<EFBFBD>K<EFBFBD>&<26>~<7E>c<EFBFBD>&:<3A>;<3B><<3C> <09>K<EFBFBD>K<EFBFBD>%<25>&<26><08>J<EFBFBD>J<EFBFBD>s<EFBFBD>O<EFBFBD> <09>K<EFBFBD>K<EFBFBD><06><17><08>J<EFBFBD>J<EFBFBD>s<EFBFBD>O<EFBFBD> <09> ><3E>s<EFBFBD><<3C>PS<50>CS<43>?T<>>U<>V<16>$<24>%<25>%E<> G<01>Hrc<00>.<00>tjd<01>y)z<>Ensure scope is running so it is actively acquiring when the LP event occurs.
The waveform is frozen with :STOP inside read_waveform_csv() at collection time.r!N)rr"rrr<00>armr.ps<00><00>
<EFBFBD>K<EFBFBD>K<EFBFBD><06>r<00> timeout_sc<00>H<00>tj<00>|z}tj<00>|kre tjd<01>j<00>j <00>}|dvry tj d<04>tj<00>|kr<01>ey#t
2026-04-09 08:45:57 +01:00
$rY<00>9wxYw)z<>
Poll until the scope has completed its single acquisition.
DS1000Z reports STOP when done (triggered or auto-timed-out).
Returns True when ready, False if timeout exceeded.
2026-04-20 12:13:26 +01:00
z:TRIGger:STATus?)<02>STOP<4F>TDTrF)r#rrr<00>upperrr$)r/<00>deadline<6E>statuss r<00> wait_capturedr6vs<><00><00> <14>y<EFBFBD>y<EFBFBD>{<7B>Y<EFBFBD>&<26>H<EFBFBD>
2026-04-09 08:45:57 +01:00
<0E>)<29>)<29>+<2B><08>
<20> <11><1A>Y<EFBFBD>Y<EFBFBD>1<>2<>8<>8<>:<3A>@<40>@<40>B<>F<EFBFBD><15><1E>'<27><1B>(<28> <0A>
<EFBFBD>
<EFBFBD>3<EFBFBD><0F> <0F>)<29>)<29>+<2B><08>
2026-04-20 12:13:26 +01:00
<20> <11><><19> <11> <10> <11>s<00>5B<00> B!<03> B!<03>channel<65>path<74>
stop_firstc<00>X<00> |r*tjd<01>tjd<02>tjd|<00><00><02>tjd<04>tjd<05> tj d
<EFBFBD>j<00>jd <0B>}t|d <00>}t|d <00>}t|d<00>} tj d<10>j<00>}|jd<11>rt|d<00>} |d| zd}|jd <0B>D<00>
cgc]}
|
j<00>s<01>t|
<EFBFBD><00><02> } }
| st d|<00>d<15><03>y |jjd<16><17>t|dd<19><1A>5} tj | <0C>} | j#ddg<02>t%| <0B>D]'\}}
|||z
|zz}| j#|d<1D>|
d<1E>g<02><00>) ddd<08>t'| <0B>S#t$r}t d|<00>d|<03><00><04>Yd}~y d}~wwxYw#t$r}t d|<00>d|<03><00><04>Yd}~y d}~wwxYwcc}
w#t$r}t d|<00>d|<03><00><04>Yd}~y d}~wwxYw#1swY<00><>xYw#t$r}t d|<00>d|<03><00><04>Yd}~y d}~wwxYw) z<>
Read one Rigol channel waveform over SCPI and write to CSV.
stop_first=False skips :STOP when the scope was already stopped by a prior read.
2026-04-09 08:45:57 +01:00
Returns the number of samples written, or 0 on error.
2026-04-20 12:13:26 +01:00
rr z:WAVeform:SOURce z:WAVeform:FORMat ASCrz[RIGOL] z waveform setup error: Nrz:WAVeform:PREamble?<3F>,<2C><00><00>z preamble error: z:WAVeform:DATA?<3F>#<23><00>z data read error: u9: no samples parsed — check channel and format settingsT)<01>exist_ok<6F>w<>)<01>newlinezTime (s)z Voltage (V)z.9fz.6fz CSV write error: )rr"r#r$rrrr<00>split<69>float<61>
startswithr+<00>parent<6E>mkdir<69>open<65>csv<73>writer<65>writerow<6F> enumerate<74>len)r7r8r9r<00>preamble<6C>x_incr<63>x_orig<69>x_ref<65>raw<61>n_digits<74>v<>vals<6C>frM<00>i<>ts r<00>_read_channel_csvr\<00>s<><00><00> <11> <15> <11>K<EFBFBD>K<EFBFBD><07> <20> <10>J<EFBFBD>J<EFBFBD>s<EFBFBD>O<EFBFBD> <0A> <0B> <0B>'<27><07>y<EFBFBD>1<>2<> <0A> <0B> <0B>*<2A>+<2B> <0C>
2026-04-09 09:17:42 +01:00
<EFBFBD>
2026-04-20 12:13:26 +01:00
<EFBFBD>3<EFBFBD><0F>
<11><18>9<EFBFBD>9<EFBFBD>2<>3<>9<>9<>;<3B>A<>A<>#<23>F<><08><17>x<EFBFBD><01>{<7B>#<23><06><16>x<EFBFBD><01>{<7B>#<23><06><16>x<EFBFBD><01>{<7B>#<23><05>
2026-04-09 10:29:53 +01:00
<11><13>i<EFBFBD>i<EFBFBD>)<29>*<2A>0<>0<>2<><03> <0F>><3E>><3E>#<23> <1E><1A>3<EFBFBD>q<EFBFBD>6<EFBFBD>{<7B>H<EFBFBD><15>a<EFBFBD>(<28>l<EFBFBD>m<EFBFBD>$<24>C<EFBFBD>"%<25>)<29>)<29>C<EFBFBD>.<2E>><3E>Q<EFBFBD>A<EFBFBD>G<EFBFBD>G<EFBFBD>I<EFBFBD><05>a<EFBFBD><08>><3E><04>><3E>
2026-04-20 12:13:26 +01:00
<10> <0A><08><17> <09>!Z<>[<5B>\<5C><10> <11> <0C> <0B> <0B><19><19>4<EFBFBD><19>(<28> <11>$<24><03>R<EFBFBD> (<28> :<3A>A<EFBFBD><18>Z<EFBFBD>Z<EFBFBD><01>]<5D>F<EFBFBD> <12>O<EFBFBD>O<EFBFBD>Z<EFBFBD><1D>7<> 8<>!<21>$<24><0F> :<3A><04><01>1<EFBFBD><1A>a<EFBFBD>%<25>i<EFBFBD>6<EFBFBD>1<>1<><01><16><0F><0F>A<EFBFBD>c<EFBFBD>7<EFBFBD><01>#<23>w<EFBFBD> 8<>9<> :<3A> :<3A> <13>4<EFBFBD>y<EFBFBD><18><>Q <15><11> <0A><08><17> <09>!8<><11><03><<3C>=<3D><10><><11><> <15><11> <0A><08><17> <09>!2<>1<EFBFBD>#<23>6<>7<><10><><11><>?<3F><> <14><11> <0A><08><17> <09>!3<>A<EFBFBD>3<EFBFBD>7<>8<><10><><11><> :<3A> :<3A><> <15><11> <0A><08><17> <09>!3<>A<EFBFBD>3<EFBFBD>7<>8<><10><><11>s<EFBFBD><00>A.G?<00>1AH&<00>AI<00>+I <04> I <04>I<00>#*J<00> AI9<03>,J<00>? H#<03>H<03>H#<03>& I
<03>/I<03>I
<03> I<00> I6<03>I1<03>1I6<03>9J<07>>J<00> J)<03>J$<03>$J)c<00><00>td|d<02><03>S)z=Read CH1 (1.8 V supply) waveform from Rigol and write to CSV.<2E>CHANnel1T<31>r9<00>r\<00>r8s r<00>read_waveform_csvrb<00>s<00><00> <1C>Z<EFBFBD><14>$<24> ?<3F>?rc<00><00>td|d<02><03>S)u<>
Read CH2 (SN65DSI83 INTB pin) waveform from Rigol and write to CSV.
Must be called after read_waveform_csv() — scope is already stopped.
<20>CHANnel2Fr_r`ras r<00> read_int_csvre<00>s<00><00>
<1D>Z<EFBFBD><14>%<25> @<40>@r)T)<1E>__doc__rLr#r
<00>pathlibrr r%r&r)r*<00>TRIG_TIMEOUT_Sr'r(rr <00>__annotations__<5F>boolrrrr,r.rGr6<00>strr+r\rbrerrr<00><module>rls<><00><01> <04> <0B> <0B> <0C><18><1F>
2026-04-09 08:45:57 +01:00
<EFBFBD><14> <09><15>
2026-04-20 12:13:26 +01:00
<EFBFBD><15> <0C><15><0E><15><0E><13> <0B><13> <0C>!%<25><05>u<EFBFBD><17><17>$<24><1E>%<25> <15><14> <15><15><1D>d<EFBFBD><1D>"H<01>R<18> &4<><11>U<EFBFBD><11><04><11>$8<11>s<EFBFBD>8<11>$<24>8<11>D<EFBFBD>8<11>C<EFBFBD>8<11>v@<01>D<EFBFBD>@<01>S<EFBFBD>@<01>
A<01>t<EFBFBD>A<01><03>Ar