시마 x5 드론 의 개조 # 5 RX init 설정 검토 .

앞서 실버웨어 아크로 펌업을 하고 난뒤 시마 기본 조종기로 바인딩 까지는 성공 했지만 전파 도달거리의 이상을 발견한것 까지 설명 했다. ​결국 디버깅을 하기로 했지만 이게 생업이 아니다 보니 시간을 최소한 으로 적게 들여야 했다. 그리고 이거 개조해서 밥벌어 먹고 살것도 아닌데 적당히 해야 했다. ​그래서 결국 레퍼런스를 뒤져보며 비트연산자 가득한 소스코드를 들여다 보기로 했다. ​먼저 체크 할 사항은 수신 부분의 설정이 정확한가 이다. 시마 드론의 송신부분은 변화 가 없는데 수신부분이 문제가 있는것이므로 펌웨어 업데이트 쪽에 당연히 문제가 있는것이고 펌업 을 하면서 통신 부분의 변화는 rx 초기화 부분과 채널 설정 부분이 될것이다. ​먼저 rx 쪽이 정확히 초기화 되어있는지 type 은 정확하게 되어있는지 살펴야 했다. 펌웨어는 비트 노가다​먼저 rx_init () 중에 rf_setup 변수를 주목했다 type 은 uint8_t 로 8비트 이다 이 변수가 여러가지 비트연산자 처리를 통해서 최종적으로 통신칩에 초기화 세팅을 하게 되는된다 ​

>

​bk2425 레퍼런스를 보면

>

위의 8비트 는 이런 식으로 설정 된다. 위에서 아래로 00001111 로 기본값이 박히게 된다. ​만약 내가 칩의 비트레이트를 250k 에서 1M 으로 또는 2M 으로 바꾸게 되면 그에 따라서 8비트도 각각 스위치 역활을 하면서 변화 해야 할것이다,

>

2M 로 설정해서 컴파일 한뒤에 컴파일러의 디스어셈블러로 최종 변수값이 어찌 변해서 설정됬는지를 추적 해보면 ​

>

rf_setup 의 최종 값은 0x08 즉 00001000 이 되며 이는 250k 였을때 00100000과 달라졌음을 확인 가능했다 ​비트연산자가 맞는지 틀리는지 다 확인 하긴 힘드는 결과 값만 보고 맞는지 틀리는 지 여부만 판단하겠다는 얕은 꼼수인데 이짓을 의심가는데 마다 해야 하니 ….. ​rx init 쪽의 세팅에서 의심가는 부분은 없었다. 결국 채널 쪽으로 봐야 겠다 ​​​

댓글 달기

이메일 주소를 발행하지 않을 것입니다. 필수 항목은 *(으)로 표시합니다