Chip123 科技應用創新平台

 找回密碼
 申請會員

QQ登錄

只需一步,快速開始

Login

用FB帳號登入

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

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

  [複製鏈接]
跳轉到指定樓層
1#
發表於 2007-8-1 16:50:04 | 顯示全部樓層 回帖獎勵 |倒序瀏覽 |閱讀模式
之前有討論過有關CMOS Pierce crystal osc' d! g- e1 @5 s7 W2 a6 J8 c3 k/ A
現在我的模擬好像有點問題 想請教一下
! P3 V! Q0 S/ W  p# D. |# o/ h圖一為我簡化後的Model 基本上 就是一顆CMOS Inverter 然後並連上一個偏壓電阻
- O" \2 ]$ ^8 X% |2 k$ J然後a b兩點再分別接到Crystal的兩端
& |# _7 h, C1 Q  ~" @& KCrystal用的model是一個L, C, RS串聯在並連一個CO 震盪頻率為32.768K
. c9 _; u, v- A這是要for時鐘用的
) S, D  }- |0 A1 u2 i- o* }0 A以下是我模擬的值 這個是從網路上面抓的一組值1 `2 r6 Y! ~- C! [
L=7000, C=0.003p, RS=200K, CO=1.7p' }! k( `7 z+ H$ H& S( ?' c. z0 G7 P& `
RBIAS=1E7,3 T' L5 f. Q0 b2 ?' p$ i; R  W
C1=1.2p, C2=1.2p& K1 t( U3 a5 Q
CMOS INVERTER: MN W=0.22U L=10U
/ W$ @( i! R- t' z% b+ X                         MP W=0.22U L=10U
/ X* Q$ Y3 q  Q9 V4 k) f' r2 QVDD=3.3V
1 k7 n: U0 \" Y8 x& Z根據理論 圖二看進去的負電組值 也就是電壓值實部的絕對值 要大於Crystal Osc裡面的寄生電阻RS
# h6 g, t4 w$ A2 w4 q5 O就是負電阻加正電阻要為負 才會震盪 7 V8 T: A! h- a+ v
( e5 [1 m0 }4 z( [9 Y  b
圖二是我模擬負電組的電路
! y: [. L$ Z; }2 @+ X( ^: s& qaa和bb電壓偏在Inverter飽和區裡面 V(aa)=V(bb)=1.3V7 S" J+ X( z6 j: a! Y7 Z
我在aa bb這兩點加一個電流源 hspice的指令為" J/ W% K7 J; A6 s" T1 X
Iin aa bb ac=1
7 _& m  y0 w1 M& @然後我跑.ac模擬) x5 [5 X  V1 M$ a8 e) G" B1 O
.ac DEC 1e5 1k 40k: D) g. {, i; r* I0 ?: v
再下
2 g1 z" K+ d! z/ c  y' u.probe VR(aa,bb)" Y( O# n4 e2 v* r6 p- F) ?
顯示aa,bb電壓的實部
% ^6 s3 y7 x7 u看ac的圖 在Avanwaves裡面叫做Volts Real的圖 看VR(aa,bb)
6 F4 q+ e; M4 O* D2 {5 d1 _  l然後發現在32.768K左右的時候 大約是-520K左右. c" Z+ b+ I2 p$ Q+ N8 B
請問一下這樣模擬負電阻的方法對嗎?9 Q2 Z. M; B' F  p/ R* P' ^
4 i: w( d) S+ |5 B5 q9 }
假如是正確的 那負加正小於零應該會起震才對
2 ]& f' \, s! f! t1 Y
% F/ O  D/ h5 K% J' T在跑.TRAN模擬$ r# ?2 k% d) G/ M: m6 h/ X
我的初始值設定為5 }. v4 U9 i3 o5 y
.ic V(A)=0 V(B)=1 V(C)=0 V(D)=0
5 N5 ~/ E, f/ l. x5 g  g可是後來發現一開始有震盪 但是越到後來振幅就越小 到最後整個衰減掉了 電壓收斂在1.3V
  }  J: O* [5 [. G# ]+ c7 d請問是哪裡模擬出了問題呢?

本帖子中包含更多資源

您需要 登錄 才可以下載或查看,沒有帳號?申請會員

x
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏2 分享分享 頂27 踩 分享分享
2#
 樓主| 發表於 2007-8-1 16:51:27 | 顯示全部樓層
圖二為負電阻模擬
! M, @* ^+ M# }6 w$ K9 H" Y( K6 U2 H2 b
圖三為負電阻模擬結果  V- k3 k/ z4 Q( V! y. L
: I; U' T9 l) e, h2 |; c
圖四為b點電壓 .TRAN的模擬結果 發現振幅一直變小
( C2 E% \! x! T6 y- V. u% T" d# ~) r& @( Y$ n5 [
[ 本帖最後由 monkeybad 於 2007-8-1 05:03 PM 編輯 ]

本帖子中包含更多資源

您需要 登錄 才可以下載或查看,沒有帳號?申請會員

x
3#
 樓主| 發表於 2007-8-6 18:08:14 | 顯示全部樓層
For adele:
9 ]4 E' D1 ^& Q; d. M有試過你給的值 而且用一顆NMOS gmN=44u 上面用定電流源PMOS來偏壓 I=37uA9 e! n! t% L( |) H7 e
可是好像還是不會震耶
* W' V* Q: W" M1 w另外我是用HSPICE模擬的 我這邊沒有spectre耶
! H& i# J4 k/ X$ w' f  E2 _; S# a6 q4 X
For m851055
% B) V7 n# ^# d' e4 A+ p; T* H% w因為要做RTC(Real Time Clock)的OSC, 所以要求非常省電, Inverter的W/L值才會設這麼小- l: n" P' @' V) S) m8 Y0 W
% y$ {. c. x. I. {0 x. V3 K: l& H
For wwm101 :
% B$ H( ^; K  J; i4 `) ~- m% ~那要怎麼下指令去給電感初始電流? 還有初始條件要怎麼設才恰當?' d, H. E$ {6 ^& r; W- T

4 y0 v7 m, `$ f3 R有沒有人有經驗的能指導一下 感溫感溫!
! o; F& f* d/ U3 C0 i. n# N' }, x2 z. K0 K5 s5 d( Y' O1 H
[ 本帖最後由 monkeybad 於 2007-8-6 06:17 PM 編輯 ]
4#
 樓主| 發表於 2007-8-8 14:08:22 | 顯示全部樓層
感謝finster大大提供這麼寶貴的經驗 真是造福人群 功德無量
5 H6 n! n  n% ^) J! k$ {. h2 x! o( b請受我一拜!
5#
 樓主| 發表於 2007-8-9 10:01:00 | 顯示全部樓層
昨天晚上試了一下以前在網路上找到的一個方法! ~2 Y8 x# h* _# J
就是在一開始的時候 串聯一個起始電壓源來加速Hspice的模擬
2 R, ^% s2 S6 E2 b起始電壓源為一個sine波 頻率設為crystal的震盪頻率 然後要加入damping factor 讓起始電壓慢慢衰減到零
$ ?$ T+ _# x6 M2 c0 |" N結果神奇的事情發生了
6 }3 m2 z3 [" M; r# d( cCrystal Oscillator到最後居然開始震盪了
- c" W& {: F3 H& L* \好感動喔!. _. L) A. R2 W7 c) G
趕快來跟大家分享一下!
* k, a6 D! w5 {
( Z% h$ V$ ^9 |. m# p5 h1 t2 C. Y: W電路仍然是之前的Inverter電路
) p- w  g" [8 Q% [% r% Q; ]在d點加入起始電壓
. F) m7 i& i4 q9 DVK d1 d2 sin ( 0V 800V 32K 0 1e5)! ~* l: A6 H  J; l7 P' W. ^" l5 B
模擬時間約400ms& a# p* R! Y& r0 N+ |* v$ ^% T
.TRAN 0.01u 400m
$ K  g1 D9 D9 {3 q) L到最後就看到震盪器開始震盪了!
' x6 p) E& P- c: s0 z2 Q; Y* J& B5 r; B. i
後來又試了另一個類似的方法 就是在電路另外並聯一個電流源: s$ W( b: }( j
也是同樣的sin波然後慢慢衰減到零 結果也是能讓電路起震* u% M0 o# ]* W$ c! A

! F7 w: h. C" k0 B/ l$ v8 I* |! H" U4 b另外好像模擬時間的間隔不能設太大 設太大好像也不會起震/ S/ P: o( x3 Z9 b( c2 `
* Z/ @5 M2 q8 w$ W
附件為網路上找到的文件3 H& R- h3 {2 Q, I! s$ ^! b
+ `4 k/ N" R0 P
[ 本帖最後由 monkeybad 於 2007-8-9 10:14 AM 編輯 ]

本帖子中包含更多資源

您需要 登錄 才可以下載或查看,沒有帳號?申請會員

x
6#
 樓主| 發表於 2007-8-13 15:32:02 | 顯示全部樓層
恩 這種加起始電壓的方法的確怪怪的 因為實際上晶片沒有這種起始電壓3 @% ^8 \! i' D4 r7 b
應該是要用正統的加起始值以及VDD上升等條件一起模擬才符和實際的情況5 R6 g. s* K) _# J" `

5 `) w% @4 L8 P6 B& j' K看參考資料裡面是說 在晶體震盪器模擬都要花費相當長的時間 這種方法可以加速模擬的時間 ! P1 k8 ], u9 |3 `# g3 t2 m" c
因為時間過很久後起始的電壓還是衰減到零了 對電路沒有影響 所以最後假如電路還是可以震盪的話
' V( u5 x7 U: ]3 {% ?) ^5 w1 `1 p我想OSC的設計應該是會震才對
) `! ^# ~  V# n6 G  ^) T; g9 `6 r, E( N
我覺得這種方法只能表示最後會不會震盪 不能模擬剛開始的時候會不會起震 另外就是可以節省模擬的時間
" Y/ r0 t( D5 T' w2 D9 g
- t" O! R$ \/ {$ W* ?[ 本帖最後由 monkeybad 於 2007-8-13 03:35 PM 編輯 ]
7#
 樓主| 發表於 2007-8-22 15:10:49 | 顯示全部樓層
根據推導的公式 RP應該是越大 所需要的gmmin會越小  這應該是沒錯
5 d5 ?7 a  d/ B% Z2 H
( y! d* p# A# O/ i  m另外說實話 我模擬負電阻時也有遇到全部變成正的情形 但是我也不知道為什麼 我猜可能是相位的問題吧 Hspice把他反過來了# [. i" d' `6 ?& l% M1 r9 o! c" l, R
所以我後來就直接根據推導的公式去計算 就是之前那份Philip的文件 移項一下就可以得到正電阻跟負電阻的計算公式" A+ L, A$ h* d7 Z
然後至少負電阻絕對值要大於正電阻 根據之前網友的說法是說要大五倍比較保險) b9 v9 y# a0 S2 ]* B

7 m3 g6 m( O% A然後在時域上面去模擬 有一個可以參考的方法來驗證你OSC會不會震 就是一開始起始值的電壓用很小
5 J  B% \, n6 v; _3 m, H然後你去看震盪器裡面的波形振幅 如果振幅慢慢被一直放大 則表示你的OSC是會震盪的7 J6 c3 e0 u: Y( U3 }" P$ T  U# b: h8 ]
因為表示負電阻的力量是比較強的 1 w, j9 v% j& a
& y7 p, m6 k2 A  S) L7 x# K
若是要看steady state時的波形 就把起始值加大 加速他transient的時間8 J4 ~1 b* a+ o/ A# M& U
8 ]: `0 s6 R/ G$ \& A/ H
另外注意好像.TRAN時間間隔也不能設太小的樣子 不然也不會震 目前我模擬是設0.01U 但是你頻率比較快 可能在設小一點吧

評分

參與人數 1 +3 收起 理由
skyboy + 3 很受用!

查看全部評分

8#
 樓主| 發表於 2007-8-24 17:03:57 | 顯示全部樓層
請問一下ADiT是什麼呀
6 I; D8 R& w& R+ o( V1 \; |$ E: j
, k8 W4 h/ a6 Q- N) A另外Hspice模擬中 我是參考之前的附件裡面設的起始電壓 就是原來附圖中的d點加入一個起始電壓: u; G( q7 j( K- F% S
VK d1 d2 sin ( 0V 800V 32K 0 1e4) 其中d拆成了d1 d2
7 y1 h, g; p) i9 v那起始電壓用小一點的話 就是sin的震幅用小一點 例如設成50V這樣: Z! w; t! X4 w% s" f. \
用這樣設起始條件模擬時間會比較快一點* h, L9 \$ _5 R. O8 j* w' h

$ L4 [% u% v/ y, ~3 ^7 }  a. I; k另外再模擬起震時 參考finster的設法 VDD用ramp模擬上升 另外V(A) V(B)就設成3.3V
: u; O$ S( }5 o' V# t那因為crystal從零一直到起震需要很久的時間 所以一開始你會看到XTALIN XTALOUT兩端都會被拉到VDD/28 [' l, F) j/ ]7 O6 F
但是你去看crystal model裡面的c點 應該會開始震盪 而且會慢慢變大
1 L1 l  [4 T; ]$ J2 H5 b7 R! Z根據穩態模擬的結果 震盪到穩態時電壓振幅都會到上百V至上千V
# n9 r/ f" X' K: [! ?3 q# @& k+ c  @, u7 Y1 z6 d/ L
另外我看你crystal model最好是去找看看 實際上廠商在用的model參數下去設
1 s8 }0 h$ k# o: c) }: u+ X0 w2 x2 L- |$ a2 t. u3 O9 D! C
[ 本帖最後由 monkeybad 於 2007-8-24 05:09 PM 編輯 ]

評分

參與人數 1 +3 收起 理由
skyboy + 3 感謝啦!

查看全部評分

9#
 樓主| 發表於 2007-8-30 14:32:14 | 顯示全部樓層
哇 32768的crystal OSC模擬要一個禮拜喔!
8 C" v4 B- \' N/ F) ~# H原來要這麼久 難怪我跑模擬過半個小時去看 怎麼感覺都一樣勒
10#
 樓主| 發表於 2007-8-30 18:51:19 | 顯示全部樓層
另外附帶提一下 RTC晶片規格裡面 要求非常省電
8 H3 F2 M' p* u: A' @3 I因為可以延長電池的壽命 或是外掛的精電容可以撐的比較久
6 ]. L8 E* i3 X6 t8 @" Z目前我找到比較厲害的是seiko 還有一家瑞士做的 兩個差不多強
$ |! U1 m2 w/ V1 \1 K3 q6 O' ntime keeping current=0.25uA, VDD=5V-1.3V
3 u* e; r$ x& G8 y1 k* i% W2 V, p' k. [+ f! K5 S
真的能做到這麼省電 而且VDD可以吃這麼大的範圍的電壓嗎?
7 t- o6 }  a! \# l- d* S0 Q/ J  X' Z4 I
5 N, P+ i' I1 L+ f/ v這種規格實在很嚇人
! G. a6 n! _' J$ S
0 y/ j9 [! i& N- R猜想是不是他先內建一個LDO把電壓降下來 然後再用這個LDO Vout去做類比和數位的電路的power嗎

本帖子中包含更多資源

您需要 登錄 才可以下載或查看,沒有帳號?申請會員

x
11#
 樓主| 發表於 2007-9-8 16:44:00 | 顯示全部樓層
感謝wwm101提供這麼詳細的模擬資料& m, ?( A  H) U8 L; a
原來設電感初始值只要加 IC=1uA 就可以了 又學到一個指令了8 T1 R! \8 G+ Z, r

; Q, Q0 l8 l+ p: n( S看了討論區的文章
4 I0 D- |7 A/ u0 N- Z同意裡面的講法$ M3 l# P8 F. b6 w! d
震盪器模擬應該跟初始值有關 可能是模擬軟體本身的收斂問題 可能跟演算法有關吧
( ?7 h% x( U' d+ \1 h5 p設不好就都掉到ZERO的狀態 而不是震盪的狀態  
% j% f& g% {: v9 p所以應該要設初始條件 尤其是在模擬電源start-up的情形 初始值沒設好 好像也不會振說
您需要登錄後才可以回帖 登錄 | 申請會員

本版積分規則

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

GMT+8, 2024-6-16 01:28 AM , Processed in 0.142018 second(s), 18 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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