January 20, 2022

Blogna Kang U-2 Man

STM32, Embedded System, Microcontroller, ARM Cortex-M, RTOS, FreeRTOS

Merancang Sistem Minimum STM32 Bagian 1: Sistem Catu Daya

5 min read

بِسْمِ اللَّهِ الرَّحْمَنِ الرَّحِيم

Salah satu saat yang paling “menyenangkan” ketika merancang sebuah sistem berbasis mikrokontroler adalah ketika menggambar skematik dan PCB. Ada kelebihan sendiri dibandingkan dengan kalau menggunakan board (development board) yang sudah ada. Dengan merancang sendiri, kita bisa memilih MCU yang sesuai dengan kebutuhan proyek, dari sisi harga maupun fitur. Walaupun mungkin perlu waktu lebih lama dan bisa jadi harganya menjadi lebih mahal, kecuali kalau mass production atau sebanding dengan nilai proyeknya.

Tentu saja ketika merancang sistem berbasis mikrokontroler (MCU) harus memenuhi kaidah-kaidah tertentu agar sistem menjadi handal dan tahan terhadap gangguan (noise, EMI/EMC dan lain-lain). Kaidah-kaidah terebut harus diterapkan ke sistem minimum, antarmuka dengan perangkat luar (sensor, komunikasi dan lain-lain), serta catu daya.

Dan di artikel kali ini akan dijelaskan bagaimana merancang sistem mikrokontroler STM32. Artikel ini berdasarkan ke pada Application note berjudul “Getting Started with STM32F4xxxx MCU Hardware Development yang bisa diunduh dari sini. Walaupun judulnya untuk STM32F4, namun kaidah umumnya bisa diterapkan ke STM32 yang lain, terutama untuk type STM32 di bawahnya, seperti STM32F1, STM32F2, STM32F3 dan lain-lain. Sedangkan untuk type STM32 yang lebih tinggi kelasnya (STM32F7 dan STM32H7) bisa dilihat di situsnya ST Micro dan cari application note yang sama.

Dokumen lain yang bisa dijadikan acuan:

SISTEM MINIMUM

Secara sederhana sistem minimum adalah hardware minimum yang dibutuhkan oleh mikrokontroler untuk bisa bekerja. Mikrokontroler adalah System on chip computer, artinya segala kebutuhan untuk menjalankan program telah ada di dalamnya, memori program(flash), memori data (RAM) sampai osilator pun sudah ada. Sehingga sebenarnya dengan hanya menambahkan catu daya saja mikrokontroler sudah bisa bekerja.

Tentu saja, setiap jenis mikrokontroler membutuhkan sistem minimum yang berbeda. Dan untuk STM32 ada beberapa hal yang harus diperhatikan ketika merancang sistem minimumnya:

  1. Catu Daya
  2. Sistem Reset
  3. Clock
  4. Konfigurasi Boot
  5. Sistem Debug

Di bagian pertama ini akan dibahas tentang sistem catu daya di STM32.

CATU DAYA

Catu daya (power supply) ibaratnya bahan bakar bagi mikrokontroler. Catu daya adalah tegangan (volt) dan arus (ampere) dan harus tegangan dan arus searah (DC). Mikrokontroler memerlukan catu daya yang sesuai dengan spesifikasinya. Tegangan yang berlebih (over voltage) akan merusak mikrokontroler, sedangkan tegangan yang kurang (under voltage) akan membuat mikrokontroler berada di kondisi brown out dan membuat mikrokontroler menjadi “kacau”, bahkan bisa menghapus programnya sendiri.

Untuk mencegah over voltage, maka catu daya perlu menggunakan regulator yang sesuai dengan tegangan kerja mikrokontroler. Sedangkan untuk mencegah kondisi under voltage, terutama di sistem berbasis battery (battery powered system) maka mikrokontroler mempunyai pemantau catu daya yang apabila berada di ambang batas under voltage akan memberikan sinyal reset. Mikrokontroler STM32 sudah mempunyai pemantau catu daya ini yang termasuk ke sistem reset. Mikrokontroler lain mungkin membutuhkan pemantau catu daya eksternal.

STM32 bisa bekerja di tegangan 1.8V sampai 3.6V, secara normal STM32 biasanya dioperasikan di 3.3V. Perlu diperhatikan, walaupun STM32 bisa bekerja di tegangan 1.8V, bahkan bisa diturunkan sampai 1.7V, tetapi STM32 mungkin dihubungkan dengan periperal luar dengan level logika di 3.3V atau 5V di mana level 1.8V mungkin belum dianggap level HIGH, jadi sebaiknya STM32 dicatu di tegangan 3.3V.

SKEMA CATU DAYA STM32

STM32 mempunyai 4 skema catu daya:

  1. Tegangan Digital (Dinotasikan dengan VDD dan VSS)
  2. Tegangan 1.2V (Regulator Internal)
  3. Tegangan Analog (VDDA dan VSSA)
  4. Tegangan cadangan (VBAT)
Skema Catu Daya

