Return to STM32F4 Discovery Board

RCC (Reset&Clock Control)

Reset Clock Control for STM32F405xx/07xx and STM32F415xx/17xx

A) Reset : 3 çeşit reset tanımlıdır;

1. Sistem Reseti,
2. Güç Reseti,
3. Hafıza reseti (Baskup Domain Reset)

Reset Devresinin Basit Şekli

Reset Devresinin Basit Hali

1.Sistem Reseti

Hafıza biriminin içindeki kayıtçılar Saat Kontrol kayıtçısı (CCR) dışındaki tüm kayıtçıları reset değerlerine set eder. Aşağıdaki koşullardan herhangi birisi meydana geldiğinde oluşur;

1. NRST pini düşük seviye ( Harici Reset )
2. Watchdog penceresi sayma koşulunun bitimi ( WWDG reset )
3. Bağımsız Watchdog sayma koşulunun bitimi ( IWDG reset )
4. Yazılım reseti (SW reset)
5. Düşük-Güç Yönetim Reseti

1.4.Yazılım Reseti

Bu reset kaynağı, RCC Saat Kontrol durum kayıtçısı (RCC_CSR) içinde bulunan reset bayrakları kontrol edilerek tanımlanabilir.

1.5.Düşük-Güç Yönetim Reseti;

Düşük-Güç Yönetim Resetini oluşturmak için 2 yol vardır:

1.5.1. Standby moduna girdiğinde:
Bu reset çeşidine, kullanıcı seçenek byte ları içerisinde bulnan nRST_STDBY bitini resetleyerek  izin verilebilir.
Bu durumda, Standby moduna giriş süreci başarıyla gerçekleştiğinde ürün Standby moduna girmek yerine resetlenir.
1.5.2. Durma moduna girdiğinde:
Bu reset çeşidine, kullanıcı seçenek byte ları içerisinde bulnan nRST_STOP bitini resetleyerek  izin verilebilir.
Bu durumda, Stop moduna giriş süreci başarıyla gerçekleştiğinde ürün Stop moduna girmek yerine resetlenir.
Kullanıcı Seçenek Byte ları ile ilgili detaylı bilgi için Flash Programming kılavuzuna bakınız..

 2.Güç Reseti

Güç reseti aşağıdaki koşullardan birisi gerçekleştiğinde oluşur:
2.1. Güç-açık/Güç-kapalı reseti (POR/PDR reset) or brownout (BOR) reseti
2.2. Standby modundan çıktığında

Güç reseti Hafıza Alanı dışındaki tüm kayıtçıların değerlerini reset durumuna getirir.

3.Hafıza Alanı Reseti

Hafıza Alanı reseti tüm RCC kayıtçılarını RCC_BDCR kayıtçısının değerlerini reset durumuna getirir. BKPSRAM bu resetten etkilenmez. BKPSRAM’i resetlemenin tek yolu Flash arayüzünden koruma seviyesini 1’den 0’a çekmekle mümkün.
Hafıza Alanı reseti aşağıdaki koşullardan birisi gerçekleştiğinde oluşur:
3.1. Yazılım resetinin, RCC Hafıza Alanı kontrol kayıtçısında bulunan BDRST bitini tetiklemesiyle mümkün (RCC_BDCR).
3.2. VDD yada VBAT enerji kaynaklarının kapalı durumdan açık duruma geçmesiyle.

B) Clocks

Sistem clock girişini sürebilmek için 3 farklı clock kaynağı mevcuttur (SYSCLK):
1. HSI oscillator clock (High Speed Internal)
2. HSE oscillator clock (High Speed External)
3. Main PLL (PLL) clock
Ürünümüz yukarıda belirtilen kaynaklar haricinde 2 adet daha clock kaynağı bulundurur.
• 32 kHz düşük-hızlı dahili RC (LSI RC), bu kaynakla opsiyonel olarak bağımsız watchdog’u besleyebilirsiniz. Yada RTC Stop/Standby Modundan Auto-wakeup moduna geçiş için kullanır.
• 32.768 kHz düşük-hızlı harici kristal (LSE crystal) opsiyonel olarak RTC clock’u sürmek için kullanılır (RTCCLK)
Her bir clock kaynağı kullanılmadığı durumlarda, güç tüketimini optimize etmek amacıyla bağımsız olarak açılıp-kapanabilir.

