그라운드 임베디드 EN 유튜브 구독

로드맵

펌웨어 · 과목 11

MCU 펌웨어

레지스터 한 비트가 핀을 켜고, 타이머를 돌리고, 모터를 움직입니다. 임베디드 개발의 본체입니다.

목표: 데이터시트만 보고 MCU의 주변장치를 설정해 원하는 동작을 만들 수 있다.

  • 초급난이도
  • 약 6주하루 1시간 기준
  • 12개주제
  • 4개실험실

먼저 볼 과목 컴퓨터구조전자회로

다음 과목 통신 프로토콜RTOS펌웨어 설계와 품질센서와 신호처리

지도에서 보기 →
  1. 개발 환경

    STM32CubeIDE, 컴파일러, 디버거를 갖추고 LED 하나를 켭니다.

  2. 레지스터 제어와 HAL

    레지스터를 직접 다루는 방법과 HAL을 쓰는 방법, 언제 무엇을 쓸지.

  3. GPIO

    입력과 출력, 푸시풀과 오픈드레인, 내부 풀업 설정을 레지스터 수준에서 봅니다.

  4. 클럭 트리

    HSE, PLL, 프리스케일러. 클럭이 어디서 와서 어떻게 나뉘는지 따라갑니다.

  5. 타이머

    정확한 주기의 인터럽트와 입력 캡처로 시간을 재는 방법.

    GROUND EMBEDDED · 실험실PWM 실험대LED와 모터로 보기평균 30%D1주기3D 실험실
  6. PWM

    타이머로 PWM 파형을 만들고 PSC, ARR, CCR을 계산합니다.

    GROUND EMBEDDED · 실험실PWM 실험대LED와 모터로 보기평균 30%D1주기3D 실험실
  7. 인터럽트와 NVIC

    우선순위 설정, 처리 루틴을 짧게 유지하는 이유, 공유 변수 다루기.

    GROUND EMBEDDED · 실험실인터럽트 하던 일을멈추고 다녀오기 1volatile uint32_t *ODR 2 = (uint32_t*)0x40020014; 3*ODR |= (1u << 5); 4while (1) { 5 if (flag) toggle(); 6}3D 실험실
  8. ADC

    단일 변환, 연속 변환, 타이머에 맞춘 샘플링.

    GROUND EMBEDDED · 실험실ADC 전압을숫자로 바꾸기MCU온도I2CIMUSPI홀GPIO거리UART전류ADC3D 실험실
  9. DMA 활용

    ADC 값과 UART 데이터를 CPU 없이 메모리로 옮깁니다.

  10. 워치독과 저전력 모드

    프로그램이 멈추면 리셋하는 워치독, 배터리 기기를 위한 슬립 모드.

  11. Flash와 EEPROM 쓰기

    설정값을 전원이 꺼져도 남게 저장하는 방법과 쓰기 횟수 제한.

  12. 부트로더

    펌웨어를 스스로 업데이트하는 구조와 메모리 분할.

확인 과제

타이머 인터럽트로 LED 밝기 조절기 만들기

HAL 없이 레지스터만으로 타이머 PWM을 설정하고, 버튼 인터럽트로 밝기를 5단계로 바꿉니다.

세 가지에 모두 체크할 수 있으면 다음 과목으로 넘어가도 됩니다. 체크는 이 브라우저에만 저장됩니다.