|
先回答第一個問題
9 b. o4 L4 f5 T你的MATLAB程式我大概看了一下,發覺到AD10應該是一個由別人自行撰寫的運算函式,而因為你在MATLAB程式中並沒有這個函式,同時也沒有呼去這個函式,故而,你在執行MATLAB程式時,當然會出現錯誤訊息
0 c1 |0 q: a7 p/ b7 V所以,如果這不是你自己寫的MATLAB程式,那我只能說你的MATLAB程式並不完整,也許,這是別人故意留一手的吧
# }0 a. w: a: S/ f$ K/ F1 F9 R
9 G: Q$ \1 B, H- y T* Y2 w再來,在ADC中的Sample and hold電路若是用SC電路,是會用non-overlap clock,故而會有兩個clock
/ D4 K! S/ ^0 @. E) V但,源頭的clock只有一個,而這個clock會透過non-overlap circuit去產生兩個時間差的clock
/ F! k' G5 a9 |, W* N一般而言,ADC的數位電路所需的clock通常都是由源頭的clock作為基準,然後將數位信號輸出,故而,在使用.measure時,所參考的時間及頻率也該是以這個源頭的clock為主,而不是由non-overlap circuit所產生出來的兩個時間差clock,除非,你的ADC電路並沒有包Sample and hold circuit(我不清楚你的電路架構為何,但,ADC一般而言一定要有Sample and hold circuit)
: a; q* t. l v: X8 L6 N) t再來,我看了一下你的取樣頻率為5.12Mhz,這是很低的clock頻率,所以,照理來說這麼低的頻率,你的架構應該是採用SAR架構的ADC吧,那你的輸入信號頻率為何呢??另外,你的.tran的時間多久呢???還有,你是幾個bit的ADC呢???- w p) E. r9 o1 `& Y; H! X( Y7 n2 z3 ^
舉個例來說,假如你是4-bit ADC,輸出分別為D3,D2,D1,D0,且clock為1MHz,所以使用.measure應該為- W2 W, `2 S! B/ C' K& u' f
.MEASURE TRAN DIGOUT_D3_t1 find V(D3) AT=5.2us8 j2 ]0 @0 I: x- [- M Q' \
.MEASURE TRAN DIGOUT_D2_t1 find V(D2) AT=5.2us
) Q. n6 Y1 x7 H.MEASURE TRAN DIGOUT_D1_t1 find V(D1) AT=5.2us2 i6 [" J' W) y V1 o" e3 y
.MEASURE TRAN DIGOUT_D0_t1 find V(D0) AT=5.2us
) s4 ^. r: [5 e* _- g v* B( _4 N8 q4 R5 S2 R1 X/ F4 c
.MEASURE TRAN DIGOUT_D3_t2 find V(D3) AT=6.2us
# a) |3 O% q% p* N.MEASURE TRAN DIGOUT_D2_t2 find V(D2) AT=6.2us
7 H. n2 V; S7 r.MEASURE TRAN DIGOUT_D1_t2 find V(D1) AT=6.2us
1 E' W8 P; |0 y! Z9 }9 a! A: Q.MEASURE TRAN DIGOUT_D0_t2 find V(D0) AT=6.2us
& S! z9 }3 V8 `: U2 M/ H$ J: ]+ h/ u9 N/ P" k
我只計算clock的週期,然後再初估ADC中的delay時間為0.2us,所以,我第一個數位取出的時間為第5個clock週期來取出4個bit的digital code,然後在第6個clock週期時又取出第2筆digital code% C* F# _/ q- ]1 |, _9 a
我用的方式較為簡化些,因為ADC要取出的是在每個clock週期中的digital code,所以,只要精算出每個clock時間,即可簡化.measure的指令,而不用用到TRIG....TARG.....,當然,這是我的作法,你也可以依照我前面寫的改成你用的TRIG...TARG的用法1 N+ g6 R3 z; Y+ w3 k/ ~9 u
! a, O5 }: j+ A3 f t% c$ l
最後,像我剛才寫的.MEASURE TRAN DIGOUT_D3 find V(D3) AT=5.2us
6 r; a0 x Y/ o& P, W可以用MATLAB程式寫成一個自我產生的.measure,我以前是用MATLAB來自己產生的,不然,光是計算1024點就要寫4096行.MEASURE指令,那是一件很浪費時間和生命的事,用MATLAB的迴圈即可一下子產生出所有.MEASURE指令,小小作法,提供給你參考 |
|