Computer Science
탄탄한 기반 실력을 위한
전공과 이론 지식 모음
Today I Learned!
배웠으면 기록을 해야지
TIL 사진
Flutter 사진
Flutter로 모바일까지
거꾸로캠퍼스 코딩랩 Flutter 앱개발 강사
스파르타코딩클럽 즉문즉답 튜터
카카오테크캠퍼스 3기 학습코치
프로필 사진
박성민
임베디드 세계에
발을 들인 박치기 공룡
임베디드 사진
EMBEDDED SYSTEM
임베디드 SW와 HW, 이론부터 실전까지
ALGORITHM
알고리즘 해결 전략 기록
🎓
중앙대학교 소프트웨어학부
텔레칩스 차량용 임베디드 스쿨 3기
애플 개발자 아카데미 1기
깃허브 사진
GitHub
프로젝트 모아보기
Instagram
인스타그램 사진

Embedded System 31

[MCU] STM32F429ZIT6의 타이머들

[MCU] STM32F429의 타이머STM32F429ZIT6 프로세서에는 다양한 타이머들이 탑재되어있다. 그런데 이 타이머들이 하나의 종류가 여러개가 있는게 아니라 다양한 종류의 타이머를 2-4개씩 탑재해둔 것이었다. Basic, General Purpose, Advanced 타이머로 종류가 나뉘고, 또 General Purpose Timer라고 불리는 타이머가 갑자기 하위 분류가 여러개로 나뉘어 문서에 설명이 작성되어있는 등 다양한 타이머들이 있었다. 현재 SysTick 타이머와 Basic 타이머에 대해서 한 번 톺아봤는데, 그래서 다른 타이머들은 어디에 사용하는건지 전체적인 개론을 확인하고 나서 다시 디테일한 타이머 구조로 내려가는게 좋겠다 싶어서 정리해보려고 한다.ㅤㅤ타이머의 종류STM32F429에..

Embedded System/MCU 2025.11.07

[MCU] Basic Timer

STM32F429ZIT6 / NUCLEO-F429ZI 보드 기준Basic Timer의 목적Basic Timer로 분류되는 TIM6과 TIM7은 다음의 특징을 가진다.시간 측정만 수행하는 아주 단순한 타이머이다. (Generic Timer!)내부적으로 DAC와 연결되어, DAC의 출력 트리거로 사용할 수 있다.Waveform 생성을 위해 사용할 수 있다. (신호 파형)ㅤ시간 측정만을 위해 사용하는 단순한 타이머인데 이게 어떻게 신호 파형을 만드는데에 사용될 수 있다는거지? → 라는 생각이 들어서 찾아봤는데, DAC의 출력 트리거로 사용될 수 있다는게 힌트였다. DAC(Digital2Analog)에서 신호의 트리거를 Basic Timer를 활용해 제어해서 Waveform을 만들어낼 수 있다!ㅤTIM6랑 DA..

Embedded System/MCU 2025.11.07

[MCU] SysTick 타이머

SysTick 타이머란?ARMv7-M Architecture Reference Manual 에서 SysTick의 정체에 대해서 찾을 수 있다. SysTick은메인 프로세서의 CLK을 사용하는 빠른 속도의 타이머SysTick Routine을 매 주기마다 실행하는 RTOS 타이머연결된 CLK과 Counter 값에 따라 측정 시간을 변경할 수 있는 가변 타이머등으로 활용할 수 있다.ㅤㅤ코어에 있기 때문에, HCLK과 동기화되어 CLK을 받는다고 보면 됨.ㅤSysTick은 왜 프로세서 내부에 있냐?다른 타이머들(TIM1, TIM2 같은 녀석들)은 다 프로세서 외부에 페리퍼럴로서 존재하는데, 왜 SysTick은 내부로 들고왔는지가 궁금했다.ㅤ임베디드 시스템에서 OS의 스케쥴링이나 RTOS 등에서 시간 관리를 위해..

