STM32

프로젝트 일지/Whale Car

[Whale Car] Motor 제어 - PWM

이 프로젝트의 시작점이 바로 알리에서 이 모터를 구매하면서 시작됐다. 구매한 모터의 모델명은 JGB-520 Motor로 모터에 내장 엔코더를 포함하고 있다. 2개의 인코더가 있으며 각각 1 바퀴에 11 Pulse를 생성하게 된다. 물론 2개의 인코더를 가지고 있으니 두 위상은 90도 차이가 날 것이고 그것으로 모터 회전의 방향성을 추론할 수 있을 것이다. 일단 그 부분은 나중에 더 디테일하게 다루고 오늘은 PWM에 대해서 이야기해 보자.  PWM은 Pulse Width Modulation의 약자로 말 그대로 Digital 신호로 On/Off를 제어하면서 진폭을 제어하는 것을 의미한다. 그렇다면 여기서 왜 On/Off를 반복하며 신호를 내보낼까? 그 이유는 모터 제어의 방법과도 이어진다. 모터는 쉽게 말해..

프로젝트 일지/Whale Car

[Whale Car] 1ms Timer의 늪

지난 시간 기본적인 Setting을 마치고 '간단하게' 1ms  Timer를 만들어보려 했다. 말 그대로 간단하게 1ms Timer만 만들고 종료하려고 시작을 했는데... 우선 STM32H735은 General Purpose Timer로 10개의 Timer를 가지고 있다고 한다.   나는 여기서 32-bit Timer인 2와 5를 사용할 예정이다. 각 Core에 할당하여 따로 1ms Timer를 돌리는 것이 목적이었다. STM32H7 프로젝트는 특이하게, Peripheral을 선택하면 어느 Core할당할 것인지 설정하는 부분이 있다.   TIM2는 M4 Core에 TIM5는 M7 Core에 할당하였다. TIM2와 TIM5는 Manual을 보면, APB1 Bus에 물려있는 것을 볼 수 있는데 APB1은 이..

프로젝트 일지/Whale Car

[Whale Car] Serial 통신 뚫기

안녕하세요. 오늘은 Serial 통신을 뚫어볼 계획이다. 다른 모듈 개발에 앞서 통신을 먼저 뚫어 놓는 것이 좋다. Nucleo 보드의 경우 Debugging이 가능하지만 나중에 주행 상황에서 체크하고 하려면 필요하다. 책상 앞에서만 볼 수는 없으니까. 본론에 들어가기 앞서 Serial 통신에 대해 설명해야 하는데, Serial 통신에 대한 개념은 이전에 다루었던 블로그 글로 대체하도록 하겠다. - Serial 통신이란? : https://enginbear.tistory.com/25 [아두이노 기초] Serial 통신 1. 기초이론 개발 경험상 아두이노를 포함해서 임베디드를 개발하는 데 있어 통신 서비스는 매우 중요합니다. 우선 무얼 개발할 지부터 개발 완성에 다다를 때까지 디버깅을 하는데 큰 도움을 e..

프로젝트 일지/Whale Car

[Whale Car] Scheduler 만들기

이번 시간에는 지난 시간 만든 1ms Timer Interrupt를 활용해서 Scheduler를 만들어 봅시다. 임베디드에서는 Scheduler가 심장이라고 해도 과언이 아닙니다. 임베디드 위에서 올라가있는 모든 로직들의 일정을 관리해주니까요. 우리가 여태까지 아두이노를 통해 접해왔던 코드로 만들어진 결과물은 OS라 보기 어려웠습니다. 왜냐면 아주 단순하게 setup()이라는 함수를 보드가 처음 켜질때 1회 실행시키고 나서 loop()안에서만 빙빙 돌게 되니까요. 이건 아주 단순한 Firmware라고 봐야할 것 같아요. 우리가 OS라고 했을때 떠오르는 것은 윈도우, 맥, 리눅스, 안드로이드, IOS 등등 이니까요. 우리가 알고 있는 것 이외에도 RTOS라 해서 Real-Time OS가 존재합니다. 대부분..

우리집공돌이곰돌을좋아해
'STM32' 태그의 글 목록