Clock diperlukan mikrokontroler agar bisa bekerja. CPU memerlukan clock agar bisa memproses data. Umumnya, semakin tinggi clock, semakin cepat CPU memproses data. Selain itu, clock diperlukan CPU untuk berkomunikasi dengan perpheral-peripheral (dari artikel sebelumnya kita mengerti bahwa tiap bus memiliki frekuensi, jelas frekuensi mempunyai clock), dan sebagainya. Jadi, mikrokontroler membutuhkan clock. Jika tidak ada clock, mikrokontroler tidak akan bisa bekerja.
Clock sendiri bukan tiba-tiba ada begitu saja, melainkan ada sumbernya, kita menyebutnya clock source. Dalam STM32 sendiri terdapat 3 macam pilihan clock source yang dapat digunakan untuk men-drive system clock (SYSCLK), yaitu:
1. Crystall Oscillator (External)
2. RC Oscillator (Internal), dan
3. PLL (Phase Locked Loop) (Internal)
Crystall Oscillator (External)
Crystall Oscillator terletak di luar mikrokontroler, artinya, kita harus menambahkan komponen crystall pada rangkaian kita. STM32 memiliki 2 pin yang dikhususkan untuk crystall. Untuk selanjutnya, crystall oscillator (external) akan kita sebut sebagai HSE (High Speed External) Oscillator.
NB: Sebenarnya ada LSE (Low Speed External) Oscillator juga. Tapi itu crystall untuk internal RTC, bukan untuk system clock.
RC Oscillator (Internal)
RC Oscillator (Internal) sudah tertanam di dalam mikrokontroler. Sehingga, kita tidak perlu menambahkan komponen crystall. Sesuai namanya, prinsip kerja RC Oscillator (Internal) adalah dengan memanfaatkan Resistor dan Capasitor yang sudah ditanamkan dalam mikrokontroler. Karena hanya mengandalkan R dan C, maka kepresisiannya kurang. Untuk selanjutnya, RC Oscillator (Internal) akan kita sebut sebagai HSI (High Speed Internal) Oscillator.
NB: Sebenarnya ada LSI (Low Speed Internal) Oscillator juga. Tapi itu untuk IWDG (Independent WatchDog) Timer dan/atau internal RTC, bukan untuk system clock.
PLL adalah sebuah blok yang bisa memanipulasi besar frekuensi clock. Kita bisa mengkali dan membagi nilai clock. Clock yang dimanipulasi sendiri bisa kita pilih dari HSE atau HSI. Jadi, inti dari PLL adalah kita memanipulasi nilai HSE atau HSI agar memperoleh system clock yang sesuai dengan keinginan kita.
Blok Diagram Konfigurasi Clock STM32F103C8T6
Nah, setelah memahami 3 macam clock source, coba perhatikan blok diagram di bawah ini.
Gambar Blok Diagram Konfigurasi Clock STM32F103C8T6
Coba perhatikan gambar di atas. Saya sarankan agar mengakses blog dari PC/Laptop saja, supaya gambar bisa diklik biar fullscreen (jelas).
- Pertama-tama mulai dari sebelah kiri, nilai HSI RC sudah fix 8 MHz dari bawaan mikrokontrolernya.
- Untuk input frequency HSE, nilainya bisa bervariasi antara 4-16 MHz. Jadi kita tidak bisa menggunakan crystall bernilai kurang dari 4 MHz maupun lebih dari 16 MHz karena diluar rentang frekuensi yang diperbolehkan. Pada gambar di atas, saya contohkan memakai 8MHz.
- Untuk PLL (yang saya kotaki merah), kita bisa memilih antara HSI atau HSE, yang nantinya akan kita manipulasi nilai frekuensinya. Untuk memilihnya dengan mengklik HSI atau HSE pada PLL Source Mux (sebelah kiri dari kotak merah). Jika kita memilih HSI, nilai frekuensi awal yang bisa kita manipulasi adalah 4 MHz, karena nilai HSI otomatis dibagi 2. Sedangkan jika memilih HSE, nilai frekuensi awal yang bisa kita manipulasi adalah nilai HSE itu sendiri, atau setengahnya. Karena bisa kita bagi 1 atau bagi 2.
- Dalam PLL (kotak merah), kita bisa mengkalikan (melipatgandakan) nilai HSI atau HSE yang telah dipilih. Mulai dari dikalikan 2 sampai 16. Wah gedhe juga yak?
- Perhatikan System Clock Mux yang saya kotaki warna hijau. Di sana kita bisa memilih clock source yang akan kita gunakan sebagai system clock (SYSCLK). Ada tiga pilihan clock source seperti yang sudah dijelaskan, yaitu HSI, HSE, atau PLL.
- Perlu diingat, ada batas maksimal frekuensi yang diperbolehkan. Sehingga kita tidak bisa mengatur nilai frekuensi yang lebih besar dari yang diperbolehkan. Kita bisa mengatasinya dengan membagi nilai frekuensi terlebih dahulu. Coba kalian perhatikan, SYSCLK dan HCLK maksimal 72MHz. PCLK1 maksimal 36MHz, dan PCLK2 maksimal 72MHz.
Untuk lebih jelasnya, coba kalian download software STM32CubeMX untuk mencoba-coba mengkonfigurasi clock pada STM32. Semoga sukses yaaa... Hehehehe
Pada artikel selanjutnya, akan saya jelaskan tentang hal-hal apa saja yang perlu kalian siapkan sebelum mulai belajar mengkoding STM32... Stay tune teman... :D
Pada artikel selanjutnya, akan saya jelaskan tentang hal-hal apa saja yang perlu kalian siapkan sebelum mulai belajar mengkoding STM32... Stay tune teman... :D
Warm Up #4 Konfigurasi Clock pada STM32F103C8T6
Reviewed by Puthut Giri
on
05.55
Rating:
Tidak ada komentar: