Chip123 科技應用創新平台

 找回密碼
 申請會員

QQ登錄

只需一步,快速開始

Login

用FB帳號登入

搜索
1 2 3 4
樓主: monkeybad
打印 上一主題 下一主題

[問題求助] CMOS晶體震盪器模擬

  [複製鏈接]
21#
發表於 2007-9-8 15:01:03 | 只看該作者

回復 #20 monkeybad 的帖子

to:monkeybad0 l" \& z, {+ w& a+ D
由于最近不常上chip123,所以现在才回答您的问题,表示非常抱歉!
$ a) Q; i- ]* C. I4 |% R+ Q现在是我稍早前仿真的一个振荡电路,希望对您有所帮助!  x, J7 c4 j: t

3 k* ~( `$ q9 q" p; K7 c7 v: |电感初始的电流设置如下所示:
5 W8 H' p7 i( _; H, i* y5 ]# EL_L1         N11450 N03952  588.873289 IC=1uA 7 t% B3 B7 q1 J8 h: E! b+ d
5 _. Y3 ?1 u+ N; [
注意给电感设置初始值要不能太小!+ y0 B  Z/ o/ W
http://www.eetop.cn/bbs/thread-58028-1-1.html(这是我在eetop的一个讨论贴,希望对您有所帮助)
# z. G: {' F- A) k( }------------------------! ?7 h0 P( T) m' |1 `1 e1 o% D
* source 100K' B/ {( ?) V, x( s% }1 N
.PROT
8 Y) ]6 @& }" U% }.inc 'd:\hs\lib\level3'& R; G! U9 t0 m" i
.UNPROT
5 o7 _! D7 u1 W( a; mC_C4         IN VOUT  1.72169576e-012  
% e# f! A! B( h( t3 ^M_M1         VOUT IN 0 0 n
2 F. Y9 A; l. P+ L=16u    V! a/ t0 X6 I3 V- X) ?1 a
+ W=0.8u         
1 u* L- O% J  U9 F. }# a# f+ M=10
6 M2 X# Q& O4 X2 S% k6 ZM_M2         VOUT IN vdd vdd p
( O( ^9 q/ }' ]* I* [+ E+ L=16u  ' i0 d" C% C2 z/ G. f$ v
+ W=0.8u         
; b. p6 v+ b" X+ M=221 j. E0 p3 m. Q# A. g
R_R3         IN N11450  18.5k  + d  m/ m9 J8 X) n" k5 v
V_V1         vdd 0 pwl(0 0,10us 3Vdc,20u 0,30us 3vdc)" e1 [, A6 @* x
C_C1         IN 0  5p  + q8 Q8 Q6 w% {
C_C2         0 VOUT  5p  
- _) J. n  d1 m  y1 sL_L1         N11450 N03952  588.873289 IC=1uA
: b+ `( T: G9 }2 @* o  iR_Rf         IN VOUT  50meg  % x) F7 y. W$ ~3 O+ l8 S
C_C3         N03952 VOUT  4.30423941e-015  $ Q  B( [4 A$ a: R, M% P: a' h
.tran 1ns 20ms
  I& j+ |, j4 M7 k.probe tran  v(in) v(vout)  `' g7 U' d3 X9 N
.end

評分

參與人數 2Chipcoin +5 +8 收起 理由
skyboy + 3 很受用!
monkeybad + 5 + 5 謝謝這麼熱心的回覆 這些資料非常有用 ...

查看全部評分

22#
 樓主| 發表於 2007-9-8 16:44:00 | 只看該作者
感謝wwm101提供這麼詳細的模擬資料
5 j* f4 S( e) B/ v原來設電感初始值只要加 IC=1uA 就可以了 又學到一個指令了! k8 c! J& z2 l% l' k9 ]& h

