Gambar asli:
![]() |
| Spul ada pole yang kosong karena terbakar saya bongkat |
SCIENCE is about KNOWING, ENGINEERING is about DOING
Gambar asli:
![]() |
| Spul ada pole yang kosong karena terbakar saya bongkat |
Kiprok motor merupakan salah satu komponen penting dalam sistem kelistrikan sepeda motor. Komponen yang juga disebut regulator/rectifier ini bertugas menyearahkan listrik dari spul sekaligus mengatur tegangan pengisian aki agar tetap berada pada batas yang aman.
Banyak pemilik motor baru menyadari pentingnya kiprok ketika aki tiba-tiba tekor, lampu sering putus, starter elektrik melemah, atau tegangan aki terlalu tinggi. Padahal, masalah tersebut tidak selalu disebabkan oleh aki. Kiprok, spul, kabel, konektor, dan sistem massa juga perlu diperiksa.
Lalu, sebenarnya apa fungsi kiprok motor? Bagaimana cara kerjanya? Berapa tegangan kiprok motor yang normal? Dan bagaimana cara mengetahui kiprok mulai rusak?
Kiprok adalah istilah yang umum digunakan untuk menyebut regulator/rectifier pada sepeda motor.
Nama tersebut menggambarkan dua fungsi utama komponen ini:
Rectifier: menyearahkan tegangan AC dari spul menjadi DC.
Regulator: mengatur dan membatasi tegangan agar tidak berlebihan.
Pada motor dengan sistem kelistrikan 12 volt, aki membutuhkan tegangan pengisian yang lebih tinggi daripada tegangan nominal aki. Karena itu, ketika mesin hidup, tegangan pada sistem kelistrikan biasanya berada di sekitar 13–14 volt lebih.
Secara sederhana, alur sistem pengisian dapat digambarkan:
Spul → Kiprok → Aki → Sistem kelistrikan motor
Tanpa pengaturan tegangan yang baik, kenaikan putaran mesin dapat menyebabkan tegangan listrik meningkat terlalu tinggi dan berpotensi merusak aki maupun komponen elektronik motor.
Secara umum, ada dua fungsi utama kiprok motor.
Spul atau alternator menghasilkan listrik AC ketika mesin berputar. Sementara itu, aki membutuhkan listrik DC.
Bagian rectifier pada kiprok bertugas mengubah tegangan AC tersebut menjadi DC.
Dengan demikian, listrik dari spul dapat digunakan untuk mengisi aki dan menyuplai berbagai perangkat kelistrikan motor.
Putaran mesin berubah-ubah sesuai kondisi berkendara. Ketika RPM meningkat, kemampuan spul menghasilkan listrik juga dapat meningkat.
Jika tegangan tersebut dibiarkan tanpa pengaturan, tegangan sistem dapat menjadi terlalu tinggi.
Di sinilah fungsi regulator bekerja. Regulator mengendalikan tegangan sistem sehingga pengisian aki tetap berada pada batas yang aman.
Karena kiprok harus menangani energi listrik yang cukup besar, komponen ini biasanya dilengkapi sirip pendingin untuk membantu membuang panas.
Cara kerja kiprok dapat dipahami dengan melihat prosesnya secara berurutan.
Ketika mesin hidup, poros engkol memutar magnet pada alternator sehingga spul menghasilkan listrik.
Listrik tersebut kemudian masuk ke kiprok.
Spul menghasilkan AC → rectifier menyearahkan AC menjadi DC → regulator mengendalikan tegangan → listrik digunakan untuk mengisi aki.
Pada regulator tipe shunt yang banyak digunakan pada sepeda motor, ketika tegangan meningkat melewati titik regulasi, regulator mengendalikan sebagian energi listrik agar tegangan sistem tidak terus meningkat.
Energi berlebih pada proses regulasi tersebut pada akhirnya banyak berubah menjadi panas. Karena itu, kiprok motor yang panas saat mesin bekerja tidak selalu berarti rusak. Kiprok memang dirancang untuk bekerja dengan pelepasan panas.
Yang perlu dicurigai adalah apabila kiprok menjadi sangat panas disertai gejala seperti konektor meleleh, bau terbakar, tegangan pengisian tidak normal, atau komponen mengalami kerusakan.
Salah satu pertanyaan yang sering muncul adalah:
“Berapa volt tegangan kiprok motor yang normal?”
Untuk sistem sepeda motor 12 volt, tegangan pada terminal aki ketika mesin hidup umumnya berada di kisaran 13,5–14,5 volt, meskipun nilai sebenarnya dapat berbeda tergantung desain sistem pengisian dan spesifikasi masing-masing motor.
Sebagai gambaran:
| Kondisi | Tegangan aki |
|---|---|
| Mesin mati, aki penuh | ±12,6–12,8 V |
| Mesin hidup/idle | ±13–14 V |
| RPM dinaikkan | Umumnya sekitar 13,5–14,5 V |
| Lebih dari 15 V terus-menerus | Perlu diperiksa |
| Sekitar 16 V atau lebih | Indikasi overcharge |
Angka tersebut merupakan panduan umum, bukan pengganti spesifikasi servis masing-masing sepeda motor.
Sebagai contoh, beberapa model Honda memiliki spesifikasi pengisian yang berbeda. Karena itu, jika ingin melakukan diagnosis secara akurat, gunakan spesifikasi yang tercantum dalam service manual motor yang bersangkutan.
Secara teori, spul dapat menghasilkan tegangan yang lebih tinggi ketika putaran mesin meningkat. Namun, tegangan yang sampai ke aki tidak seharusnya naik tanpa batas.
Contohnya, secara sederhana:
RPM rendah → output spul relatif rendah → pengisian berlangsung
RPM meningkat → output spul meningkat → regulator mulai bekerja
RPM semakin tinggi → regulator membatasi tegangan → tegangan sistem tetap terkendali
Inilah alasan tegangan aki tidak seharusnya berubah menjadi 20, 30, atau bahkan 50 volt hanya karena mesin mencapai RPM tinggi.
Jadi, kiprok bukan hanya mengubah AC menjadi DC, tetapi juga mengendalikan tegangan sistem kelistrikan motor.
Ada beberapa gejala yang dapat menjadi indikasi kiprok mengalami masalah.
Jika aki selalu habis meskipun kondisi aki masih relatif baru, jangan langsung mengganti aki.
Periksa terlebih dahulu sistem pengisian, terutama spul dan kiprok.
Kiprok yang tidak mampu mengatur atau meneruskan pengisian dengan baik dapat menyebabkan aki tidak mendapatkan energi yang cukup.
Ini merupakan salah satu indikasi yang cukup penting.
Jika tegangan aki terus meningkat jauh di atas batas normal ketika RPM dinaikkan, regulator kemungkinan mengalami masalah.
Kondisi overcharge dapat memperpendek umur aki dan berpotensi mengganggu komponen kelistrikan lainnya.
Lampu yang sering putus dapat disebabkan oleh berbagai hal. Salah satunya adalah tegangan sistem yang terlalu tinggi.
Karena itu, jangan langsung menyimpulkan bahwa lampu berkualitas buruk. Ukur tegangan sistem menggunakan multimeter.
Kiprok memang menghasilkan panas ketika bekerja. Namun, jika panasnya berlebihan dan disertai bau terbakar, konektor meleleh, atau tegangan tidak normal, sistem pengisian perlu segera diperiksa.
Starter elektrik yang semakin berat atau hanya berbunyi “tek-tek” dapat disebabkan oleh aki yang kekurangan daya.
Salah satu penyebabnya adalah sistem pengisian tidak bekerja dengan baik.
Namun, gejala ini juga dapat disebabkan oleh aki yang sudah rusak, motor starter, relay starter, kabel, atau koneksi massa.
Pengecekan awal kiprok motor sebenarnya dapat dilakukan menggunakan multimeter digital.
Langkahnya cukup sederhana.
Atur multimeter pada pengukuran DC Volt.
Hubungkan:
Probe merah → terminal positif (+) aki
Probe hitam → terminal negatif (−) aki
Aki yang penuh dan dalam kondisi baik umumnya menunjukkan sekitar 12,6–12,8 volt setelah kondisi stabil.
Perhatikan tegangan pada kondisi idle.
Tegangan biasanya akan meningkat dibandingkan ketika mesin mati karena alternator mulai menghasilkan listrik.
Naikkan putaran mesin secara bertahap.
Perhatikan apakah tegangan:
naik kemudian stabil, atau
terus meningkat secara berlebihan.
Jika tegangan berada di sekitar rentang normal dan relatif stabil, sistem pengisian kemungkinan bekerja dengan baik.
Sebaliknya, apabila tegangan terus meningkat jauh di atas batas normal, perlu dilakukan pemeriksaan lebih lanjut terhadap kiprok, spul, kabel, konektor, dan massa.
Hal penting dalam mendiagnosis sistem pengisian adalah kiprok bukan satu-satunya komponen yang dapat menyebabkan masalah.
Sistem pengisian motor pada dasarnya terdiri dari beberapa bagian:
Spul/alternator → kiprok → kabel dan konektor → sekring → aki
Masalah juga dapat berasal dari:
Spul pengisian lemah atau rusak.
Konektor kiprok kotor atau terbakar.
Kabel mengalami resistansi tinggi.
Massa/ground tidak bagus.
Aki sudah mengalami kerusakan.
Kiprok mengalami kerusakan regulator atau rectifier.
Karena itu, mengganti kiprok tanpa melakukan pengukuran terlebih dahulu belum tentu menyelesaikan masalah.
Istilah full-wave dan half-wave berkaitan dengan bagaimana sistem pengisian memanfaatkan gelombang AC yang dihasilkan oleh spul.
Pada sistem full-wave, kedua sisi kumparan pengisian digunakan melalui rangkaian penyearah sehingga pemanfaatan energi AC lebih optimal.
Sementara pada sistem half-wave atau sistem dengan konfigurasi tertentu, hanya bagian tertentu dari gelombang atau konfigurasi kumparan yang dimanfaatkan dalam proses penyearahan.
Karena konstruksi spul dan sistem kelistrikan setiap motor berbeda, kiprok full-wave tidak boleh langsung dipasang pada semua motor.
Jika ingin mengubah sistem half-wave menjadi full-wave, biasanya diperlukan perubahan pada konfigurasi kumparan spul dan jalur kabelnya, bukan hanya mengganti kiprok.
Kiprok motor adalah komponen yang berfungsi menyearahkan listrik AC dari spul menjadi DC sekaligus mengatur tegangan pengisian aki.
Komponen ini sangat penting karena tegangan yang dihasilkan spul dapat berubah mengikuti putaran mesin. Regulator pada kiprok menjaga agar tegangan sistem tidak meningkat secara berlebihan.
Untuk motor 12 volt, tegangan aki ketika mesin hidup umumnya berada di sekitar 13,5–14,5 volt, tetapi spesifikasi pabrikan tetap menjadi acuan utama.
Jika aki sering tekor, lampu sering putus, starter elektrik lemah, atau tegangan aki terlalu tinggi, jangan hanya mengganti aki. Periksa seluruh sistem pengisian yang terdiri dari spul, kiprok, kabel, konektor, massa, dan aki.
Dengan menggunakan multimeter, pemeriksaan awal sebenarnya dapat dilakukan dengan cukup mudah. Yang paling penting adalah melihat tegangan aki saat mesin mati, saat idle, dan ketika RPM dinaikkan, kemudian membandingkannya dengan spesifikasi motor yang bersangkutan.
Untuk men-drive MOSFET dengan logika 3,3 V dari STM32, ESP32, atau Teensy, kuncinya adalah: jangan hanya melihat tulisan “VGS(th)” pada datasheet. Yang menentukan MOSFET benar-benar ON adalah spesifikasi RDS(on) pada VGS = 2,5 V atau 3,3 V.
Untuk low-side switching:
+12 V│LOAD│D┌───┴───┐3.3 V ──┤ Gate ││ MOSFET│└───┬───┘S│GNDMCU GND ────┘
Ketika GPIO = 3,3 V, MOSFET harus masuk kondisi ON dengan resistansi drain-source yang rendah.
Misalnya datasheet mengatakan:
VGS(th) = 1–2 V
Bukan berarti MOSFET sudah cocok untuk GPIO 3,3 V.
VGS(th) hanya menunjukkan MOSFET mulai menghantarkan arus kecil, bukan sudah fully enhanced.
Yang harus dicari:
| Parameter datasheet | Yang dicari |
|---|---|
| VGS(th) | ≤ 2 V |
| RDS(on) @ VGS = 4.5 V | bagus |
| RDS(on) @ VGS = 2.5 V | sangat penting untuk 3,3 V |
| RDS(on) @ VGS = 3.3 V | ideal |
| ID | sesuai arus beban |
| VDS | lebih tinggi dari tegangan beban |
Untuk sistem STM32 3,3 V → beban 12 V, saya lebih menyukai MOSFET tipe logic-level 3,3 V, misalnya:
IRF520 kurang ideal untuk GPIO 3,3 V.
IRF3205 juga bukan pilihan terbaik jika gate hanya diberi 3,3 V, walaupun MOSFET tersebut sangat bagus untuk kondisi gate yang lebih tinggi.
Untuk STM32 Nucleo G474RE → MOSFET → lampu 12 V/35 W:
+12 V││Lampu 12V/35W││D┌────┴────┐STM32 │ N-MOSFET│GPIO ──100Ω──┤ G S├──── GND└────┬────┘│GND
Tambahkan:
GPIO STM32│100Ω│├──────── Gate MOSFET│10kΩ│GND
Jadi:
Gate MOSFET sebenarnya bersifat kapasitif.
Saat GPIO berubah:
3.3 V ──► resistor ──► Gate
resistor sekitar 47–220 Ω membantu membatasi peak current dan mengurangi ringing/EMI.
Untuk eksperimen STM32:
100 Ω adalah nilai awal yang sangat baik.
Ketika STM32 baru reset atau GPIO masih floating:
GPIO = Hi-Z
Gate MOSFET bisa mendapatkan tegangan tidak terduga.
Dengan:
Gate ──10kΩ── GND
MOSFET dipastikan:
GPIO HIGH → MOSFET ONGPIO LOW → MOSFET OFFGPIO Hi-Z → MOSFET OFF
Arus nominal:
I=VP I=1235=2.92AJadi MOSFET harus mampu menangani sekitar 3 A, tetapi saya tidak akan memilih MOSFET yang spesifikasinya hanya pas 3 A.
Lebih aman memilih MOSFET dengan kemampuan arus ≥10 A dan RDS(on) rendah.
Misalnya jika:
RDS(on)=0.02Ωmaka:
PMOSFET=I2R P=(2.92)2(0.02) P≈0.17WIni sangat rendah.
Tetapi jika MOSFET hanya half-on karena gate 3,3 V dan RDS(on) menjadi, misalnya, 0,2 Ω:
P=(2.92)2(0.2) P≈1.7WMOSFET mulai panas signifikan.
Inilah alasan pemilihan MOSFET berdasarkan RDS(on) pada VGS 2,5/3,3 V sangat penting.
Ada dua solusi.
STM32 3.3 V│▼Logic-Level MOSFET│▼12 V Load
Ini solusi paling sederhana.
Jika ingin memakai MOSFET seperti IRF3205 untuk arus besar:
STM323.3 V│▼MOSFET DRIVER││ 10–12 V gate▼IRF3205│▼LOAD
Contoh konsep:
STM32 ──► Gate Driver ──► MOSFET3.3V 10-12V │▼Load
Driver gate memberikan arus charging/discharging gate yang jauh lebih besar dan tegangan gate yang sesuai.
Karena menggunakan STM32G474RE dan kemungkinan mengendalikan heater dengan PWM, justru disarankan:
STM32G474RE││ PWM 3.3 V▼100 Ω│▼Logic-Level MOSFET│▼12 V / 35 W heater
Untuk PWM frekuensi beberapa kHz, pastikan gate charge (Qg) MOSFET tidak terlalu besar. MOSFET dengan Qg besar membutuhkan arus gate lebih besar agar switching cepat.
Untuk aplikasi Fuzzy Supervisory PID temperatur inkubator, tidak perlu mengejar PWM sangat tinggi. Frekuensi sekitar 1–5 kHz biasanya sudah jauh lebih dari cukup untuk heater lampu, dan beban termal sendiri sangat lambat.
Untuk STM32 3,3 V → MOSFET → heater 12 V/35 W, konfigurasi yang saya rekomendasikan:
GPIO STM32 → 100 Ω → Gate MOSFET
Gate → 10 kΩ → GND
Source → GND
Drain → heater
heater → +12 V
Dan yang paling penting: pilih MOSFET yang datasheet-nya menjamin RDS(on) pada VGS 2,5 V atau 3,3 V, bukan hanya berdasarkan VGS(th).
Kalau Anda mau menggunakan IRF3205 yang sudah Anda punya, saya bisa hitungkan apakah GPIO STM32 3,3 V cukup untuk IRF3205, termasuk RDS(on), panas MOSFET, resistor gate, frekuensi PWM, dan apakah perlu gate driver.
Ya. Untuk IRF3205 + STM32G474RE 3,3 V + heater 12 V/35 W, hasilnya cukup jelas:
Saya tidak merekomendasikan IRF3205 langsung dari GPIO STM32 3,3 V.
IRF3205 memang MOSFET arus besar, tetapi bukan MOSFET yang ideal untuk gate drive 3,3 V. Pada 3,3 V, IRF3205 belum dijamin memiliki RDS(on) rendah.
Untuk sistem Anda:
STM32G474REPWM 3.3 V│▼Gate Driver│10–12 V│▼IRF3205│▼12 V / 35 W Heater
Heater Anda:
I=1235=2.92AJadi arus sekitar 2,9 A.
Kalau IRF3205 mendapatkan gate drive yang cukup tinggi, MOSFET dapat bekerja sangat baik. Tetapi jika hanya diberi 3,3 V, resistansi RDS(on) dapat jauh lebih tinggi daripada kondisi datasheet yang biasanya dispesifikasikan pada gate voltage yang lebih tinggi.
Akibatnya:
PMOSFET=I2RDS(on)Semakin besar RDS(on), semakin besar panas MOSFET.
+12 V││┌─────────┐│ HEATER ││ 35 W │└────┬────┘││D┌────┴────┐│ IRF3205 ││ │STM32 ──► DRIVER ─►G│ |│ │└────┬────┘S│GND│┌───────────────--┘│STM32 GND
Gate:
STM32 PWM│▼Gate Driver│├── 10–12 V│10Ω–22Ω│▼IRF3205 Gate│10kΩ│GND
| Komponen | Nilai |
|---|---|
| MOSFET | IRF3205 |
| Gate resistor | 10–22 Ω |
| Gate pull-down | 10 kΩ |
| Gate driver supply | 10–12 V |
| Heater | 12 V / 35 W |
| Arus heater | ≈2,92 A |
| PWM | sekitar 1–5 kHz |
| MCU | STM32G474RE, 3,3 V |
Kalau Anda belum membeli gate driver, saya justru menyarankan mengganti IRF3205 dengan MOSFET logic-level yang benar-benar dispesifikasikan pada VGS 2,5/3,3 V.
Untuk proyek inkubatorku, konfigurasi ini jauh lebih sederhana:
STM32 3.3 V│100Ω│▼Logic-Level MOSFET│▼Heater 12 V / 35 W
Tidak perlu gate driver, selama MOSFET yang dipilih memang memenuhi RDS(on) pada 3,3 V.
Debugging pada STM32 bukan sekadar mencari error compile. Tujuannya adalah menjalankan program secara bertahap sambil melihat nilai variabel, register, peripheral, dan aliran eksekusi secara real-time.
Untuk kasus STM32G474RE + STM32CubeIDE + PWM TIM1, alurnya seperti ini:
Di STM32CubeIDE:
Project → Build Project
Periksa bagian Console.
0 errors → program berhasil dikompilasi.
warning → belum tentu fatal.
error → program belum bisa di-debug.Nucleo-G474RE sudah memiliki ST-LINK onboard.
Hubungkan USB dari PC ke konektor ST-LINK USB pada board.
Kemudian:
Run → Debug As → STM32 Cortex-M C/C++ Application
CubeIDE akan masuk ke Debug Perspective.
Breakpoint adalah titik tempat CPU berhenti sementara.
Misalnya program:
HAL_TIM_PWM_Start(&htim1, TIM_CHANNEL_1);
while (1)
{
HAL_Delay(100);
}
Pasang breakpoint pada:
HAL_TIM_PWM_Start(&htim1, TIM_CHANNEL_1);
Caranya:
double-click nomor baris di sebelah kiri kode.
Akan muncul tanda breakpoint.
Ketika program berjalan dan mencapai baris tersebut, CPU berhenti.
Di toolbar Debug biasanya ada:
| Tombol | Fungsi |
|---|---|
| ▶ Resume | Melanjutkan program |
| ⏸ Suspend | Menghentikan CPU |
| ↪ Step Into | Masuk ke dalam fungsi |
| ↷ Step Over | Menjalankan satu baris |
| ↩ Step Return | Keluar dari fungsi |
| ⏹ Terminate | Menghentikan debugging |
Yang paling sering digunakan adalah:
Breakpoint → Resume → lihat nilai → Step Over
Misalnya Anda ingin:
TIM1_CH1 → PA8 → PWM 1 kHz → duty cycle 50%
Konfigurasi:
HAL_TIM_PWM_Start(&htim1, TIM_CHANNEL_1);
Kemudian:
__HAL_TIM_SET_COMPARE(&htim1, TIM_CHANNEL_1, 500);
Jika:
ARR = 999
CCR1 = 500
maka secara sederhana:
Saat breakpoint aktif, buka:
Window → Show View → Expressions
Tambahkan:
htim1.Instance
htim1.Init.Prescaler
htim1.Init.Period
Untuk PWM, yang paling penting:
TIM1->PSC
TIM1->ARR
TIM1->CCR1
Misalnya hasil:
PSC = 169 ARR = 999 CCR1 = 500
berarti kita dapat memeriksa konfigurasi PWM langsung dari register hardware.
Ini bagian yang sangat penting untuk STM32.
Jangan hanya melihat kode C. Periksa juga register peripheral.
Buka:
Window → Show View → SFRs
atau gunakan Live Expressions/Expressions.
Perhatikan:
TIM1->PSC TIM1->ARR TIM1->CCR1 TIM1->CR1 TIM1->CCMR1 TIM1->CCER TIM1->BDTR
Contoh interpretasi:
| Register | Yang diperiksa |
|---|---|
| PSC | Prescaler |
| ARR | Periode PWM |
| CCR1 | Duty cycle CH1 |
| CR1 | Counter configuration |
| CCMR1 | PWM mode |
| CCER | Channel enable |
| BDTR | Main Output Enable |
TIM1 adalah Advanced-Control Timer.
Ini penting.
Untuk PWM TIM1/TIM8 terdapat konsep Main Output Enable (MOE) melalui register:
TIM1_BDTR
Bit penting:
MOE = 1
Jika konfigurasi timer terlihat benar tetapi output PWM tidak muncul, BDTR/MOE perlu diperiksa.
Namun jika Anda menggunakan:
HAL_TIM_PWM_Start(&htim1, TIM_CHANNEL_1);
HAL biasanya menangani kebutuhan output utama tersebut untuk penggunaan PWM normal.
TIM1_CH1 pada konfigurasi umum dapat menggunakan:
PA8
PA8 tidak boleh dikonfigurasi sebagai GPIO Output biasa jika ingin menghasilkan PWM hardware.
Harus menjadi:
PA8 AF1 TIM1_CH1
Di CubeMX:
Pinout → PA8 → TIM1_CH1
Kemudian GPIO akan dikonfigurasi sebagai Alternate Function.
Secara konsep:
TIM1
│
└── CH1
│
▼
PA8
│
▼
PWM OUT
Misalnya clock TIM1:
TIM1CLK = 170 MHz
Prescaler:
PSC = 169
Maka:
Jika:
ARR = 999
maka:
Jadi konfigurasi:
TIM1CLK = 170 MHz PSC = 169 ARR = 999 CCR1 = 500
menghasilkan kira-kira:
PWM = 1 kHz Duty = 50%11. Jika PWM tidak keluar
Gunakan urutan debugging berikut:
PROGRAM │ ▼ HAL_TIM_PWM_Start() │ ▼ TIM1 berjalan? / \ NO YES │ │ ▼ ▼ cek clock cek CH1 │ ▼ PA8? / \ NO YES │ │ ▼ ▼ cek AF1 cek CCR1 │ ▼ cek CCER │ ▼ cek BDTR │ ▼ OSCILLOSCOPE
12. Debug dengan oscilloscope
Setelah software benar, ukur:
PA8 ───────── Oscilloscope CH1 GND ───────── Oscilloscope GND
Jika target:
Frequency = 1 kHz Duty = 50%
maka waveform kira-kira:
3.3V ┌───────┐ ┌───────┐ │ │ │ │ 0V ───┘ └───────┘ └──── 0.5 ms 0.5 ms <------ 1 ms --------->
Catatan: level logika STM32G474RE umumnya 3.3 V; jangan menghubungkan output PA8 langsung ke beban yang membutuhkan tegangan lebih tinggi.
Untuk program STM32 yang lebih kompleks, gunakan urutan:
Level 1 — Compile
Apakah program berhasil build?
↓
Level 2 — Program execution
Apakah CPU masuk main()?
↓
Level 3 — Peripheral initialization
Apakah MX_TIM1_Init() dijalankan?
↓
Level 4 — Peripheral start
Apakah HAL_TIM_PWM_Start() dijalankan?
↓
Level 5 — Register
PSC ARR CCR1 CCER BDTR
↓
Level 6 — Pin
PA8 = TIM1_CH1 / AF1
↓
Level 7 — Hardware
Oscilloscope / Logic Analyzer
Ini jauh lebih efektif daripada langsung mengubah-ubah kode secara acak.
STM32CubeIDE │ ▼ Build │ ▼ Debug │ ▼ Breakpoint │ ▼ main() │ ▼ MX_TIM1_Init() │ ▼ HAL_TIM_PWM_Start() │ ▼ Check TIM1 Registers │ ▼ Check PA8 / AF1 │ ▼ Oscilloscope
Intinya: debugging STM32 yang benar dilakukan dari
software → peripheral → register → GPIO → sinyal fisik.
Untuk kasus PWM TIM1, jangan berhenti pada “program tidak error”; pastikan TIM1 benar-benar running dan PA8 benar-benar mengeluarkan waveform PWM.