Inflearn brand logo image

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

dhanbi1님의 프로필 이미지
dhanbi1

작성한 질문수

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

쓰로틀 신호 입력 받기 - ADC 실습

ADC Conversion mode.

해결된 질문

작성

·

25

1

안녕하세요. 좋은 강의를 열강 하다 보니 질문이 계속 생겨서 귀찮게 해드리는거 같아서 죄송합니다.

2가지 질문이 있습니다.

  1. SMPR2 주석에 6.2us의 주기가 있는데, 이것이 혹시 Tconv 시간을 말씀하시는건가요? 맞다면, 6.2us가 아니라 7.5us가 아닌가요?


    (Tconv = (sampling + conversion)*CLK = (56+12)* 111.1ns(9MHz) = 7.5us)

  2. 이번강좌에서 쓰로틀을 ADC로 읽는 과정에서 ADC Conversion mode를 single 로 하셨는데,

    이렇게 되면 매번 코드에 SWSTART 반복과 EOC 대기를 을 진행해야 해서 CPU에 부하가 많이 걸리지 않나요?

     

    어차피 While문 루프고, 쓰로틀은 계속적인 모니터링이 필요한 Analog 값이니 Continuous Conversion을 통해 1번만 트리거를 걸고 지속적으로 값을 모니터링을 하는게 더 효율적인 방법인거죠?

 

답변 1

0

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

질문 많이 해주시면 좋습니다! 부담 갖지 마시고 언제든지 질문해주세요.

 

  1. 결론부터 말씀드리면, 우선 주석의 6.2us는 T_conv가 아닌 T_sample을 의미합니다. 현재 실습코드에서는 샘플 타임이 56cycle로 설정하였습니다. ADC 클럭은 PCLK2/6 = 9Mhz이고 주기는 1/9Mhz = 111.111ns가 나오죠. ADC 클럭을 이용해서 샘플링 타임을 구하면 111.111ns x 56 = 6.222us입니다.

  2. 네 맞습니다. 현재 실습에서는 효율은 고려하지 않고, 기능 구현을 목표로 진행해보았습니다. 다만 추후에 전동킥보드 펌웨어에서는 While문에서 ADC를 하지 않고, 타이머 인터럽트에서 진행합니다. 이 점 참고해주시길 바랍니다.

dhanbi1님의 프로필 이미지
dhanbi1

작성한 질문수

질문하기