Sistem minimum yang dibutuhkan STM32 terdiri dari catu daya, sistem reset, dan clock. Catu daya harus sesuai spesifikasi tegangan dan dihubungkan dengan kapasitor decoupling. Sistem reset memastikan STM32 dalam kondisi reset saat nyala. Clock dapat berasal dari internal atau eksternal dan ditentukan kecepatan kerja STM32. Debug pin memungkinkan debugging program.
2. SISTEM MINIMUM
Sistem Minimum STM32
Catu Daya
Sistem Reset
Sistem Minimum: Hardware minimum yang dibutuhkan agar sebuah
mikrokontroler bisa berjalan dengan baik
Clock
Konfigurasi Boot
Sistem Debug
3. CATU DAYA
CATU DAYA STM32
STM32 bekerja di tegangan 1.8V – 3.6V.
Tegangan yang biasa dipakai 3.3V
Tegangan core 1.2V dengan regulator internal
Untuk bekerja dengan baik, mikrokontroler memerlukan catu daya dengan
tegangan dan arus yang sesuai dengan yang tercantum dalam datasheet
Tegangan core 1.2V dengan regulator internal
Tegangan terpisah untuk bagian analog (ADC, DAC, Reset, PLL)
Tegangan terpisah juga untuk RTC dan SRAM Backup
Untuk catu daya digital dinamakan VDD dan VSS
Untuk catu daya analog dinamakan VDDA dan VSSA
Untuk catu daya batere dinamakan VBAT
Tegangan acuan untuk ADC/DAC dinamakan dengan VREF+ dan VREF-
VCAP digunakan untuk memfilter regulator internal melalui kapasitor
5. REKOMENDASI CATU DAYA
SKEMA CATU DAYA
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
VBAT dihubungkan dengan batere atau kapasitor super eksternal
VCAP dihubungkan dengan kapasitor 2.2uF
VREF- dihubungkan dengan VSSA
Selain nilai tegangan yang harus sesuai dengan spesifikasi, kestabilan dan rendahnya noise di
catu daya sangat diperlukan
VREF- dihubungkan dengan VSSA
VDDA bisa dihubungkan dengan VDD melalui ferrite bead
VSSA juga bisa dihubungkan dengan VSS melalui ferrite bead
Ada pemisahan digital dengan analog, meningkatkan akurasi ADC
6. SISTEM RESET
SUMBER RESET STM32
Reset eksternal melalui pin NRST (aktif rendah)
Timer watchdog (WWDG dan IWDG)
Reset dari software
Reset dari manajemen catu daya
Sumber reset bisa dibaca melalui register status (RCC_CSR)
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
Sumber reset bisa dibaca melalui register status (RCC_CSR)
Pin NRST disarankan untuk dipulldown oleh kapasitor 100nF
Jika diinginkan untuk reset manual, bisa ditambah push button.
7. DETEKSI CATU DAYA
DETEKTOR TEGANGAN
STM32 tidak boleh diberi tegangan yang melebihi spesifikasinya. Harus diatur dari luar
STM32 juga tidak boleh diberi tegangan di bawah spesifikasinya. Ada detektor internal.
STM32 dilengkapi dengan POR (Power On Reset) dan PDR (Power Down Reset), yang akan memastikan saat
power on dan power down, STM32 berada di kondisi reset saat tegangan catu daya < 1.8V
Untuk memastikan bahwa STM32 bekerja dengan tegangan yang sesuai spesifikasinya.
power on dan power down, STM32 berada di kondisi reset saat tegangan catu daya < 1.8V
STM32 juga dilengkapi dengan PVD (Programmable Voltage Detector), yang akan memonitor tegangan catu
daya, saat STM32 bekerja. Ketika tegangan berada di bawah ambang batas yang ditetapkan, PVR akan
mereset STM32.
8. CLOCK
SUMBER CLOCK STM32 (SYSCLK)
Clock utama dan clock sekunder
Clock Utama:
Clock internal HSI (High Speed Internal ) atau MSI (Multi Speed Internal)
Clock bisa diibaratkan mesin bagi mikrokontroler. Kecepatan (Frekuensi) clock akan menentukan
kecepatan processing dari mikrokontroler.
Clock internal HSI (High Speed Internal ) atau MSI (Multi Speed Internal)
Clock eksternal HSE (High Speed External)
Clock dari PLL (Phase Locked Loop)
Digunakan untuk sistem utama
Clock Sekunder:
Clock Internal LSI (Low Speed Internal)
Clock Eksternal LSE (Low Speed External)
Digunakan untuk RTC, Watchdog
9. EKSTERNAL CLOCK HSE
SUMBER CLOCK EKSTERNAL
Bisa berasal dari osilator eksternal (mode HSE Bypass)
Dengan kristal eksternal
Frekuensi maksimal untuk mode bypass 1 – 16 MHz (STM32F2)
Sumber clock yang berasal dari luar. HSE dibutuhkan terutama untuk periperal yang berkecepatan
tinggi dan membutuhkan frekuensi stabil, misal USB.
Frekuensi maksimal untuk mode bypass 1 – 16 MHz (STM32F2)
Frekuensi maksimal untuk mode kristal 4-26 MHz (STM32F2)
Nilai REXT tergantung pada nilai kristal yang dipakai, biasanya 5-6xRs (resistansi seri kristal)
Nilai kapasitor CL ditentukan oleh
CL = CL1 x CL2 / (CL1 + CL2) + Cstray
Cstray, nilai kapasitansi PCB
Nilai CL1 dan CL2 5-25pF
10. EKSTERNAL CLOCK LSE
SUMBER CLOCK LSE
Bisa berasal dari kristal atau osilator eksternal
Frekuensi dari kristal eksternal biasanya 32.768 kHz
Sumber clock yang berasal dari luar. Dibutuhkan terutama untuk akurasi RTC
Frekuensi dari osilator eksternal bisa sampai 1 MHz
11. SUMBER CLOCK INTERNAL
SUMBER CLOCK INTERNAL
HSI dan MSI
Frekuensi HSI berkisar dari 8 – 16 MHz
Sumber clock berasal dari osilator RC internal. Bisa untuk cost down. Pin eksternal clock bisa
digunakan sebagai GPIO.
Frekuensi MSI berkisar dari 65KHz – 4MHz
MSI, biasanya ada di seri low power STM32L. Karena salah satu cara agar mikrokontroler bekerja di
daya rendah adalah dengan bekerja di frekuensi rendah.
HSI tidak bisa digunakan untuk mengaktifkan periperal USB, kecuali di seri STM32L yang sudah
dirancang agar USB bisa aktif dengan osilator internal
12. SUMBER CLOCK PLL
PLL (Phase Locked Loop) digunakan untuk menghasilkan frekuensi clock system (SYSCLK) yang lebih
tinggi tanpa membutuhkan kristal atau osilator frekuensi tinggi yang harganya lebih mahal. Selain
itu pembangkitan sinyal frekuensi tinggi di internal mengurangi penanganan frekuensi tinggi secara
eksternal. PLL diaktifkan melalui software.
13. KONFIGURASI BOOT
PIN KONFIGURASI BOOT STM32
Ada 2 pin, BOOT0 dan BOOT1
BOOT0 adalah pin yang memang didedikasikan
Proses Booting adalah proses pengambilan program/instruksi dari sebuah memori untuk dikerjakan
oleh mikrokontroler. STM32 bisa diatur untuk booting dari flash memory, System memory atau
SRAM
BOOT1 diambil dari salah satu GPIO (PB2)
Konfigurasi pin BOOT:
System memory, berisi program bootloader yang biasa dipakai untuk memprogram flash
STM32,misal melalui UART
Aplikasi kebanyakan langsung menghubungkan BOOT0 ke ground, biasanya melalui resistor 100K.
Atau bisa juga dengan switch untuk memilih di logika 1 atau 0, mengaktifkan bootloader
14. SISTEM DEBUG
SISTEM DEBUG ARM CORTEX-M
Bagian dari core ARM Cortex-M
Menggunakan arsitektur CoreSight
Bisa menghentikan program, menjalankan program langkah demi langkah, dan break point
Debug merupakan proses pencarian kesalahan (bug) yang mungkin terjadi ketika sebuah
program atau software berjalan. Debug dilakukan saat proses pengembangan (penulisan
program).
Bisa menghentikan program, menjalankan program langkah demi langkah, dan break point
Mengakse data dari dari semua memori (termasuk flash) dan register (CPU dan periperal)
Port debug adalah DAP (Debug Access Port), yang akan menghubungkan CPU dengan host debug,
biasanya adalah PC
Antarmukanya JTAG (J-DP) atau SWD (SW-DP)
15. ANTARMUKA PORT DEBUG
PIN-PIN JTAG & SWD
JTAG terdiri atas 5 pin
1. TDI (Test Data In)
JTAG (Joint Test Action Group) pada dasarnya adalah standar untuk pengetesan sistem elektronik.
Sekarang dipakai untuk memprogram, mendebu System on chip(SOC), mikrokontroler, FPGA atau
DSP. SWD (Serial Wire Debug) sistem debug yang dikembangkan oleh ARM.
2. TDO (Test Data Out)
3. TMS (Test Mode Select)
4. TCK (Test Clock)
5. TRST (Test Reset), optional
SWD terdiri atas 2 pin
1. SWDIO, data 2 arah
2. SWCLK, clock
3. SWO, Output asinkron untuk trace (optional)
Pin TCK dan TMS di JTAG, berbagi fungsi dengan pin SWCLK dan SWDIO di SWD
TCK di JTAG bisa sampai 100 MHz, sedangkan SWCLK di SWD bisa sampai 50 MHz
16. PIN-PIN JTAG & SWD STM32
Pin-pin debug merupakan fungsi alternatif GPIO
Disarankan untuk menggunakan mode SWD, terutama pada package dengan jumlah pin yang sedikit
Di package yang pinnya sedikit (misal TSSOP14), tidak ada port JTAG
Pin JTAG yang tidak terpakai (TRST,TDO, dan TDI) dan pin SW bisa untuk GPIO
Jika semua port debug dipakai sebagai GPIO, maka STM32 tidak akan bisa di-debug
Pin JTAG & SWD di STM32 pada dasarnya adalah GPIO yang difungsikan sebagai pin JTAG atau SWD
(fungsi alternatif). Secara default setelah reset, pin-pin tersebut langsung berfungsi sebagai
JTAG/SWD . Pin-pin JTAG juga bisa dipakai sebagai pin GPIO.
Untuk mendownload program bisa menggunakan bootloader
Atau, setelah masuk ke bootloader, diakses lagi melalui port JTAG atau SWD
Pin BOOT0 diberi logika tinggi.