Chip123 科技應用創新平台

標題: CMOS晶體震盪器模擬 [打印本頁]

作者: monkeybad    時間: 2007-8-1 04:50 PM
標題: CMOS晶體震盪器模擬
之前有討論過有關CMOS Pierce crystal osc7 D" Q# c5 G) [6 H3 N0 V7 l
現在我的模擬好像有點問題 想請教一下
; B6 r- {% o- d! q# t圖一為我簡化後的Model 基本上 就是一顆CMOS Inverter 然後並連上一個偏壓電阻- Z. ~- U( L/ f  q
然後a b兩點再分別接到Crystal的兩端
# q2 e  \" @+ L- k. A% S, JCrystal用的model是一個L, C, RS串聯在並連一個CO 震盪頻率為32.768K' Z  x- ^$ C) V) H" \- K4 o
這是要for時鐘用的$ q, Q( k5 f7 E9 _
以下是我模擬的值 這個是從網路上面抓的一組值8 ~7 D5 l8 O8 ^7 \/ p7 W) K; y& s
L=7000, C=0.003p, RS=200K, CO=1.7p! Q0 p* v+ J+ q1 n1 |
RBIAS=1E7,# h; m- Y  E; x& E: b
C1=1.2p, C2=1.2p3 B% J& o$ w/ I* U4 P( |
CMOS INVERTER: MN W=0.22U L=10U $ Y" v4 M7 v. x. K
                         MP W=0.22U L=10U9 \5 V) I& M1 b. }$ f) k9 ~
VDD=3.3V
$ d% `9 G9 ]* _( A" m根據理論 圖二看進去的負電組值 也就是電壓值實部的絕對值 要大於Crystal Osc裡面的寄生電阻RS7 u1 z4 \7 L3 a* H' i% f
就是負電阻加正電阻要為負 才會震盪 8 [1 K' _% C" I) N

* M5 l7 W5 X* g3 J2 D圖二是我模擬負電組的電路 7 g1 |4 g( i; }3 \
aa和bb電壓偏在Inverter飽和區裡面 V(aa)=V(bb)=1.3V
' z0 \* Q5 S8 c  S% V! n+ H0 V我在aa bb這兩點加一個電流源 hspice的指令為4 x/ j6 F0 v$ d( p
Iin aa bb ac=1
: O& I# d' ?' K& ?然後我跑.ac模擬
" v; d& h, p( U/ L, {5 `.ac DEC 1e5 1k 40k  R4 Y6 @1 g5 U/ o+ F% Y5 L
再下
" H+ t' x; L& n.probe VR(aa,bb)1 y7 {9 F# i. D" l' l  ^
顯示aa,bb電壓的實部) q4 g" c% A# [/ w- V% z1 \
看ac的圖 在Avanwaves裡面叫做Volts Real的圖 看VR(aa,bb)
' S4 V2 S1 c. p' W3 }; ]然後發現在32.768K左右的時候 大約是-520K左右; ?* @* c0 g: Y+ w8 R7 q
請問一下這樣模擬負電阻的方法對嗎?  }8 I8 Y; Y- S6 y1 i5 t, d+ `- C9 n
; t0 ^' p% B- U3 f! y
假如是正確的 那負加正小於零應該會起震才對7 q* n# K' C& {! ?5 l6 c
- i0 @3 {) }) d
在跑.TRAN模擬
. O! C4 Z+ D4 D* f9 O- J- l  [$ O我的初始值設定為4 d3 m2 {( O  r( z. Q  R
.ic V(A)=0 V(B)=1 V(C)=0 V(D)=06 A# T2 }; C) Q& W' X5 W+ F
可是後來發現一開始有震盪 但是越到後來振幅就越小 到最後整個衰減掉了 電壓收斂在1.3V
2 m$ N/ L  f# a( g  R請問是哪裡模擬出了問題呢?
作者: monkeybad    時間: 2007-8-1 04:51 PM
圖二為負電阻模擬$ m3 ]+ b, o0 t8 j
7 D: M- V; v7 _% ]
圖三為負電阻模擬結果
# h* }7 o  d& F
8 J- G+ W0 ^: e  n圖四為b點電壓 .TRAN的模擬結果 發現振幅一直變小
; ]/ K; r. F% w5 f7 J4 B3 g" e
2 D) w- D0 l6 h$ _[ 本帖最後由 monkeybad 於 2007-8-1 05:03 PM 編輯 ]
作者: adele    時間: 2007-8-1 06:59 PM
方法上,应该没有问题。
4 N; v' E6 t! C* B1 j5 g, \( Z* ?试一下:L=10.88KH, C=2.17fF, RS=30.9Kohm, CO=980fF.6 y& }3 _  V! R, A' \
C1=C2=15pF.  RBIAS=1E7,7 L3 r' A8 \6 ]
$ Z5 k: g: B" U2 y. Z
建议可以先用一个10uA的电流源下面接一个nmos管的结构,nmos管gm设在40u.6 E/ \2 i- k. \) J7 H+ V0 g* A
你可以用spectre仿真吗?
作者: m851055    時間: 2007-8-1 10:48 PM
在原本的invert處多串一個invert,並且把CO的aa端接到此invert的輸入端,再配合capacitor之調整就可以了。
5 N: f& O8 X+ K2 w2 z5 t7 [$ k+ x9 x一般invert之Length較小 width較大,你的設定值怪怪的,也可能因此造成驅動能力不佳而衰減。
作者: wwm101    時間: 2007-8-4 11:02 AM
"我的初始值設定為
+ [. E/ a1 r! ^  y. d% ?) d3 S        W8]@8n3FlU.ic V(A)=0 V(B)=1 V(C)=0 V(D)=0"  t3 z4 Q# I6 Q( P. ^% A
这样的设置没有多大的用处,直接给电感设置初始电流,而且初始电流也不能太小,一般在ua级比较合适!
作者: monkeybad    時間: 2007-8-6 06:08 PM
For adele:* Q: A( ?& C5 B  g' f
有試過你給的值 而且用一顆NMOS gmN=44u 上面用定電流源PMOS來偏壓 I=37uA- B7 L; ]5 {) n: q# e2 P# [* c# b7 i
可是好像還是不會震耶
4 [/ V- U; E* ^. l另外我是用HSPICE模擬的 我這邊沒有spectre耶
* g: o- p7 N# k! k  h
7 n6 q& r( g# J; I7 {% z5 d: q$ c2 PFor m851055
3 S5 i: @  |, a! A% c% ^; U因為要做RTC(Real Time Clock)的OSC, 所以要求非常省電, Inverter的W/L值才會設這麼小2 n( D( K  H( K, j: G* k$ X3 I0 t8 Y

  U* @7 r% Y# {3 e) C; _For wwm101 :1 C( l. k) E+ }  v/ x
那要怎麼下指令去給電感初始電流? 還有初始條件要怎麼設才恰當?! x6 ]3 E; O5 n' _9 z

" B1 A* N  }" ~4 s, n& s  i有沒有人有經驗的能指導一下 感溫感溫!
$ X5 W2 \/ V; H# ?( c6 L- B, z+ n  ?8 A/ g  @
[ 本帖最後由 monkeybad 於 2007-8-6 06:17 PM 編輯 ]
作者: finster    時間: 2007-8-7 09:13 AM
先給你幾篇我之前作RTC Crystal Oscillator的參考paper! w; }; z( w) o! J! d
找之前也做過類似的circuit,而且current只有3uA7 g3 a# n5 z1 i; g
1. 1999, IEEE conference paper, An improved low power crystal oscillator% h1 ~" j" ]6 r
2. 1997, IEEE Journal paper, A 2.1MHz Crystal Oscillator Time Base with a current comsumption under 500nA
3 z3 U% g+ v  P0 h' c' x4 s' C! _3. 1995, IEEE conference paper, Low Power and Very low EMI high efficiency high frequency crystal oscillator
2 Y5 R* N* c2 A; a% V1 `, y4. 1991, IEEE conference paper, A Cell Based Suer low power CMOS crystal oscillator with "on chip" tuning capacitors3 A0 f* u- d$ \. _/ w) G# q
這幾篇的架構可參考看它們的架構和方式6 A, g* P) z" D) \
晚些再分享一下當初我做的經驗以及遇到的相關問題和要注意的事項
作者: finster    時間: 2007-8-7 10:09 PM
來補回答我的經驗/ s( \; ]2 |/ Q- Q- k' P. j
我之前是做0.18um的RTC的32.768KHz的Crystal Oscillator,條件規格是整體的Crystal Oscillator + Buffer + I/O PAD的current < 3uA,工作電壓要從1.2V ~ 1.95V, k0 |5 S7 r# U/ J# N& E: Q
  i) `, Y- k" x) g2 ^4 J
1. 首先,要做low current Crystal Oscillator時,要把I/O PAD給考慮進去,我之前在設計時,Crystal Oscillator設計一段時後,模擬及電流均在規格內可以動了,但在加入I/O PAD後,Crystal Oscillator卻不會起振了,後來追了快一個星期才發覺到因為整體current非常小,但因為I/O PAD本身的leaking current過大,導致Crystal Oscillator無法起振,所以,low current Crystal Oscillator無法使用Standard I/O PAD(leaking current會過大),必需使用額外的I/O PAD才行,這點非常重要,因為它會直接影響到起振與否的問題
+ H# s7 I: ?/ o; i& }7 m# h* v& |, ^* v  i' a4 [
2. 要作到low current Crystal Oscillator,本身的inverter不能使用單一個PMOS和一個NMOS,必需採用Bias voltage control的方式才行(架構有點類似1999年IEEE Conference paper那種,但需要再變化一下),同時,為了low current,本身的buffer以及送出clock的buffer需採用long channel的方式,而之所以要採用Bias voltage control的inverter架構,乃因要作到low current Crystal Oscillator,本身在XTAL IN和XTAL OUT兩端點的信號並無法達到rail-to-rail的幅度,故而若採用standard inverter方式,並不能在大的工作電壓中起振,再者,因為要low current,所以在XTAL IN端點的信號幅度會很小,所以,利用Bias voltage control方式來限制住inverter兩端點的voltage level,這個並不好作,必需不斷地試
/ y: o: \" R% _) V% |# n8 {) w+ V
9 ]" N/ e, k, D4 p/ F" o; o" Z5 k5 T0 Z3. low current Crystal Oscillator的外接兩端電容要非常小,我當時的外接電容方式是用可調的架構(類似1991年IEEE Conference paper那種,不過這兩個電容我是做在內部),我當時試過,外部電容不能超過10pf,否則會因為外部電容過大而無法起振,那時我只用3-4pf的電容(有考慮到封裝廠的寄生電容,I/O PAD的寄生電容,板子上的電容以及實際量測時probe的電容),另外,因為本身兩端的電容值很小,所流過的電流也異常地小,故而只要有稍大的noise或者leaking current,都會造成Crystal Oscillator無法起振
# R: b9 ^) k' T- ^! N+ {0 O7 f+ Y0 Q# m3 R+ P$ V: W% q& p+ J  a2 g
4. 連接在XTAL IN和XTAL OUT兩端的回授電阻要很大,最好是50M ohm以上,而這是為了low current Crystal Oscillator而特別考量的,用MOS電阻即可
7 _5 z+ W' ~% b, C+ u& p- r0 u/ d9 W
5. 最後一點,這是經驗談,當初我負責的chip回來,量測function正常,量測到的current約在4uA左右,可是後來整合到digital counter時卻出現問題,追了快兩個星期,才發覺到因為是low current Crystal Oscillator,所以其送出外面的Buffer也是使用long channel,故而它的推力很weak,造成rising time/falling time會有過長的現象,而對digital counter而言,過長的rising time/falling time則會有重覆trigger的問題,以致兩個個別電路均沒有問題,但整合在一起時卻出現錯誤計數的問題,建議你,在送到digital counter時,請他們加一個schmitter buffer,以確保因為low current的緣故而產生過長的rising time/falling time的問題不會造成digital方面的誤判
作者: monkeybad    時間: 2007-8-8 02:08 PM
感謝finster大大提供這麼寶貴的經驗 真是造福人群 功德無量3 N7 C+ s* Y8 e' H5 `6 ], t) |
請受我一拜!
作者: monkeybad    時間: 2007-8-9 10:01 AM
昨天晚上試了一下以前在網路上找到的一個方法
3 E+ t' _8 i, U, ?- O6 c0 ]就是在一開始的時候 串聯一個起始電壓源來加速Hspice的模擬$ \: {( @1 r$ n4 Q! n8 `
起始電壓源為一個sine波 頻率設為crystal的震盪頻率 然後要加入damping factor 讓起始電壓慢慢衰減到零
$ h% d0 F& @! z, I5 k3 M/ N結果神奇的事情發生了
% x/ E' w+ @. S. s- hCrystal Oscillator到最後居然開始震盪了
9 \( G1 M$ w) l/ v" u9 h5 l好感動喔!3 m* L! x+ {  ^
趕快來跟大家分享一下!, m& X% a* G4 g$ Y5 J

