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)에 이미 기록된 경우, 시스템에서 점유되어 검색에 표시되지 않습니다.
해결 방법:
printer.cfg에서 해당 도구 보드와 관련된 모든 구성 단락을 임시로 주석 처리하거나 삭제하세요.- 수정을 실행한 후에는 기기를 완전히 종료하고 전원을 약 10초 동안 분리한 다음 다시 전원을 켜야 합니다.
3. CAN 버스 종단 저항 확인
- 안정적인 CAN 버스 네트워크는 물리적 회로의 양쪽 끝에
120Ω종단 저항이 설치되어 있어야 합니다. - 전원이 꺼진 상태에서 멀티미터로 CAN-H와 CAN-L 사이의 저항값을 측정했을 때
60Ω정도여야 합니다.
확인 방법:
- 반드시 전체 시스템 전원을 끈 상태에서 작업하세요.
- 멀티미터의 저항 측정 모드를 사용하여 메인보드 CAN 인터페이스 또는 도구 보드의 CAN-H와 CAN-L 핀 사이의 저항값을 측정하세요.
- 올바른 버스 저항값은 약 60Ω이어야 합니다(두 개의
120Ω저항을 병렬 연결한 결과). 측정값이 너무 크게 벗어나면(예: 개방 또는120Ω만) 배선 또는 종단 저항 구성이 잘못된 것입니다.
각 장치 구성 규칙:
| 장치 유형 | 종단 저항 요구 사항 | 작업 설명 |
|---|---|---|
| CAN 도구 보드 | 120Ω 종단 저항 필요 | 보드의 점퍼 캡 또는 DIP 스위치를 통해 활성화하세요. |
| 메인보드 CAN 인터페이스 | 120Ω 종단 저항 필요 | 보드의 점퍼 캡 또는 DIP 스위치를 통해 활성화하세요. |
| UTOC 유형 변환 모듈 | 내장된 120Ω 저항 | 다른 종단 저항을 활성화할 필요가 없습니다. |
Loading...