& {" a2 x! R9 e+ k看了討論區的文章
6 V( K# A* b9 m6 a- v2 q; N同意裡面的講法3 d% J7 I: u. @0 Q" j6 D
震盪器模擬應該跟初始值有關 可能是模擬軟體本身的收斂問題 可能跟演算法有關吧* Q" C) V$ [9 u5 M% B! P
設不好就都掉到ZERO的狀態 而不是震盪的狀態  
* {1 h8 o/ ]+ e! B: r所以應該要設初始條件 尤其是在模擬電源start-up的情形 初始值沒設好 好像也不會振說
23#
發表於 2007-9-9 14:38:59 | 只看該作者
最近一直在嘗試, 本來因為 schedule 的關係想先擱下, 以前做這個線路的同事說就是用 . Y. t& r; U" |
HSPICE 跑不起來才換 ADiT, 是還沒有遇到說 real chip 不會動的情況...0 C8 o1 @' x2 g3 |2 I2 a/ b

: W6 O& f! z+ p% \1 C  }* Y不過最後一次的嘗試讓我看到它起震了, time step 要縮小到 0.1ns, CX1(inverter輸入端)
7 W, V0 S9 b- P8 [+ _/ X% F縮小到 4pF (是任意挑一個較小的值, 沒試過其他的..CX2 仍為 10pF), 不過還是有點怪怪的...
: J* T5 j# s  y1 `) ~0 Y7 |8 v+ _( y6 p  O8 t
前面討論有提到, 起震時在 X'tal 內 CS 的端點會看到振幅漸增的震盪, 我用 ADiT 跑出來
3 g* m4 H5 x" J7 G. s# b1 S5 ~到穩態時震幅是 +/- 2.x KV, SPICE 跑出來只有900多V, 另外 CX1=CX2=10pF 時 ADiT
3 G- L6 G' ]- \- {& e" _就可以很順利的起震, XG/XD 的振幅是 full swing, SPICE 的話會看到 XG/XD 的振幅很小, ; P( [: B2 C- ?' o8 Z2 w8 i
幾乎就是在 INV 的操作點附近, CS 端點的振幅也只有幾十V, 頻率慢一點 (ex. 2MHz) ) k! v5 i3 S* `# s6 ?
還可以起震, 跑到 12MHz 時就掛了../ y. l- u- y; V; h
' u7 ~, i/ M: s" o
只是 time step 設到 0.1ns 用 HSPICE 跑 12MHz X'tal 要好久....>_<
; K+ ^; Q2 i: x$ J4 w2 `(當然比起前面 finster 大說的 32KHz 跑一個禮拜是好多了...)
& N7 \5 u6 d' j0 [
2 [7 `2 Y  D; i2 v) ]3 t[ 本帖最後由 skyboy 於 2007-9-9 02:51 PM 編輯 ]

評分

參與人數 1Chipcoin +3 +3 收起 理由
monkeybad + 3 + 3 經驗之談!值得參考!

查看全部評分

24#
發表於 2007-9-10 14:39:39 | 只看該作者
各位前輩, 不知大家是否模擬過Crystal oscillator的phase noise.! K) M! Y* H7 s9 W; a: \: I) c
小弟最近在模擬20Mhz的Crystal oscillator, 架構和上述討論的一樣,
0 v, ~3 o& u0 S" q' Y/ w( B為一CMOS反向器加上Crystal's model. # _7 V) q! u& ]4 Q% |/ H
小弟使用Spectre RF 模擬, option中, Integration method parameters設為"gear2only",; Z3 B1 w; X0 l; C
在pss 模擬時, Crystal oscillator 無法振盪, 但是transient 卻是可以振盪的.
' k) [& O, M/ o想請教各位前輩, 不知是否有人模擬過Crystal oscillator的phase noise??
; l$ W! p) x; z( @/ I# b3 N謝謝!!
25#
發表於 2007-9-10 18:24:26 | 只看該作者
感謝各位前輩提供的資訊.
6 ]* j. i) o( t, G" X$ x" u對於電感的初始值要如何設定才會符合真實狀況.' T4 `0 o. R/ Y+ m4 G
IC=1ua,一開始模擬就振的很漂亮.2 I" w/ n/ e  C4 B' v# a+ G  x
IC=0.1na,也可以振,只是起振時間拉長.謝謝.
26#
發表於 2007-10-7 12:50:25 | 只看該作者
原帖由 monkeybad 於 2007-8-9 10:01 AM 發表 1 o: Q+ B0 _& R5 I
昨天晚上試了一下以前在網路上找到的一個方法/ S8 U! u1 l9 ]: a
就是在一開始的時候 串聯一個起始電壓源來加速Hspice的模擬" Q' }, R/ v% `
起始電壓源為一個sine波 頻率設為crystal的震盪頻率 然後要加入damping factor 讓起始電壓慢慢衰減到零2 z/ }0 `6 \5 u$ `) K
結 ...
3 q/ Z9 p+ u# _- `, Q
; Q) c5 Z* i$ S& z" P9 L
小弟最近也在研究crystal oscillator circuit, 這個討論串讓我穫益良多
  O8 S9 ~6 l- hmonkeybad 大的這份附件, 剛好讓我想到一個問題
