Chip123 科技應用創新平台

 找回密碼
 申請會員

QQ登錄

只需一步,快速開始

Login

用FB帳號登入

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

[問題求助] XTAL 問題

[複製鏈接]
跳轉到指定樓層
1#
發表於 2008-1-17 16:43:13 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
DEAR ALL:
5 ?% V& w* y6 L) R; h' A          我目前在跑 8Mhz xtal 電路 , 有無法起震現象0 i6 Q( s  v5 P  L5 O0 X
          有去參考前人發的文章 和提出的解決方法 .
' W% `6 Y7 m+ W       我有去試過  adele 大大 說的第二個方法 ,
) ~1 h7 b9 k1 N) c7 S7 C         open gain 有29dB ,用40uA電流3 Q4 l: i3 J! J- L9 M# a, l& s
   可是跑TRANSIENT 就是無法起震 , 請問哪裡出錯了 ?" h& q" F* E& i# B1 _
   ps : 已經加了幫助起震的sin  function 或是initial condition
# `9 W; W- v$ w3 ~7 S% z+ z. j- |* C) L
   我後來有將step 改成0.1ns 就可以起震 , 可是這做法好像是錯誤的
/ L8 ]' Z- a" }, @8 e9 A; m   因為才8Mhz 應該不需要設到0.1ns 才可以起震 ..

本帖子中包含更多資源

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

x
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享分享 頂 踩 分享分享
2#
發表於 2008-1-21 23:55:13 | 只看該作者
說真的,我很少看到有人用這種單一個MOS的反相器架構的XTAL Oscillator% u1 [8 _) q) `
絕大部份都是使用反相器或者NAND的方式# |( t1 |! z- N; j1 B9 v
這種架構我以前曾試作過,但,不好起振(不知是我功力不夠,還是其他原因),試了好久,後來改用反相器架構就很快便起振了1 y" l* p# p  I* X6 i: K8 K( p
要作XTAL模擬,只要XTAL Model沒錯,在模擬時,除了加initial condition,亦即
3 ~( R" P9 u% ~; v.ic v(xtal_in)=vdd v(xtal_out)=vdd. n/ i7 J" V3 y
另外,亦可用
2 n/ E% Q( S3 p( v- O* dvvdd   vdd   0   pwl(0 0 1m vdd)! n& G: B1 G0 S0 {7 ?/ s
也同樣可以使XTAL Oscillator起振
+ g# }3 O! S9 T- ?
/ w9 R& r/ J$ R3 Z: c2 K2 E- r另外,建議你嘗試著把gain加大,因為29dB並不是一個很大的gain
9 B6 @. L# A1 p+ ^至於你提到用sin function以及time step改成0.1ns,我個人是覺得那應該不是造成你電路不振的問題, E6 c1 s* [2 g
最後,建議你觀察一下xtal in和xtal out的電壓分別為多少,理論上兩者的電壓差應該差不多,但相位(波形)應該會是接近180度

評分

參與人數 1 +5 收起 理由
super + 5 回答詳細

查看全部評分

3#
 樓主| 發表於 2008-1-25 17:50:48 | 只看該作者
finster 大大 ,9 G/ I5 S: w0 ^# u: o5 u
        我後來改用inverter架構 1stage, 10Mhz current=550uA ,   0.35um process.  ) y2 L$ Z# }& X1 O/ T
          open   gain 也才26dB ,         p: w/l=30/1u  ,       n: w/l=10/1u; ^2 X* k0 t) ~, M
     我跑transient , 用了你所說的方法 一樣不會起震 ,但只要設定step=1ns 就會起震,& [( u; e$ d6 @6 m) M0 E9 Y
     且in/out phase 是接近180度.
( R) M9 }! B) N- o8 d+ f* j     聽別人說12Mhz 大約只要200~300uA gain就有30dB , 不知道我的為什麼電流會那麼大 ?
2 t1 `* X; q, m    我現在的問題是 $ B3 Z' Y9 Q( |& I. W0 M9 }1 ]8 M
   1.  電流500uA 這樣會不會太大 @12Mhz ?