Clock Yapısı

Clock Yapısı

Not: Dahili ve Harici Clock kaynaklarının karakteristikleri için daha detaylı bilgi istiyorsanız ürün datasheetinde elektriksel karakteristiklere bakınız.
Clock kontrolcüsü, uygulamalarınızda kullanmak istediğiniz işlemciyi çalıştırmak yada çevre birimlerinin maksimum frekansta kullanmak amacıyla harici kristal yada osilatör için yüksek düzeyde esneklik sağlar, bunun yanısıra ETHERNET, USB OTG FS ve HS, I2S ve SDIO gibi spesifik clock frekansı gerektiren çevre birimleri içinde uygun frekansı sağlama garantisi verir.
AHB (Advanced High Bus) ayarı için, ve yüksek hızlı APB* (APB2) ve düşük-hızlı APB (APB1) için farklı ölçeklendirmeler kullanılır. AHB için maksimum frekansımız 168 MHz dir. Yüksek hızlı APB2 için izin verilen maksimum frekansımız  84 MHz dir. Düşük hızlı APB1 için izin verilen maksimum frekansımız  42 MHz dir.
Tüm çevre birimlerinin saat frekansı sistem clock’u (SYSCLK) üzerinden beslenir.
• The USB OTG FS clock (48 MHz), Rastlantısal Analog Üreteci (RNG) clock’u (≤ 48 MHz) ve SDIO clock’u (≤ 48 MHz) PLL’in özel çıkışından üretilir. PLL (PLL48CLK)
• The I2S clock
Yüksek kalitede audio performansı oluşturmak için, I2S clock’u spesifik PLL’den (PLLI2S) yada I2S_CKIN pini map edilerek harici clock kaynağından elde edilebilir.
• USB OTG HS (60 MHz) clock beslemesi harici PHY tarafından sağlanır.
• The Ethernet MAC clock kaynaklarının (TX, RX and RMII) beslemeleri  harici PHY tarafından sağlanır. Ethernet kullanılacaksa, AHB clock frekansı minimum 25MHz olmalıdır.
RCC, Cortex System Timer (SysTick – Cortex Sistem Zamanlayıcı) ının harici clock kaynağını ve AHB clock’unun (HCLK) 8’e bölünmesiyle besler. SysTick, SysTick kontrol ve durum kayıtçısı ayarlanarak bu clock ile yada Cortex clock’u (HCLK) ile çalışabilir.
Zamanlayıcı clock frekansı donanım tarafından otomatik olarak ayarlanabilir. Burada 2 durum söz konusudur :
1. RCC_DCKCFGR kayıtçısında TIMPRE biti reset durumunda iken, eğer APBx ölçeklendirmesi 1 ise, TIMxCLKv= PCLKx, diğer durumlarda
TIMxCLK = 2x PCLKx.
2. RCC_DCKCFGR kayıtçısında TIMPRE biti set durumunda iken, eğer APBx ölçeklendirmesi 1,2, yada 4 ise TIMxCLK = HCLK, diğer durumlarda TIMxCLK = 4x PCLKx.

1. HSE clock

Yüksek hızlı harici clock sinyali (HSE) 2 clock kaynağından üretilebilir:

1.1. HSE harici kristal/seramik rezonatör
1.2. HSE harici kullanıcı clock’u
Rezonatör ve yük kapasiteleri mümkün olduğunca osilatör pinlerine yakın olmak zorundadır, çünkü aksi durumda bizim stabilizasyon süremiz ve çıkış gürültümüzü arttırır. Yük kapasiteleri seçilen osilatöre uygun olmalıdır.

HSE/LSE Clock Kaynakları

HSE/LSE Clock Kaynakları

External source (HSE bypass)

Bu modda, harici clock kaynağı sağlanmalı. RCC clock kontrol kayıtçısında (RCC_CR) bulunan HSEBYP ve HSEON bitlerini set ederek bu moda geçiş yapabilirsiniz. Harici clock sinyali (kare,sinüs yada üçgen)  ~50% görev çevrimi (duty cycle)  ile OSC_IN pinini beslemeli, tabi bu esnada OSC_OUT pini HI-Z konumunda olmalı.

