강의

멘토링

로드맵

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

김정수님의 프로필 이미지
김정수

작성한 질문수

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

6-4 SwC 2000

작성

·

66

0

image.png

영상에서 나오는 것과 같이 코딩을 작성하였는데 SwC가 2000일 때 esc calibration mode로 진입하지 않습니다. 코딩을 처음부터 여러 번 다시 짜보기도 하였고 송수신기 간의 SwC 값이 2000임을 아두이노 프로그램을 통해서도 확인하였는데도 esc calibration mode로 진입하지 않습니다. 해결 방안에 대해서 여쭙고 싶습니다!

답변 2

0

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

안녕하세요.

ESC 캘리브레이션 전까지는 문제없이 진행이 되었나요?

swc를 조작해보면서 iBus.SwC 의 값이 잘 변하는지 캡쳐해서 그때의 코드와 사진을 공유해주시겠어요?

김정수님의 프로필 이미지
김정수
질문자

계속 시도해본 결과 6-4는 해결하였습니다!! 하지만 7-4 BNO080 Calibration을 진행하던 도중 ST-Link 선을 뽑은 뒤 진행하였고 이후 다시 선을 연결하고 진행하려고 하자 FC 보드에서의 발열이 심해졌습니다. ST-Link의 펌웨어 다운로드가 너무 많으면 이런 현상도 발생하는지 궁금합니다. 혹시 어떤 문제가 있는 건지 알고 싶습니다.

김정수님의 프로필 이미지
김정수
질문자

ST-Link, 배터리를 연결하고 6-3 모터 구동을 한 번 해보니 정상적으로 출력은 나옵니다. 하지만 발열이 너무 심해졌네요,,

김정수님의 프로필 이미지
김정수
질문자

원래 터미널의 값이 들어오다가 BNO080(roll pitch yaw)를 확인하며 드론을 움직이는 도중 uart 선이 빠지고 끼우고를 반복했습니다. 그 이후 다운로드 하니 터미널프로그램에서의 값이 나오지 않으며 MCU 보드에 배터리와 strink를 연결하였을때 발열이 발생하였습니다. 혹시 보드 과전류로 인한 문제일까요?

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

발열이 심해졌다면 선을 뺐다 꼈다 하는 과정에서 선을 잘못 꽂았다던지 등의 원인으로 STM32 칩이 고장났을 확률이 높습니다.

전원을 넣었을 때 FC의 3.3V와 5V 전원 LED가 모두 들어와야 정상인데 둘중 하나라도 들어오지 않는다면 FC 보드가 고장났을 수 있습니다. (이 경우 배터리 등의 다른 장치도 같이 고장날 수 있으므로 전원을 넣으면 안됩니다. 화재/폭발 위험이 있습니다.)

대부분의 경우 STM32 칩이 고장나고 이 경우 칩 교체로 수리가 가능하고 수리비가 발생합니다. 만약 STM32가 고장난 것이 아니라면 수리가 불가능합니다.

수리가 필요한 경우 댓글 달아주시면 비용과 진행 방법 안내해드리겠습니다.

김정수님의 프로필 이미지
김정수
질문자

현재 디버그 후에 FC에 3.3V와 5V에도 전원 LED가 들어와있습니다! 하지만 FC에 발열은 ST-Link를 연결하거나 전원 연결시 발열이 진행되고 있습니다. ARM CPU(Cortex-M)가 특히 뜨겁습니다. 수리시 비용과 진행방법 궁금합니다.

 

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

전원을 넣었을 때 FC의 3.3V와 5V LED가 동시에 다 들어온다면 FC 자체의 문제는 아닌 것 같습니다. 근데 st-link를 연결했을 때 발열이 생긴다면 FC와 st-link 간 선 연결의 문제로 보여지는데요, 제대로 연결했는지 확인해보세요. 발열이 너무 심해서 손이 데일정도이면 보드가 나갔을 겁니다. 그것도 확인해서 답글 부탁드립니다.

만약 배터리로 전원을 넣는다면 st-link의 +3.3V 선은 연결하지 말고 진행하시는 것이 좋습니다.

FC 보드가 제대로 동작하지 않는다면 수리가 필요해보입니다.

FC 보드를 보내주시면 문제를 확인해보고 STM32 의 문제라면 칩을 교체하여 수리하게 됩니다. STM32 칩 교체 비용은 66,000원입니다.

만약 STM32 의 문제가 아니라면 문제의 원인을 찾을수가 없어서 수리가 불가능합니다.

대부분 FC 보드가 고장나면 STM32 고장인 경우가 많습니다.

그럼 발열여부를 다시 확인해서 고장으로 의심되면 댓글 달아주시면 수리 진행해드리도록 하겠습니다.

김정수님의 프로필 이미지
김정수
질문자

