인프런 영문 브랜드 로고
인프런 영문 브랜드 로고

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

규철님의 프로필 이미지

작성한 질문수

바닥부터 시작하는 STM32 드론 개발의 모든 것

2-1. BNO080 9축 센서 인터페이스

BNO080 주기 확인

작성

·

87

·

수정됨

0

안녕하세요 강사님.

오실로스코프가 없어서 BNO080의 output주기가 400HZ인지 확인하기 위해서 timer를 사용했습니다.

84MHZ timer의 프리스케일러 값을 83으로 설정하여 카운트 레지스터 값이 1MHZ의 속도로 증가하도록 만들었고, 그렇다면 한주기가 400HZ가 되기 위해서 타이머의 카운트 레지스터 값이 2500이 나오길 기대했지만 135라는 값이 나왔습니다. 무엇때문에 이런 결과가 나왔는지 궁금합니다. 코드와 출력화면을 첨부합니다.

스크린샷 2025-01-13 163225.png.webp코드.png.webp출력.png.webp

 

답변 2

0

규철님의 프로필 이미지
규철
질문자

제가 착각을 했던거 같습니다. 다음 강의를 보니 BNO080 코드 실행시간은 130us대가 맞는거 같고 그렇다면 400Hz는 BNO080센서가 처리를 완료했다고 int핀으로 알려주는 주기가 400Hz인걸로 이해하면 되나요?? 위의 참고사진의 132번째 줄 if문이 true가 되는 주기가 400Hz가 맞는건지 궁금합니다.

ChrisP님의 프로필 이미지
ChrisP
지식공유자

안녕하세요!

네 맞습니다. 두 가지 개념이 다른데요,

  1. 센서갱신 주기 (2500us)

    1. 이건 센서에서 다음 데이터를 보내주는 시간 간격입니다. 센서는 400Hz 마다 새롭게 센서값을 갱신하고 int핀으로 그걸 외부로 알려줍니다. 그럼 STM32는 int핀의 상태가 바뀌면 센서로부터 데이터를 읽어들이면 되겠죠.

  2. 센서 읽어들이는 시간 (130us정도)

    1. 이건 센서의 데이터가 갱신 됐을 때, 그 데이터를 읽어들이는데 걸리는 시간입니다. SPI통신으로 데이터를 읽어오므로, SPI 클럭과 데이터 양에 의해 결정됩니다. 이걸 직접 계산할 수도 있고, 강의에서 언급한대로 GPIO 핀을 high low 로 번갈아가며 출력하여 그 펄스폭을 오실로스코프로 측정할수도 있고, 님의 방식처럼 타이머를 사용하여 소프트웨어적으로 시간을 측정할 수도 있습니다.

 

0

인프런 AI 인턴님의 프로필 이미지

안녕하세요, 인프런 AI 인턴입니다. 규철님.

BNO080의 출력 주기를 확인하는 방법에 대해 궁금증을 갖고 계신 것 같습니다. 현재 설정하신 방식과 기대한 값 사이의 차이에 대해 설명드리겠습니다.

  1. 타이머 설정 관련:

    • 먼저, 타이머의 프리스케일러(PSC)를 83으로 설정하셨으니 타이머는 1MHz로 동작해야 합니다.
    • 타이머의 AutoReloadRegister(ARR)를 설정하지 않고 기본 값 사용 시, 최대 값인 65535로 설정됩니다. 이는 타이머의 주기적 리셋을 의미합니다.
  2. 주기 계산:

    • 1MHz 클럭에서 400Hz를 얻으려면:
      • 한 주기 = 1,000,000(Hz) / 400 = 2500(counter ticks)이 필요합니다.
    • 그러나 135가 나오셨다고 하니, 이는 설정의 문제일 가능성이 높습니다.
  3. 의심되는 문제점 및 해결 방안:

    • 프리스케일러 또는 타이머 설정 오류: PSC를 잘못 설정했거나, 초기화 시 다른 설정의 영향을 받아 1MHz로 제대로 설정되지 않았을 수 있습니다.
    • 코드 내 설정 확인: 타이머 초기화와 시작 부분의 코드를 정밀히 확인해, 올바르게 설정되어 있는지 확인해 주세요.
    • 캐스케이딩 또는 추가적인 조건: 타이머의 Reset 또는 다른 상태가 코드 내에 영향을 줄 수 있습니다. 코드 전체를 검토해 주시기 바랍니다.

관련 질문 답변 및 문제 해결을 위한 링크를 아래에 첨부하였습니다:

위의 링크에서 유사한 설정 문제를 다룬 답변들이 있으니 참고하시기 바랍니다. 질문에 대한 추가적인 설명이나 코드의 특정 부분에 대한 검토가 필요하시면, 이어서 질문을 남겨주시면 좋겠습니다.

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드립니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

규철님의 프로필 이미지

작성한 질문수

질문하기