Embedded System/MCU 2025.11.04

[MCU] Push-Pull과 Open-Drain의 장단점?

이번에 간단한 MCU 회로에 대해서 공부하면서 Push-Pull과 Open-Drain 방식의 구조 차이에 대해서 이해할 수 있었다.ㅤ그런데 공부하면서 궁금증이 생겼다. 푸시풀이랑 오픈드레인이 옵션으로 분리되어 제공되고 있다는 것은 두 방식이 각각의 장단점이 있어서라고 생각이 드는데, 푸시풀과 오픈드레인의 장점이 무엇이고 어떤 상황에서 무엇을 활용하면 좋을 지에 대해 이번 글에서 알아보고자 한다.ㅤ우선 푸시풀과 오픈 드레인의 간단 비교Push-PullPMOS + NMOS로 구성LOW 출력 : PMOS로 수행HIGH 출력 : NMOS로 수행ㅤOpen-DrainNMOS로만 구성LOW 출력 : NMOS로 수행HIGH 출력 : 외부 풀업 저항 이용 (자체 출력 불가)ㅤ스위칭 속도스위칭 속도는 푸시풀이 오픈드레인보..

Embedded System/MCU 2025.11.02

[MCU] 풀업, 풀다운 저항은 MOSFET인가?

회로도를 보면 풀업과 풀다운 저항에 연결되는 전원 공급과 GND에 대해서 Vdd, Vss 라는 키워드를 많이 적어두었다. 강의에서도 그렇게 본 것 같고. 그래서 나는 Vdd 와 Vss 라는게 전원과 GND를 표현하기 위해 쓰는 관용적인 표현이구나! 라고 생각햇는데, 또 찾아보니 항상 그렇지는 않은 것만 같았다.ㅤ그러다가 하나 의심이 들었는데, 혹시 풀업과 풀다운 저항이 사실은 저항이 아니라 MOSFET 이라서 Vdd, Vss 키워드를 사용하는 것이라면? 😮‼️ ㅤ[ 여기에서 말하는 풀업, 풀다운 저항은 GPIO 회로 내부의 풀업 저항과 풀다운 저항을 말하는 것이다! ]ㅤ문서에서는 GPIO는 Weak Internal Pull-Up / Pull-Down Resistor를 가지고있다고 되어있다. 그런데 이게..

Embedded System/MCU 2025.11.02

[MCU] V=IR과 기본 임피던스부터 풀업과 풀다운, 푸시풀과 오픈드레인까지

전기의 기본 개념과 법칙전압 V전압 V는 전기를 흐르게 만드는 압력이다. GND(Ground)로부터의 높이(전위) 차이를 말한다. 단위는 옴($\Omega$)을 사용한다.ㅤ전류 I전류 I는 전기의 흐름(전하의 흐름)이다. 전류가 크다는 말은 초당 흐르는 전하량이 많다는 의미이다. 적절한 전류의 양을 흘려보내야 소자가 일을 할 수 있기 때문에, 전류 제어가 필요하다. 값이 높을 때 위함한 것은 전류!ㅤ저항 R저항 R은 전류를 제어하는 역할을 한다. 적절한 양의 전류를 만들기 위해 사용한다. (임베디드에서 전류의 증폭은 고려하지 않는다)ㅤ옴의 법칙 V=IR옴의 법칙에서 가장 중요한 것은 전류! 결국 소자를 일하게 하는 것은 전류이기 때문에 전류를 중심으로 생각해야 한다.$$I = \frac{V}{R}$$전류..

Embedded System/MCU 2025.11.02

[MCU] UART 구조와 이해

