來補回答我的經驗
b7 ]. B/ r$ K/ ^我之前是做0.18um的RTC的32.768KHz的Crystal Oscillator,條件規格是整體的Crystal Oscillator + Buffer + I/O PAD的current < 3uA,工作電壓要從1.2V ~ 1.95V
8 X/ L! a9 p7 M. ^7 u7 e
/ b( J' |* W, M" I/ t }3 v% l# e1. 首先,要做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才行,這點非常重要,因為它會直接影響到起振與否的問題' y4 E' ^# y' x+ i4 W
8 J9 M3 h2 l' _ R# W; w+ V; @+ s
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,這個並不好作,必需不斷地試% ^. @8 R& {. p1 K3 ?" l
+ E9 g5 ^( C8 \& r$ v3. low current Crystal Oscillator的外接兩端電容要非常小,我當時的外接電容方式是用可調的架構(類似1991年IEEE Conference paper那種,不過這兩個電容我是做在內部),我當時試過,外部電容不能超過10pf,否則會因為外部電容過大而無法起振,那時我只用3-4pf的電容(有考慮到封裝廠的寄生電容,I/O PAD的寄生電容,板子上的電容以及實際量測時probe的電容),另外,因為本身兩端的電容值很小,所流過的電流也異常地小,故而只要有稍大的noise或者leaking current,都會造成Crystal Oscillator無法起振0 W; g5 F; o; z7 R% v0 w# Z8 j
3 i7 I" L- D$ C0 o& ?: A: x7 G4. 連接在XTAL IN和XTAL OUT兩端的回授電阻要很大,最好是50M ohm以上,而這是為了low current Crystal Oscillator而特別考量的,用MOS電阻即可( l: e2 Z4 }: f0 J2 f7 L
% E% v6 g0 R) e9 `+ n
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方面的誤判 |