11개의 XH430-V350 모터에서 U2D2를 통하여 PC로 데이터를 받고 있습니다.
5ms 마다 fast_sync_read를 사용하여 모터의 위치를 수신하고 있는데 20초당 130번정도는 모터의 위치를 수신하지 못하고 있습니다. 예를 들면 총 150 바이트의 데이터를 수신해야 되는데 실제 받은 데이터는142개입니다.
sync_read를 사용하면 20초당 1번꼴로 데이터가 누락되는데에 비해 너무 빈번하게 누락이 발생합니다.
원인을 알고 싶습니다.
최신 펌웨어를 적용하였고
baud_rate: 2M
return_delay_time: 260us
를 적용하였으며 baud_rate,return_delay_time를 변경해도 비슷한 문제가 발생합니다.
문제 상황의 패킷을 분석해 보면, ID6 의 CRC(2 Bytes)와 ID7 의 패킷이 누락되었습니다.
다이나믹셀 입장에서, ID7의 패킷이 없다면, ID8이 응답할 수 없습니다.
즉, 다이나믹셀 사이에서는 ID7 패킷을
인식했을 것이고, U2D2 입장에서만 패킷 누락이 발생한 것 같습니다.
최초 질문으로 돌아가서 생각해 보면, 일반 Sync Read 패킷에서도 20초에 1번 정도 패킷 누락이 발생했다는 것으로 보아, 물리적인 연결성에 결함이
있을 가능성이 있습니다. 따라서, 케이블을 교체하거나, U2D2의 종단저항 스위치를 켜고, 마지막 다이나믹셀 끝에 종단저항(120Ω)을 연결해 보는 조치를 취해보는 것을 제안합니다.