Chip123 科技應用創新平台

 找回密碼
 申請會員

QQ登錄

只需一步,快速開始

Login

用FB帳號登入

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

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

  [複製鏈接]
跳轉到指定樓層
1#
發表於 2010-6-2 02:25:30 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
由於我現在設計完DAC電路,可是我只會跑DNL和INL的靜態模擬,
  @" f' L" d& Z( Z; _% `, l  Y非常需要動態模擬的結果,可是不知道怎麼用。. |8 p% l4 ~4 p) _9 L; g
, f2 ?' d) N- `: H' v& @
ADC要模擬應該是輸入一個SIN波,可是DAC輸入是數位值,要輸入什麼值才對?& z- l% Y* \2 W2 j2 {
/ _, R: L6 d3 ~9 p0 W
另外好像就是跑完模擬以後,需經由Matlab跑出動態模擬波形,
  H9 d/ d& k. O$ Z, ?6 e' K可是我完全不知道動態模擬的Matlab Code應該怎麼寫?7 D; p- [5 k3 s

7 o  r* `% ~7 ]2 S/ Q麻煩板上各位幫忙小弟我,我真得很急需要跑出動態模擬波形,6 |( `. _% ]: m" w4 f! ~' L" A- R
感激不盡,謝謝。
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享分享 頂1 踩 分享分享
2#
發表於 2010-6-12 09:01:21 | 只看該作者
論壇有相關的文章討論,你找一下應該有
: e/ {4 f& U+ U+ E; K' {" l至於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時我老板給我的範本. @6 v* L. g& A8 K5 B. V# r, R$ x6 C2 _
當然,這只是一個產生DAC的數位碼的sin波產生器的MATLAB程式
% g" D* E+ q8 p測試DAC的程式則是另外一個程式,但因為原始程式並不是我撰寫的,故而無法貼在這裡分享
# q! s5 e4 ^' i- v  j% L如果,你想走類比且DAC or ADC這條路,熟悉MATLAB是一定要會的工具程式* ?; `( G3 O' T, d$ @6 ^
若無法熟悉操作MATLAB這套軟體,對於日後設計DAC or ADC將會是一條很艱辛的路程" ?+ W3 o/ l6 q3 }
( N( F+ c! r/ L- }/ O7 c: R
%clear all
7 ]/ y2 k. e* y3 U%fid=fopen('test.txt','w')+ K0 N- J. B, c  W8 j3 p% O

5 g) n8 o$ [1 D, f% h1 A%% 10MHz data-input speed4 l; [- g( ]' G+ V
%for M=1:1:1024
4 F( Q% _: U3 t6 y%       T=M-1;" P$ f3 B4 w2 J- H9 n; i' H6 |0 z3 F
%       from=(50*T)+45; %DUAL DAC measure time
  B$ z0 `" l4 N3 |%       to=50+(50*T);
  W$ i, E0 \7 Q/ j3 k! l# B; k%       fprintf(fid,'.MEASURE TRAN A%g RMS v(daci_outp) from=%gn to=%gn\n',M,from,to);
1 O& }* E# V1 x- h%end
# w4 A: f6 O: n7 Y
7 q6 n1 Z8 |% {# X%fid=fopen('test2_2.txt','w');
: G% b2 j6 n2 G: h4 Z+ Y1 b%for i=1:12^20)
$ a1 a8 ^4 j- X%    value=rand(1);
" B3 d+ h, u$ G%    fprintf(fid,'%g\n',value);0 Y  J5 H# v. J: ~% P; V3 `6 g8 F
%end* J2 r' t1 H; S! q- w9 V# Q
%fclose(fid);' _7 [2 g2 s7 ^  b

" T# @! ]4 T9 B. L9 ?5 J' Z- o8 [
8 m( g* A3 T  L5 g, e4 `" S0 g; ?clock_1000=1000/4000;
# s8 ^& F- _& ?! J! _1 u. U" t8 O%%fid=fopen('test1.txt','w')
7 Y" {+ o5 A! ]fid=fopen('Measure_4G.txt','w');& N6 a( Y- p6 v2 ?. w' a' ~
for N=1:12^20)
. H4 T2 ?8 N; e: d4 z& w7 g    value3=clock_1000*N;
  Z& U5 T3 [) [. L1 C3 }/ P%%    fprintf(fid,'%g  Measure_Point=%gn\n',N,value3);% e2 L/ t" Q/ q8 x5 T* ?' E0 M& c
    fprintf(fid,'%g  %g\n',N,value3);
7 ^' L- S$ g7 o' \5 d( k+ ~; Tend& i0 y$ E/ {1 s" \( g+ T
fclose(fid);
" ]* G1 W3 l& V2 K: q: H( g$ E( h5 K$ h
5 P8 `0 j  w+ w* N, Y2 [
clock_88=1000/88;  7 O. n6 u( M2 v8 {% k6 w2 W# L
%%fid=fopen('Measure_88MHz.txt','w'). [0 g8 E3 m& ]+ D6 }  X, x
fid=fopen('Measure_88MHz_round.txt','w')
. x4 J) C$ o, nfor M=1:12^14): V8 H; ~1 `2 ]
  value1=clock_88*(M+1);
$ ~: C+ B* ~$ U' Y. B  value2=value1-(clock_88/8)*1;
6 z. X$ O0 _; \" w9 w1 Y  value3=round(value1-(clock_88/8)*1);5 g- }% F! O4 Q8 m2 s8 K
  fprintf(fid,'%g\n',value3);
3 @0 K1 E/ @4 n# d1 B+ i& p3 }%%  fprintf(fid,'%g   Clock=%gn   Measure_Point=%gn   Round_Value=%gn\n',M,value1,value2,value3);
/ g! p3 x- R( L3 x( E  D0 cend% K1 k6 N) w3 M" l
fclose(fid);
5#
發表於 2010-6-20 15:48:12 | 只看該作者
非常感谢finster大大的无私分享与方向指导,我去深入学习一下matlab
您需要登錄後才可以回帖 登錄 | 申請會員

本版積分規則

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

GMT+8, 2025-2-19 06:29 AM , Processed in 0.163009 second(s), 18 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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