Tegangan VDD digunakan untuk mentenagai memori flash, pin IO dan sebagai input untuk regulator internal. Regulator internal sendiri akan mengubah tagangan VDD menjadi tegangan 1.2V. Tegangan 1.2V digunakan untuk mencatu core CPU, RAM dan periperal. Keluaran regulator dihubungkan dengan pin VCAP untuk kapasitor filter eksternal.

Tegangan VDDA merupakan sumber catu daya yang digunakan untuk terutama ADC, selain itu digunakan juga DAC, sensor suhu internal, osilator RC internal, PLL dan sistem reset. Pemisahan antara tegangan digital dengan tegangan analog bertujuan untuk meningkatkan akurasi dari ADC. Selain itu disediakan juga tegangan referensi untuk ADC (VREF+ dan VREF-) sehingga kinerja ADC bisa menjadi lebih baik lagi. VREF+ bisa dihubungkan dengan tegangan dari (VDDA – 1.2V) sampai VDDA, dengan minimal 1.7V. Misal kalau VDDA diberi tegangan 1.8V, maka VREF+ bisa dihubungkan langsung dengan VDDA.

Tegangan cadangan (VBAT) digunakan untuk mencatu RTC, osilator untuk RTC (LSE dan LSI), wake-up logic, register cadangan (backup register) dan SRAM cadangan. Di internal STM32, terdapat switch untuk menghubungkan tegangan cadangan ke tegangan utama (VDD), sehingga VBAT tidak dihubungkan ke tegangan luar pun tidak akan menjadi masalah. Tapi ketika fungsi RTC internal atau SRAM cadangan digunakan, maka VBAT harus dihubungkan ke tegangan luar, biasanya sebuah batere. Ketika VBAT terhubung ke batere, maka fungsi RTC dan osilatornya tetap bekerja, sehingga jam RTC pun akan tetap berjalan. Begitu juga data SRAM akan tetap tersimpan.

Perhatikan bahwa, RTC juga bisa mengambil clock dari osilator utama (HSE, akan dibahas di paragraf berikutnya), ketika VDD mati dan VBAT ada, maka jam RTC akan terhenti di nilai saat VDD mati. Jam tidak akan tereset, tetapi karena clock-nya (HSE) mati maka jam RTC tidak akan jalan. Jadi RTC sebaiknya tetap mengambil dari clock LSE/LSI. Kecuali mungkin beroperasi batere, dan untuk menekan biaya, boleh menggunakan HSE.

PIN-PIN CATU DAYA

STM32 diproduksi dengan berbagai kemasan (package), dari kemasan 8 pin (SO8N) sampai dengan 200 pin lebih (kemasan BGA). Tentu saja konfigurasi pin catu daya akan berbeda di setiap kemasannya. Kemasan LQFP144 misalnya mempunyai konfigurasi pin catu daya yang lengkap, pin LQFP100 tidak mempunyai pin VCAP. Sementara kemasan 64 pin dan dibawahnya tidak mempunyai pin VREF+ (tegangan ADCnya sudah terkoneksi secara internal). Kemasan TSSOP14 bahkan tidak mempunyai VDDA.

Kemasan LQFP100 dan LQFP144
LQFP64 dan LQFP48

Oleh karena itu perlu perhatian serius ketika mendesign menggunakan kemasan dengan pin 100 atau lebih. Kemasan dengan pin di bawahnya tinggal mengikuti.

REKOMENDASI KONEKSI PIN CATU DAYA

Ada beberapa rekomendasi koneksi pin catu daya:

  1. Semua pin VDD/VDDA/VREF/VBAT dihubungkan dengan kapasitor decoupling eksternal dengan nilai 100 nF (keramik) untuk masing-masing pin dan 1 kapasitor (tantalum atau keramik) dengan nilai minimal 4.7µF.
  2. Penempatan kapasitor decoupling di PCB harus sedekat mungkin dengan pin catu daya.
  3. VBAT, seperti telah dijelaskan di paragraf sebelumnya, dihubungkan ke sebuah batere (1.65V < VBAT < 3.6V), walaupun tidak digunakan, direkomendasikan untuk menghubungkan VBAT dengan VDD.
  4. Pin VCAP dihubungkan dengan kapasitor decoupling 2.2 µF (ESR rendah) jika ada 2 pin VCAP tersedia. Jika hanya ada 1 pin VCAP, nilai kapasitor menjadi 4.7uF.
  5. VREF- biasanya dihubungkan dengan VSSA.
  6. Sedangkan pin VREF+ bisa dihubungkan ke VDDA melalui sebuah resistor (biasanya 47 Ohm). VDDA sendiri bisa dihubungkan dengan sebuah ferrite bead ke VDD, terutama kalau fungsi ADC/DAC diaktifkan.
Posisi Kapasitor Decoupling di PCB

Semoga bermanfaat.

Visits: 6 Visits: 108178

Leave a Reply

Your email address will not be published. Required fields are marked *

Copyright © All rights reserved. | Newsphere by AF themes.