" `/ h' B5 N4 E4 C! n( Y0 g電路仍然是之前的Inverter電路
; U# }: f& B4 }0 H  d0 i在d點加入起始電壓
  w4 X- j" I0 IVK d1 d2 sin ( 0V 800V 32K 0 1e5)
9 K1 j( b) V2 }9 k4 V模擬時間約400ms6 _$ }4 e) C  e
.TRAN 0.01u 400m! e9 G' ~3 D/ o0 d% ?5 a" T' R+ r
到最後就看到震盪器開始震盪了!
6 E7 K, i! u; }0 Y' T) i3 X* |' ?9 ~8 m( ]7 `. t1 v- s# l
後來又試了另一個類似的方法 就是在電路另外並聯一個電流源% h4 X  X7 [$ U8 B3 Y# b
也是同樣的sin波然後慢慢衰減到零 結果也是能讓電路起震
6 E. q: Z% O+ |6 q# R% P/ K+ [# H" }6 B1 L" c& f% r* U- t' O* e
另外好像模擬時間的間隔不能設太大 設太大好像也不會起震
6 u" v4 }/ x8 e  x: r, ^" a
, a* y9 A$ o4 ^, n; V( k附件為網路上找到的文件; w3 w# f$ ]. e4 S
% v( z  r/ K8 S- F/ O4 H5 H
[ 本帖最後由 monkeybad 於 2007-8-9 10:14 AM 編輯 ]
作者: finster    時間: 2007-8-9 07:36 PM
建議你採用這個方式來試
8 Z! W6 i2 V# t4 |$ H, Y5 P3 m' yVDD   VDD    0    PWL(0 0  10ms  3.3)' f$ k0 C9 P) ?* s. L9 S6 {- z- _

1 U$ m* p4 w$ P# e) U% B3 ?並加入initial voltage: q4 a% r5 o& Q( x0 j& A
.ic v(A)=3.3 v(B)=3.3; X, l( M8 n  q$ j. X
0 M( e# k7 j* P$ r- B7 c
將電壓源採用ramp的方式來作,那是因應實際電壓源皆是從0慢慢爬升到穩定的電壓源
3 o7 e  w% E/ R7 [% A3 c再者,將crystal model兩端設初使值為3.3V,最主要是因為inverter會將0-->1-->0-->1$ k+ U2 I8 R7 x7 h+ Q) \8 f" [
inverter的兩端若皆為3.3,那在一開始時,inverter的output會因為input為3.3而讓output由3.3-->0,當inverter的input受到回授電阻的緣故而讓input由3.3-->0,又會讓output由0-->3.3,如此循環下去就可起振,當然,這要在crystal能夠起振才行8 [( E2 c. o- m/ V$ o& q. J
如果一開始就是設v(A)=0, v(B)=3.3,或者v(A)=3.3, v(B)=0,那對inverter而言就會是一個穩定的狀態而不會進行起振的環境條件. j) b$ N0 O+ q; j/ @* C

, B* M. {: h/ z7 n最後,實在不建議你用電壓源來作初使值的起振方式
& r- ~) k& y( ]. \8 W9 ~9 W/ Ucrystal能不能夠起振,端看整個loop有否達到起振的條件
* t4 L  c6 ]1 h8 }( A設初始值只在HSPICE一開始模擬才有效,真正在模擬時己經脫離初始值的狀能,設初始值是能夠幫助HSPICE在計算時有收斂的成效1 z- n1 A2 I5 S- w
而使用電壓源或者電流源來作初始值的起振條件,相當於我們外加一個信號源來讓電路動作,但實際卻沒有這個信號,這對實際chip的環境而言是不對的,再者,用電壓源或者電流源作初始值要持續一段時間,而這種現象對crystal整體系統而言,無疑干擾了整個loop的運作
作者: monkeybad    時間: 2007-8-13 03:32 PM
恩 這種加起始電壓的方法的確怪怪的 因為實際上晶片沒有這種起始電壓+ X/ _6 }" l6 f& f! d$ ]6 L& p
應該是要用正統的加起始值以及VDD上升等條件一起模擬才符和實際的情況! W8 j, C7 z! w; a
: o2 Q) a2 S( Y9 t
看參考資料裡面是說 在晶體震盪器模擬都要花費相當長的時間 這種方法可以加速模擬的時間   s* w* l3 O% ?; J! t0 q
因為時間過很久後起始的電壓還是衰減到零了 對電路沒有影響 所以最後假如電路還是可以震盪的話' q: i# ]* C: i* U
我想OSC的設計應該是會震才對
4 {3 s' T" [  Q8 ]
6 A+ K( s- ]* n% S9 y4 n" q我覺得這種方法只能表示最後會不會震盪 不能模擬剛開始的時候會不會起震 另外就是可以節省模擬的時間
% z7 `5 ?( p  m
" o8 ]6 M+ i- u1 a- i2 R% Y; D[ 本帖最後由 monkeybad 於 2007-8-13 03:35 PM 編輯 ]
作者: skyboy    時間: 2007-8-22 02:37 PM
原帖由 monkeybad 於 2007-8-1 04:50 PM 發表 - I5 [3 Y+ ^) i- }8 w6 y: [, k
之前有討論過有關CMOS Pierce crystal osc
% i) q% V7 [. r# B* @現在我的模擬好像有點問題 想請教一下
# R# k8 z  M( |+ p) r3 k: Q; Q0 M圖一為我簡化後的Model 基本上 就是一顆CMOS Inverter 然後並連上一個偏壓電阻& k4 l  y) v  x  m
然後a b兩點再分別接到Crystal的兩端
$ s. f- u" K5 c% QCryst ...

3 \/ [0 q- P! L6 J7 M8 g
) C2 M' m) {; A$ A" H) N因為最近剛好也要做一個 1MHZ~10MHz 的 X'tal oscillator, 最近這兩篇討論對小弟
4 l# t0 X6 p6 A" J& ~# n幫助很大..不過在模擬上有遇到問題, 怕是自己觀念有錯, 想請各位前輩指導...
2 z1 p: E& S5 x( N5 I* {" l2 R8 G  ]: {. ]
關於負電組的部份, 老實說是第一次看到這個觀念, 研讀了這兩篇討論串所提供的一些
1 B" q8 O. P: K0 }$ i$ a文件, 總算有了一點點感覺...在推導的部份 monkeybad 大大提供的 Philips 那份文件. X9 \) r. |8 n/ i6 `2 U
有詳細說明, 裡頭推論出滿足負電阻條件時 inverter 最小的 gm 值, 不過就是在這邊1 R5 Q8 a" b. N4 A; N5 v' m
遇到一點問題...; j6 ?& o8 S* u; C6 ], T
2 i" _' ^. q6 z+ J5 \) B3 C, `
我模擬的條件為:5 k' I: }0 [( l
10M X'tal model 為: RS=50, CS=0.004pF, L=60039.21315uH, CP=5pF (前人留下的..)
* E% O6 p( o0 \2 K3 O. `9 vInverter size 為: WN=3u, WP=10u, L=0.5u, 偏壓在約 1.65V (VDD/2)
3 f) I' i1 U. O" Z# WRP 為 2E6
6 A! J  x3 F$ Q3 N0 r$ E) ZCX1=CX2=10p (X'tal兩邊的負載電容)% Q/ @3 E* y0 Q% u9 j3 l
# N' T. b+ L9 v# }! P9 Z3 j; q
假設先不考慮 Cpar 的效應, 根據公式算出來的 gmmin 約為 115u 左右, 用本篇一開始
7 n) F2 w/ ~' nmonkeybad 大大提出的方式去模擬, HSPICE 模擬出來 NMOS 的 gm 約為 521u, 是理論% }. r5 X1 K8 P
最小值將近五倍, 然而 AC 分析看到的阻值卻是正的(請參考附圖), 我試著調整參數, 發現: l- i7 n4 o  y9 F. K
將 CX1, CX2 以及 RP 縮小才會得到類似 monkeybad 大提供的圖 (整個從1MEG到10MEG
3 U6 i/ r% a$ M( [) w  O1 L- A( s的頻域都是負電阻..) 不過阻值也不大..
0 {4 x8 V- Y/ Y# l7 s$ a7 c& M5 j- J& e4 n
另外一個問題是, 根據公式, RP 如果愈大, gmmin 會愈小, 所以我自己的推論是如果 RP 愈大, ! f8 l4 m# G9 k& U1 R  X/ C
模擬結果應該會往"更負"的那邊移動, 不過我用 50E6 模擬結果卻與預期完全相反...
" b1 R! z" Q- S# r# q/ q5 W: y4 w. x) }% q$ N
研究了兩天實在不知道是哪邊弄錯了, 煩請前輩們指導一下..謝謝..
作者: monkeybad    時間: 2007-8-22 03:10 PM
根據推導的公式 RP應該是越大 所需要的gmmin會越小  這應該是沒錯* e' G2 s0 [3 y# J- j( S
# I6 n) @! S7 S) e1 b
另外說實話 我模擬負電阻時也有遇到全部變成正的情形 但是我也不知道為什麼 我猜可能是相位的問題吧 Hspice把他反過來了% X9 N. ~2 r5 R
所以我後來就直接根據推導的公式去計算 就是之前那份Philip的文件 移項一下就可以得到正電阻跟負電阻的計算公式
  o/ {' |* E. H. j2 V8 H& e# O, q然後至少負電阻絕對值要大於正電阻 根據之前網友的說法是說要大五倍比較保險$ g1 U" [# X# }* m7 n- d

  n, w( x+ u2 b) v! y( D: S% Z然後在時域上面去模擬 有一個可以參考的方法來驗證你OSC會不會震 就是一開始起始值的電壓用很小
. [  D) O- u( W; L; n, m  G& j然後你去看震盪器裡面的波形振幅 如果振幅慢慢被一直放大 則表示你的OSC是會震盪的* d; T" j6 {7 |4 i  G1 f, s
因為表示負電阻的力量是比較強的 % j2 O% ^) W0 A9 n
  a0 d1 q7 G2 ]6 T
若是要看steady state時的波形 就把起始值加大 加速他transient的時間' A* @$ x8 Z6 I2 X
9 k- U3 l; k4 g) r5 ^
另外注意好像.TRAN時間間隔也不能設太小的樣子 不然也不會震 目前我模擬是設0.01U 但是你頻率比較快 可能在設小一點吧
作者: skyboy    時間: 2007-8-24 12:06 AM
哎哎...負電阻的部分還是參不透玄機...模擬不出來... / L" L+ Z0 a/ |
# Q; v2 ?0 q( @6 x4 F+ f- J# K
不過我按照推導的結果確認 gm 值足夠後把整個線路丟進 ADiT 去模擬, 把 X'tal 兩端設成
7 W! W1 V6 D' ~3 a% FSPICE_NODE, 結果是會順利起震的, 可是又遇到另一個問題, 就是用 HSPICE 模擬無法起震, . B0 d6 j% e. c# y; n
我覺得應該是模擬條件設定的問題, 我有參考了前面 finster 大大提過的技巧, 不過兩個端點: a/ _" y4 e  k$ M: @8 A% u
最後還是會停在偏壓點 (剛好約 VDD/2) 的地方, 我知道 time step 的設定似乎會影響到模擬
- f# T# i- W+ P: z7 v% L會不會起震, 不知有沒有前輩們能分享一下除了 time step 之外還有什麼地方要注意的??( H  K5 M1 X- ^* b8 R% Q

6 P; V  R% k* d. L( X* O7 B' f/ @另外再請教 monkeybad 大大, 您提到的 "一開始起始值的電壓用很小" 指的就是 X'tal 兩端的
* m, o2 V- C2 B5 i5 j" H( \8 U初始值嗎??
作者: monkeybad    時間: 2007-8-24 05:03 PM
請問一下ADiT是什麼呀6 }2 s! [. R* d
$ N; X1 u! |9 S5 @. A+ {, ~
另外Hspice模擬中 我是參考之前的附件裡面設的起始電壓 就是原來附圖中的d點加入一個起始電壓
2 z5 h7 d! U0 g! m3 y7 ZVK d1 d2 sin ( 0V 800V 32K 0 1e4) 其中d拆成了d1 d2
: @4 p5 p) x: h6 _. r那起始電壓用小一點的話 就是sin的震幅用小一點 例如設成50V這樣- X% @" s* q  g# I' Y2 a2 @
用這樣設起始條件模擬時間會比較快一點
9 _# y% p; ], A+ h7 s0 K! |0 U; o, F/ J% `7 h: a6 ~, v
另外再模擬起震時 參考finster的設法 VDD用ramp模擬上升 另外V(A) V(B)就設成3.3V( c3 ?) `, f& N8 @5 f* k
那因為crystal從零一直到起震需要很久的時間 所以一開始你會看到XTALIN XTALOUT兩端都會被拉到VDD/2( p" b5 ^+ Y9 }
但是你去看crystal model裡面的c點 應該會開始震盪 而且會慢慢變大
9 o1 x. O: H  k( H& b! F! O根據穩態模擬的結果 震盪到穩態時電壓振幅都會到上百V至上千V
5 n) A6 p% W% F) _& K. ~& c; h- k
: ?! B- b7 i; Q2 O9 A另外我看你crystal model最好是去找看看 實際上廠商在用的model參數下去設) L# n* \5 p; ^. U$ u$ B0 ?

) X" H9 t; J; ?. }( Q0 K[ 本帖最後由 monkeybad 於 2007-8-24 05:09 PM 編輯 ]
作者: skyboy    時間: 2007-8-27 12:32 PM
ADiT 是本土公司 (華凱, EverCAD) 開發的一套 simulation tool, 這套 tool 標榜模擬的速度2 Z) H1 t& r* P! D  x
比 HSPICE 快上許多, 也有提供準確度較高的 spice mode...Mentor 為了加強他在電路模擬/ b: ?# i7 a8 W
這個領域的 tool, 在去年(前年?? 忘了..)購併了 EverCAD...所以這套 tool 現在也是爆貴...-_-* ^8 X3 |6 \  m& B
9 t: ?2 t/ }. ^/ r. x
以上是題外話....
8 V: F1 ]1 m) t: \3 G$ U6 G( E8 K; V6 G- L1 @! S3 r+ r
X'tal 的 model 似乎不容易要到, 我 12MHz 的 model 是參考 Philips 文件上的...那應該算是/ P5 u4 Y. _8 I* P7 [1 X
廠商的 model 吧??....' }. t2 t! g9 s" x! }
! D& z" P  I( T- O" Q
我去看了不會起震時 C 點的波形, 初始值是參考 finster 大大的建議, 震幅與操作點一開始從
$ D6 B6 V& n" G! B! d+ r1 I5 E接近 full swing  衰減, 然後隨著 VDD 逐漸上升, 當 VDD 到 3.3V 時 C 點會上升到偏壓點附近,
9 ~; o8 P  G0 v3 v. a1 q% K接著就是維持著約 350mV 的振幅到模擬結束...:f33 試過調整 time step 與 VDD ramp up
; z) g2 o: H2 l% `+ ]& }的時間, 看來都沒有什麼關係..." q) _" Q: c# t6 A' s  V- T6 a
+ z: O0 u/ V4 }; \$ U' R
我還沒有試過 monkeybad 大提供的外加 power 的作法, 不過在網路上找資料時有看到大大4 y2 Q+ O$ J) M# l& Q
提供的那份文件, 只是如同 finster 大所說, 這是一個不存在的電源, 總覺得這樣模擬可能不是
9 n, h3 P7 Y/ b+ I/ h. n很正確...
, r5 O6 n3 m- e" l6 r& ~/ H& O; e9 q% m
不知道是哪邊設錯了, 請各位前輩能再指導一下...
作者: finster    時間: 2007-8-29 01:51 PM
如果說Crystal Model沒有問題的話,有用Power ramp和加入初使值的設定而依然不能夠起盪的話
3 ~. M8 [5 E' q+ Y+ i那我只能說應該是你電路本身的問題' k. w& d; W0 `/ f: M
7 Y3 d0 e' Y8 b6 ^4 {- u9 o
假如是用hspice在作模擬的話,32.768khz的要跑上一個星期是常有的事
7 v! }* I8 f* P如果是使用spectre來作模擬的話,大概半天到一天應該就會有結果出來
8 l2 y% _# F- y1 a% g. |建議你兩個方向試試看
. ?3 j- x3 g9 [$ ~, H" _& t一是先測試一下反相器的輸入電壓對輸出電壓的關係,你說你的偏壓大約在VDD/2,但我看了一下你反相器的size再對應映到你的反相器的轉換電壓卻似乎並不在這個區間,先單獨對反相器作模擬,如果你的輸入電壓並不在這個範圍的話,那你的反相器根本無法作出反應,也根本無法起振" y0 {8 P' v( x5 F% A! z& _6 Z0 {
先讓反相器的輸入電壓可以在接近VDD/2作出反轉,然後再試著加大size試試看
$ N$ w  i% y" }( |6 g* Z# d5 a# o另外一個作法則是加大回授電阻,建議你觀察一下回授電阻和兩端電容的電流值及Crystal Model兩端各為多少以及流向,這點純粹是個人經驗,當然,這必須是在上面那個建議改了之後仍然無法起振才用這個,而這點也是當初我在作極低low current crystal oscillator時所觀察到的現象0 K. w9 D, q! [

: x/ }) C$ p5 Y# K
" O% e* e* E  s7 N
3 o; U- M) _( ?$ t5 b  b- s7 t% `4 ~& m! s
原帖由 skyboy 於 2007-8-27 12:32 PM 發表 4 y4 I4 e, Z# g2 [) K9 k( w
ADiT 是本土公司 (華凱, EverCAD) 開發的一套 simulation tool, 這套 tool 標榜模擬的速度
9 A% W( F6 u0 j! v# u2 E* `% J比 HSPICE 快上許多, 也有提供準確度較高的 spice mode...Mentor 為了加強他在電路模擬6 ^) H/ s' b9 [) P7 z2 y% h* {
這個領域的 tool, 在去年(前 ...

作者: monkeybad    時間: 2007-8-30 02:32 PM
哇 32768的crystal OSC模擬要一個禮拜喔!
) M- ?1 @) V! f原來要這麼久 難怪我跑模擬過半個小時去看 怎麼感覺都一樣勒
作者: monkeybad    時間: 2007-8-30 06:51 PM
另外附帶提一下 RTC晶片規格裡面 要求非常省電
' z& a0 }; H4 N; a; T9 I因為可以延長電池的壽命 或是外掛的精電容可以撐的比較久 . n( \; V. B& i: z. s" z# d: a
目前我找到比較厲害的是seiko 還有一家瑞士做的 兩個差不多強
8 l3 {# h  m; d0 j: V. stime keeping current=0.25uA, VDD=5V-1.3V
& z; d# P& ?5 Z4 Z5 k, _- y9 Q; [, x& q1 Q% Z7 |" x& E  N
真的能做到這麼省電 而且VDD可以吃這麼大的範圍的電壓嗎?
+ g; C4 C& c, g* I
1 l% P* ?) U$ X6 L6 a2 H這種規格實在很嚇人
9 X/ ^, y# s3 ]" w" W' A6 P; v+ {, g7 [: a6 I
猜想是不是他先內建一個LDO把電壓降下來 然後再用這個LDO Vout去做類比和數位的電路的power嗎
作者: wwm101    時間: 2007-9-8 03:01 PM
標題: 回復 #20 monkeybad 的帖子
to:monkeybad: t0 S- y/ j% I0 e2 p
由于最近不常上chip123,所以现在才回答您的问题,表示非常抱歉!
( v6 K0 d9 c6 p" K9 f) C现在是我稍早前仿真的一个振荡电路,希望对您有所帮助!
7 z  O) D1 L$ c0 p
( i' c3 O* ^/ C" t: X电感初始的电流设置如下所示:# c2 @  v9 z; O
L_L1         N11450 N03952  588.873289 IC=1uA : i7 [( i; _& Z% M8 f" v& ^8 Y2 _8 c" J0 I

5 c9 d& V# C3 Q注意给电感设置初始值要不能太小!
# @& h* N5 s3 K' I" \8 K, J" qhttp://www.eetop.cn/bbs/thread-58028-1-1.html(这是我在eetop的一个讨论贴,希望对您有所帮助)
2 b! g" @2 Y# a5 F------------------------
) e$ ]4 g3 N) [0 h  R* source 100K% u' ~- A/ w/ {1 a
.PROT
: ?  ]: V# Q, q9 Q  @  C( e( a.inc 'd:\hs\lib\level3'* J! g# S* H! b* d
.UNPROT$ h( Y+ b/ v- @4 z: y
C_C4         IN VOUT  1.72169576e-012  
! Y, j: P0 O# C# @4 _% bM_M1         VOUT IN 0 0 n- R2 \" [" u" q
+ L=16u  
6 M$ i! V: l" d! T/ h+ W=0.8u          0 F7 K1 N, [: ]5 ~$ N
+ M=10# n6 p1 b1 Q9 T
M_M2         VOUT IN vdd vdd p ' `3 f3 @9 t' c8 D* j. c2 m
+ L=16u  - s2 T) \" C. G& C0 ^
+ W=0.8u         
) d( c+ h6 M3 G# M' ?+ M=22
$ S6 Z# t- h% q3 R4 RR_R3         IN N11450  18.5k  
1 [. V4 z* k* w" W+ f- B+ MV_V1         vdd 0 pwl(0 0,10us 3Vdc,20u 0,30us 3vdc)' l" K8 W. Z' n) C5 F3 _
C_C1         IN 0  5p  
+ L7 J) x# t  \' J; Q5 PC_C2         0 VOUT  5p  
0 S1 H5 \1 b4 ~! XL_L1         N11450 N03952  588.873289 IC=1uA
9 m, T8 u$ O# {6 ~+ n+ TR_Rf         IN VOUT  50meg  ! x. o7 Q9 @- w& g, ^; n( f% K. K
C_C3         N03952 VOUT  4.30423941e-015  6 P% z' E+ @7 F6 f
.tran 1ns 20ms
+ Q  h# g9 w9 t6 A7 K.probe tran  v(in) v(vout)
% b3 ?. w9 D6 @3 k$ n. [" p.end
作者: monkeybad    時間: 2007-9-8 04:44 PM
感謝wwm101提供這麼詳細的模擬資料- A9 e( n1 M# o- i$ @
原來設電感初始值只要加 IC=1uA 就可以了 又學到一個指令了
8 |% r9 M+ k" t; j" c1 s% v% `
/ m' h8 l" L$ [5 ]看了討論區的文章 $ B) j# k5 {: g2 j) ~: |- R+ b
同意裡面的講法
* j2 {( F# D& }' S震盪器模擬應該跟初始值有關 可能是模擬軟體本身的收斂問題 可能跟演算法有關吧$ q4 \. E7 ^6 ]9 }) v
設不好就都掉到ZERO的狀態 而不是震盪的狀態  
# D; {' c; G  b% a所以應該要設初始條件 尤其是在模擬電源start-up的情形 初始值沒設好 好像也不會振說
作者: skyboy    時間: 2007-9-9 02:38 PM
最近一直在嘗試, 本來因為 schedule 的關係想先擱下, 以前做這個線路的同事說就是用
9 F) y1 ^2 a, Z3 HHSPICE 跑不起來才換 ADiT, 是還沒有遇到說 real chip 不會動的情況...
& C& n  B. W7 Z8 w" p- x
- l  a3 \; I9 [3 B, T8 @8 k! |9 D* j不過最後一次的嘗試讓我看到它起震了, time step 要縮小到 0.1ns, CX1(inverter輸入端)/ r3 a' E* D; a% j/ e
縮小到 4pF (是任意挑一個較小的值, 沒試過其他的..CX2 仍為 10pF), 不過還是有點怪怪的...
& V- U. y2 X! z' A* W. M8 y/ E" @
3 \# e4 u7 d. ]1 n: q前面討論有提到, 起震時在 X'tal 內 CS 的端點會看到振幅漸增的震盪, 我用 ADiT 跑出來, ~1 z: S; V& [) V) b5 L: z9 m
到穩態時震幅是 +/- 2.x KV, SPICE 跑出來只有900多V, 另外 CX1=CX2=10pF 時 ADiT
# a$ X: u1 C9 @+ M& E就可以很順利的起震, XG/XD 的振幅是 full swing, SPICE 的話會看到 XG/XD 的振幅很小, * q/ U6 j7 l6 t6 V7 I$ O
幾乎就是在 INV 的操作點附近, CS 端點的振幅也只有幾十V, 頻率慢一點 (ex. 2MHz) 4 f+ N/ ^. i) g" d6 t+ |
還可以起震, 跑到 12MHz 時就掛了..- v0 ?* N' c% H. T. b
# A5 w0 P& _$ P1 D5 C
只是 time step 設到 0.1ns 用 HSPICE 跑 12MHz X'tal 要好久....>_<" H5 A/ s' W; ~4 [6 }/ ]3 [- z7 x
(當然比起前面 finster 大說的 32KHz 跑一個禮拜是好多了...)& Q  Y2 g) o5 \2 i5 ]! A1 u
% @. e" o/ w1 m1 o) k* t! `
[ 本帖最後由 skyboy 於 2007-9-9 02:51 PM 編輯 ]
作者: ainge    時間: 2007-9-10 02:39 PM
各位前輩, 不知大家是否模擬過Crystal oscillator的phase noise.
! b7 I' Q" q7 h. L+ y0 F, p小弟最近在模擬20Mhz的Crystal oscillator, 架構和上述討論的一樣,
$ V6 k: _; D1 s; }1 s為一CMOS反向器加上Crystal's model.
& z# e! }9 N9 Z. X7 X小弟使用Spectre RF 模擬, option中, Integration method parameters設為"gear2only",
8 _5 O# U" N6 j* ~; Z. a4 j* `在pss 模擬時, Crystal oscillator 無法振盪, 但是transient 卻是可以振盪的.$ K: f1 j4 n6 S- I
想請教各位前輩, 不知是否有人模擬過Crystal oscillator的phase noise??. V" X. j  d# K2 H0 H+ N3 W  J
謝謝!!
作者: pk168tw    時間: 2007-9-10 06:24 PM
感謝各位前輩提供的資訊." w% a+ T2 A; G: H) I1 j8 T
對於電感的初始值要如何設定才會符合真實狀況.
0 n6 j5 B( b, p1 N5 H! W1 F4 PIC=1ua,一開始模擬就振的很漂亮.
. y6 `( n9 D3 F# ^5 Y2 N* ?) e. nIC=0.1na,也可以振,只是起振時間拉長.謝謝.
作者: jackrabbit    時間: 2007-10-7 12:50 PM
原帖由 monkeybad 於 2007-8-9 10:01 AM 發表 ) _& w0 K+ |2 B7 z8 M6 j
昨天晚上試了一下以前在網路上找到的一個方法* }0 {% H, h- }5 N! i4 F
就是在一開始的時候 串聯一個起始電壓源來加速Hspice的模擬1 y, R) F# ], |5 Q! m( F* l6 m8 j- |
起始電壓源為一個sine波 頻率設為crystal的震盪頻率 然後要加入damping factor 讓起始電壓慢慢衰減到零' ?/ _9 v: s% P5 i8 b
結 ...
# f3 j% G. g0 t9 }" B
" o2 g& T" ~- i2 D$ }
小弟最近也在研究crystal oscillator circuit, 這個討論串讓我穫益良多, d2 f; c8 U, f9 f* L( G. r5 L
monkeybad 大的這份附件, 剛好讓我想到一個問題6 U0 l8 H& ?9 {& W7 \6 y
在這篇附件裡 figure 2的模擬結果顯示, Xtalin的振幅會大過Xtalout, 而Xtalin振幅甚至會超出 Vdd&Gnd$ L5 }+ {$ a0 m; p8 w4 @
我自己在模擬的時候也看到同樣的現象, 但不知如何解釋才正確....+ i" J, g# D" k* J# {: V- I+ |
Xtalin > Xtalout還可以理解, 畢竟兩端的loading不同
2 x( F4 V) a, v+ P; L/ n5 T但是Xtalin的振幅是否真的會超出supply rail? 還是只是模擬上是如此?
2 `. n; ~" V. T! S( g這個現象讓我聯想到DC-DC converter~ 不知道是否是電感所造成的效果?9 P( D4 S; m5 S  r% M
查了幾份application note都沒討論晶體兩端振幅的問題, 不知道這個振幅有沒有辦法去計算或調整?
3 F  e- g5 D7 C煩請各位前輩指點了, 感謝!!
作者: gimayon    時間: 2007-10-8 12:29 AM
實際 IC 確實有振超過 vdd 的案例. g6 Q6 b% f  I0 c! R
不過通常都伴有 消耗電流 過大的問題
& ~0 d$ y( i% T/ G# D; E1 S3 n8 K$ e
) e$ U& k, Y5 {9 E7 g7 |' ]# i7 }, {嘗試降低 負電阻 試試
作者: gimayon    時間: 2007-10-8 12:33 AM
實際量測IC 負電阻
* |  t9 Q2 V6 ^0 s: v+ I除了 網路分析儀 外
, B# b0 v$ E6 M, l* I$ V$ v還有一個 小方法 能 簡易評估
5 t) T; h: a% U2 u; |2 `# g; x
( `: |" P0 F% V/ `缺錢 賣10代幣吧  有人要買嗎 ?
作者: savage1394    時間: 2007-10-27 10:17 AM
受教了,我也遇到晶振振不起来的问题了
+ ^2 Z' t* y- o- z! e, K对于负电阻还是不太理解
作者: markcheng    時間: 2008-1-15 12:33 AM
標題: 回復 8# 的帖子
感謝finster分享
. I& Y* ]" K$ }$ n) S小弟我目前遇到一個跟你的第五點問題滿類似的6 m' O" U2 _; e" n; d
我是design一個32.768k crystal osc( l8 O- M) t) {. B. Q) x+ T
ic 回來量測時發現經過digital counter的輸出會有過快的現象,也就是它會數太快,代表著也許我送給它的頻率變快了1 _& B# \! `! P) [- {# t0 E/ _
所以我就去量測內部頻率輸出32.768k的那一點訊號& J3 g) U! N( t' z, f6 G
我下探針去量測,發現頻率跟波形都正確' R& h- y% y6 `# e
但是當我探針離開輸出那一點時,頻率又變快了(有接led燈,所以感覺的出來閃爍變快)0 d" C; k' X/ J. ]# }+ s
我當下是覺得探針類似有電容的效果
, Q3 h% x( H& D$ O# u所以當探針下去時會有濾波的效果,所以頻率會正常,當探針一離開則頻率會變快$ S% i9 W$ Q2 e& v' J
還以為是noise的影響8 B9 y$ z; A  ~1 S8 ?9 [6 A" ]
看到你的第五點分享,現在想在我的輸出端再加上一個smitte trigger,然後再接給後面的digital counter來使用
. H7 x! e/ x5 u  i看看問題是否可以獲得解決
作者: finster    時間: 2008-1-18 09:26 AM
原帖由 markcheng 於 2008-1-15 12:33 AM 發表 , ^+ q+ R8 t  _4 l3 N
感謝finster分享  n8 r" }: W2 @3 V1 L  f
小弟我目前遇到一個跟你的第五點問題滿類似的( J* c6 `) D0 F- I" Q8 W' f; o  G  m4 f
我是design一個32.768k crystal osc9 w) X; l  h4 n
ic 回來量測時發現經過digital counter的輸出會有過快的現象,也就是它會數太快,代表著也許我送給它的頻率變快了 ...

# S! Y* u( V6 A- q1 E
! Q7 X' q  L* R9 h) R% |& I4 \/ u& @* P
不好意思,因為這一個主題己經有太多人回覆了
" k0 i; f9 e5 j7 h( k' r' e所以也就一直沒有留意有沒有人有再提出新的問題來) g5 M3 [9 w7 }
我們後來實驗的結果(藉由FIB),發現到當初的推論沒有錯,因為原本的規格是要作到很low power,所以32.768KHz Crystal output的推力就設計的很弱,以致於輸出的clock的rise time和fall time就變得很長,導致後級counter在遇到很長的rise time和fall time時,就會被重覆trigger,故而使得原本要一秒一秒計數的計數器變快了
& t  }0 }; y$ q, B5 Y解法就是加一個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)
作者: markcheng    時間: 2008-1-18 12:22 PM
原帖由 finster 於 2008-1-18 09:26 AM 發表 9 Y1 B/ ]- k  e' G3 M0 v4 R/ ~
% M% j6 x4 H* m. G- q. L8 P6 t" O
# @4 _. b$ }( I$ W, W0 I! U- m! s: S
. s6 B! t  I8 [* h. B
不好意思,因為這一個主題己經有太多人回覆了/ ~. ]$ _, ~$ @4 }5 p
所以也就一直沒有留意有沒有人有再提出新的問題來
7 z0 P. y) D# z5 N5 H我們後來實驗的結果(藉由FIB),發現到當初的推論沒有錯,因為原本的規格是要作到很low power,所以32.768KHz Crys ...

* R! U) |. g1 P1 o1 W; Y  m/ @( g# E! i% {1 u$ Y0 U# b& \
因為我的電路裡面還有另外一個12M的OSC....其實電路上是大同小異的...但是12M卻沒有這個問題...我想應該是它速度太快了...因為12M一個cycle大概是80n...而32k768大概是30u....這個差距就差很多了...難怪rising跟falling影響後者比較嚴重...因為counter大概反應時間也都是 n sec 等級的...最後還是感謝分享經驗
作者: ilovehorn    時間: 2008-1-24 03:07 PM
我想請問一下  之前一直提到的負電阻
$ R) J; P- J" K0 g5 G( [% {5 B到底是什麼阿( [( X% P9 Q# z  I, ~7 Y
有沒有參考資料可以閱讀的& z; F9 _- u% J, m2 x$ c
或是哪本教科書有提到的
$ `8 I  _' r0 x1 w, }4 [我初踏入這個領域什麼都不懂
+ U! m. W* p: F3 N3 @4 l% i' h) ?% l謝謝大家了
作者: ilovehorn    時間: 2008-1-31 11:33 AM
很抱歉之前問了個小白問題
1 T0 E4 D5 m3 Z; w2 o  G我查了些參考書還有文件後: N) V( ~, x! y/ Y* y& W
總算對負電阻有些粗淺的了解% ~+ x0 M+ ]8 O4 y8 [: l. v
3 b3 P- Y5 M5 |) y, ?' J7 J
最近老闆要我改良之前12MHZ的Oscillator; d: G& [7 h! Z7 W. ]3 z  `
參考板上的文章後 把前人留下的電路丟下去跑模擬- t4 X# U; A: i* e3 }8 Y( L  s. o
算是可以正常起振$ C, w5 Z% c5 ^, D, F4 M. |8 c

0 U- p1 ?7 {; n我的經驗是
' q6 c& W5 J& D7 t8 H  q. `1 V若是使用HSPICE的話 Time Step 設太小 模擬時間會拉的很長% z+ e! L# m% S
使用ELDO則可以大幅縮減模擬時間  可是要注意要下 .option tuning = accurate/VHIGH 的參數 不然模擬結果會非常不準$ S; n6 o0 \4 O% _# ]
然後ADIT模擬時間最短  但是算是最不準吧  粗淺的測試可以使用
$ V6 u2 K- h* g: d8 \9 I但是到最後的驗證的話  還是要用HSPICE跑一下比較妥當
, k6 g6 D0 N6 N' q% J8 m1 A- K以上
作者: ilovehorn    時間: 2008-1-31 04:39 PM
標題: 回復 2# 的帖子
給monkeybad
& k( o+ P# d: M, M; ^1 ]
2 J, \7 `1 U/ {* j. }) v" I2 k3 P我覺得這樣模擬負電阻的方式有一點點問題
' V( w/ e- @6 V, s" `你這樣所看到的阻值 與你所提供的Philip AN97090文件裡面的值不一樣2 p2 c6 _4 h) \" M
你模擬的是並聯的負電阻值  而Philip的是串聯的; j' \1 l/ G# R- V
兩者會有差別
/ e9 I9 ~' X3 s) o& P' ^' `
2 }1 r4 r9 M, v3 p如果要用並聯的方式討論的話8 D4 e$ ~" v" h8 j( G; d' e
可能要把Crystal裡面的Rs換成並聯形式  就像是Razavi P.497推導的一樣; u& O7 y6 E( X+ j" y, m/ D
然後負加正大於0 (因為是並聯形式  所以要相加大於零) (Razavi P.504)
% g! [; S) D# u/ Y6 `應該就可以起振了
! \# ^: F% C( w) [" y1 z* l$ g" |& Q) K, J' g( H8 n
另外有個問題
, T" Q2 L2 C1 f2 Z5 M4 Z1 i# q+ R不知道在圖二你是用什麼方式把頻率鎖在震盪頻率
2 O9 j% }5 k- ]9 U3 a% T$ d" k; e如果把石英拿掉的話
! o( n; @' t  r/ U2 r  [) s/ ^震盪頻率應該就是Inverter Delay的倒數  大概都是G的等級4 t( g5 ?" {2 A9 ?$ `+ I6 q" a
如果沒有鎖住的話  那模擬出來的負電阻就跟震盪時的負電阻不一樣了
( W1 ~  X! v3 X: O8 z5 N
' V9 _" k/ n4 U, u一點淺見
4 w; D- x& P1 v3 D有錯請不吝指教
作者: ilovehorn    時間: 2008-1-31 10:41 PM
抱歉 我又來囉唆了& Q' q3 n7 c/ Q3 h' ~3 C
我剛剛模擬了一下 monkeybad大大模擬負電阻的方式確實可以用
$ t- Y/ N! b! e8 v* O( U只是模擬出來的值  跟參考文件上的不一樣
! w9 i% d, E: D( q2 V5 w它其實是Crystal往外看的等效電阻值" K$ f, A" V0 m* q  p, }
所以如果要用Philip文件上的方式判斷的話
& c4 C5 O% t  E% _, E還要把這個電阻值做修正 也就是跟Rp的方法一樣
+ M- U" F3 D8 K) m9 H這樣才可以把並聯的負電阻值換成串聯形式- S) b, Z4 q( `3 i8 h
然後負大於正就可以起振
. f% ^) B3 |: t" R& E% n9 B+ g
! h( R: t5 L9 }$ q5 `1 c另外  我想請問一下monkeybad還有skyboy大大. R+ E+ q& }- U1 J& C
在做負電組模擬時 要怎麼設定aa和bb的直流偏壓值
" N* C, S$ f  G我自己的方式是把Inverter的平衡點社在中間  然後下電流參數的時候 不給直流參數
7 T2 u+ ^8 S! N7 g; o不知道這樣合不合理9 y- N# F3 k; Z5 _$ p; {" I# F
謝謝
作者: jasonwang0911    時間: 2008-8-19 01:30 PM
這一篇的討論真的很不錯!!: M! O# ^4 ?# H4 Q9 k2 Z
   受益良多...
作者: csleea    時間: 2008-12-22 06:27 PM
真是很棒的分享
/ h/ T, \: {5 U+ H0 ?8 }+ {- d) t% Q. u) H8 [
Thanks for your input!
作者: nowich    時間: 2008-12-22 08:23 PM
谢谢f分享经验
7 f8 b, @$ s3 ^4 M( Jcrystal的等效模型各位是从哪得到的?
作者: yoyo20701    時間: 2008-12-24 08:38 PM
嗯~~多謝大大的提供~~小第也在做振盪器~~~謝謝囉~~~大大
作者: cadio    時間: 2008-12-25 08:29 PM
学习了。。。。。          & k7 t: g" Z: M4 M* L
大家的讨论都很精彩,感谢。。。
作者: paley    時間: 2009-12-16 11:13 PM
感謝各位前輩提供的資訊.' Z3 x' N% J/ p, M
對於電感的初始值要如何設定才會符合真實狀況.7 O" s/ B0 }, W4 d/ |) H
IC=1ua,一開始模擬就振的很漂 ...
: J' T+ Y; G" m9 Mpk168tw 發表於 2007-9-10 06:24 PM

/ a2 I# x4 }. D- ^& c2 G% f  p# R" `  `2 Y; }' b  b( {1 T- x
$ ^& ^, G1 z- p$ V5 t$ x
    无论是IC=1uA还是IC=0.1uA,都只是为了让仿真的时间减短,最符合真实情况的应该是IC=无穷小的情况,但是那样要仿真很长时间才能起振,而且需要步长也很小
作者: paley    時間: 2009-12-16 11:15 PM
谢谢f分享经验
8 i7 t* H, a- b5 Y; Z( tcrystal的等效模型各位是从哪得到的?% D1 U4 b# ^: m$ D  o; A3 |
nowich 發表於 2008-12-22 08:23 PM

. i) n$ |  K6 [9 V- S% J' h0 _) r5 G# m

5 v* y1 e0 z" F' I8 a    crystald的model在生产厂家的网站上一般就能找到,各家的model差别不太大
作者: skyblue    時間: 2010-1-12 04:10 PM
本帖最後由 skyblue 於 2010-1-12 04:49 PM 編輯
' I! ?( J6 g! D9 }) P0 }7 m+ s: D/ {. P- R4 z) g3 C
有關於模擬的方法~我參考了幾位版大的模擬有了些疑問想請教各位$ G3 c& N- f9 @8 \, ~
& ?+ D- T" M* h. ^: m* Y" E
我的設計是 32.768k 使用inverter的架構 1.8製程  vdd=1.8v    先不考量電流耗電問題 電壓1 V/ D- G0 C1 [* p
" k! w4 X; z6 T$ d2 r
電路架構如 pic1$ I( k5 j6 w) j: z. W
我用了版大的方法  在RLC並一個Co的電路內在L中 設了 .ic=0.1ua 與  .ic=0.01ua" }5 s& d* N8 X( |; g
但發現   設0.1時波形有起振  但是 設了 0.01時波形卻收鍊了~~~不知道到底哪理出了問題) _8 B( W! [* I$ O
如圖 wave1 及wave2% x. o" V+ h! O" o; O: s3 N9 e( c
6 M9 z/ h" W5 k! f1 R0 T: N
pic2
, Z7 ^! M3 h- e! ^# b/ Z1 F為模擬負電阻的方法  也是參考版大的方式
6 d/ h' i4 B, G3 J% S( A把RLC串聯網路拿掉~~剩下Co的部份所看進去的電阻
0 ?' [9 b# o4 l9 o但是為負或為正也與灌進去的電流有關    I1 XIN XOUT1  AC=1 如果寫成 I1  XOUT1 XIN AC=1這兩種方法剛好會差一個負號0 J! F5 c: L8 b
那麼哪種才算是正確的看法
作者: skyblue    時間: 2010-1-12 04:55 PM
本帖最後由 skyblue 於 2010-1-12 05:27 PM 編輯 ( ?! D. l0 t3 `* y

8 C+ i. j0 ^$ [7 P6 K6 Y不知道怎麼了 ~~~無法上傳圖檔
# y4 t# E# o: d上傳與附檔都沒辦法
作者: skyblue    時間: 2010-1-12 06:35 PM
本帖最後由 skyblue 於 2010-1-12 06:53 PM 編輯
7 u7 z2 f) _' K+ |, q
; p' Z' W6 T- ]( l! _有關於模擬的方法~我參考了幾位版大的模擬有了些疑問想請教各位/ F2 E4 J% {# |/ E

4 Q3 j% J+ N$ M* s* x0 l+ ]我的設計是 32.768k 使用inverter的架構 1.8製程  vdd=1.8v    先不考量電流耗電問題 電壓
! l& P8 s8 h$ P8 u
8 h  w7 Y/ s! U! g' H9 d6 v電路架構如 pic1+ v! ?; w: r+ ^/ }% V
我用了版大的方法  在RLC並一個Co的電路內在L中 設了 .ic=0.1ua 與  .ic=0.01ua3 @( ?9 W9 S  n0 A2 c  ]' f+ t6 G
但發現   設0.1時波形有起振  但是 設了 0.01時波形卻收鍊了~~~不知道到底哪理出了問題, P; U; k* p; ?% |1 i* o& @8 |
如圖 wave1 及wave2* G9 A6 u" o; s; k( ~
4 v6 u6 `7 P; a/ g9 y
pic2& v8 Z  r2 ~- G- d7 O0 r& D
為模擬負電阻的方法  也是參考版大的方式* j+ }8 J6 M1 k7 W9 n) p6 ]- B8 y
把RLC串聯網路拿掉~~剩下Co的部份所看進去的電阻
2 |! M9 {& ]. f: }8 {; V" C0 t但是為負或為正也與灌進去的電流有關    I1 XIN XOUT1  AC=1 如果寫成 I1  XOUT1 XIN AC=1這兩種方法剛好會差一個負號6 _& v6 m. \9 [/ N5 |
那麼哪種才算是正確的看法
8 g- g' S0 q; A( |3 ?  F" ]. Z
9 S* ?/ a# b# V! O
( v% ~7 l9 ~3 Z% Z/ w$ `* x1 _. o) a
我使用以上的方法遇到一個問題~~在文中也有其他版友提到
7 u; C/ ?% H! E. J$ I2樓的版主monkeybad 的圖形也是 為負電阻而他的波形也是收鍊的~~我的問題與他相同+ S( i' |# K4 Q# Z- p' h4 P# A
7 B  f  u  q4 ~
1. inverter size  W大於L       電阻為正值~~~L中的  ic設0.1u  會起振~~從中間值約900mv慢慢振到vpp=0~1.8 6 n# {! [. i/ g5 z9 ]; F+ A9 _
2. inverter size  W小於L       電阻為負電阻~~L中的  ic設0.1u   卻變收鍊
: S+ @0 A& X. u/ e2 M0 `, T, l0 F1 A" ?3 D+ c& c1 a: h' v
怎麼沒有符合 負電阻起振的條件~~請各位版友解惑~~謝謝
5 v: B8 J5 Y" K
" T8 B0 d# s  j, i補上附件
- w1 y+ M) b% ?1 [& Z$ ]% F3 }pic1
' o3 F: l1 Z& g# ]* L6 `, Chttp://imgur.com/BdsSa.jpg
. q2 h6 b& ?' Y5 E4 mpic2( v4 H* v: I# G/ ^
http://imgur.com/7khLtl.jpg
. o* c; X. N/ Q5 Y% U& m+ U) Z) @wave1( g% d, l; R0 }) J
http://imgur.com/fjTxZl.jpg
( d* T& \* y% M+ [wave26 ~" b; g' r. A9 ]# Z! ^! i$ O
http://imgur.com/SW7Zvl.jpg
作者: skyblue    時間: 2010-1-13 10:19 AM
有關於模擬的方法~我參考了幾位版大的模擬有了些疑問想請教各位1 `  R- @4 N1 }# X
5 V1 `! r6 y0 x+ O
我的設計是 32.768k 使用inverter的架構 1.8製程  vdd=1.8v    先不考量電流耗電問題 電壓- y5 ]$ U; Q* R0 ]

, F; s  W- F' S+ v8 X: p電路架構如 pic1
! g( e. `/ h. Z) j" _' B2 d7 d" W$ n我用了版大的方法  在RLC並一個Co的電路內在L中 設了 .ic=0.1ua 與  .ic=0.01ua5 v% X. u1 D' ]" U3 B" q! k
但發現   設0.1時波形有起振  但是 設了 0.01時波形卻收鍊了~~~不知道到底哪理出了問題' h) z6 _% f* y) O$ C2 M
如圖 wave1 及wave2
! y1 Y8 t) Z  S" ?& K: \& t0 ^  V! a: K
pic2, r" x+ Z9 }; ]& N/ P/ z4 ~0 t
為模擬負電阻的方法  也是參考版大的方式2 G$ }5 {; n" a; Z; u# p1 ^0 T
把RLC串聯網路拿掉~~剩下Co的部份所看進去的電阻0 j9 M! N# L9 _- \
但是為負或為正也與灌進去的電流有關    I1 XIN XOUT1  AC=1 如果寫成 I1  XOUT1 XIN AC=1這兩種方法剛好會差一個負號( O8 L( l. V. V* k/ ?" @
那麼哪種才算是正確的看法
0 K2 [. `% M& N5 H2 h8 |  `5 [( o1 r: u: l9 g4 w$ n* G$ f
, v) I' i" f/ s
$ n1 V3 n+ L' \
我使用以上的方法遇到一個問題~~在文中也有其他版友提到
( _6 R' ?( \7 x1 G, D2樓的版主monkeybad 的圖形也是 為負電阻而他的波形也是收鍊的~~我的問題與他相同
0 W/ s  S* \8 ]1 \' s
. v# m2 J: {7 X
/ T" s0 n1 F; S7 |/ h) C. }- l/ D9 e( F( G+ M5 y' v- X
1. inverter size  W於L       電阻為正值~~~L中的  ic設0.1u  會起振~~從中間值約900mv慢慢振到vpp=0~1.8
7 C8 y) \' H5 o7 a2 T( y2. inverter size  W於L       電阻為負電阻~~L中的  ic設0.1u   卻變收鍊
& i9 `" {% I' L6 z
% x& }0 s2 L3 w; N: ~怎麼沒有符合 負電阻起振的條件~~請各位版友解惑~~謝謝' P* B, B9 y6 Z# b

8 ^! e- k1 C0 v5 E( H補上附件2 k+ A# Q- P7 i9 g" q: D$ Q
pic1) U. R. E6 I2 G+ ]$ E0 r
http://imgur.com/BdsSa.jpg2 w% n' J7 ?- B/ N. b9 W
pic2+ W2 [4 _2 C9 z8 [, |4 ]) R. z; J* X
http://imgur.com/7khLtl.jpg9 L9 Y" D# }" W* A4 n
wave1# c2 q- l& r) Q2 `, P
http://imgur.com/fjTxZl.jpg8 N; \4 f( w, A- A
wave2& Z- z6 \, y! ]/ N: q& M
http://imgur.com/SW7Zvl.jpg
作者: ppliu    時間: 2010-2-25 11:29 PM
thank you  for your offer   
) ?% O) v# W& X2 K+ `% M9 l
作者: levimax520    時間: 2010-5-2 06:43 PM
好深奧的問題( ^1 Y" R9 M3 x  a! S( H" z

' f! a% ^* F# p( P8 r感謝大大在此解釋...
作者: juro0827    時間: 2010-5-3 11:47 AM
新手來學習~$ ]: _5 l$ }8 d9 L0 B
(努力筆記): P( E9 ], q$ m8 X$ n' f
謝謝大家
作者: jackrabbit    時間: 2010-5-7 02:02 PM
回復 47# skyblue : W8 F* h0 t# ~6 v% {; r
" W1 ]+ q1 J2 Y3 V) h
個人淺見
- f" ~* Z* {3 y5 k首先要先搞懂起振條件的概念, 一個是Barkhousen′s Critera, 是用回授系統的理論解釋
2 h2 l, J8 R. a$ Y另外一個是以能量的觀點, 就是ideal LC tank是會一直做能量交換而振盪, 但因為寄生電阻消耗掉能量所以會衰減
- B8 |. z! b0 ]) z* h# ^因此才會有負電阻的概念出來, 用來抵消掉寄生電阻, 變回原來pure的LC0 ]" u! I! F6 T" ]9 m0 A/ ^
有這個概念後, 對於如何去模擬負阻應該會清楚很多!
+ |8 N# I+ |; O- }& G1 Ncrystal 視為LC tank, 把crystal拿掉, 從原本crystal兩端的位置看進去的阻抗, 取 real part 即是我們所在講的負阻
3 A- N0 L* [' S( R' s8 I: u7 B4 a' y. ~" U" ~& J
模擬方法: 等效電阻算過吧?! 您提到的極性問題, 我個人會建議直接在Xin/Xout1間跨AC電壓源, 看你正端定義在哪, 取從正端流出的電流值
4 F* Q* H: t' S# ]  l! m& Y; w然後 V/I=Z, 再取實部即可  ~. Y+ U3 s# p
雖然說振盪條件是 負阻=寄生Rs, 但建議為了起振, 把它做到至少五倍大比較保險, 這Razavi 教科書還有paper裡都有討論過9 q4 L6 Q0 o& i3 ^" l$ O  ~
你可以去試著調幾個不同的負阻值看看起振的現象, 挺有趣的~
9 m6 s1 L% u1 L- g9 R  y0 p; A! O* o6 |+ J6 D4 }
另外, 純屬個人意見, 我不會用外灌電流的方式去模擬, 畢竟實際的電路上並沒有這個電流
2 _, o2 }+ F/ i9 H% g3 @1 O  [我會採用前面有人說過的, 把inverter 兩端initial設等電位(both high or both low) 讓它自己去翻
5 t" }; s0 Y0 C. @4 l6 _  d還有, Hspice 要設 method=trap puretp, 再不行要再加 delmax, 值最好小於1/100 週期 (國外討論區建議的), 用gear 幾乎是不起振..../ k: X! |- T1 f, j9 W2 q1 W
我用這樣的方法模擬, 不用外灌電流都能起振, 也可以看出負阻大小(或說inverter的gm) 的確會影響是否起振3 \" _- I" m' O) b5 O
/ p8 y* S* \' n) Y, V
而我不認為改變W/L 會讓負阻變成正值!! 因為那個負號是來自於mos gm的電流方向 -> 做過小信號分析應該知道4 Q: p* [6 b# u6 }
您是否把整個電路包含crystal一起去看阻值了??1 d; H3 }- f: `% ]( a4 `1 U
good luck!!
作者: skyblue    時間: 2010-5-19 04:37 PM
回復 52# jackrabbit 6 {  S: i6 C! O$ i* ]% Q; M1 t

; c6 `* n3 z) K% }) |' b8 q, x/ q" [4 t% o$ x; _
    感謝 jackrabbit 的指教2 F$ E8 c$ ^# r: _9 \  b* Z' l2 P, V
    有點懂了~~~模擬結果也可行
作者: jimwang94306    時間: 2010-7-1 01:31 PM
小弟是新手 謝謝大家分響經驗
作者: Chipfish    時間: 2010-9-15 04:48 PM
請問有沒有震盪器模擬的資料可以分享的~感激不盡
作者: anita66    時間: 2011-5-4 03:51 PM
感謝"finster"與"jackrabbit"兩位大大精闢的解說, 受益良多, 目前還在study中, 有什麼心得後, ㄧ定提出與大家分享, 3Q~
作者: kmanwang    時間: 2011-7-6 05:02 PM
天哪!!這篇太讚了!!瀏覽chip123越久~覺得finster大大越強~神人!!!受教了~謝謝
作者: anita66    時間: 2012-2-16 02:39 PM
嗯~我也受教了,RTC除了這個輸入級的OSC之外,後面還有配合許多邏輯電路,都是值得探討的主題,3Q~
作者: popfly51    時間: 2012-3-28 08:47 PM
我也受教了,非常感谢!
作者: Raygo    時間: 2012-4-18 05:41 PM
謝謝分享!很有用的資訊!
作者: penyu1987    時間: 2012-5-25 08:01 AM
這帖討論太精彩了,最近開始接觸OSC,以後要常來~
作者: jghn    時間: 2013-1-3 06:58 PM
順利震盪後 你要怎看是不是你要震盪的頻率??
作者: m09701005    時間: 2013-1-4 08:51 AM
這是以前我口試報告某幾段有關振盪器說明. r1 a* N. V* S5 |2 n- C
有誤請指教; l1 N- Q9 P: F( g+ g; O5 n
有任何要討論可以E-mail: jacky741229@yahoo.com.tw[attach]17867[/attach]
作者: chris020    時間: 2013-3-21 09:44 PM
感謝各位高手的經驗分享.../ x9 |: n% e7 D$ x# R
因小弟最近也在研究RTC..; b5 {4 V/ i7 ]7 l9 h
但不得其門而入...
作者: jghn    時間: 2013-4-25 01:18 PM
想請問下 正常做出來波型是收斂 還是發散
' h! x* w+ X5 [& t8 t' l0 ~" o2 T' k2 e5 S' w5 r

" f/ i! G+ E/ V5 D/ Y% O+ I收斂是正確的嗎? 還是發散
作者: wwwww_hhhhhh    時間: 2013-5-17 07:47 PM
感謝finster大大提供這麼寶貴的經驗,真是造福人群,功德無量!
作者: suewe    時間: 2013-6-10 09:18 AM
這是一篇極好的討論文章,謝謝各位不藏私的分享。
作者: ts.c.c    時間: 2013-8-1 05:29 PM
簡單建議一下,-R絕對值要大於水晶內阻3--5倍,另水晶C0值要注意....,另一般用的水晶是AT CUT,RTC 是Tunning fork 的.....
作者: yih10    時間: 2013-10-15 07:02 PM
看完這一串討論串真的收護良多
作者: line520    時間: 2014-1-6 11:12 PM
回復 19# monkeybad
4 m7 g7 ]! `+ z* O4 z3 E* P! I9 n9 R

$ m# _4 _  k5 z  I- d) o/ Q" J/ g; @2 h
$ j3 j1 n: R' v3 b
, A- E9 k' J2 z8 V& L4 m
' N( O/ x3 y' q, a雪芙外送茶坊LINE:qq12398765 sky:qq12398765q 及時:qq12398765
作者: Juneje    時間: 2014-7-7 07:32 PM
回復 10# monkeybad . n- P! [! M4 v9 H9 I# w

' V/ R. X! |4 N: [4 D# J感謝大大經驗分享
作者: s7360381    時間: 2014-8-8 05:30 PM
因最近也在研究RTC, 感謝各位高手的經驗分享..
作者: k9966809    時間: 2014-8-8 07:04 PM
感謝各位大大的分享說明
作者: hohozon    時間: 2015-7-17 10:56 AM
看完這討論串 受用無窮!




歡迎光臨 Chip123 科技應用創新平台 (http://chip123.com/) Powered by Discuz! X3.2