Pelajaran 1Perbandingan keluarga mikrokontroler: AVR, PIC, ARM Cortex-M (M0/M3/M4) — performa, periferal, dan ekosistemBagian ini membandingkan keluarga mikrokontroler utama. Anda akan memeriksa perangkat AVR, PIC, dan ARM Cortex-M dari segi performa, periferal, alat, ekosistem, biaya, dan kesesuaian untuk desain tertanam berfokus komunikasi.
Arsitektur AVR, kekuatan, dan kasus penggunaanKeluarga PIC dan domain aplikasi tipikalInti ARM Cortex-M: Fitur M0, M3, dan M4Ekosistem, alat, dan dukungan komunitasPeriferal, memori, dan penskalaan performaBiaya, ketersediaan, dan siklus hidup jangka panjangPelajaran 2Keamanan firmware dasar: Penggunaan watchdog timer, pelaporan kesalahan, dan strategi reset yang tangguhBagian ini berfokus pada mekanisme keamanan firmware dasar. Anda akan mengonfigurasi watchdog timer, merancang alur reset dan pemulihan aman, menerapkan pelaporan kesalahan, serta memastikan hang atau kondisi korup terdeteksi dan ditangani.
Konfigurasi dan feeding watchdog timerMendeteksi dan menangani lockup dan loop matiPenanganan brown-out, POR, dan reset eksternalMenyimpan penyebab reset dan konteks kesalahanLogging nonvolatile kegagalan kritisMode restart aman dan operasi terdegradasiPelajaran 3Anggaran GPIO dan periferal: Kanal ADC, port UART/SPI/I2C, timer, interrupt dan perencanaan DMABagian ini mencakup pemetaan GPIO dan periferal on-chip ke kebutuhan sistem. Anda akan merencanakan kanal ADC, port serial, timer, interrupt, dan penggunaan DMA untuk menghindari konflik, mendukung ekspansi masa depan, dan memenuhi batasan waktu nyata.
Membuat inventaris sinyal dan pin lengkapMemetakan kanal ADC ke sensor dan referensiMengalokasikan UART, SPI, dan I2C untuk periferalAlokasi timer untuk PWM, capture, dan timebasePertimbangan prioritas dan nesting interruptMerencanakan kanal DMA untuk throughput data tinggiPelajaran 4Pilihan perangkat keras MCU esensial: Tegangan catu daya, sumber jam (RC internal, kristal, osilator eksternal), dan domain dayaBagian ini memandu pilihan perangkat keras MCU utama. Anda akan mengevaluasi rentang tegangan catu daya, opsi sumber jam, dan domain daya, mempertimbangkan performa, noise, akurasi analog, dan kompatibilitas dengan sensor, radio, dan logika eksternal.
Memilih tegangan catu inti dan regulatorLevel tegangan I/O dan kebutuhan level shiftingKelebihan dan kekurangan osilator RC internalPemilihan kristal dan osilator eksternalMemisahkan domain daya analog dan digitalImplikasi decoupling dan tata letak groundPelajaran 5Clocking dan timing: Memilih sumber jam, mengonfigurasi system tick, mode daya rendah dan sumber wakeBagian ini menjelaskan konfigurasi pohon jam dan timing. Anda akan memilih sumber jam, mengatur PLL, mengonfigurasi system tick, serta merancang mode daya rendah dan sumber wake sambil memenuhi persyaratan timing, jitter, dan konsumsi daya.
Ikhtisar pohon jam dan langkah konfigurasiPLL, prescaler, dan tradeoff frekuensiKonfigurasi system tick dan penjaga waktuPenggunaan timer untuk delay dan penjadwalanPemilihan mode sleep dan stop daya rendahManajemen sumber wakeup dan latensiPelajaran 6Desain driver ADC: Urutan sampling, oversampling, averaging, dan timing konversiBagian ini merinci desain driver ADC untuk pengukuran akurat. Anda akan merencanakan urutan sampling, mengonfigurasi trigger, menerapkan oversampling dan averaging, mengelola timing konversi, serta meminimalkan noise melalui teknik perangkat keras dan firmware.
Pemilihan dan kalibrasi referensi ADCPemindai kanal dan konfigurasi scanPemilihan waktu sampling dan sumber triggerOversampling, averaging, dan filteringAkuisisi data ADC berbasis DMAMeringankan noise dan crosstalk pada pembacaanPelajaran 7Manajemen daya tertanam: Mode sleep, deteksi brown-out, RTC untuk wakeup, dan pertimbangan bateraiBagian ini membahas strategi manajemen daya tertanam. Anda akan menggunakan mode sleep, deteksi brown-out, dan wakeup berbasis RTC, serta mempertimbangkan kimia baterai, kapasitas, dan umur untuk sistem komunikasi daya rendah yang andal.
Pemilihan dan kriteria masuk mode sleepKonfigurasi RTC untuk event wake berjangkaAmbang deteksi brown-out dan aksiMengukur dan menganggarkan arus rata-rataKimia baterai dan perilaku pengosonganMerancang untuk umur baterai panjang dan keamananPelajaran 8Arsitektur dan alur firmware: Boot, inisialisasi periferal, rutinitas baca sensor, penanganan kesalahan, format data, penjadwalan komunikasiBagian ini menyajikan struktur firmware keseluruhan dari reset hingga operasi normal. Anda akan merancang alur boot, inisialisasi periferal, loop baca sensor, jalur penanganan kesalahan, format data, dan penjadwalan komunikasi untuk perilaku deterministik.
Ikhtisar urutan boot dan kode startupUrutan inisialisasi periferal dan middlewareMerancang tugas baca sensor berkalaPenanganan dan logging kesalahan terpusatFormat data, penskalaan, dan penanganan unitDesain penjadwalan kooperatif dan loop utamaPelajaran 9Desain driver komunikasi: Stack UART, SPI, I2C; pendekatan polling vs interrupt vs DMABagian ini menjelaskan cara merancang driver UART, SPI, dan I2C yang dapat digunakan kembali. Anda akan membandingkan metode polling, interrupt, dan DMA, mendefinisikan API driver, menangani kesalahan dan timeout, serta mengintegrasikan driver ke stack protokol tingkat lebih tinggi.
Arsitektur berlapis untuk driver serialDriver UART: Framing, buffering, dan flow controlDriver SPI: Mode, chip select, dan throughputDriver I2C: Addressing, arbitrasi, dan retriesTransfer berbasis polling versus interruptDesain transfer dan ring buffer berbasis DMA