Chip123 科技應用創新平台

 找回密碼
 申請會員

QQ登錄

只需一步,快速開始

Login

用FB帳號登入

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

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

  [複製鏈接]
跳轉到指定樓層
1#
發表於 2007-8-1 16:50:04 | 顯示全部樓層 回帖獎勵 |倒序瀏覽 |閱讀模式
之前有討論過有關CMOS Pierce crystal osc% Z  N9 n- {" a( R
現在我的模擬好像有點問題 想請教一下: @' m; e$ |1 _! ?, ^$ e
圖一為我簡化後的Model 基本上 就是一顆CMOS Inverter 然後並連上一個偏壓電阻
' A6 R3 J. {& x7 |8 p( I6 O: w然後a b兩點再分別接到Crystal的兩端 9 c- ~7 w5 |" e9 u8 m/ Z, A
Crystal用的model是一個L, C, RS串聯在並連一個CO 震盪頻率為32.768K: h# P  x0 [" W1 }1 z
這是要for時鐘用的
5 w- L1 ?5 u/ `  a5 ~# l4 X) O以下是我模擬的值 這個是從網路上面抓的一組值& J* U  l% M* [! G- X4 W9 I2 m
L=7000, C=0.003p, RS=200K, CO=1.7p
9 P: {! q. _. vRBIAS=1E7,
7 ^6 Z# p& O1 y8 e0 `  W2 E4 L/ G! nC1=1.2p, C2=1.2p
5 @) t* A, F; B7 rCMOS INVERTER: MN W=0.22U L=10U
! D+ p7 L3 j: o1 v                         MP W=0.22U L=10U
  q- |: h% ]4 K* }" n+ d# ?% K" DVDD=3.3V2 M7 W; ~2 |  ]  W+ Q6 z7 _0 @9 {
根據理論 圖二看進去的負電組值 也就是電壓值實部的絕對值 要大於Crystal Osc裡面的寄生電阻RS
8 d5 g9 F! ^6 I  X3 e4 }$ d' N5 K8 ?3 E就是負電阻加正電阻要為負 才會震盪
+ q) f# ]! l* m! A
+ ~1 Q! T& U3 e圖二是我模擬負電組的電路 , G4 F! R/ a# Z/ t
aa和bb電壓偏在Inverter飽和區裡面 V(aa)=V(bb)=1.3V
; d0 Z) S' U7 O% h我在aa bb這兩點加一個電流源 hspice的指令為6 d+ J3 {/ q  L/ G! W2 ~% a
Iin aa bb ac=1  F7 X7 N0 {" K1 g
然後我跑.ac模擬
. ?9 b3 s& a% a* q# Z% K9 f.ac DEC 1e5 1k 40k
4 h  j. o6 |6 X% x4 z再下
/ g! p( {, o' H.probe VR(aa,bb): y9 F' o* E  _3 o; S% i5 g+ B
顯示aa,bb電壓的實部: i& P% M3 K) c# x- g0 y4 t
看ac的圖 在Avanwaves裡面叫做Volts Real的圖 看VR(aa,bb)6 d$ J$ W8 {; |8 T- n
然後發現在32.768K左右的時候 大約是-520K左右
+ q, b6 s1 S# n請問一下這樣模擬負電阻的方法對嗎?
1 s4 G" g, E6 R; V9 e* v3 V. m- X7 r7 g0 B2 F  @  F- G
假如是正確的 那負加正小於零應該會起震才對, Y2 X; P" D# _& f8 j+ I

4 c! ?1 D6 K9 |  L! [; `在跑.TRAN模擬7 M5 h' F% f  [$ O8 o( f- g
我的初始值設定為
; _3 C3 Q8 m! A9 e! w# t.ic V(A)=0 V(B)=1 V(C)=0 V(D)=0
( m3 a& o3 d6 x可是後來發現一開始有震盪 但是越到後來振幅就越小 到最後整個衰減掉了 電壓收斂在1.3V( b. ]. ?1 Q, N# R; B
請問是哪裡模擬出了問題呢?

本帖子中包含更多資源

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

x
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏2 分享分享 頂27 踩 分享分享
2#
 樓主| 發表於 2007-8-1 16:51:27 | 顯示全部樓層
圖二為負電阻模擬& R( ~0 K) r# i6 Y# \/ B: x

+ g% E7 ^( x9 W$ w圖三為負電阻模擬結果
& ?/ n2 K- `- E6 y) h; v
2 b9 a+ ~. C/ M9 I圖四為b點電壓 .TRAN的模擬結果 發現振幅一直變小$ X0 V1 F6 l2 o# q) \5 b. v
* D- n2 g* M" _  F# A6 t9 ?
[ 本帖最後由 monkeybad 於 2007-8-1 05:03 PM 編輯 ]

本帖子中包含更多資源

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

x
3#
 樓主| 發表於 2007-8-6 18:08:14 | 顯示全部樓層
For adele:1 ?$ g: x; l0 ?+ S8 Z2 G" P* E
有試過你給的值 而且用一顆NMOS gmN=44u 上面用定電流源PMOS來偏壓 I=37uA% G. |' N& Q2 Y  H
可是好像還是不會震耶
) [: d8 l) R2 h6 t2 ]另外我是用HSPICE模擬的 我這邊沒有spectre耶  L( p1 \; l2 n  M7 h+ R) }8 B

