CAN 네트워크 구성 및 ID 검색
사용 전 주의사항
- UTOR 또는 CAN 브리지 펌웨어가 설치된 메인보드를 USB로 호스트 컴퓨터에 연결합니다.
- 네트워크를 통해 호스트 컴퓨터 백엔드에 로그인하고, 직렬 포트는 사용하지 마십시오.
- FlyOS-FAST 시스템을 사용하는 경우 CAN을 구성할 필요가 없습니다(시스템에 1M 속도, 1024 캐시가 미리 설정되어 있습니다).
호스트 컴퓨터가 CAN을 지원하는지 확인
FLY 호스트 컴퓨터를 사용하는 경우 이 단계를 건너뛸 수 있습니다.
다음 명령을 실행하여 커널 CAN 지원을 확인합니다:
sudo modprobe can && echo "커널이 CAN을 지원합니다" || echo "커널이 CAN을 지원하지 않습니다"
"커널이 CAN을 지원합니다" 메시지가 표시되면 계속 구성할 수 있습니다.
CAN0 구성
⚠️ 이 작업은 기존 CAN0 구성을 덮어씁니다. 완료 후 시스템을 재부팅해야 합니다.
FAST 시스템은 실행하지 마십시오!
시스템 유형에 따라 해당 구성 방식을 선택합니다:
- 일반 Linux 시스템
- 라즈베리 파이 시스템
일반 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 속도 구성:
위 명령의 1000000을 500000으로 변경하면 됩니다.
라즈베리 파이 시스템
네트워크 구성 파일 생성(BitRate 값 수정 가능):
sudo tee /etc/systemd/network/99-can.network > /dev/null <<'EOF'
[Match]
Name=can*
[CAN]
BitRate=1000000
RestartSec=100ms
EOF
링크 구성 파일 생성(캐시는 수정하지 않는 것이 좋습니다):
sudo tee /etc/systemd/network/99-can.link > /dev/null <<'EOF'
[Match]
OriginalName=can*
[Link]
TxQueueLength=1024
EOF
마지막으로 장치를 재부팅합니다:
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 통신 속도는 호스트 컴퓨터(메인보드)의 구성과 완전히 일치해야 합니다. 그렇지 않으면 장치를 찾을 수 없습니다.
작업 단계:
- 호스트 터미널에서 다음 명령을 실행하여 CAN0 인터페이스의 현재 상태를 확인합니다:
ip -details link show can0
- 출력 정보에서 두 가지 주요 매개변수를 확인합니다:
bitrate: 현재 CAN 통신 속도 (예:1000000은 1Mbps를 의미).TxQueueLength: 전송 큐 길이/캐시 크기 (예:1024).
아래는 명령 출력 예시입니다. 빨간 상자 안의 bitrate 매개변수가 장치 설정과 일치하는지 확인하십시오:
Loading...
2. 시스템 ID 점유 제외
툴보드에 Klipper 펌웨어가 설치되어 있고 해당 ID가 호스트 구성 파일(printer.cfg)에 이미 작성된 경우, 해당 ID는 시스템에 의해 점유되어 검색에 표시되지 않습니다.
해결 방법:
printer.cfg에서 해당 툴보드에 대한 모든 구성 섹션을 임시로 주석 처리하거나 삭제합니다.- 수정 후에는 기기를 완전히 종료하고 약 10초 동안 전원을 차단한 후 다시 전원을 켜야 합니다.
3. CAN 버스 터미널 저항 확인
- 안정적인 CAN 버스 네트워크는 물리적 회선의 양 끝에
120Ω터미널 저항이 설치되어 있어야 합니다. - CAN-H와 CAN-L 사이의 저항값이 전원이 차단된 상태에서 멀티미터로 측정 시 약
60Ω이어야 합니다.
확인 방법:
- 반드시 장비 전원이 꺼진 상태에서 작업합니다.
- 멀티미터의 저항 모드를 사용하여 메인보드 CAN 인터페이스 또는 툴보드의 CAN-H와 CAN-L 핀 사이의 저항값을 측정합니다.
- 올바른 버스 저항값은 약 60Ω(두 개의
120Ω저항이 병렬로 연결된 결과)이어야 합니다. 측정값의 편차가 클 경우(예: 개방 회로 또는120Ω만 측정됨) 배선 또는 터미널 저항 구성에 문제가 있음을 나타냅니다.
각 장치 구성 규칙:
| 장치 유형 | 터미널 저항 요구 사항 | 조작 설명 |
|---|---|---|
| CAN 툴보드 | 120Ω 터미널 저항 필요 | 온보드 점퍼 핀 또는 딥 스위치를 통해 활성화. |
| 메인보드 CAN 인터페이스 | 120Ω 터미널 저항 필요 | 온보드 점퍼 핀 또는 딥 스위치를 통해 활성화. |
| UTOC 변환 모듈 | 120Ω 저항 내장 | 다른 터미널 저항을 활성화할 필요가 없습니다. |
Loading...