CAN 통신 오류 원인을 오실로스코프와 로그로 특정
팀 프로젝트에서 모터 컨트롤러와 메인 보드 사이 CAN 통신이 간헐적으로 끊기는 문제를 해결했습니다. 처음엔 소프트웨어 버그로 의심했는데, 오실로스코프로 신호를 확인하니 노이즈 스파이크가 이따금 나타났습니다. 종단 저항(termination resistor)이 한쪽에만 달려 있어서 반사 노이즈가 생긴 것이었습니다. 양 끝에 120Ω을 각각 추가하니 통신이 안정됐습니다.
하드웨어 문제를 소프트웨어에서만 찾으면 시간이 낭비된다는 걸 이때 느꼈습니다. 이후로 통신 문제가 생기면 물리 레이어부터 확인하는 순서를 유지하고 있습니다. 문제 범위를 좁혀가는 체계적인 접근이 결국 가장 빠릅니다.