MCU için Osilatör

Başlatan mr.engineer, 18 Ağustos 2020, 15:52:38

mr.engineer

Merhaba,
STM32F103 mikrodenetleyicisi için bir PCB çiziyorum.

Osilatöre bağlanan C1 ve C2 kapasitörlerinin değerlerini nasıl hesaplayacağım konusunda kafam karıştı. Emin olabilmek için sormak istedim.

AN2586 isimli kaynakda geçen cümle aynen şu şekilde:

"Load capacitance CL has the following formula: CL = CL1 x CL2 / (CL1 + CL2) + Cstray where: Cstray is the pin
capacitance and board or trace PCB-related capacitance."

Pin ve board kapasitansı için yani Cstray 10 pF alınabilir demiş. Kristalin datasheetinde load capacitance 18 pF olarak belirtiliyor. Yukarıdaki denkleme göre CL1=CL2=16 pF buluyorum. Aynı zamanda aşağıda paylaştığım resimde bir Rext direnci var bunun bağlanması gerekiyor mu? Bu direncin değeri kristale bağlıdır diye belirtilmiş fakat başka devrelerde böyle bir direnç kullanıldığını görmedim. Bu kaynakda Rext değeri 390 ohm olarak verilmiş.

Kapasitör değerleri için yapılan hesap doğru mudur? Rext direncini bağlamaya gerek var mı? (Kristal 16 MHz'de çalışacak.)




Kristal datasheeti:
https://abracon.com/Resonators/abls.pdf




kimlenbu

8Mhz Kristal kullandığım bütün STM32 devrelerimde 20-22pF bağlıyorum (genellikle 20pF), bugüne kadar gürültülü ortamlar dahil bir sıkıntı yaşamadım.

Application Note'lardaki teoriye bu kadar gömülürsen bir devreyi çıkarman seneler sürer. Referans tasarımlara bak direkt, misal stm32 discovery'lerin schematic'leri var, açıp incelersen işlerin baya kolaylaşır. Odaklanman gereken yerlere daha çok vaktin kalır.

Ayrıca Application Note'lar hariç hiç bu şekilde Rext kullanılan bir devre/şema/ürün görmedim. Sadece osilatörün parazitlerden etkilenmeden daha stabil başlayabilmesi için paralel 1M Ohm'luk direnç atılır, devrelerimde yerini hep hazır tutarım ama monte etmem.

Rext'in amacınını şuradan okuyabilirsin :

https://electronics.stackexchange.com/questions/379250/for-a-crystal-oscillator-circuit-what-effect-would-a-series-resistor-have-on-th

quarko

Kullandığın crystal osilatörün datasheet inde tavsiye edilen kondansatör değerlerini kullanabilirsin. En sağlıklısı o şekilde olacaktır.
"Aslanlar kendi hikayelerini yazmadıkça, avcıların kahramanlık hikayelerini dinlemek zorundayız."

mr.engineer

Merhaba,

Araştırdığım şeyleri paylaşayım.
Yukarıda verdiğim denklem ve kristaldeki load kapasitans değeri ile CL1 ve CL2 değerlerini bulabiliyoruz.
Aynı zamanda kristal datasheetlerinde yazan bir "drive level" parametresi var. Bu da kristalin maximum güç tüketimini belirtiyor. Burda verilen değeri aşmak kristale zarar verebileceğinden, bu güç tüketimini azaltmak için bir Rext direnci kullanılıyor.
Direncin değerinin belirlenebilmesi için kristal üzerinden geçen akımı bilmek gerekiyor. Aşağıda paylaştığım kaynakta bunun için, Rext yerine bir potansiyometre takıp osiloskop yardımıyla geçen akıma bakıp güç tüketimini drive level'in altında tutacak şekilde potansiyometreyi ayarlıyoruz. Böylece Rext hesaplanabiliyor.

Kristal seçerken drive level'ın yüksek olması önemli işe yarar görünüyor. @kimlenbu 'nun dediği gibi devrede böyle bir direnç için yer tutmak da mantıklı.

Detaylı bilgiler aşağıdaki dökümanda paylaşılıyor.

https://www.st.com/resource/en/application_note/cd00221665-oscillator-design-guide-for-stm8afals-stm32-mcus-and-mpus-stmicroelectronics.pdf