Merancang Sistem Embedded Berbasis Mikrokontroler STM32

Pada dasarnya sistem embedded adalah sistem elektronik yang dirancang khusus dan untuk keperluan khusus dan didalamnya ada unsur perangkat lunak (software). Komponen utama yang digunakan bisa berupa prosesor, mikroprosesor, mikrokontroler, FPGA, CPLD, atau pun DSP. Sistem embedded juga bisa dikatakan sebagai komputer yang tidak terlihat seperti komputer. Kalkulator, printer, LCD monitor, smartphone adalah contoh perangkat sistem embedded. Smartphone mungkin juga tidak termasuk sistem embedded, mengingat smartphone fungsinya hampir menyamai komputer (PC).

Ketika merancang sistem embedded, hal pertama yang akan menjadi fokus adalah bagaimana komponen utama bekerja baik secara hardware maupun softwarenya. Ketika mikrokontroler digunakan sebagai komponen utama, maka sistem minimum dari mikrokontroler itulah yang harus diperhatikan pertama kali. Sistem minimum mikrokontroler sebenarnya bukanlah hal yang rumit. Diberi catu daya saja, sebuah mikrokontroler sudah bisa menjadi sistem minimum. Walaupun demikian, pada mikrokontroler yang lebih komplek, memerlukan pengaturan-pengaturan agar mikrokontroler tersebut bisa bekerja secara optimal.

STM32 merupakan jenis mikrokontroler dengan arsitektur ARM Cortex-M (M0, M3, M4 dan M7) yang dikembangkan dan diproduksi oleh ST Microelectronics. Selaku pabriknya, tentu saja ST telah mendokumentasikan apa saja yang harus diperhatikan agar STM32 bisa bekerja dengan optimum dalam sebuah catatan aplikasi, misal untuk STM32F2: AN3320 Application Note: Getting started with STM32F2xxx/21xxx MCU hardware development. Dalam catatan aplikasi tersebut ada beberapa hal yang harus diperhatikan ketika merancang sistem minimum STM32, di antaranya:

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

SISTEM CATU DAYA

Sebuah mikrokontroler tentunya memerlukan catu daya (power supply) untuk bekerja sesuai dengan rancangannya. STM32 sendiri dirancang untuk berkerja di tegangan 1.8V sampai 3.6V DC, kecuali untuk kemasan WLCSP yang bisa bekerja di tegangan 1.65V sampai 3.6V. Di kebanyakan aplikasi, STM32 diberi catu daya di tegangan 3.3V DC. Tegangan di bawah tegangan minimum tidak akan membuat mikrokontroler bekerja dengan baik sedangkan tegangan di atas tegangan maksimum akan merusak mikrokontroler. Selain itu, sumber tegangan juga harus  menyediakan arus yang dibutuhkan oleh mikrokontroler yang besarnya tergantung mode kerja dan periperal yang diaktifkan.

Gambar di atas menunjukan skema catu daya mikrokontroler STM32. Tegangan catu daya berasal dari sumber tegangan dari luar yang dihubungkan ke pin-pin catu daya yang dimiliki oleh STM32. Setidaknya ada 4 jenis pin catu daya yang dimiliki oleh STM32, yaitu:

  1. Catu daya digital (VDD & VSS)
  2. Catu daya analog (VDDA & VSSA)
  3. Catu daya referensi untuk ADC (VREF)
  4. Tegangan cadangan (VBAT)

Keempat sistem catu daya tersebut merupakan sistem catu daya yang terpisah. VDD digunakan untuk mentenagai sistem digital yang ada di STM32, IO, periperal, core, memory (Flash dan RAM). Tegangan dari pin VDD ini akan diturunkan menjadi tegangan 1.2V oleh regulator internal. Tujuannya tentu saja untuk mengurangi disipasi daya di dalam internal STM32 agar tidak dihasilkan panas yang berlebihan. Tegangan analog (VDDA & VSSA) digunakan untuk mencatu bagian analag (ADC dan DAC), sensor suhu internal, PLL dan sistem reset. VREF merupakan tegangan untuk memberikan tegangan referensi untuk ADC dan DAC. VREF biasanya dihubungkan langsung dengan VDDA. Sedangkan VBAT merupakan untuk mencatu Backup SRAM dan Backup Register serta osilator frekuensi rendah yang digunakan untuk RTC. Tegangan VBAT akan menjaga isi BKP SRAM dan register serta RTC tetap jalan ketika catu utama (VDD) terputus. Ada mekanisme switching di internal STM32.

