Büyükler için · 16+ · simülasyon + kod + test
ARM (STM32) ile Gömülü Programlama
Bir Cortex-M mikrodenetleyicisini yazmaç düzeyinden FreeRTOS'a kadar öğren: bellek haritası, GPIO, saat ağacı, zamanlayıcı ve PWM, kesmeler, UART, ADC ve DMA, I²C/SPI, düşük güç. Her ünitede yazmaçları ve dalga biçimlerini gösteren bir tarayıcı simülasyonu, kayıt düzeyi ve HAL ile C kodu ve kısa bir test var. Kart olmadan başlanır; Wokwi ve gerçek Nucleo kartıyla tekrarlanır.
- Ünite
- 11
- Simülasyon
- 12
- Saat
- 47
Kimler için
- Hedef kitle
- 16 yaş ve üzeri; meslek lisesi (elektrik-elektronik), üniversite ve meslekten öğrenenler
- Süre
- 11 ünite, yaklaşık 47 saat (ders + uygulama)
- Ön koşul
- C dilinde temel bilgi (değişken, işaretçi, bit işlemleri) ve Arduino ya da benzeri bir kartla deneyim. Raspberry Pi dersi yardımcıdır ama şart değildir.
- Belge
- Üniteleri ve bitirme projesini tamamlayanlar Macademia katılım belgesi alır.
Kazanımlar
- Başvuru kılavuzundan yazmaç okuyup bir çevre birimini sıfırdan ayarlamak
- Aynı işi HAL ve kayıt düzeyiyle yazıp ödünleşimini savunmak
- Saat ağacını, zamanlayıcıları ve PWM'i hesapla tasarlamak
- Kesme öncelikleri ve DMA ile zamanlaması güvenilir firmware yazmak
- UART, I²C ve SPI'ı dalga biçimi düzeyinde anlayıp hata ayıklamak
- FreeRTOS ile çok görevli, test edilmiş bir firmware kurmak
Üniteler
| Ünite | Konu | Saat | Simülasyonlar |
|---|---|---|---|
| 1 | Cortex-M mimarisi ve bellek haritası ARM çekirdeği, STM32 aileleri, Harvard veri yolları ve her şeyin bir adres olduğu 4 GB'lık harita. | 3 | Cortex-M bellek haritası gezgini |
| 2 | Araç zinciri: derleme, bağlama, yükleme, hata ayıklama STM32CubeIDE ve PlatformIO, GCC ve bağlayıcı betiği, .elf/.bin, ST-LINK ve SWD ile adım adım hata ayıklama. | 4 | Bağlayıcı (linker) bölümleri: Flash ve RAM bütçesi |
| 3 | GPIO: yazmaçlarla ve HAL ile Saat açma, MODER/OTYPER/PUPDR ile yapılandırma, ODR/IDR ile yazma-okuma, BSRR'nin atomikliği ve HAL karşılıkları. | 5 | GPIO yazmaç görüntüleyici: MODER, OTYPER, PUPDR, ODR, IDR, 3B STM32 geliştirme kartı |
| 4 | RCC ve saat ağacı HSI, HSE ve PLL; SYSCLK, AHB ve APB bölücüleri; zamanlayıcı saatinin iki katına çıkması; Flash bekleme durumları. | 3 | RCC saat ağacı ve PLL hesaplayıcı |
| 5 | Zamanlayıcılar ve PWM Ön bölücü (PSC), otomatik yeniden yükleme (ARR), karşılaştırma (CCR); frekans, görev oranı ve çözünürlük; servo ve motor PWM'i. | 5 | Zamanlayıcı ve PWM: PSC/ARR/CCR hesaplayıcı, 3B STM32 geliştirme kartı |
| 6 | Kesmeler, EXTI ve NVIC Yoklama yerine kesme; EXTI hatları; NVIC öncelikleri, iç içe kesme, kuyruk zincirleme; ISR yazım kuralları. | 5 | EXTI ve NVIC: kesme zaman çizelgesi |
| 7 | UART: seri iletişim ve komut satırı Çerçeve (start, veri, parite, stop), baud ve BRR, saat hatası; kesmeyle satır okuma ve basit bir komut arayüzü. | 4 | UART çerçeve görselleştirici ve BRR |
| 8 | ADC ve DMA 12 bit dönüşüm, örnekleme süresi, tarama kipi; işlemci yerine veriyi taşıyan DMA, dairesel tampon ve yarım/tam aktarım. | 4 | ADC + DMA: dairesel tampon ve yarım/tam aktarım |
| 9 | I²C ve SPI: zamanlama diyagramları I²C'de START/STOP, adres, ACK/NACK, çekme dirençleri; SPI'da CPOL/CPHA kipleri ve CS; mantık analizörüyle hata bulma. | 5 | I²C ve SPI zamanlama diyagramları |
| 10 | Düşük güç: Sleep, Stop ve Standby Çalışma, uyku, durdurma ve bekleme kipleri; uyandırma kaynakları; görev döngüsüyle pil ömrü hesabı. | 3 | Düşük güç kipleri ve pil ömrü |
| 11 | FreeRTOS: görevler, zamanlayıcı ve senkronizasyon Süper döngüden görevlere; öncelikli kesintili zamanlama, tick, zaman dilimleme; kuyruk, semafor, mutex ve öncelik tersine dönmesi. | 6 | FreeRTOS zamanlayıcı görselleştirici |
Bitirme projesi
Bitirme projesi: PWM motor sürücü + UART komut arayüzü
Bir DC motoru 20 kHz PWM ile süren, bilgisayardan seri komutlarla (PWM, DIR, FREQ, START, STOP, STATUS) yönetilen, acil dur butonu ve aşırı akım korumalı bir STM32 sürücü kartı yazılımı.
Proje ve teslimlerAraçlar
- Bu platform: 11 simülasyon (yazmaç görüntüleyici, PLL, PWM, NVIC, UART, DMA, I²C/SPI, güç, FreeRTOS)
- Wokwi: tarayıcıda STM32 kartları (Nucleo-C031C6, Blue Pill)
- Gerçek kartla: Nucleo-F401RE ya da F411 Black Pill, ST-LINK, mantık analizörü; STM32CubeIDE ya da PlatformIO