Chip123 科技應用創新平台

 找回密碼
 申請會員

QQ登錄

只需一步,快速開始

Login

用FB帳號登入

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

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

  [複製鏈接]
跳轉到指定樓層
1#
發表於 2010-6-2 02:25:30 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
由於我現在設計完DAC電路,可是我只會跑DNL和INL的靜態模擬,
- p4 B! o. _8 s* W9 I' c非常需要動態模擬的結果,可是不知道怎麼用。. u" v9 U- M% D: T$ D+ G

! U! [. h+ o) g% p9 s* pADC要模擬應該是輸入一個SIN波,可是DAC輸入是數位值,要輸入什麼值才對?5 y( v; p7 b5 D# e5 X

: F+ Y1 P/ P4 j: R另外好像就是跑完模擬以後,需經由Matlab跑出動態模擬波形,
- x# H  y" b' }2 C可是我完全不知道動態模擬的Matlab Code應該怎麼寫?" X$ j8 g- v' m! d  t7 s

( S  m8 }- \3 K  Z' t3 z. f麻煩板上各位幫忙小弟我,我真得很急需要跑出動態模擬波形,
8 H. `  h& p! D9 ]! b3 |1 m, k感激不盡,謝謝。
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享分享 頂1 踩 分享分享
2#
發表於 2010-6-12 09:01:21 | 只看該作者
論壇有相關的文章討論,你找一下應該有
/ V4 ~$ _6 _( Y  x0 K3 G* b7 \至於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時我老板給我的範本
+ w: L2 i; f9 C4 T, z" Z當然,這只是一個產生DAC的數位碼的sin波產生器的MATLAB程式
% c2 x/ p& m1 Z  H3 l! Z+ e測試DAC的程式則是另外一個程式,但因為原始程式並不是我撰寫的,故而無法貼在這裡分享
4 p. K- R; P# T4 j如果,你想走類比且DAC or ADC這條路,熟悉MATLAB是一定要會的工具程式& s6 D$ ?4 B3 @4 z# a$ _$ J3 y
若無法熟悉操作MATLAB這套軟體,對於日後設計DAC or ADC將會是一條很艱辛的路程% A0 q$ x8 i  H4 V% ?) K6 \* K

. s! y' c$ R; i8 ?) Y6 T' r( w%clear all
0 S/ _, _6 ^7 h* p9 F# D1 Y4 Z& O$ v%fid=fopen('test.txt','w')
$ q$ \( U+ r, B$ E6 \4 |2 g
' n/ M. G0 u6 m3 K" }: R6 p%% 10MHz data-input speed$ Z0 V: e9 C  c3 I9 l6 k0 G) J
%for M=1:1:1024
/ l/ x- t6 B; i8 f9 E7 l* d%       T=M-1;
' }4 Z) H4 e! {1 g) z5 \%       from=(50*T)+45; %DUAL DAC measure time
  L2 \- U- ?. v3 {, V%       to=50+(50*T);
) Y8 d! U3 P  t8 h  u$ L%       fprintf(fid,'.MEASURE TRAN A%g RMS v(daci_outp) from=%gn to=%gn\n',M,from,to);: ~4 v+ P& C& [
%end
/ q$ K# [5 X4 X0 R
8 I: \$ A' A7 [5 a9 n+ [%fid=fopen('test2_2.txt','w');
. G6 V% y6 N& L3 j%for i=1:12^20)
% `' g; H& }% B/ e8 V$ g%    value=rand(1);- I  `- r( {8 X" Q- w/ a
%    fprintf(fid,'%g\n',value);
5 _& Q$ v& V* V8 W7 ]( t%end( p0 {* U# g* F
%fclose(fid);
$ p3 g" z0 c1 Y1 V0 U2 W8 @
4 x& h, `( t6 I: f$ q* s9 @; ~
clock_1000=1000/4000;
4 l: |9 W, {! X! B% x( u2 s%%fid=fopen('test1.txt','w')* Z/ f: ?/ B6 \- I) }) I$ m  V
fid=fopen('Measure_4G.txt','w');* h. U) R; I% [, H! @8 p7 @" X5 R
for N=1:12^20)
4 ~4 S/ u& h- Z$ m# l) m0 U    value3=clock_1000*N;( c$ ~/ x1 w$ v
%%    fprintf(fid,'%g  Measure_Point=%gn\n',N,value3);4 w! z/ t3 @, e2 c+ M
    fprintf(fid,'%g  %g\n',N,value3);
& P+ o) M* ~$ Z$ eend% E& a. c/ P: w( E; X) {+ |. s
fclose(fid);
) f! c6 e' v" [
+ T! v' W) f2 c/ B. K8 B: z
1 z! r1 r) @7 u$ ^clock_88=1000/88;  
( ]8 X$ A% Q( A  `  O% ]%%fid=fopen('Measure_88MHz.txt','w'): Y2 m: s/ J' Y( B( m
fid=fopen('Measure_88MHz_round.txt','w')
6 |* }3 F; w2 Q0 `# l8 w0 F1 Yfor M=1:12^14); p4 |- k' Q, }1 Z- c+ l
  value1=clock_88*(M+1);
7 Z' J, V% x- u) O- ~* S! m* ]  value2=value1-(clock_88/8)*1;/ t% p# x% r  u2 Z5 f3 |& K' z- j3 k
  value3=round(value1-(clock_88/8)*1);4 z7 F5 ~. H* t& h2 d7 G
  fprintf(fid,'%g\n',value3);
1 t* Q5 }* Q* {% F+ @%%  fprintf(fid,'%g   Clock=%gn   Measure_Point=%gn   Round_Value=%gn\n',M,value1,value2,value3); . x0 H0 \9 ]" E5 |- v! @& Y  `
end' g! T0 w: Q4 A- \5 k
fclose(fid);
5#
發表於 2010-6-20 15:48:12 | 只看該作者
非常感谢finster大大的无私分享与方向指导,我去深入学习一下matlab
您需要登錄後才可以回帖 登錄 | 申請會員

本版積分規則

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

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

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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