External crystal/ceramic resonator (HSE crystal)

HSE kullanmak doğru bir clock sinyalinin üretimi için avantajdır. RCC clock kontrol kayıtçısında (RCC_CR) bulunan HSERDY bayrağı yüksek hızlı harici osilatörün stabil olup olmadığını gösterir. İlk başlangıçta, bu bit donanım tarafından set edilmeden clock’a izin verilmez.  RCC clock kesme kayıtçısında (RCC_CIR) da HSERDYF bitine izin verilirse kesme üretebiliriz. HSE kristalini RCC clock kontrol kayıtçısında (RCC_CR) bulunan HSEON bitini değiştirirerek açıp kapatabiliriz.

2. HSI clock

HSI clock sinyali dahili 16 MHz lik RC osilatöründen üretilir, ve doğrudan sistem clock’unu beslemek için yada PLL girişi olarak kullanabiliriz. HSI RC osilatörünü kullanmanın önemli bir avantajı düşük maliyetle clock kaynağını elde edebilmemiz, çünkü başka bir komponent kullanmamıza ihtiyaç yok. Ayrıca HSE kristal osilatörüne göre sistem başlangıç hızı daha fazladır, ancak kalibrasyon yapsanız bile üretilen osilatör frekansı harici kristalden yada seramik rezonatörden üretilen frekanstan daha kötüdür.

Calibration

RC osilatörünün frekansların üretim sürecindeki değişkenlere bağlı olarak farklılık gösterebilir, bu sebeple ST tarafından her ürün TA=25 °C de 1% doğrulukla kalibre edilir. Resetten sonra, RCC clock kontrol kayıtçısında(RCC_CR) bulunan HSICAL[7:0] bitlerinin değerleri fabrika kalibrasyonu olarak yüklenir. Eğer yapacağınız uygulama gerilim yada sıcaklık ile ilgiliyse RC osilatör hızı değişiklik gösterebilir. Uygulamanızda HSI frekansını RCC clock kontrol kayıtçısında bulunan (RCC_CR) HSITRIM[4:0] bitlerini değiştirerek belirleyebiliriz. RCC kontrol kayıtçısında bulunan (RCC_CR) HSIRDY bayrağını kontrol ederek HSI RC osilatörünüzün stabil olup olmadığına bakabilirsiniz. İlk başlangıçta, bu bit donanım tarafından set edilmeden HSI RC çıkışına izin verilmez. HSI RC osilatörünü RCC clock kontrol kayıtçısında bulunan (RCC_CR) HSION biti kullanarak açıp kapatabiliriz. Eğer HSE kristal osilatörü çalışmazsa, HSI sinyalini yedek kaynak (Yardımcı Clock) olarak kullanabiliriz. Detaylı bilgi için referans manual de Clock Security Source başlığına bakabilirsiniz. (Sf. 154)

PLL configuration

STM32F4xx ürünleri 3 adet PLL bulundurur:
• Temel PLL (PLL) HSE yada HSI osilatörü tarafından ayarlanır, ve 2 farklı clock çıkışı sağlar :
– Birinci çıkış yüksek hılı sistem clock’u üretmek amacı ile kullanılır (180 MHz e kadar).
– İkinci çıkış USB OTG FS clock’u ( 48MHz ), rastlantısal analog üreteci ( ≤ 48 MHz ) ve SDIO ( ≤ 48 MHz ) üretmek amacı ile kullanılır.
• İki adet özel amaç için kullanılan PLL vardır, PLLI2S ve PLLSAI. PLLI2S ve PLLSAI, I2S ve SAI1 arayüzlerinde yüksek kalitede audio performansı elde etmek için düzgün clock üretmeye yarar. PLLSAI aynı zamanda LCD-TFT clock’u için kullanılır. Temel (ana) PLL bir kez izin verildiğinde parametreleri değiştirilemiyor, bu yüzden tavsiye edilen yöntem önce parametreleri değiştirip daha sonra PLL kullanıma izin vermektir. (HSI yada HSE osilatörleri PLL clock kaynağı olarak seçilirse, ayarlama için M,N,P ve Q parametreleri kullanılır). PLLI2S ve PLLSAI PLL için aynı clock girişlerini kullanır(PLLM[5:0] ve PLLSRC bitleri her iki PLL içinde geçerlidir). Ancak, PLLI2S ve PLLSAI kendilerine özel izin verme/vermeme ve bölme faktörleri (N ve R) ayarlama bitlerine sahiplerdir. PLLI2S ve PLLSAI bir kere izin verildimi ayarlama arametreleri değiştirilemez. Durma ve bekleme moduna (Stop and Standby Mode) girdiğinde, yada sistem clock’u için HSE veya PLL(Hse tarafından beslenirken) üretimi (aslında HSE üretimi) başarısız olduğunda 3 PLL de yetkisizleştirilir yani bir anlamda kapanır.

