Inflearn brand logo image

인프런 커뮤니티 질문&답변

김상현님의 프로필 이미지
김상현

작성한 질문수

전동킥보드로 배우는 임베디드 실전 프로젝트

홀센서를 이용하여 BLDC 모터 구동

홀센서 신호를 외부 인터럽트로 받는 이유

해결된 질문

작성

·

62

1

안녕하세요. 강사님.

강의 잘 보고 있습니다.

한 가지 궁금한게 있어 질문 드립니다.

 

STM에선 TIM2~5에 3개의 HALL 센서 신호를 XOR하여 처리할 수 있는 하드웨어가 있는 것으로 알고 있습니다.

 

각 센서 신호를 각각 외부 인터럽트로 설정하는 것보다 XOR하여 CC1 인터럽트가 발생할 때마다 처리하는게 제 생각엔 더 깔끔할 것 같은데 외부 인터럽트로 설정하는 이유가 있을까요?

답변 2

1

김상현님의 프로필 이미지
김상현
질문자

답변 감사합니다.

1

제어쟁이님의 프로필 이미지
제어쟁이
지식공유자

질문해주신 방식(TIM Hall 모드 + XOR → CC1 인터럽트 방식)이 말씀하신 대로 훨씬 더 효율적인 방식인 건 맞습니다.

인터럽트 하나만으로도 모든 Hall 신호를 처리할 수 있고, 타이머 캡처 기능까지 활용하면 속도 계산도 정밀하게 할 수 있어서 코드도 깔끔하고 리소스 소모도 적습니다.

 

다만, 앞서 실습에서는 폴링/라이징 엣지 외부 인터럽트(EXTI)를 활용해봤기 때문에, 그 개념을 연계해서 Hall 센서도 EXTI 방식으로 구현해봤습니다.

즉, 학습 목적상 EXTI를 이용한 구조를 먼저 적용해본 거고, 실제 제품 개발 시에는 질문하신 TIM Hall 방식이 더 적절한 선택일 수 있습니다! 좋은 질문 감사합니다ㅎㅎ

김상현님의 프로필 이미지
김상현

작성한 질문수

질문하기