Chip123 科技應用創新平台

 找回密碼
 申請會員

QQ登錄

只需一步,快速開始

Login

用FB帳號登入

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

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

  [複製鏈接]
跳轉到指定樓層
1#
發表於 2010-6-2 02:25:30 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
由於我現在設計完DAC電路,可是我只會跑DNL和INL的靜態模擬,5 v' p) c8 x% G" l9 l  K# Q) u1 J
非常需要動態模擬的結果,可是不知道怎麼用。) b- m# i" f( F4 `1 w6 j6 X9 V6 f9 y
0 b+ `* k) ^8 l* H9 ^, M2 Q9 _
ADC要模擬應該是輸入一個SIN波,可是DAC輸入是數位值,要輸入什麼值才對?
, y! K3 @$ P) y6 X7 b; h% q! t$ g7 O8 ~
另外好像就是跑完模擬以後,需經由Matlab跑出動態模擬波形,( A" h9 b2 G1 `* y- d
可是我完全不知道動態模擬的Matlab Code應該怎麼寫?
7 p: Q0 ?" R, T+ @, {0 [& Y8 c: c  j
麻煩板上各位幫忙小弟我,我真得很急需要跑出動態模擬波形,9 \9 q& g) l* s# o
感激不盡,謝謝。
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享分享 頂1 踩 分享分享
2#
發表於 2010-6-12 09:01:21 | 只看該作者
論壇有相關的文章討論,你找一下應該有0 b2 C* U/ Q. }( P, ^; I! X9 s
至於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時我老板給我的範本
0 k, _9 I1 C6 S8 V- H當然,這只是一個產生DAC的數位碼的sin波產生器的MATLAB程式9 j' b  M$ ~# u1 q
測試DAC的程式則是另外一個程式,但因為原始程式並不是我撰寫的,故而無法貼在這裡分享
1 a% N9 a& k) Z如果,你想走類比且DAC or ADC這條路,熟悉MATLAB是一定要會的工具程式
7 Y: Y* h* B2 A# h若無法熟悉操作MATLAB這套軟體,對於日後設計DAC or ADC將會是一條很艱辛的路程
2 {3 r! o! r4 C1 b6 ^, c
1 U1 {9 c* B9 g$ |$ P' N& B%clear all
9 z( P: K  p: E# _  V- W3 Z* ~$ ~%fid=fopen('test.txt','w')% \4 v9 R7 A6 I( f
* [6 J( x& \: a% r
%% 10MHz data-input speed* r8 x' f$ {2 t2 `$ u" w3 i
%for M=1:1:1024
7 p" o: s  |: U' f" x0 a+ h) w%       T=M-1;( o8 p& i/ s6 s! `9 t" v
%       from=(50*T)+45; %DUAL DAC measure time( O" d( J" n# o1 Q- M0 \
%       to=50+(50*T);
2 b( ?# x  R8 a  N9 d%       fprintf(fid,'.MEASURE TRAN A%g RMS v(daci_outp) from=%gn to=%gn\n',M,from,to);
  S7 ?2 M) ^; Y! r8 k* w7 E%end
* z+ j& J! {0 p; x2 \. {+ y* {$ S) S  o# O( b; R% L
%fid=fopen('test2_2.txt','w');
# N' ]1 F7 @/ P% b3 V%for i=1:12^20)- C5 `1 l+ ^( L" R
%    value=rand(1);, u$ M) t  ]0 }9 h
%    fprintf(fid,'%g\n',value);
9 H% w9 a# f+ F; h  }- o1 {6 Q%end- E" t" d/ \5 b- r% e1 \/ h
%fclose(fid);4 {/ k. z. n5 l+ F& ]

+ A. r: _% Z& H! D4 ?
+ b8 t( a0 G6 |6 t. L% h) Rclock_1000=1000/4000;
) P0 d  v& T5 n2 g/ \5 R% Q%%fid=fopen('test1.txt','w')
2 k8 v8 H. q4 T/ d4 ^) xfid=fopen('Measure_4G.txt','w');6 r( M3 p, i2 ?+ X
for N=1:12^20)8 {4 }1 Y$ m- B; x
    value3=clock_1000*N;* U; U4 e# V( K
%%    fprintf(fid,'%g  Measure_Point=%gn\n',N,value3);1 ~6 h0 l2 G3 a% c- b" K/ L
    fprintf(fid,'%g  %g\n',N,value3);
9 l6 b3 H! t$ jend
& t) ]1 F& Y! nfclose(fid);
" r. Z" f+ L+ @- F4 Q# e8 Q" ^0 _/ I5 T  F
) r0 G% q. l: B
clock_88=1000/88;  - u' h) a+ Q( b; w; S
%%fid=fopen('Measure_88MHz.txt','w')  L  B) L# ~5 ^! D! L  m+ V6 y
fid=fopen('Measure_88MHz_round.txt','w'). k+ p$ V: e, b+ S% j6 u0 G
for M=1:12^14)9 M, d, c  n! g* l! ~
  value1=clock_88*(M+1);) t4 f! [, W% I0 h
  value2=value1-(clock_88/8)*1;4 S/ e- _0 `: D$ h4 K, J
  value3=round(value1-(clock_88/8)*1);: K- U3 N9 [4 P8 Z/ ?; R7 F' U8 R
  fprintf(fid,'%g\n',value3);
( S9 o- h% z1 s- W7 E' ^%%  fprintf(fid,'%g   Clock=%gn   Measure_Point=%gn   Round_Value=%gn\n',M,value1,value2,value3); ; o* B1 F/ g9 z/ D. N# f& F
end
, a  Y& g7 ?  B  B4 v9 _fclose(fid);
5#
發表於 2010-6-20 15:48:12 | 只看該作者
非常感谢finster大大的无私分享与方向指导,我去深入学习一下matlab
您需要登錄後才可以回帖 登錄 | 申請會員

本版積分規則

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

GMT+8, 2024-4-29 10:56 AM , Processed in 0.171010 second(s), 17 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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