/ a, u" k/ j1 a9 _* e9 e( i8 x在這篇附件裡 figure 2的模擬結果顯示, Xtalin的振幅會大過Xtalout, 而Xtalin振幅甚至會超出 Vdd&Gnd6 B  K: z! H7 Y
我自己在模擬的時候也看到同樣的現象, 但不知如何解釋才正確....
8 k5 d) t3 d1 XXtalin > Xtalout還可以理解, 畢竟兩端的loading不同
7 |) Y+ A# u/ E但是Xtalin的振幅是否真的會超出supply rail? 還是只是模擬上是如此?; r% H# [/ X# C- Q; I
這個現象讓我聯想到DC-DC converter~ 不知道是否是電感所造成的效果?+ k$ O, v# \5 Y# J( E7 F6 Y
查了幾份application note都沒討論晶體兩端振幅的問題, 不知道這個振幅有沒有辦法去計算或調整?
0 e; v( Z. ]8 D% {8 o. d煩請各位前輩指點了, 感謝!!
27#
發表於 2007-10-8 00:29:48 | 只看該作者
實際 IC 確實有振超過 vdd 的案例+ t! b, O: k/ H2 S7 J2 C0 X
不過通常都伴有 消耗電流 過大的問題
# U) U/ K0 Q- C( _+ ]+ y2 |8 o3 g
嘗試降低 負電阻 試試
28#
發表於 2007-10-8 00:33:36 | 只看該作者
實際量測IC 負電阻
% U% T7 m% ?4 `/ m- K除了 網路分析儀 外. z  H' [) l- S3 i1 M- M" \8 D8 q
還有一個 小方法 能 簡易評估 6 a0 Q  q% O5 K0 D. D
9 S8 D  y. W% p& ~  V
缺錢 賣10代幣吧  有人要買嗎 ?
29#
發表於 2007-10-27 10:17:47 | 只看該作者
受教了,我也遇到晶振振不起来的问题了/ ^& \# k9 W* S; T% Y- ~
对于负电阻还是不太理解
30#
發表於 2008-1-15 00:33:08 | 只看該作者

回復 8# 的帖子

感謝finster分享! h- V* F% Y% r+ |' V
小弟我目前遇到一個跟你的第五點問題滿類似的
; T) v& D4 v2 X1 e; {/ P* z+ B我是design一個32.768k crystal osc
! Y2 ?( |( l, vic 回來量測時發現經過digital counter的輸出會有過快的現象,也就是它會數太快,代表著也許我送給它的頻率變快了* q8 k) Y% L; ]2 _
所以我就去量測內部頻率輸出32.768k的那一點訊號  ~( z4 L- P# j: s' k! B" D8 y
我下探針去量測,發現頻率跟波形都正確, C% V  R1 L* R. d, A! r! Z
但是當我探針離開輸出那一點時,頻率又變快了(有接led燈,所以感覺的出來閃爍變快): N- U, W' F4 \* d+ l2 [( h" X" m
我當下是覺得探針類似有電容的效果
# Y! \; y, O0 x7 V1 w+ Z" L2 K9 F所以當探針下去時會有濾波的效果,所以頻率會正常,當探針一離開則頻率會變快
$ k! d+ c2 u  z  @還以為是noise的影響
: r9 Q1 }1 Y' y看到你的第五點分享,現在想在我的輸出端再加上一個smitte trigger,然後再接給後面的digital counter來使用- j! a+ o* S6 S$ [5 r, w; Z& s/ c
看看問題是否可以獲得解決
31#
發表於 2008-1-18 09:26:07 | 只看該作者
原帖由 markcheng 於 2008-1-15 12:33 AM 發表 / g( ?/ X8 t; ~4 A
感謝finster分享% O* g& o, `- |3 Y
小弟我目前遇到一個跟你的第五點問題滿類似的, _6 t5 J' E: L' Q  o* w( Q
我是design一個32.768k crystal osc1 r/ l) ^  W" p  S1 u2 C! P
ic 回來量測時發現經過digital counter的輸出會有過快的現象,也就是它會數太快,代表著也許我送給它的頻率變快了 ...
& }+ X1 P3 _+ Q) v4 P- G- G
- Z" c- H( J) [8 w# ?9 l; \
- C4 k6 Q4 ~- g. }# X1 D
不好意思,因為這一個主題己經有太多人回覆了
. a! s. Q$ I( N* F所以也就一直沒有留意有沒有人有再提出新的問題來
. l! f0 ^9 ^( q( k8 K我們後來實驗的結果(藉由FIB),發現到當初的推論沒有錯,因為原本的規格是要作到很low power,所以32.768KHz Crystal output的推力就設計的很弱,以致於輸出的clock的rise time和fall time就變得很長,導致後級counter在遇到很長的rise time和fall time時,就會被重覆trigger,故而使得原本要一秒一秒計數的計數器變快了
$ D( P* u$ m2 i, g解法就是加一個schmitter trigger,藉由schmitter trigger的hysteresis windows特點來解決過長rise time/fall time所造成的問題(我們有用hspice作過模擬,利用crystal oscillator + counter但卻沒有看到過長rise time/fall time會造成counter有多數的情況,後來,我們是在power處和crystal oscillator的output端各加一些noise,便會看到問題出現,因為過長的rise time/fall time在爬升的過程中,因為noise的緣故會導致counter在某些較大的noise處會被trigger)
32#
發表於 2008-1-18 12:22:06 | 只看該作者
原帖由 finster 於 2008-1-18 09:26 AM 發表 - O: e3 n' }" S1 `8 ~9 D

- s1 M- _6 u0 Z3 V1 a; X5 u
7 d+ I; P6 v: b8 D' t
$ V$ t! a2 ~" H2 u/ c不好意思,因為這一個主題己經有太多人回覆了
, A6 r8 V$ C4 i3 l0 N所以也就一直沒有留意有沒有人有再提出新的問題來
; \& K; _' f! K+ m: u我們後來實驗的結果(藉由FIB),發現到當初的推論沒有錯,因為原本的規格是要作到很low power,所以32.768KHz Crys ...

) G! ]* H+ T, B6 f# Z: K1 R- ^& F/ I! w2 b# }1 q' F9 O
因為我的電路裡面還有另外一個12M的OSC....其實電路上是大同小異的...但是12M卻沒有這個問題...我想應該是它速度太快了...因為12M一個cycle大概是80n...而32k768大概是30u....這個差距就差很多了...難怪rising跟falling影響後者比較嚴重...因為counter大概反應時間也都是 n sec 等級的...最後還是感謝分享經驗
33#
發表於 2008-1-24 15:07:03 | 只看該作者
我想請問一下  之前一直提到的負電阻  v; i% e0 i/ ]7 o. @1 [9 ?
到底是什麼阿
: u5 c: h. C6 G有沒有參考資料可以閱讀的9 I. r$ i! P& ]8 _
或是哪本教科書有提到的; L. d: M8 p- p# R3 P. V; r( s7 B
我初踏入這個領域什麼都不懂# [# }: r% A7 {& T
謝謝大家了
34#
發表於 2008-1-31 11:33:38 | 只看該作者
很抱歉之前問了個小白問題( R/ R3 p) T5 z* f5 U5 v
我查了些參考書還有文件後1 V( D7 Q2 z* j% L4 Q
總算對負電阻有些粗淺的了解
" Y$ [. z# X8 e( [. P* m6 j$ y( i9 `
5 t3 t6 W6 S2 D  D  w. z3 E最近老闆要我改良之前12MHZ的Oscillator% X$ G4 [& l' S  x; Q* P
參考板上的文章後 把前人留下的電路丟下去跑模擬% ~5 K' W: I8 Z# h
算是可以正常起振2 j7 c( K( V2 ?

+ j1 R" O* @9 m9 z! t7 G( o我的經驗是% i& L1 H4 K9 }: ]& ~7 m/ w" x
若是使用HSPICE的話 Time Step 設太小 模擬時間會拉的很長
3 }/ L: y' e. Q6 T3 i( M使用ELDO則可以大幅縮減模擬時間  可是要注意要下 .option tuning = accurate/VHIGH 的參數 不然模擬結果會非常不準
9 ~5 ?7 }: V  n( S然後ADIT模擬時間最短  但是算是最不準吧  粗淺的測試可以使用
7 t; g+ T0 o, J  V* k' B但是到最後的驗證的話  還是要用HSPICE跑一下比較妥當: K3 ?0 Z1 M- n* }/ {- j
以上
35#
發表於 2008-1-31 16:39:37 | 只看該作者

回復 2# 的帖子

給monkeybad, _0 v2 j( R* e: W, C

) }  Z: x% i* }3 u我覺得這樣模擬負電阻的方式有一點點問題
. z/ P! B# P1 O" b/ |0 v- _你這樣所看到的阻值 與你所提供的Philip AN97090文件裡面的值不一樣5 q6 u. b' r/ I, Y3 k, ?2 J; a
你模擬的是並聯的負電阻值  而Philip的是串聯的
/ K# T9 M2 S+ {# D4 O) @兩者會有差別- G  |' b8 T8 r- w' q
9 R# k9 I1 ^3 E1 m6 ]" Q; F3 R) S" J
如果要用並聯的方式討論的話; Z; A4 }/ P, m  j4 \) S6 V' R
可能要把Crystal裡面的Rs換成並聯形式  就像是Razavi P.497推導的一樣, Z7 j- f+ N) i1 L( B. y! i9 F
然後負加正大於0 (因為是並聯形式  所以要相加大於零) (Razavi P.504)
+ I( C- ^: `6 w+ n' x應該就可以起振了
+ H. s% U0 x2 F/ z; U0 i1 Z) d7 ^+ C( L8 u# X0 j
另外有個問題! P+ A! D5 [; G: x4 _4 ?3 [& \
不知道在圖二你是用什麼方式把頻率鎖在震盪頻率
" F& h; |* Q' n9 l0 U2 m如果把石英拿掉的話# F: o+ p* q0 }, g- u7 ?- m
震盪頻率應該就是Inverter Delay的倒數  大概都是G的等級
* d1 W7 u/ G& j如果沒有鎖住的話  那模擬出來的負電阻就跟震盪時的負電阻不一樣了  Y, |6 Z; q$ o3 r! E- @* C
0 {- ~3 V3 Y# r& ?
一點淺見5 G8 |6 p1 f( w9 x) c
有錯請不吝指教
36#
發表於 2008-1-31 22:41:07 | 只看該作者
抱歉 我又來囉唆了
% C& M! |; I, M6 I. n我剛剛模擬了一下 monkeybad大大模擬負電阻的方式確實可以用: D3 l7 X  Q+ Y  H4 M) w' i* n5 S
只是模擬出來的值  跟參考文件上的不一樣
6 V1 _5 j% j6 T2 L7 p. F! r6 |它其實是Crystal往外看的等效電阻值
& D9 o% t: L7 A7 U( h& V0 v1 |所以如果要用Philip文件上的方式判斷的話6 w7 a! \* ?! p% T/ X, x
還要把這個電阻值做修正 也就是跟Rp的方法一樣
3 T2 C! u7 c2 e6 V/ n" r' ~這樣才可以把並聯的負電阻值換成串聯形式. U  y/ t; X7 W  Q4 v! E' w: \+ v' J
然後負大於正就可以起振' f9 J# q1 m" O, I

6 }' j. [3 ]0 U# a& H1 Z另外  我想請問一下monkeybad還有skyboy大大) q1 [) F. Z9 ?* ~1 i
在做負電組模擬時 要怎麼設定aa和bb的直流偏壓值
' W2 U/ l) M; D8 f/ c3 n( w, q我自己的方式是把Inverter的平衡點社在中間  然後下電流參數的時候 不給直流參數
) J8 ]# b( U; w; k& i) e不知道這樣合不合理
# @( Q  b2 Y0 R# ]7 x謝謝
37#
發表於 2008-8-19 13:30:06 | 只看該作者
這一篇的討論真的很不錯!!  u$ @# b! }) M( N  Q
   受益良多...
38#
發表於 2008-12-22 18:27:46 | 只看該作者
真是很棒的分享( C3 Y1 B) H  B' ]

8 n2 E5 o" N1 ~+ x% [# l) k) N& IThanks for your input!
39#
發表於 2008-12-22 20:23:13 | 只看該作者
谢谢f分享经验- p3 |5 m. H: W1 x8 I# _8 ^
crystal的等效模型各位是从哪得到的?
40#
發表於 2008-12-24 20:38:47 | 只看該作者
嗯~~多謝大大的提供~~小第也在做振盪器~~~謝謝囉~~~大大
您需要登錄後才可以回帖 登錄 | 申請會員

本版積分規則

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

GMT+8, 2024-5-7 11:55 AM , Processed in 0.121007 second(s), 16 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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