Chip123 科技應用創新平台

 找回密碼
 申請會員

QQ登錄

只需一步,快速開始

Login

用FB帳號登入

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

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

  [複製鏈接]
跳轉到指定樓層
1#
發表於 2007-8-1 16:50:04 | 顯示全部樓層 回帖獎勵 |倒序瀏覽 |閱讀模式
之前有討論過有關CMOS Pierce crystal osc9 O; m; B9 j; g1 w2 [' W) Q
現在我的模擬好像有點問題 想請教一下% x. d0 V! j! ~& Y; b: R
圖一為我簡化後的Model 基本上 就是一顆CMOS Inverter 然後並連上一個偏壓電阻+ Z, i6 I; r& V& O7 \
然後a b兩點再分別接到Crystal的兩端
+ e; z8 \% p0 i( ^# e* R# {: nCrystal用的model是一個L, C, RS串聯在並連一個CO 震盪頻率為32.768K
7 F3 }; D, O3 o# y/ Y* }這是要for時鐘用的! l5 G" K- r5 Y
以下是我模擬的值 這個是從網路上面抓的一組值$ B+ O* {! q, {: g! `! J8 V- |6 g1 @
L=7000, C=0.003p, RS=200K, CO=1.7p: l8 {+ ?% ]- H" r
RBIAS=1E7,$ ^: k: w1 U' N% B
C1=1.2p, C2=1.2p( Z" d1 O) e( p5 r
CMOS INVERTER: MN W=0.22U L=10U
  l" x( _+ F' X1 r                         MP W=0.22U L=10U: }$ c2 L- N* I; [- _; O
VDD=3.3V
6 u$ l+ I" w/ X" B3 B+ C! ]根據理論 圖二看進去的負電組值 也就是電壓值實部的絕對值 要大於Crystal Osc裡面的寄生電阻RS
5 P2 K( r0 u3 q0 v2 _2 F: h3 k就是負電阻加正電阻要為負 才會震盪 " c  @) i2 I1 Q0 C; y; A6 e
  r+ U- U3 {3 ^8 O
圖二是我模擬負電組的電路
# O1 P7 u- _6 y1 Faa和bb電壓偏在Inverter飽和區裡面 V(aa)=V(bb)=1.3V
; M% J' e* m* r5 ^# W9 l我在aa bb這兩點加一個電流源 hspice的指令為
! `8 w! M6 x* O# ZIin aa bb ac=1
, A; s3 ^* ?% a3 L* k! W# Q然後我跑.ac模擬
2 g* Z0 E0 J& ~2 E2 m5 s.ac DEC 1e5 1k 40k
9 P: j+ F/ L, A' f# V* A' L2 B再下
0 v0 P2 u7 `+ Y.probe VR(aa,bb)
: N4 D8 y0 `# y* |& @+ @4 a# l/ N顯示aa,bb電壓的實部; o4 U2 F% i8 k0 R
看ac的圖 在Avanwaves裡面叫做Volts Real的圖 看VR(aa,bb)
+ Z1 A, A1 ~' y0 L" q然後發現在32.768K左右的時候 大約是-520K左右% X8 q) m; k' m
請問一下這樣模擬負電阻的方法對嗎?0 R& s) q  Q. Q1 ]! y
1 w5 m5 Z3 i7 O3 ]+ n
假如是正確的 那負加正小於零應該會起震才對! |9 F( X4 t5 s5 [1 T7 q  {

  z, U- c# V1 e6 m1 Q在跑.TRAN模擬
$ V6 |3 d% X6 ^1 s5 ~0 r0 d2 n我的初始值設定為. P& u1 `4 p7 M- z- ^1 I2 I
.ic V(A)=0 V(B)=1 V(C)=0 V(D)=05 W+ x0 B3 v, x5 q# z7 m7 N/ D
可是後來發現一開始有震盪 但是越到後來振幅就越小 到最後整個衰減掉了 電壓收斂在1.3V" s# A- F' ]" A! m6 g+ D
請問是哪裡模擬出了問題呢?

本帖子中包含更多資源

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

x
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏2 分享分享 頂27 踩 分享分享
2#
 樓主| 發表於 2007-8-1 16:51:27 | 顯示全部樓層
圖二為負電阻模擬
5 c% m( ^8 l7 p% [
% ^% E/ w$ G( x. y圖三為負電阻模擬結果% X, M; f# L' P$ t

! j# j& X- D  P6 C( p2 G圖四為b點電壓 .TRAN的模擬結果 發現振幅一直變小
: g* e( M6 E$ e: l6 Q( m8 q; Z& J
- b1 k. k) c8 c# ~: V[ 本帖最後由 monkeybad 於 2007-8-1 05:03 PM 編輯 ]

本帖子中包含更多資源

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

x
3#
 樓主| 發表於 2007-8-6 18:08:14 | 顯示全部樓層
For adele:5 G7 P$ [# x! ~, m9 p+ f
有試過你給的值 而且用一顆NMOS gmN=44u 上面用定電流源PMOS來偏壓 I=37uA& c' f5 a" ]6 Q3 f- L
可是好像還是不會震耶
- ^5 f! L/ a2 N另外我是用HSPICE模擬的 我這邊沒有spectre耶3 K( g1 t) T6 m/ e
1 J2 a, O; g% [7 u: J  g8 V! U, D4 A
For m851055
8 z4 Z& ?( N9 q, ?- s! [因為要做RTC(Real Time Clock)的OSC, 所以要求非常省電, Inverter的W/L值才會設這麼小; [0 s4 J" F' d5 k; z9 j1 B
) F/ a1 G; Q, ]+ l
For wwm101 :" j; d* G  _2 ~5 {1 _
那要怎麼下指令去給電感初始電流? 還有初始條件要怎麼設才恰當?' L6 ~+ e1 X% |4 z* M' Z

6 q# @: R" _4 Q% _% G' W) h& m2 _有沒有人有經驗的能指導一下 感溫感溫!
1 U# X( e8 a+ D$ T) _  h/ l& Z+ Q2 P% ?1 Q; P- W- J; W6 I
[ 本帖最後由 monkeybad 於 2007-8-6 06:17 PM 編輯 ]
4#
 樓主| 發表於 2007-8-8 14:08:22 | 顯示全部樓層
感謝finster大大提供這麼寶貴的經驗 真是造福人群 功德無量
1 p6 b. H8 ?3 z, l! S請受我一拜!
5#
 樓主| 發表於 2007-8-9 10:01:00 | 顯示全部樓層
昨天晚上試了一下以前在網路上找到的一個方法
6 r1 {% Q5 V( _就是在一開始的時候 串聯一個起始電壓源來加速Hspice的模擬! P; B+ ]' I& w
起始電壓源為一個sine波 頻率設為crystal的震盪頻率 然後要加入damping factor 讓起始電壓慢慢衰減到零( p  t$ C# I$ D1 m+ m
結果神奇的事情發生了! a2 b# P, S0 g9 m. W! |. y, ?
Crystal Oscillator到最後居然開始震盪了
! \) x. d* F1 G( J, v* `+ H7 J  B好感動喔!9 m0 a! H# q9 U' v6 f! X+ Z9 A. N3 ~
趕快來跟大家分享一下!$ x6 S& R# V- o, N/ b

' w3 a) z. ]) C* O電路仍然是之前的Inverter電路
, ]) f9 {# h# z8 Z6 `在d點加入起始電壓1 k3 Z5 e! ~/ w( n5 o
VK d1 d2 sin ( 0V 800V 32K 0 1e5)
3 Z3 ?2 Y- I: T& I- Y4 B模擬時間約400ms
, O2 D; q% x: d" l, h$ d.TRAN 0.01u 400m
6 x6 N8 `8 v; k7 `- r, h5 R到最後就看到震盪器開始震盪了!
6 Q, H/ s3 m( x
( N4 w% G4 v" k3 o$ ~後來又試了另一個類似的方法 就是在電路另外並聯一個電流源$ ]0 b7 D- ]! Q, p+ r. P4 @
也是同樣的sin波然後慢慢衰減到零 結果也是能讓電路起震
* Q4 `' u, i+ D/ l+ A, a$ N- I* Q- z. T* A7 p& ]6 v
另外好像模擬時間的間隔不能設太大 設太大好像也不會起震
* O, a' N  }2 N1 k( b+ ^/ I% E5 j; P
" E3 A- X$ d. E  w; a  N7 w' S附件為網路上找到的文件4 ?% A  Z" l1 [. m0 T  I2 b

6 ]% G% u5 w" Z) G; g% V: y[ 本帖最後由 monkeybad 於 2007-8-9 10:14 AM 編輯 ]

本帖子中包含更多資源

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

x
6#
 樓主| 發表於 2007-8-13 15:32:02 | 顯示全部樓層
恩 這種加起始電壓的方法的確怪怪的 因為實際上晶片沒有這種起始電壓+ L8 x3 g. V* [
應該是要用正統的加起始值以及VDD上升等條件一起模擬才符和實際的情況
5 P: }3 |9 p/ o, H, D- h1 J
  e8 ~% m$ u: \1 \看參考資料裡面是說 在晶體震盪器模擬都要花費相當長的時間 這種方法可以加速模擬的時間 ) E2 I8 I3 W- x  C5 e: o& {
因為時間過很久後起始的電壓還是衰減到零了 對電路沒有影響 所以最後假如電路還是可以震盪的話
" ?' m: R: a+ A- J! a) M我想OSC的設計應該是會震才對
# E" I2 q/ A$ [* P2 A8 d' b
( u: F- s2 ^3 z: l我覺得這種方法只能表示最後會不會震盪 不能模擬剛開始的時候會不會起震 另外就是可以節省模擬的時間! y: G  K/ l* e7 K+ m: c3 M
/ o# a5 g! q) g* v$ p6 {0 n, Q6 Y/ i# _
[ 本帖最後由 monkeybad 於 2007-8-13 03:35 PM 編輯 ]
7#
 樓主| 發表於 2007-8-22 15:10:49 | 顯示全部樓層
根據推導的公式 RP應該是越大 所需要的gmmin會越小  這應該是沒錯+ e$ P+ {2 |5 i

) Y$ |; H0 f" w7 v3 ~1 L$ X- M0 M另外說實話 我模擬負電阻時也有遇到全部變成正的情形 但是我也不知道為什麼 我猜可能是相位的問題吧 Hspice把他反過來了! N! v" d& e& N' V4 U/ u
所以我後來就直接根據推導的公式去計算 就是之前那份Philip的文件 移項一下就可以得到正電阻跟負電阻的計算公式, _+ l( p2 S4 u
然後至少負電阻絕對值要大於正電阻 根據之前網友的說法是說要大五倍比較保險* A* V3 \$ B: c/ S7 k- J5 j. C7 S' [! {
  w& m* w( T3 @+ l
然後在時域上面去模擬 有一個可以參考的方法來驗證你OSC會不會震 就是一開始起始值的電壓用很小: v  M; N- F6 K
然後你去看震盪器裡面的波形振幅 如果振幅慢慢被一直放大 則表示你的OSC是會震盪的# X' {$ K0 N* {4 D# |1 q# w1 {; n
因為表示負電阻的力量是比較強的 ' {0 R. G& T- T: \0 b0 ]9 Z9 \. S

* ~+ J; T" a; G: `% d若是要看steady state時的波形 就把起始值加大 加速他transient的時間
4 `; Z; ~- V6 w( w7 |! Y+ X/ l8 k3 u8 Z1 b7 s" R  O
另外注意好像.TRAN時間間隔也不能設太小的樣子 不然也不會震 目前我模擬是設0.01U 但是你頻率比較快 可能在設小一點吧

評分

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

查看全部評分

8#
 樓主| 發表於 2007-8-24 17:03:57 | 顯示全部樓層
請問一下ADiT是什麼呀
( j  f0 _6 q0 l& D" J# s1 y$ K( G0 |" N) l& k- ]+ K6 \4 C8 v
另外Hspice模擬中 我是參考之前的附件裡面設的起始電壓 就是原來附圖中的d點加入一個起始電壓
% {4 A+ Y; ?2 {% b8 }, I( vVK d1 d2 sin ( 0V 800V 32K 0 1e4) 其中d拆成了d1 d2& M$ R1 f3 m4 g  c4 }# D/ c) {
那起始電壓用小一點的話 就是sin的震幅用小一點 例如設成50V這樣
/ L- N/ @6 C* u1 P8 W5 c" Y6 ?用這樣設起始條件模擬時間會比較快一點
) ^6 b, \8 F" \5 p5 X  e# C
8 D' ]0 t" l( U3 H5 A, j另外再模擬起震時 參考finster的設法 VDD用ramp模擬上升 另外V(A) V(B)就設成3.3V
6 l# W9 E0 p5 t# ~7 v- u那因為crystal從零一直到起震需要很久的時間 所以一開始你會看到XTALIN XTALOUT兩端都會被拉到VDD/2
& u" k: q9 p3 v( o( x: y但是你去看crystal model裡面的c點 應該會開始震盪 而且會慢慢變大 - K/ F! P" {1 b  C. x  g
根據穩態模擬的結果 震盪到穩態時電壓振幅都會到上百V至上千V
2 J* l) _( d* R4 x- y! Z0 s; M- J. h% Z" k# O; A8 Y8 ]
另外我看你crystal model最好是去找看看 實際上廠商在用的model參數下去設* h/ S% Z4 v! N" F* @

3 S+ R0 K* a3 C. y$ w1 j[ 本帖最後由 monkeybad 於 2007-8-24 05:09 PM 編輯 ]

評分

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

查看全部評分

9#
 樓主| 發表於 2007-8-30 14:32:14 | 顯示全部樓層
哇 32768的crystal OSC模擬要一個禮拜喔!
( ?  \5 p2 P/ K+ x  h- V* b原來要這麼久 難怪我跑模擬過半個小時去看 怎麼感覺都一樣勒
10#
 樓主| 發表於 2007-8-30 18:51:19 | 顯示全部樓層
另外附帶提一下 RTC晶片規格裡面 要求非常省電& _" m* p+ b8 W* N( a2 B% ~: D( z
因為可以延長電池的壽命 或是外掛的精電容可以撐的比較久
" ~/ z' ?" e! T' b' G目前我找到比較厲害的是seiko 還有一家瑞士做的 兩個差不多強
- K$ w/ G( s& ?' y( Mtime keeping current=0.25uA, VDD=5V-1.3V. Y+ p! i/ ~9 D2 H4 M$ Q; `

4 Z% K; `4 E3 G真的能做到這麼省電 而且VDD可以吃這麼大的範圍的電壓嗎?3 `4 b# _1 V2 g/ B& c$ J' n4 D0 m

6 q& l7 I( ~1 [% K# I這種規格實在很嚇人
5 `# b# a9 p: E; c8 E- [$ n8 y
! Y, J* A. D$ o: A& d猜想是不是他先內建一個LDO把電壓降下來 然後再用這個LDO Vout去做類比和數位的電路的power嗎

本帖子中包含更多資源

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

x
11#
 樓主| 發表於 2007-9-8 16:44:00 | 顯示全部樓層
感謝wwm101提供這麼詳細的模擬資料. W5 V' m1 |1 ~  V% z8 y3 e
原來設電感初始值只要加 IC=1uA 就可以了 又學到一個指令了  n* C* [' h% v( G

8 ~. n& D5 {: e. v: y% |看了討論區的文章 7 H/ x# C8 z" T. L
同意裡面的講法
8 C" Y5 s# q& T震盪器模擬應該跟初始值有關 可能是模擬軟體本身的收斂問題 可能跟演算法有關吧% \1 i" E. o4 \
設不好就都掉到ZERO的狀態 而不是震盪的狀態  & I+ {2 L' I& p9 ^; I9 o, H
所以應該要設初始條件 尤其是在模擬電源start-up的情形 初始值沒設好 好像也不會振說
您需要登錄後才可以回帖 登錄 | 申請會員

本版積分規則

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

GMT+8, 2024-5-7 07:22 PM , Processed in 0.118006 second(s), 18 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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