Chip123 科技應用創新平台

 找回密碼
 申請會員

QQ登錄

只需一步,快速開始

Login

用FB帳號登入

搜索
1 2 3 4
查看: 5819|回復: 4
打印 上一主題 下一主題

[問題求助] 請問要怎麼去跑出DAC的動態模擬?拜託各位,極需要動態模擬的結果。

  [複製鏈接]
跳轉到指定樓層
1#
發表於 2010-6-2 02:25:30 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
由於我現在設計完DAC電路,可是我只會跑DNL和INL的靜態模擬,' U0 }2 `# _' `4 p0 ~
非常需要動態模擬的結果,可是不知道怎麼用。
) q' ~4 x1 b0 d( @1 X
) U( \! `: E- }' L1 R. V2 [ADC要模擬應該是輸入一個SIN波,可是DAC輸入是數位值,要輸入什麼值才對?. p) c. y; J0 w

* h7 J8 r) h' T9 F; M: m! ?. w% f另外好像就是跑完模擬以後,需經由Matlab跑出動態模擬波形,5 t1 |7 l+ i" j
可是我完全不知道動態模擬的Matlab Code應該怎麼寫?
& u  ]) p* J. f! h% j+ Y! `+ x. v5 \% J4 I5 y
麻煩板上各位幫忙小弟我,我真得很急需要跑出動態模擬波形,& H! I5 o9 v; w. p3 r  F4 Z
感激不盡,謝謝。
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享分享 頂1 踩 分享分享
2#
發表於 2010-6-12 09:01:21 | 只看該作者
論壇有相關的文章討論,你找一下應該有) E# b5 I% I5 i
至於DAC的動態模擬,你要先在matlab上把一個sin波轉成你DAC的數位碼,然後再把這些數位碼餵到你DAC的電路作模擬,然後再將輸出的analog output voltage記錄起來,將這些值再丟到matlab去跑出相關的值出來,這是目前量測DAC的流程
3#
發表於 2010-6-15 09:26:11 | 只看該作者
我也特别想知道,finster大大能不能给一个示例啊???
4#
發表於 2010-6-16 01:16:50 | 只看該作者
這個程式是我當初作DAC時我老板給我的範本( j" ?& ~1 H0 a2 P0 T. a! z
當然,這只是一個產生DAC的數位碼的sin波產生器的MATLAB程式
' A2 h9 n& z" f: L測試DAC的程式則是另外一個程式,但因為原始程式並不是我撰寫的,故而無法貼在這裡分享+ H. x& }3 P6 H0 W2 C/ R
如果,你想走類比且DAC or ADC這條路,熟悉MATLAB是一定要會的工具程式
" z- k3 ]$ A& V' j9 l0 |若無法熟悉操作MATLAB這套軟體,對於日後設計DAC or ADC將會是一條很艱辛的路程( Z/ H* A8 g. Y

! `5 g/ f' c! d) F) H1 V! @%clear all8 n: B) ~1 k! @
%fid=fopen('test.txt','w')% j; j( o# a7 ^/ B+ H7 d3 Z/ V/ Y
5 T2 Q+ i7 t2 \) s% b
%% 10MHz data-input speed
" D4 J2 u* w2 D/ z/ V%for M=1:1:1024" d1 n5 E/ i4 j3 e
%       T=M-1;. ^6 T  w/ [" q$ {6 P7 Q0 \
%       from=(50*T)+45; %DUAL DAC measure time8 f' t- n4 R: a: C/ j  a: D% G, M
%       to=50+(50*T);
. d/ k' g7 u; ]- s%       fprintf(fid,'.MEASURE TRAN A%g RMS v(daci_outp) from=%gn to=%gn\n',M,from,to);+ s; F$ c: j1 q7 W
%end
2 \/ y* i7 k# q2 \# a9 F( w6 h
- N7 M4 |; y+ h( T%fid=fopen('test2_2.txt','w');
8 A! O! o3 d; g) F7 R+ `& a9 [4 M; p- ]%for i=1:12^20)% X* A3 `5 ~+ L3 j; R- I& Y
%    value=rand(1);
- f' Q: s7 h: m* n7 ?0 t# |%    fprintf(fid,'%g\n',value);
* F2 N/ u9 U( m" L1 t%end0 c6 B) N5 k( i- d! S
%fclose(fid);4 G& [+ w/ S) |, M+ k5 F  h
  ?- ^" w/ j# Z, p: O

* W6 z; L( e' j; }( qclock_1000=1000/4000;
6 Q$ D  F7 s# J! T( [  o6 k%%fid=fopen('test1.txt','w')5 W$ T1 f( I+ A) w4 a" Q, w: e
fid=fopen('Measure_4G.txt','w');" |1 r4 t- _! j# D, Y( u6 S' S! P
for N=1:12^20), P. _* m! i4 q) h$ c8 E
    value3=clock_1000*N;! O8 K6 L0 |; F
%%    fprintf(fid,'%g  Measure_Point=%gn\n',N,value3);
6 d" C3 ?) w/ Z$ U4 \6 l    fprintf(fid,'%g  %g\n',N,value3);7 G7 g& T* `, ~0 z& {
end
2 z# N# F2 y1 O- U$ Hfclose(fid);9 C# v2 s  d! Z4 l

' C" k( n) X' O0 E5 d3 U3 l- P$ M
2 ^* P+ ~7 o7 jclock_88=1000/88;  + Y) {/ j4 U* i
%%fid=fopen('Measure_88MHz.txt','w'); E# X$ k- J, J2 z; W4 {
fid=fopen('Measure_88MHz_round.txt','w')
& {  T7 W; v, I0 @for M=1:12^14)
! T) O! V3 u& W2 y, Q3 `$ k7 J  value1=clock_88*(M+1);9 f3 ]2 x4 Z" T; K% {5 e, B( U- T
  value2=value1-(clock_88/8)*1;, u; [$ h& m. Z- O  k8 O5 z
  value3=round(value1-(clock_88/8)*1);
1 Z! R' s2 x- v8 d6 N7 q7 {, e  fprintf(fid,'%g\n',value3);
3 @- O, X9 t7 E+ S: Y2 r& r6 L6 z%%  fprintf(fid,'%g   Clock=%gn   Measure_Point=%gn   Round_Value=%gn\n',M,value1,value2,value3);
9 ]7 F9 E1 t8 \# ~: n0 E5 kend
1 ?# k) y8 G, H/ L5 e  `fclose(fid);
5#
發表於 2010-6-20 15:48:12 | 只看該作者
非常感谢finster大大的无私分享与方向指导,我去深入学习一下matlab
您需要登錄後才可以回帖 登錄 | 申請會員

本版積分規則

首頁|手機版|Chip123 科技應用創新平台 |新契機國際商機整合股份有限公司

GMT+8, 2024-5-31 11:23 PM , Processed in 0.108013 second(s), 17 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回復 返回頂部 返回列表