; p5 w5 O8 S- J/ c9 ~   2. open loop gain 要多少才算是安全區域 ? adele 大大是說>25db即可.
9 q8 q* Y  q- @; }" Z   3.  inverter 架構電流都好大 , gain 才會大 . 不知道大家是不是也都這樣  ?
6 h' {  q8 n* u( ]0 d* Y   4. 我後來有去試32Khz 的xtal ,  電流5uA , 也是step=1ns 才會起震,6 m/ |, }; c- }# R
        不知道大家是不是也是這樣 ?
+ @3 _0 D7 S1 h: E1 H  P( c' s, w3 s) q* [8 @/ B- X- H
    Thanks
4#
發表於 2008-1-26 00:55:22 | 只看該作者
原帖由 super 於 2008-1-25 05:50 PM 發表 : X( r7 O- O9 R, {8 Q* v8 l
finster 大大 ,5 M% s* \+ e/ \/ D6 t
        我後來改用inverter架構 1stage, 10Mhz current=550uA ,   0.35um process.  
% y; d1 O$ h) N4 ?. U          open   gain 也才26dB ,         p: w/l=30/1u  ,       n: w/l=10/1u
& p% u8 i2 K6 b3 j. f: e, H     我跑transient , 用了 ...
; Y# i9 L- o1 V8 W$ k+ p9 ^

, j* B6 G$ v4 Q& r3 R1 v
5 X: ], n) G) t$ i6 v- }& k"聽別人說12Mhz 大約只要200~300uA",這個樣子的說法其實並不太客觀
  ]6 T  G( H) Z8 k因為,不同架構的XTAL oscillator有其不同的電流消耗,所以,你要看的是你的規格在多少?起振時間多少?
  r  m; R7 t* Z2 T& g像以32.768KHz XTAL Oscillator,我作過數mA的,也作過只有3uA的,因為使用不同的架構,所以其電流消耗也就大大的不同/ a3 K: O+ Z4 k, |3 f; u4 K