st-link 선 연결을 재차 확인해본 결과 다운로드도 되고 이상이 없었고 fc 보드의 3.3,5V led 또한 잘 들어오는 것을 확인하였습니다. 하지만 fc main-mcu의 발열이 st-link와 배터리 전원을 연결 시 손이 뜨거울 만큼의 발열이 있었습니다. 또한 uart연결의 pc 장치관리자 port 연결 까지 잘 되어있었는데 터미널 프로그램의 값이 안나옴을 확인하였습니다.

아마 수리가 필요할 것 같습니다. 주소와 비용 송금은 어떻게 하면 될지 답변주시면 감사하겠습니다!

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

st-link와 배터리를 동시에 연결하면 발열이 생기는데 st-link로 다운로드는 잘 되었다는 말씀인가요?

보통 발열이 심하게 생기면 칩고장이기 때문에 펌웨어 다운로드도 잘 안되어야 하는데요, 말씀만으로는 어떤 문제인지 감이 잘 오지 않아서 일단 보내주시면 확인해보고 알려드리겠습니다.

만약 STM32 고장으로 확인되면 그때 교체 수리비를 입금해주시면 됩니다.

[보내실 곳 주소]

서울시 광진구 아차산로 78길 7, 1203호 엠하이브

070-8780-1313

보내실 때 FC와 st-link를 모두 연결한 채로 그대로 보내주시면 확인 후 알려드리겠습니다. 보내실때 연락가능한 전화번호를 꼭 적어주세요!

김정수님의 프로필 이미지
김정수
질문자

어제 5시경에 김정수이름으로 택배 보냈습니다! 잘 부탁드리겠습니다.

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

네. 그럼 확인 후 주말쯤 답글 남겨드리겠습니다.

감사합니다!

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

안녕하세요. 수령 후 검수하여 FC에 문제가 있다는 것이 확인됐습니다.

통상 발생하는 증상과는 다르게 5V 와 3.3V 가 모두 출력되면서 동시에 STM32 발열이 심해서, STM32 문제가 아닐수도 있겠다고 생각이 되었는데요,

다행히 STM32를 교체하면서 문제가 모두 해결되었습니다.

문제가 발생한 원인은 납땜 미숙이었던 것 같습니다. 처음 드론을 받아봤을때 납땜 상태가 매우 불량하고 절단된 전선 파편이 FC와 BEC 보드 위에 나뒹굴고 있었습니다. 그것은 쇼트가 나면 안되는 곳들에 미세하게 쇼트를 유발하므로 고장의 원인이 될 수 있습니다.

와이어 피복을 벗길 때 전선 일부가 잘렸다면 그 잘려나간 전선 파편들이 보드 위에 떨어지지않도록 모두 제거하셔야 합니다.

또한 "BEC"와 "ESC <-> 모터" 간 납땜도 너무 불량해서 다시 납땜을 하셔야 합니다. 지금 상태로 드론을 날리면 모터가 제대로 돌지 않아서 추락하거나 사고가 날 위험이 매우 큽니다.

아래는 제가 처음 받았을 때의 BEC의 납땜 상황과 제가 다시 납땜을 해서 수정한 사진입니다. 제가 납땜한 것처럼 ESC <-> 모터 간 납땜을 다시 하셔야 합니다.

납땜 전 후.png.webp

AS 비용과 계좌번호는 따로 연락드리도록 하겠습니다.

(우체국 택배 접수가 불가능하여 내일 발송은 불가능합니다)

0

안녕하세요, 인프런 AI 인턴입니다. 김정수님.

STM32 드론 개발 과정에서 iBus.SwC의 값이 2000일 때 ESC(전자 속도 제어기) 칼리브레이션 모드로 진입하지 않는 문제를 겪고 계신 것 같습니다. 이는 드론의 초기 설정이나 코드 로직에서 놓친 부분이 있을 수 있습니다. 다음은 확인해볼 만한 몇 가지 사항입니다.

  1. 코드 로직 확인: Is_iBus_Received() 함수가 0이 아닌 다른 값을 반환해야 ESC 칼리브레이션이 진행됩니다. 이 값이 올바르게 반환되고 있는지 확인해 보세요.

  2. iBus의 값 확인: iBus.SwC가 실제로 2000인지 다시 한번 확인해 주세요. 아두이노 프로그램에서 확인한 값과 실제로 코드가 읽어들이는 값이 동일한지 디버깅을 통해 확인하는 것이 좋습니다.

  3. 하드웨어 연결 상태: 송수신기와 기타 하드웨어가 제대로 연결되어 있는지 확인하세요. 하드웨어적으로 연결이 올바르지 않으면 소프트웨어가 정상적으로 동작하지 않을 수 있습니다.

  4. 코드 içinde의 다른 조건: 혹시 코드의 다른 부분에서 iBus.SwC 값을 수정하거나 덮어쓰는 부분이 있는지 확인해보세요.

비슷한 문제에 대한 논의가 있는 게시물을 참고해 보시기 바랍니다:

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

김정수님의 프로필 이미지
김정수

작성한 질문수

질문하기