LSE clock

LSE clock, 32.768 kHz lik düşük-hızlı harici kristal ve seramik rezonatörden üretilir. Düşük bir güç tüketimi gerektirir, ancak saat-takvim ve diğer zamana yönelik fonksiyonlarda real-time clock (RTC) için doğru bir clock üreten clock kaynağıdır. LSE osilatörü RCC yedek alan kontrol kayıtçısı (RCC_BDCR) içerisinde bulunan LSEON biti yardımı ile açıp kapanabilir. LSERDF bayrağı LSE kristalinin stabil olup olmadığını bildirir. İlk başlangıçta donanım tarafından bu bit set edilmedikçe, LSE kristal çıkışından clock sinyali üretilmesine izin verilmez. RCC clock kesme kayıtçısında izin verilirse bu bayrağın durumuna göre kesme oluşturulabilir.

External source (LSE bypass)

Bu modda, harici clock kaynağı beslenmeli, ve kaynağın frekansı 1 MHz e kadar olmalı. RCC_BDCR kayıtçısındaki LSEBYP ve LSEON bitlerinin yardımı ile bu modu seçebiliriz. Harici clock kaynağı (kare,sinüs,üçgen)  ~50% görev çevrimi (duty cycle)  ile OSC32_IN pinini beslemeli, tabi bu esnada OSC32_OUT pini HI-Z konumunda olmalı.

LSI clock

LSI RC düşük-güçlü clock kaynağı gibi davranır, durma ve bekleme modunda bağımsız watchdog (IWDG) ve Uyandırma birimi ( Auto-wakeup Unit (AWU) ) için çalışması devam ettirilebilir. Saat frekansı 32KHz civarındadır. Daha detaylı bilgi için ürünün datasheetinde bulunan Elektriksel Karakteristikler başlığını inceleyebilirsiniz. LSI RC, RCC clock kontrol&durum kayıtçısında (RCC_CSR) bulunan LSEON biti kontrol edilerek açılabilir/kapanabilir. RCC clock kontrol&durum kayıtçısında (RCC_CSR) bulunan LSIRDY bayrağı dahili düşük-hızlı osilatörün stabil olup olmadığını belirtir. İlk başlangıçta, donanım tarafından bu bit set edilmedikçe clock üretilmesine izin verilmez. RCC clock kesme kayıtçısında izin verildiği taktirde bu clock kaynağı oluştuğunda kesme üretilebilir.

*APB = Advanced Peripheral Bus

ARM Glossary

Reset

A) Reset : 3 çeşit reset tanımlıdır; 1. Sistem Reseti, 2. Güç Reseti, 3. Hafıza reseti (Baskup Domain Reset) 1.Sistem Reseti Hafıza biriminin içindeki kayıtçılar Saat Kontrol kayıtçısı (CCR) dışındaki tüm kayıtçıları reset değerlerine set eder. Aşağıdaki koşullardan herhangi birisi meydana geldiğinde oluşur; 1. NRST pini düşük seviye ( Harici Reset ) 2. Watchdog penceresi …

Clock

B) Clocks Sistem clock girişini sürebilmek için 3 farklı clock kaynağı mevcuttur (SYSCLK): 1. HSI oscillator clock (High Speed Internal) 2. HSE oscillator clock (High Speed External) 3. Main PLL (PLL) clock Ürünümüz yukarıda belirtilen kaynaklar haricinde 2 adet daha clock kaynağı bulundurur. • 32 kHz düşük-hızlı dahili RC (LSI RC), bu kaynakla opsiyonel olarak …