所以,要跟別人比較,先要看他的規格為何,再來看你自己的規格為何,而不是一味的跟別人比較,那並沒有多大的意義' C* Z. G( Y% x9 X% l% |
inverter 架構為何電流會大,我想,你應該沒有去看反相器的輸入電壓和輸出電壓吧,如果你有看的話,那應該就能夠明白為何電流會那麼大,因為輸入端的電壓並沒有到達rail-to-rail,所以反相器的PMOS和NMOS並不會完全的turn on/off,故而在轉換的過程中會流過相當大的電流,而這,也是我為何在前面有建議你看一下輸入和輸出電壓  B3 f& k) P$ S
類比電路設計並不是只有把理論弄懂就可以設計出好的類比電路了,這其中還要有一些經驗,以及仔細的觀察電路中各個節點電壓是否正確,是否符合預期結果,每一個mosfet是否都在正常工作範圍內....,我想,學校老師應該會教,又或者不會教你這些,但,這些電路檢查動作是從事類比電路設計的經驗累積,電路設計的經驗從這些檢查電路動作中會慢慢建立起自己的觀念和架構,從多問題以及現象都可以從中探求到答案以及原由,只要你肯花一些心思在檢查電路上
+ F7 S5 F) I8 x1 |( Q* [
" @% {% D+ F" ?最後,回答你幾個問題
9 p# L) F2 ?9 d1 o( W; f1.  電流500uA 這樣會不會太大 @12Mhz ?
9 |) W$ R1 C$ L4 r如我前面所言,32.768KHz我作過數mA,也作過只有3uA的,那你的500uA算大嗎?我的回答是看你的規格要求,只要符合規格就是好的,這沒有標準來說大或者不大
0 g! }3 O( k( X/ A2. open loop gain要在多少才算安全區域?. O; k/ Y4 |3 e+ c. q: c+ u
我的回答是要在你所有可能操作的工作電壓+溫度變化從最高到最低+所有corner case都能夠正常動作的,就算是安全區域,如果你只是一味地求>25dB就算是安全區域的話,那在不同的corner+溫度變化下,很有可能就會不振了$ g" J$ e* R1 |7 R& ~& l& ^" L4 }
第3點和第4點的回答就看前面寫的吧

評分

參與人數 1 +5 收起 理由
super + 5 回答詳細

查看全部評分

5#
 樓主| 發表於 2008-1-30 18:29:34 | 只看該作者
謝謝大大說明    不過可能是我寫的不清不楚 所以你才有誤解.8 J: R! ~, K4 a5 b  t, K4 C! o
其實我有去看in/out DC 比 vdd/2還小0.1v的地方, 在transient 方面 phase 也差不多差180度  w& A7 r: ^1 C; `' o$ p# D* O. w5 B/ p
我想你要說的是cmos inverter dc特性, vin=vdd/2 地方 , 電流變化是最大的地方 來說明為何電流是最大的因素 .
1 u0 x& t5 q" a+ J" a3 [- g可我要問的不是這個 ...我是想問 ,
; A4 _3 x) v; J# R1. 像單顆MOS架構 是用current mirror 所以可以控制電流達到想要的gain
: h+ }2 v: D% z2 M8 m, v    但是inverter 好像就沒辦法了 , in/out 就已經是固定的的vdd/2 ,6 a0 z/ Q0 i* M0 d3 q' Y8 d( T% u2 Q
     只有調整mos size 達到想要的gain ..電流無法控制.
, }. P0 n# L6 S2. PROCESS+CORNER+TEMP 我都跑過讓他>25db, 可是不管我的gain多大
# Z# n% r; c5 R  t' F  J    電流多大 , 他都不會震盪.但是只要我將step 設定成1ns , gain=25    電流小
- f0 A7 c$ W3 d* D- N; q1 }% u   他一樣會起振 , 所以 我是想問 大家在跑osc模擬時候 , 難道都不用設定step嗎 ?9 k* o4 Z* ~3 _& {% L5 j

2 @/ w' R  l  m  b9 G    我是用cadence 所以他會自動幫我設定(1us) 但是不會起振 ,* a2 q2 n' y5 ~2 U; [
     必須我手動設定到1ns 才會起振 ..
- z1 z( F9 U  w* h
1 e" U7 G1 b  w; N7 E5 @thanks ..
6#
發表於 2008-2-1 01:15:49 | 只看該作者
我想,你可能還沒了解我請你觀察xtal in和xtal out兩端電壓的理由/ F0 ?. ~0 G/ v- ]2 Z2 z
我畫了一張反相器,假如vdd為3.3V,一般正常情況在輸入端會是0V到3.3V的信號,輸出也會是0V到3.3V的信號,可是,對於oscillator而言,反相器的輸入端應該(可能)不會是從0V到3.3V,如我圖上所畫,若它的振幅是從1.3V到2V之間的變化,那對這個反相器而這,在1.3V變化到2V之間,PMOS和NMOS因為不會全關,所以當XTAL的輸入電壓在1.3V變化到2V時,永遠都會有大電流從vdd流到gnd,所以也就會有較大的電流消耗,尤其當xtal的rise time和fall time愈慢時,它的耗電就會愈大8 z7 s, _; g8 Y" z* P& b1 b7 k2 Y
所以,我才會說我作過32.768KHz XTAL Oscillator,我作過數mA的,也作過只有3uA的
& P% V  G; ?! c讓xtal in和xtal out盡量維持在1/2Vdd是要讓它起振是沒錯,但若要看電流,則是看xtal in和xtal out兩端的電壓振幅大小,而這,是我要你觀察這兩點電壓的理由,而不是要你看1/2Vdd(因為你問為何電流會差那麼多)
8 O, p- Y. F+ V' t- g" S( {3 L
* |7 W. w! W( r3 H0 W在附圖中,另外一張圖是current controlled ring oscillator,當初我作3uA的32.768KHz XTAL Oscillator便是利用這種原理來控制反相器的電流的,藉由這種偏壓方式可以約略限制住電流消耗,同時又可使xtal起振,但,缺點是電路複雜且它的起振時間要很久5 W( F3 ]0 @' z! ]0 n% h% f% `
3 X4 X7 u( |% d
最後,振盪器的time step要設到1ns或者0.1ns,其實並不是一件很重要的事,除非,你的電路或者模擬的軟體在1ns或者0.1ns遇到了不能夠收斂或者起振的問題,當然,這要看電路,一般來說,我都是設0.1ns就能夠起振,而我也很少會遇到這種一定要設到1ns才會起振的問題

本帖子中包含更多資源

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

x
7#
發表於 2008-2-1 10:51:47 | 只看該作者

回復 5# 的帖子

回答一下有關Time Step的問題4 }: s( o* ^: _! ?
假如你只設1us的話 有點太大了可能是Hspice本身演算法的問題
. A3 D1 L: _' T* t7 F" G9 ?3 ]設太大可能不會起振或是起振時間變得很久( s" w& K& B" O9 ^
time step設愈細當然模擬結果會愈準確9 |* {1 Y( h& m- _4 W* V
根據我模擬的經驗大概設5ns應該就會振了
% z7 F/ m# U' _) J另外也建議accurate設為1

評分

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

查看全部評分

8#
 樓主| 發表於 2008-2-1 16:36:36 | 只看該作者
嗯嗯  原來大大是這個意思 ..感謝大大的用心解釋 .! l- S0 Q6 d# D  G- ]5 I4 W" @
  怪我太笨了///////         [; v; h* u: q
不過 我對於step 問題 解釋一下啦2 R0 x, Y3 G% z
我說的必須要設定到1ns 是說 step設定必須<=1ns  才會起震 4 a8 |! H; y2 d+ ?$ G0 a+ U
    不是說只有設定在1ns 才可以起震 . 不好意思沒解釋清楚.
. m" x/ t# ?+ b- x' j5 A; q. M7 U9 V6 I8 h9 _5 U, _# V( [/ b* A9 k; c
問最後一個問題 ,
* l- N! b# U, q8 ?7 R8 m' u" H9 b我有跑過2種情形  e4 K0 J# f+ E5 ]  A
1. in / out 端是sin波 可是amp 0.8vpp / 1.4vpp
% {  ~  e: X5 M6 x$ r5 `1 R2. in端是sin 波2vpp  , out 端是方波 2.9vpp 週期(47%~52%)
3 ^$ r0 H, t1 Z2 [1 {   不知道這樣波形大家跑出來的是不是會有這2種其中一的現象 ?
8 }8 h0 ~$ _0 v    我有調過p/n 比 . 也還是無法改變這種現象 .% E' D* T  e* L1 Q% |% b
  thanks
9#
 樓主| 發表於 2008-2-1 16:44:56 | 只看該作者
回  #7 monkeybad大大+ t; x$ [8 O7 L" X0 L" _
我也有用hspice 跑過 將accurate設為1,  也是一樣不會起震 必須<= 1ns 才能起震.  u: e! a1 S; T6 M
會問step問題 是因為我認為loop gain =26db ,是不是因為gain不是很大而造成不起震 .. n- _) v1 v; H- x) z
所以將step 設成這麼小卻起震 ,這樣做法到底合不合理 ?
/ @* ^! O7 a) S3 A* p7 a+ m4 j6 \會不會亂搞 到時候IC回來不振 不就大條了 ..
7 p1 H0 U$ a4 m8 L, E. a) A' \% `( \* g3 [5 V( F" B
Thanks
10#
發表於 2008-2-1 17:15:40 | 只看該作者

回復 9# 的帖子

OSC會不會震盪 通常是計算看看負電阻有沒有大於正電阻
2 S; D5 \+ I/ g9 i你可以參考之前的討論 我有找到一篇在計算負電阻的文件
3 d: n% n/ d. I用裡面的公式來檢查你的Inverter gm夠不夠大0 L! m2 d- B* ^! r3 t
http://www.chip123.com/phpBB/viewthread.php?tid=6455
您需要登錄後才可以回帖 登錄 | 申請會員

本版積分規則

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

GMT+8, 2025-1-2 02:36 AM , Processed in 0.186010 second(s), 20 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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