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

노트

MCU 펌웨어 노트

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

로드맵에서 보기 →
GROUND EMBEDDED · 정리 노트펌웨어 01개발 환경 1while (1) { 2 HAL_GPIO_TogglePin(GPIOA, GPIO_PIN_… 3 HAL_Delay(500); 4}
MCU 펌웨어

개발 환경: LED 하나 켜기까지

STM32CubeIDE, 컴파일러, 디버거를 갖추고 첫 펌웨어를 올립니다. 첫 LED가 켜지면 툴체인 전체가 확인된 것입니다.

GROUND EMBEDDED · 정리 노트펌웨어 02레지스터 제어와 HAL 1// HAL 2HAL_GPIO_WritePin(GPIOA, GPIO_PIN_5, GP… 3// 레지스터 4GPIOA->BSRR = GPIO_BSRR_BS5;
MCU 펌웨어

레지스터 제어와 HAL: 언제 무엇을 쓸까

레지스터를 직접 쓰면 빠르고 정확하고, HAL을 쓰면 빠르게 개발합니다. 둘을 섞어 쓰는 현업 방식.

GROUND EMBEDDED · 정리 노트펌웨어 03GPIO레지스터설정MODER입력 / 출력 / 대체 기능(AF) /…OTYPER푸시풀 / 오픈드레인
MCU 펌웨어

GPIO: 핀 하나의 모든 설정

입력과 출력, 푸시풀과 오픈드레인, 풀업, 속도, 대체 기능. STM32 GPIO 레지스터 하나하나가 회로의 어떤 부분인지 정리했습니다.

GROUND EMBEDDED · 정리 노트펌웨어 04클럭 트리소스특징HSI내부 RC, 16MHz 등. 정확도 1…HSE외부 크리스털 8~25MHz. 정확
MCU 펌웨어

클럭 트리: 클럭이 어디서 와서 어떻게 나뉘나

HSE, PLL, 프리스케일러. 시스템 클럭과 버스 클럭, 타이머 클럭이 어떻게 정해지는지 따라갑니다.

GROUND EMBEDDED · 정리 노트펌웨어 05타이머모드용도업데이트 인터럽트정확한 제어 주기 (1kHz 속도 루프)출력 비교 / PWM모터, LED 밝기
MCU 펌웨어

타이머: 정확한 주기와 시간 재기

타이머는 클럭을 세는 카운터입니다. 주기 인터럽트, 입력 캡처로 펄스 폭 재기, 엔코더 모드까지.

GROUND EMBEDDED · 정리 노트PWM 기초듀티비로 전압 만들기평균 30%D1주기
MCU 펌웨어

PWM 기초: 듀티비로 평균 전압 만들기

디지털 핀으로 LED 밝기와 모터 속도를 조절하는 PWM의 원리와 타이머 설정 계산법을 정리했습니다.

GROUND EMBEDDED · 정리 노트펌웨어 07인터럽트와 NVIC 1volatile uint32_t ticks; 2uint32_t get_ticks(void) { 3 __disable_irq(); uint32_t t = ticks…// 32… 4 return t;
MCU 펌웨어

인터럽트와 NVIC: 우선순위와 짧은 처리

우선순위 그룹, 선점과 서브 우선순위, 처리 함수를 짧게 유지하는 이유, 공유 변수를 안전하게 다루는 법.

GROUND EMBEDDED · 정리 노트펌웨어 08ADC 1TIM1 PWM 중앙 → TRGO → ADC 인젝티드 변환 → 완료 인…
MCU 펌웨어

ADC: 단일, 연속, 타이머 동기 샘플링

STM32 ADC의 변환 모드, 샘플링 시간, 여러 채널 스캔, 타이머 트리거로 정확한 주기 샘플링을 하는 방법.

GROUND EMBEDDED · 정리 노트펌웨어 09DMA 활용 1uint16_t adc_buf[4]; 2HAL_ADC_Start_DMA(&hadc1, (uint32_t *)a…// 순환…
MCU 펌웨어

DMA 활용: ADC와 UART를 CPU 없이

ADC 값을 순환 버퍼로 계속 채우고, UART로 길이를 모르는 패킷을 받는 실전 DMA 설정 두 가지.

GROUND EMBEDDED · 정리 노트펌웨어 10워치독과 저전력 모드종류특징IWDG (독립)별도 LSI 클럭, 메인 클럭이 죽어도…WWDG (윈도우)너무 늦어도, 너무 빨라도 리셋
MCU 펌웨어

워치독과 저전력 모드

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

GROUND EMBEDDED · 정리 노트펌웨어 11Flash와 EEPROM 쓰기01Flash의 특성02안전한 저장패턴03외부 EEPROM/ FRAM
MCU 펌웨어

Flash와 EEPROM에 설정값 저장하기

전원이 꺼져도 남아야 하는 값은 Flash나 EEPROM에 씁니다. 섹터 지우기, 쓰기 횟수, 전원 차단에 안전한 저장 방법.

GROUND EMBEDDED · 정리 노트펌웨어 12부트로더 1uint32_t sp = *(uint32_t *)APP_ADDR, pc… 2__disable_irq(); 3// 사용한 주변장치와 SysTick 끄기, 펜딩 인터럽트 지우기 4SCB->VTOR = APP_ADDR;
MCU 펌웨어

부트로더: 펌웨어가 스스로 업데이트하는 구조

Flash를 부트로더와 앱으로 나누고, 새 펌웨어를 받아 검증한 뒤 앱으로 점프합니다. 점프 순서와 실패 대비.