Konfigurasi pin-pin catu daya STM32 tergantung dari kemasan dan serinya. Pin tegangan di kemasan 14 pastinya akan berbeda dengan pin tegangan di kemasan 144 pin. Datasheet dan Refence manual merupakan rujukan terbaik.

Dalam merancang sistem tegangan untuk STM32, ada beberapa hal yang harus diperhatikan, yaitu

  1. Semua pin catu daya harus dihubungkan dengan sumber tegangan (VDD, VDDA, VSS dan VSSA).
  2. Setiap pin VDD/VDDA/VREF dihubungkan dengan kapasitor decoupling eksternal dengan nilai 100 nF (kapasitor keramik) untuk masing-masing pin dan 1 kapasitor tantalum bernilai minimal 4.7uF. Semua kapasitor tersebut, diletakan sedekat mungkin dengan masing-masing pin tegangan.
  3. VBAT dihubungkan dengan batere atau kapasitor super eksternal
  4. VCAP dihubungkan dengan kapasitor 2.2uF
  5. VREF- dihubungkan dengan VSSA
  6. VDDA bisa dihubungkan dengan VDD melalui ferrite bead, terutama ketika ADC atau DAC diaktifkan. Ada pemisahan digital dengan analog, meningkatkan akurasi ADC
  7. VSSA juga bisa dihubungkan dengan VSS melalui ferrite bead

SISTEM RESET

Setiap kali catu daya dinyalakan, mikrokontroler harus dalam kondisi reset,untuk menginisialisasi semua register ke nilai yang diketahui, sehingga bisa bekerja sesuai program yang diinginkan. Atau ketika MCU mengalami hang maka harus ada mekanisme untuk mengembalikannya ke keadaan awal baik secara manual maupun secara software.

STM32 mempunyai beberapa sumber reset

  1. Reset eksternal melalui pin NRST (aktif rendah)
  2. Timer watchdog (WWDG dan IWDG)
  3. Reset dari software
  4. Reset dari manajemen catu daya

Reset eksternal berasal dari pin NRST, biasanya dihubungkan dengan sebuah kapasitor 0,1uF dan sebuah saklar untuk mereset MCU secara manual. Reset dari timer watchdog, terjadi ketika program mengaktifkan timer watchdog (IWDG maupun WWDG). Timer watchdog digunakan agar ketika program menjadi hang, timer watchdog bisa digunakan untuk mereset untuk mengembalikan ke kondisi awal.Reset software terjadi ketika program mengeksekusi perintah reset untuk tujuan tertentu, misal untuk menjalankan bootloader pada proses upgrade program. Reset terakhir berasal  dari manajemen catu daya.

Seperti telah disebutkan, bahwa mikrokontroler akan bekerja dengan catu daya diantara tegangan minimum dan maksimumnya. Untuk menjaga agar catu daya berada dibawah maksimum, sebuah regulator  tegangan eksternal diperlukan. Ketika tegangan catu daya berada di bawah minimum (disebut kondisi  brown out), mikrokontroler harus dipaksa untuk reset, karena tegangan dibawah minimum bisa mengakibatkan mikrokontroler menjalankan program yang tidak diinginkan. Oleh karena itu detektor tegangan diperlukan. STM32 sudah dilengkapi dengan detektor tegangan internal. Detektor ini akan menjaga agar STM32 tetap dikondisi reset saat tegangan di bawah tegangan minimum saat power  on (Power On Reset) dan saat catu daya dihilangkan (Power Down Reset). Detektor tegangan ini juga bisa diprogram agar ambang batas tegangan bisa diatur (Programmable Voltage Detector).

SISTEM CLOCK

 

 

Be the first to comment

Leave a Reply

Your email address will not be published.


*