FreeRTOS 소프트웨어 타이머 활용 가이드
마이크로컨트롤러 개발에서 타이머는 필수적인 요소입니다. 일반적으로 우리가 접하는 타이머는 마이크로컨트롤러 칩 내부에 내장된 하드웨어 타이머로, 정밀한 시간 측정과 다양한 기능을 제공합니다. 그러나 FreeRTOS와 같은 실시간 운영체제(RTOS) 환경에서는 소프트웨어 기반의 타이머도 활용할 수 있습니다. 본 문서에서는 FreeRTOS의 소프트웨어 타이머의 기본 개념, ...
8월 20일 09:27에 게시됨
STM32 기반의 차량용 고정밀 GPS 트래커 설계 및 C 언어 구현
1. 시스템 개요
차량용 GPS 트래커는 위치 정보 파악, 이동 경로 추적, 도난 방지를 목적으로 하는 임베디드 장치입니다. GPS 위성으로부터 수신한 위치 데이터를 4G LTE 또는 NB-IoT와 같은 이동통신망을 통해 서버로 전송하며, 실시간 위치 확인 및 전자 펜스(Geo-fence), 진동 감지 알람 등의 기능을 제공합니다. 본 설계에서는 저전력 성능이 뛰어난 STM32L431RCT6를 ...
8월 5일 13:50에 게시됨
STM32에서의 재할당(Re-mapping)
재할당이 필요한 이유
STM32의 다중 사용 클럭과 재할당 기능
void Beep_Pwm_Init(u16 arr, u16 psc)
{
// 구조체 정의
GPIO_InitTypeDef GPIO_InitStructure = {0};
TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure = {0};
TIM_OCInitTypeDef TIM_OCInitStructure = {0};
// GPIO와 TIM 클럭 열기
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE); ...
8월 5일 11:03에 게시됨
STM32 시작 코드 분석 및 ARM 어셈블리 언어 기초
STM32 시작 파일 구조와 어셈블리 명령어 이해
ARM 아키텍처 기반의 STM32 마이크로컨트롤러는 시스템 부팅 시 가장 먼저 실행되는 시작 코드(Startup Code)를 필요로 한다. 이 코드는 주로 어셈블리 언어로 작성되며, 초기 스택 설정, 벡터 테이블 구성, 시스템 초기화 호출 등의 역할을 수행한다. 아래에서는 주요 어셈블리 지시어와 STM32F4 계열의 시작 파일 구조를 중 ...
8월 1일 00:57에 게시됨
RS485, TTL, UART의 본질적 차이를 명확히 이해하기
UART, TTL, RS485: 전기적 특성과 프로토콜의 혼동을 끝내는 분석
Embedded 시스템 개발에서 통신 인터페이스는 성능과 신뢰성의 핵심 요소다. 초보자부터 경험 많은 엔지니어까지 종종 발생하는 오해는, 단순한 전기 수준과 프로토콜의 개념을 혼동하는 것이다. 이는 하드웨어 손상뿐 아니라 복잡한 통신 오류의 원인이 된다. 본 문서는 각 기술의 물리적 특성, 전기적 정 ...
7월 24일 01:16에 게시됨
오픈소스 스마트 키보드 설계 가이드: 직접 만드는 커스텀 키보드
HelloWord-Keyboard 프로젝트는 모듈식 설계, 사용자 정의 펌웨어 및 다양한 확장 기능을 제공하는 오픈소스 스마트 키보드입니다. 이 가이드에서는 프로젝트 구조, 하드웨어 설계, 펌웨어 개발 및 조립 과정을 다룹니다.
HelloWord 스마트 키보드 개요
이 키보드는 왼쪽에 위치한 교체 가능한 "Dynamic 모듈"이 핵심 특징이며, 전자 잉크 디스플레이와 FOC 포스 피드백 ...
7월 15일 21:34에 게시됨
STM32 기반 SSD1306 OLED 드라이버 구현: 하드웨어 제어에서 그래픽 렌더링까지
I2C 프로토콜과 SSD1306 제어를 통한 임베디드 디스플레이 시스템 설계
OLED 디스플레이는 고대비, 얇은 두께, 낮은 전력 소모 등의 장점으로 인해 IoT 장치, 웨어러블 기기, 산업용 HMI 등 다양한 분야에서 널리 사용되고 있다. 특히 SSD1306 칩셋을 탑재한 128x64 해상도의 모노크롬 OLED는 STM32 계열 마이크로컨트롤러와의 호환성이 뛰어나며, 별도의 그래픽 컨트롤러 ...
7월 11일 22:39에 게시됨
STM32F103 독립형 윈도우 독견 타이머 상세 분석
디지털 시스템의 안정성을 보장하기 위한 독견 타이머(Watchdog Timer)는 임베디드 시스템에서 매우 중요한 구성 요소입니다. STM32F103 마이크로컨트롤러는 두 가지 유형의 독견 타이머를 제공하며, 각각 다른 목적과 동작 방식을 가지고 있습니다.
독견 타이머의 기본 개념
독견 타이머는 시스템의 비정상 동작을 감지하고 복구하는 장치입니다. 마치 집을 지키는 개처 ...
7월 3일 02:03에 게시됨
STM32 디버깅: '타겟 연결 불가' 오류 해결 및 Keil 레지스터 뷰 활용
ST-LINK "타겟 연결 불가" 오류 해결
STM32 개발 중 ST-LINK를 사용하여 펌웨어를 다운로드할 때 "No Target Connected" 오류가 발생하는 경우가 있습니다. 이는 주로 디버그 인터페이스로 사용되는 SWDIO/SWCLK 핀이 잘못 구성되었을 때 발생합니다.
오류 원인: 잘못된 레지스터 조작
특정 GPIO 핀의 모드를 설정하는 과정에서 비트 연산 오류가 발생 ...
7월 1일 22:31에 게시됨
STM32 기반 위치 제어를 위한 PID 알고리즘 구현 및 최적화
위치 제어 시스템의 하드웨어 구성과 신호 흐름 설계
본 시스템은 STM32F103C8T6 마이크로컨트롤러를 기반으로 한 고정밀 위치 제어 시스템으로, 실시간 반응성과 높은 신뢰성을 갖춘 단일 입력 단일 출력(SISO) 피드백 제어 구조를 채택하였다. 목표 위치(펄스 수 기준)와 실제 인코더 측정값 간의 차이를 계산하여 위치식 PID 알고리즘을 통해 제어량을 산출하고, 이를 ...
7월 1일 05:35에 게시됨