본문으로 건너뛰기

CAN 네트워크 구성 및 ID 검색

사용 전 주의사항

  1. UTOR 또는 CAN 브리지 펌웨어가 구워진 메인보드를 USB로 상위 컴퓨터에 연결하세요.
  2. 네트워크를 통해 상위 컴퓨터 백엔드에 로그인하세요. 시리얼 포트를 사용하지 마세요.
  3. FlyOS-FAST 시스템을 사용하는 경우 CAN을 구성할 필요가 없습니다(시스템은 이미 1M 속도, 1024 캐시로 사전 설정되어 있습니다).

상위 컴퓨터 CAN 지원 여부 확인

FLY 상위 컴퓨터를 사용하는 경우 이 단계를 건너뛸 수 있습니다.

다음 명령을 실행하여 커널 CAN 지원을 확인하세요:

sudo modprobe can && echo "커널이 CAN을 지원합니다" || echo "커널이 CAN을 지원하지 않습니다"

"커널이 CAN을 지원합니다"가 표시되면 계속 구성할 수 있습니다.

CAN0 구성

⚠️ 이 작업은 기존 CAN0 구성을 덮어씁니다. 완료 후 시스템을 재부팅해야 합니다.
FAST 시스템은 실행하지 마세요!

시스템 유형에 따라 해당 구성 방법을 선택하세요:

일반 Linux 시스템

1M 속도 구성:

sudo /bin/sh -c "cat > /etc/network/interfaces.d/can0" << EOF
allow-hotplug can0
iface can0 can static
bitrate 1000000
up ifconfig \$IFACE txqueuelen 1024
pre-up ip link set can0 type can bitrate 1000000
pre-up ip link set can0 txqueuelen 1024
EOF

500K 속도 구성:
위 명령의 1000000500000으로 변경하세요.

마지막으로 장치를 재부팅하세요:

sudo reboot

CAN ID 검색 명령어

  • 일반 상위 컴퓨터 검색 명령어
    ~/klippy-env/bin/python ~/klipper/scripts/canbus_query.py can0
  • FLY 상위 컴퓨터 검색 명령어
    python3 ~/klipper/scripts/canbus_query.py can0
  • ID가 나타나고 마지막 Application:Klipper가 표시되면 이 ID를 바로 사용할 수 있습니다.
  • ID가 나타나고 마지막 Application:CANBOOT 또는 Katapult가 표시되면 펌웨어를 구워야 사용할 수 있습니다.
    Loading...

오류 메시지

  • 다음은 일반적인 오류입니다.
    • OSError: [Errno 19] No such device
    • can.CanError: Failed to transmit: [Errno 100] Network is down
    • can.CanError: Failed to transmit: [Errno 105] No buffer space available
  • 첫 번째는 상위 컴퓨터가 CAN 장치를 찾을 수 없습니다(USB 브리지 펌웨어가 구워진 메인보드 또는 UTOC).
  • 두 번째는 상위 컴퓨터가 CAN0를 구성하지 않았거나 잘못 구성했습니다.
  • 세 번째는 상위 컴퓨터 캐시 부족 또는 시스템 문제 등으로 인해 캐시가 충돌했습니다.
  • 두 번째와 세 번째는 CAN0 구성을 참조하여 다시 구성하면 됩니다.

도구 보드 ID 검색 가이드 및 문제 해결

1. CAN 속도 확인 및 구성

도구 보드 펌웨어의 CAN 통신 속도는 상위 컴퓨터(호스트)의 구성과 완전히 일치해야 합니다. 그렇지 않으면 장치를 발견할 수 없습니다.

작업 단계:

  1. 호스트 터미널에서 다음 명령을 실행하여 CAN0 인터페이스의 현재 상태를 확인하세요:
ip -details link show can0
  1. 출력 정보에서 두 가지 핵심 매개변수를 확인하세요:
  • bitrate: 현재 CAN 통신 속도(예: 1000000은 1Mbps를 의미).
  • TxQueueLength: 전송 큐 길이/캐시 크기(예: 1024).

아래 그림은 명령 출력의 예시입니다. 빨간색 상자 안의 bitrate 매개변수가 장치 설정과 일치하는지 확인하세요:

Loading...

2. 시스템 ID 점유 제외

도구 보드에 Klipper 펌웨어가 구워져 있고 해당 ID가 호스트 구성 파일(printer.cfg)에 이미 기록된 경우, 시스템에서 점유되어 검색에 표시되지 않습니다.

해결 방법:

  1. printer.cfg에서 해당 도구 보드와 관련된 모든 구성 단락을 임시로 주석 처리하거나 삭제하세요.
  2. 수정을 실행한 후에는 기기를 완전히 종료하고 전원을 약 10초 동안 분리한 다음 다시 전원을 켜야 합니다.

3. CAN 버스 종단 저항 확인

  • 안정적인 CAN 버스 네트워크는 물리적 회로의 양쪽 끝120Ω 종단 저항이 설치되어 있어야 합니다.
  • 전원이 꺼진 상태에서 멀티미터로 CAN-H와 CAN-L 사이의 저항값을 측정했을 때 60Ω 정도여야 합니다.

확인 방법:

  1. 반드시 전체 시스템 전원을 끈 상태에서 작업하세요.
  2. 멀티미터의 저항 측정 모드를 사용하여 메인보드 CAN 인터페이스 또는 도구 보드의 CAN-H와 CAN-L 핀 사이의 저항값을 측정하세요.
  3. 올바른 버스 저항값은 약 60Ω이어야 합니다(두 개의 120Ω 저항을 병렬 연결한 결과). 측정값이 너무 크게 벗어나면(예: 개방 또는 120Ω만) 배선 또는 종단 저항 구성이 잘못된 것입니다.

각 장치 구성 규칙:

장치 유형종단 저항 요구 사항작업 설명
CAN 도구 보드120Ω 종단 저항 필요보드의 점퍼 캡 또는 DIP 스위치를 통해 활성화하세요.
메인보드 CAN 인터페이스120Ω 종단 저항 필요보드의 점퍼 캡 또는 DIP 스위치를 통해 활성화하세요.
UTOC 유형 변환 모듈내장된 120Ω 저항다른 종단 저항을 활성화할 필요가 없습니다.
Loading...