( X& t+ D% o! C5 ~: O3 P8 N* U" _For m851055
5 @; o7 S4 H$ h+ q因為要做RTC(Real Time Clock)的OSC, 所以要求非常省電, Inverter的W/L值才會設這麼小
4 k. ?0 V9 Q7 y8 z( ?3 G( n4 k& {5 t$ O
For wwm101 :
  s3 H, t8 O. u+ l2 g7 \那要怎麼下指令去給電感初始電流? 還有初始條件要怎麼設才恰當?7 e( q- H2 l% [
5 k2 g+ d8 Z! J/ `
有沒有人有經驗的能指導一下 感溫感溫!. p3 W0 O2 R3 G/ w
4 |8 {8 y4 o" M8 Q$ n+ ]2 }
[ 本帖最後由 monkeybad 於 2007-8-6 06:17 PM 編輯 ]
4#
 樓主| 發表於 2007-8-8 14:08:22 | 顯示全部樓層
感謝finster大大提供這麼寶貴的經驗 真是造福人群 功德無量
) J& `: f. ?# u4 C. m) }請受我一拜!
5#
 樓主| 發表於 2007-8-9 10:01:00 | 顯示全部樓層
昨天晚上試了一下以前在網路上找到的一個方法
7 ]) i9 R6 ?; Q; N( N8 Z就是在一開始的時候 串聯一個起始電壓源來加速Hspice的模擬  N7 J2 w, m8 e) |
起始電壓源為一個sine波 頻率設為crystal的震盪頻率 然後要加入damping factor 讓起始電壓慢慢衰減到零
) Q) b" h0 ]1 T! R結果神奇的事情發生了4 z; h. ?& A, j
Crystal Oscillator到最後居然開始震盪了
( C7 o$ L7 q) p; k4 ^好感動喔!
2 F) g9 a  J' `) R  w7 u趕快來跟大家分享一下!
$ b. b/ {- _. m5 U
! W% ^% M& v) l7 j4 w電路仍然是之前的Inverter電路
& j; h/ q  o4 p$ P5 R在d點加入起始電壓6 U( w! m$ ^* S( v
VK d1 d2 sin ( 0V 800V 32K 0 1e5)9 |9 R) j: \8 K+ d; Q# ^
模擬時間約400ms0 F3 j' P- _/ k. o9 x$ M" v3 J' a( a5 H
.TRAN 0.01u 400m, M" N# `7 L/ y* q/ u+ z8 a1 b8 _
到最後就看到震盪器開始震盪了!
: O( f" }2 i* P. R# }2 B- Z
! K& {9 J7 G7 W  |後來又試了另一個類似的方法 就是在電路另外並聯一個電流源
) a) o: h  A" S2 Q3 B也是同樣的sin波然後慢慢衰減到零 結果也是能讓電路起震
6 o* F7 c, D3 p, _
% ~  m2 ?! F- t% ]  G8 @另外好像模擬時間的間隔不能設太大 設太大好像也不會起震
8 v2 u, I  `+ g7 a: H! S  v" J7 o% R7 }/ l5 Q( k: j( b$ M( X
附件為網路上找到的文件8 R( q0 z/ s3 L& Y- ~: M' l: I

$ L" {: @7 b* U0 }- C4 b[ 本帖最後由 monkeybad 於 2007-8-9 10:14 AM 編輯 ]

本帖子中包含更多資源

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

x
6#
 樓主| 發表於 2007-8-13 15:32:02 | 顯示全部樓層
恩 這種加起始電壓的方法的確怪怪的 因為實際上晶片沒有這種起始電壓
' k1 N% a: l( p2 u' Q7 b6 q% u3 p: z5 m1 z應該是要用正統的加起始值以及VDD上升等條件一起模擬才符和實際的情況
- g& N$ i1 q5 N' W& I9 p9 R* U0 A
! a2 X$ p4 A/ G" `* ?看參考資料裡面是說 在晶體震盪器模擬都要花費相當長的時間 這種方法可以加速模擬的時間
) O4 g/ Y6 A! z& o因為時間過很久後起始的電壓還是衰減到零了 對電路沒有影響 所以最後假如電路還是可以震盪的話, W8 L0 F* Y1 N  R4 b' L
我想OSC的設計應該是會震才對 + ^' R0 Q# E  U9 M: |1 j7 G" F

8 J! j5 |$ v3 ?% e8 W( a# f/ v我覺得這種方法只能表示最後會不會震盪 不能模擬剛開始的時候會不會起震 另外就是可以節省模擬的時間1 U, n( @7 R" N: C! k% A% D! j" C
3 @( g8 S' D7 e( R/ C
[ 本帖最後由 monkeybad 於 2007-8-13 03:35 PM 編輯 ]
7#
 樓主| 發表於 2007-8-22 15:10:49 | 顯示全部樓層
根據推導的公式 RP應該是越大 所需要的gmmin會越小  這應該是沒錯( R. W+ r, ^/ j

  R/ F0 j: q; k; I% k! T另外說實話 我模擬負電阻時也有遇到全部變成正的情形 但是我也不知道為什麼 我猜可能是相位的問題吧 Hspice把他反過來了
1 M4 [) N1 I! D" ]- U4 T所以我後來就直接根據推導的公式去計算 就是之前那份Philip的文件 移項一下就可以得到正電阻跟負電阻的計算公式
6 V, F+ D5 T( t& t9 a然後至少負電阻絕對值要大於正電阻 根據之前網友的說法是說要大五倍比較保險
% \6 X  E; Q, m, P) G. V; p# G; m' z; D3 t" i2 ~& }. X
然後在時域上面去模擬 有一個可以參考的方法來驗證你OSC會不會震 就是一開始起始值的電壓用很小) z0 _8 O+ ]; c4 f8 J) k, o
然後你去看震盪器裡面的波形振幅 如果振幅慢慢被一直放大 則表示你的OSC是會震盪的
0 S& L+ E. C0 S  _7 {  E& G因為表示負電阻的力量是比較強的 & x( I% ]# d+ _) r5 ~$ I% ]( p

; I# b9 n( Y3 s. j3 H5 w: D若是要看steady state時的波形 就把起始值加大 加速他transient的時間
9 z7 c8 x/ q- \' I2 h( F& z( j0 G6 ~6 X! r/ K" e
另外注意好像.TRAN時間間隔也不能設太小的樣子 不然也不會震 目前我模擬是設0.01U 但是你頻率比較快 可能在設小一點吧

評分

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

查看全部評分

8#
 樓主| 發表於 2007-8-24 17:03:57 | 顯示全部樓層
請問一下ADiT是什麼呀
) z* G  I9 [# w4 _% _: U+ _) Y# f3 ]) G$ @+ d7 t2 N
另外Hspice模擬中 我是參考之前的附件裡面設的起始電壓 就是原來附圖中的d點加入一個起始電壓0 u  E, z0 G% @0 @, d
VK d1 d2 sin ( 0V 800V 32K 0 1e4) 其中d拆成了d1 d2
. Z; |7 q' I  U那起始電壓用小一點的話 就是sin的震幅用小一點 例如設成50V這樣
2 E) `6 M7 T4 A6 `: H用這樣設起始條件模擬時間會比較快一點
: t/ i7 ]1 j% G" V1 y7 J. D* a& l, w& t& Y
另外再模擬起震時 參考finster的設法 VDD用ramp模擬上升 另外V(A) V(B)就設成3.3V
/ ]# M" o  b9 \那因為crystal從零一直到起震需要很久的時間 所以一開始你會看到XTALIN XTALOUT兩端都會被拉到VDD/2
( `. n* X9 Q2 r2 S9 P但是你去看crystal model裡面的c點 應該會開始震盪 而且會慢慢變大
% S8 n; b% J( g! v根據穩態模擬的結果 震盪到穩態時電壓振幅都會到上百V至上千V2 F, x  ], O9 t; P
5 d4 p" e7 L7 p
另外我看你crystal model最好是去找看看 實際上廠商在用的model參數下去設' Z8 E4 q9 u. S: T, X! Z
3 A/ R" h+ n$ [
[ 本帖最後由 monkeybad 於 2007-8-24 05:09 PM 編輯 ]

評分

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

查看全部評分

9#
 樓主| 發表於 2007-8-30 14:32:14 | 顯示全部樓層
哇 32768的crystal OSC模擬要一個禮拜喔!
; g: X& x9 C" ~+ @9 y3 u- j原來要這麼久 難怪我跑模擬過半個小時去看 怎麼感覺都一樣勒
10#
 樓主| 發表於 2007-8-30 18:51:19 | 顯示全部樓層
另外附帶提一下 RTC晶片規格裡面 要求非常省電6 u/ z! N+ |: e2 h! M) _6 E
因為可以延長電池的壽命 或是外掛的精電容可以撐的比較久
; q1 r, n% B4 N$ A' y目前我找到比較厲害的是seiko 還有一家瑞士做的 兩個差不多強+ H9 R. S- y* X4 N: |
time keeping current=0.25uA, VDD=5V-1.3V
5 B- t- \* w2 l- |) ^
1 M. H4 @) L6 V& C9 N真的能做到這麼省電 而且VDD可以吃這麼大的範圍的電壓嗎?
+ c# U. o: R2 Z  p: i
  k* A3 {3 R6 N( A9 v/ q' [這種規格實在很嚇人
7 e: d5 R0 ~+ S" T! m# l" O- R) _: I# _& x+ L5 p8 `  U9 R
猜想是不是他先內建一個LDO把電壓降下來 然後再用這個LDO Vout去做類比和數位的電路的power嗎

本帖子中包含更多資源

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

x
11#
 樓主| 發表於 2007-9-8 16:44:00 | 顯示全部樓層
感謝wwm101提供這麼詳細的模擬資料
3 N- ]6 J0 H* U/ T* j原來設電感初始值只要加 IC=1uA 就可以了 又學到一個指令了) j! o2 L5 Z. ]9 e2 r  d2 @  b2 z) c: P3 D

& S: n3 S# r# \: o/ S看了討論區的文章 8 H1 H- A: q% b5 B2 |% o
同意裡面的講法
/ k5 l: I7 t7 h% Q震盪器模擬應該跟初始值有關 可能是模擬軟體本身的收斂問題 可能跟演算法有關吧
" r8 {2 r: O* ]5 M% H* r設不好就都掉到ZERO的狀態 而不是震盪的狀態  
8 x) ^( R9 ~/ x' ~/ n2 o+ B5 o所以應該要設初始條件 尤其是在模擬電源start-up的情形 初始值沒設好 好像也不會振說
您需要登錄後才可以回帖 登錄 | 申請會員

本版積分規則

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

GMT+8, 2024-5-8 12:56 AM , Processed in 0.114007 second(s), 18 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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