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

Embedded System/MCU 16

[MCU] MCP2515 SPI2CAN 모듈은 개발보드에 따라 허리를 끊고 별도 Vcc를 인가해줘야한다 (아닐 수 있음)

아주 특이한 트러블슈팅 사례가 있었다.이 SPI2CAN 모듈을 사용하면 CAN Controller가 없는 보드에서도 SPI 통신을 통해서 모듈에 있는 CAN Controller에 접근하고, Transciver 의 역할까지 수행해서 CAN 버스에 메시지를 보내고 받을 수 있게된다. 우리의 보드에서는 CAN Controller 핀이 있긴 하지만, 내부 드라이버에 CAN이 구현이 되어있지 않아서 (정확히는 수신 과정에서 문제가 있어서) SPI2CAN 모듈을 사용해 개발을 진행하고 있었다. 그런데 간헐적으로 통신이 되는, 또는 간헐적으로 통신이 안되는 문제가 자주 발생했다. 흠... 우선 디버깅 환경을 CAN 메시지를 정상적으로 쏘고 있던 STM32 보드에 현재 개발보드의 SPI2CAN 모듈을 물려 진행하였다...

Embedded System/MCU 2026.02.08

[MCU] CAN 통신 - 빠른 고속 CAN vs 안전한 저속 CAN

CAN 통신이란?CAN 통신(Controller Area Network)은 여러 ECU 장치들이 마스터(중앙 제어 Host) 없이 서로 통신하기 위해서 설계된 메시지 기반의 표준 통신 규격이다. = Non-Host 버스 방식의 메시지 기반 프로토콜ㅤ이름이 Controller Area Network 인 이유는 ECU Controller 끼리 통신하도록 구성된 네트워크이기 때문임.ㅤ자동차 산업에서 CAN을 쓰는 이유?자동차 산업이 발전함에 따라서 ECU(Electronic Control Unit)들이 점점 많이 탑재되고있다. 센서 처리나 엔진, 변속기, 차제 제어 등에 사용되는 ECU들간에 서로 데이터나 신호를 주고받기 위해서 통신을 위해서 서로 연결하다보니 배선이 복잡해지고 케이블의 무게와 부피로 차량의 ..

Embedded System/MCU 2025.12.25

[MCU] Independent 워치독 타이머 - IWDG

펌웨어 수업을 하는 동안 계속 ‘워치독’이라는 키워드가 나왔는데, 내 머릿속에는 ‘아 그거 서비스 아닌가? 이전에 일 잠깐 할 때 슬랙으로 데이터나 에러 관련해서 알림 오는걸 본 것 같은데’ 라는 생각이 어렴풋이 계속 들었었다. 보라색의 귀여운 강아지 이미지가 연상되면서 ㅋㅋㅋ 근데 알고보니 얘는 데이터독이였다. 웁스.ㅤ다시봐도 이미지가 애기 진돗개나 골댕이 같기도 해서 좀 귀엽네 ㅎ 🐕🐶ㅤ워치독은 Independent WDG과 Window WDG로 나뉜다. 우선은 Independent WDG부터 살펴보자. 혹시 글이 길어진다면 WWDG는 따로 빠져서 작성될 수도! [당첨]ㅤIndependent Watch Dog Timer의 목적시스템 장애 감지 및 자동 복구: 소프트웨어가 무한 루프에 빠지거나 멈추..

Embedded System/MCU 2025.11.09

[MCU] General Purpose Timer

드디어 General Purpose 타이머까지 왔다. 사실 정리는 금방 해서 한 3-4일 전에 완료해뒀는데, 실습을 하면서 실제로 타이머를 사용해보느라 시간이 좀 걸린 것 같아. 실습도 내가 생각했던 시나리오를 모두 해보지는 못했지만 나중에 필요한 시점에 타이머를 생각해내서 굴려볼 수 있을 정도로는 진행한 것 같다. 후후. 그럼 출발!General Purpose Timer의 목적General Purpose Timer로 분류되는 TIM9와 TIM14는 다음의 목적을 가진다.여러가지 목적으로 사용될 수 있다. (과연 General Purpose Timer 답다)Basic Timer가 가지고 있던 출력 기능과 더불어, 외부 입력도 받을 수 있다.출력 : Waveform 출력을 만들기 위해 사용된다. (Outp..

Embedded System/MCU 2025.11.09

[MCU] STM32F429ZIT6의 타이머들

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

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