UART 가 무엇이냐UART(Universal Asynchronous Receiver / Transmitter) 는 병렬 데이터를 비동기 직렬 방식으로 데이터를 전송하는 컴퓨터 HW(집적 회로)이다.병렬 데이터 : 여러 개의 독립된 데이터 (H → 0100 1000 8개의 독립적인 bit)직렬 방식 전송 : 데이터를 하나의 선을 통해 순서대로 하나씩 전송↔ 병렬 방식 전송 : 데이터를 여러 선을 통해 한 번에 여러개씩 전송비동기 : 클럭 없이 데이터만 주고받는다. 양 쪽에서 같은 프로토콜로 데이터를 주고받기로 미리 약속ㅤ잠깐, 동기 통신과 비동기 통신동기 통신 : Synchronous Communication보내는 쪽에서 CLK 정보를 함께 전달받는 쪽에서는 CLK의 Edge 시점에 데이터를 읽는다.추가..

Embedded System/MCU 2025.10.30

[MCU] GPIO 실습 : USER Button과 LED 켜기

이전 GPIO의 HW와 설정에 대해서 정리한 내용에 대해서 실제 보드의 코드로 잘 이해했는지 확인해보자.ㅤSTM32F429ZIT6 / NUCLEO-144 Boards 를 기준으로 작성되었습니다.ㅤLED 켜보기메모리 주소를 이용해 HAL 없이 LED를 켜보자우선 다큐먼트와 회로도에서 LED가 어디에 연결되어있는지 확인해야한다. 내가 켜보고싶은 파란색 LED인 LD2 는 GPIO Pin PB7 과 연결되어있다.ㅤㅤ위 회로도를 볼 때, LD2가 ON일 때는 PB7의 출력이 HIGH이고, LD2가 OFF일 때는 PB7의 출력이 LOW가 되어야 함을 알 수 있다. 정리하자면 LD2를 toggle하기 위해선 PB7에 HIGH와 LOW 신호를 control 할 수 있어야 한다.ㅤ그렇다면 PB7에 어떻게 출력 신호를 ..

Embedded System/MCU 2025.10.28

[MCU] 빌드 프로세스와 컴파일 환경

지금까지는 VSCode와 여러 IDE의 도움으로 내가 작성한 코드에 대해서 “빌드하기” 버튼을 누르면 마법과 같은 일이 일어나서 프로그램이 실행된다! 라고 생각해왔다고 볼 수 있다. 왜냐면 빌드하면 진짜 IDE가 알아서 컴파일, 어셈블링, 링킹을 거쳐 실행파일을 만드는걸 다 해줘왔거든. 그래서 이게 어떤 절차로 이루어지는지 크게 궁금하지도 않았었다. 학부 1학년때에나 간략하게 짚고 넘어가는 과정이여서 1학년때는 관심이 크게 없었고, 그 이후로도 쭉 관심을 크게 가지지 않고 지나왔던 부분인 것 같다.ㅤ그런데 이제 임베디드 세상으로 온 이상, 더 이상 마법같은 일이라고 부를 수는 없을 것 같다. 혹시나 내가 사용해야 하는 보드가 딱 적합한 IDE를 지원하지 않으면서, 특정 경로에 있는 헤더파일과 DLL을 링..

Embedded System/MCU 2025.10.27

[MCU] GPIO의 하드웨어 구조와 데이터시트, 침침한 눈을 곁들인

STM32F429ZIT6 / NUCLEO-144 Boards 를 기준으로 작성되었습니다.ㅤ레퍼런스 메뉴얼 참고 링크https://www.st.com/resource/en/reference_manual/dm00031020-stm32f405-415-stm32f407-417-stm32f427-437-and-stm32f429-439-advanced-arm-based-32-bit-mcus-stmicroelectronics.pdfㅤ실습을 하면서 계속 GPIO, GPIO 라는 키워드가 반복해서 나왔다. GPIO라는게 General Purpose Input / Output 이라는건 알고있었는데, 그래서 이게 정확히 어떤거냐? 라는 질문을 받아보니 말문이 턱 막히더라. 범용으로 사용한다는건 설정값들을 바꿔서 휘뚜루마뚜루..

Embedded System/MCU 2025.10.24