TMC 오류 해결
기술 배경
TMC(Trinamic) 드라이버는 전용 레지스터를 통해 상태 및 오류 정보를 보고합니다. 이러한 레지스터를 이해하면 문제를 신속하게 진단하는 데 도움이 됩니다:
- IFCNT 레지스터: 통신 프레임 카운터로, 메인 컨트롤러와 드라이버 간의 통신이 정상적인지 확인하는 데 사용됩니다.
- GSTAT 레지스터: 리셋, 드라이버 오류 등 글로벌 상태 정보를 포함하는 전역 상태 레지스터입니다.
- DRV_STATUS 레지스터: 온도 경고, 단락, 개방 등 상세한 드라이버 작동 상태를 제공하는 드라이버 상태 레지스터입니다.
Klipper가 TMC 오류를 보고하면 일반적으로 특정 레지스터 값과 오류 플래그를 표시합니다. TMC 드라이버 오류는 드라이버 칩이 문제를 감지하고 자체 보호를 위해 비활성화되었음을 의미하며, Klipper는 드라이버 비활성화를 감지하면 shutdown 상태로 전환됩니다.
점퍼 캡, 드라이버 모듈, 모터 케이블, SPI/UART 배선 또는 터미널을 점검하기 전에 프린터를 완전히 끄고 전원 공급 장치를 분리하십시오. 드라이버 모듈이나 스테핑 모터 케이블을 핫 스왑하지 마십시오. 멀티미터 저항 모드는 전원이 차단된 상태에서만 사용하십시오.
드라이버 연결 불가 (IFCNT 통신 실패)
오류 메시지: Unable to read tmc uart 'stepper_x' register IFCNT 또는 Unable to read tmc spi 'stepper_x' register IFCNT.
오류 원인: TMC 드라이버(UART/SPI 모드)와 메인 컨트롤러 간의 통신이 실패하여 IFCNT 레지스터 값을 읽을 수 없습니다. UART 점퍼 캡 미설치, 드라이버 보드 전원 공급 이상 또는 UART/SPI 핀 구성 오류에서 흔히 발생합니다.
해결 방법:
- 전원을 차단한 후 해당 드라이버의 UART 점퍼 캡이 올바르게 설치되었는지 확인하십시오.
printer.cfg의 TMC 설정에 있는uart_pin(또는spi_bus/spi_software_*_pin)이 실제 배선과 일치하는지 확인하십시오.- 먼저 전원 표시등과 드라이버 모듈 장착 방향을 통해 전원 공급 상태를 대략적으로 확인하십시오. 표시등이 정상이고 모듈 방향이 올바른데도 문제가 지속되면 완제품 와이어 하네스로 교체하거나 교차 테스트(드라이버를 다른 포트로 옮겨 확인)를 수행하십시오. 노출된 24V 단자의 전기적 검사는售后(애프터 서비스) 또는 전문가에게 문의하십시오.
- Klipper를 처음 플래시한 후 즉시 오류가 발생하면, 전체 장치를 몇 초간 전원을 차단(USB와 메인 전원 모두 분리)한 후 다시 전원을 켜서 드라이버의 잔류 상태를 지우십시오.
- 전원을 차단한 후 드라이버 보드를 교체하거나 드라이버 포트를 변경하여 테스트하십시오.
- FLY 브랜드가 아닌 드라이버를 사용하는 경우 UART 핀 정의를 확인하십시오(FLY 드라이버 UART 핀은 일반적으로 왼쪽에서 위에서 아래로 네 번째 핀입니다).
특수한 경우, 구매한 드라이버의 UART 핀이 다섯 번째 핀인 경우 아래 점퍼 방법으로 해결할 수 있습니다:
uart_address와 드라이버 보드 하드웨어 점퍼가 일치하는지 확인하십시오.- 데이터 케이블이 손상되지 않고 단선이나 접촉 불량이 없는지 확인하십시오.
드라이버 과열 (OvertempError / OvertempWarning)
오류 메시지: TMC 'stepper_x' reports error: DRV_STATUS: ... ot=1(OvertempError!) 또는 otpw=1(OvertempWarning!).
오류 원인: TMC 드라이버 칩 온도가 안전 임계값을 초과하여 보호가 트리거되었습니다. 참고: 이것은 모터 과열이 아닌 드라이버 과열입니다!
OvertempWarning(otpw): 온도가 약 120°C 경고 임계값을 초과했습니다. 드라이버는 계속 작동할 수 있지만 점검을 권장합니다.OvertempError(ot): 온도가 약 150°C 차단 임계값을 초과하여 드라이버가 자동으로 비활성화되었습니다.
해결 방법:
- 모터 작동 전류(
run_current)를 낮추십시오. 먼저 20-30% 낮추는 것을 권장합니다. - 유지 전류(
hold_current)가 설정된 경우 적절히 낮추거나 완전히 비활성화하십시오. - 드라이버 방열판이 잘 밀착되어 있는지, 방열 그리스가 충분한지 확인하십시오.
- 드라이버 냉각 팬을 추가하고 공기 순환이 원활한지 확인하십시오.
- 드라이버 보드의 감지 저항(sense resistor) 값이 올바르게 구성되었는지 확인하십시오.
stealthchop_threshold를 낮추거나 spreadCycle 모드로 전환하십시오.- 드라이버 설치 환경이 밀폐되어 열이 축적되지 않는지 확인하고, 고온 환경에서 장시간 작동을 피하십시오.
단락 오류 (ShortToGND / ShortToSupply)
오류 메시지: TMC 'stepper_x' reports error: DRV_STATUS: ... s2vsa=1(ShortToSupply_A!) 또는 s2ga=1(ShortToGND_A!).
오류 원인: 드라이버가 매우 높은 전류를 감지했습니다. 모터 케이블 느슨함으로 인한 단락, 모터 권선 절연 파손, 또는 stealthChop 모드에서 예측 부하가 정확하지 않아 발생하는 과전류일 수 있습니다.
해결 방법:
- 먼저 전원을 차단한 후 작업하십시오. 해당 모터 케이블이 느슨하거나 손상되었는지 확인하고, 멀티미터 저항 모드를 사용하여 모터 코일 저항을 측정하십시오(정상 약 1.5~3Ω).
- 전원을 차단한 후 모터 커넥터가 단단히 고정되었는지 확인하십시오.
- 모터 하우징 접지 처리가 필요한 경우 제조사에서 제공하는 접지점을 사용하거나售后(애프터 서비스)에 문의하십시오. 전원 접지선이나 노출된 단자를 임의로 변경하지 마십시오.
- stealthChop을 비활성화하여 테스트:
SET_TMC_FIELD STEPPER=stepper_x FIELD=en_spreadCycle VALUE=1 - 전환 후 오류가 사라지면 stealthChop 예측 문제입니다. 그렇지 않으면 실제 하드웨어 단락일 가능성이 있습니다.
개방 오류 (OpenLoad)
오류 메시지: TMC 'stepper_x' reports error: DRV_STATUS: ... ola=1(OpenLoad_A!) 또는 olb=1(OpenLoad_B!).
오류 원인: 드라이버가 모터의 특정 상 권선에 유효한 부하가 형성되지 않았음을 감지했습니다. 일반적으로 모터 케이블 단선, 플러그 느슨함, 코일 잘못 연결, 또는 저전류/stealthChop 상태에서의 오판을 나타냅니다.
해결 방법:
- 전원을 차단한 후 모터 케이블을 다시 꽂고 단자 압착이 견고한지 확인하십시오.
- 먼저 전원을 차단한 후 작업하십시오. 멀티미터로 A/B 두 그룹 코일의 저항을 측정하십시오. 두 그룹의 값이 비슷해야 하며 개방되어서는 안 됩니다.
- 전원을 차단한 후 모터 배선 순서를 확인하여 A상 두 선이 한 그룹, B상 두 선이 다른 그룹에 있는지 확인하십시오.
- stealthChop을 임시로 비활성화: 설정에서
stealthchop_threshold: 0을 설정한 후 테스트하십시오. run_current를 적절히 높여 테스트하십시오. 매우 낮은 전류에서만 발생하는 경우 오판일 수 있습니다.- 전원을 차단한 후 모터 케이블이나 모터를 교체하여 교차 테스트하고, 문제가 와이어 하네스, 모터 또는 드라이버 포트 중 어디에 있는지 확인하십시오.
단락 + 개방 복합 오류 (A상 단락 B상 개방)
오류 메시지: TMC 'extruder' reports error: DRV_STATUS: ... s2vsa=1(ShortToSupply_A!) csactual=31 ola=1(OpenLoad_A!) olb=1(OpenLoad_B!).
오류 원인: TMC 드라이버 오류 진단 비트가 하드웨어 문제를 나타냅니다: s2vsa=1은 A상이 전원에 단락되었음을, ola=1은 A상 개방을, olb=1은 B상 개방을, csactual=31은 현재 전류 설정값이 과도하게 높을 수 있음을 나타냅니다. 이러한 오류는 일반적으로 동시에 발생하며 모터 또는 드라이버에 심각한 하드웨어 문제가 있음을 나타냅니다.
해결 방법:
- 먼저 전원을 차단한 후 작업하십시오. 멀티미터로 스테핑 모터 AB 두 그룹 코일의 저항이 일치하는지 측정하십시오(일반적으로 1-2Ω이어야 하며 두 그룹 값이 비슷해야 함).
- 전원을 차단한 후 스테핑 모터 와이어 하네스와 커넥터에 느슨함, 단락 또는 접촉 불량이 있는지 주의 깊게 확인하십시오.
- TMC 드라이버의 전류 설정이 적절한지 확인하십시오. 너무 높은 전류는 이러한 문제를 일으킬 수 있습니다.
- stealthChop 모드를 비활성화하여 테스트: 설정에서
stealthchop_threshold: 0을 설정하십시오.
단락 + 개방 복합 오류 (B상 단락 A상 개방)
오류 메시지: TMC 'extruder' reports error: DRV_STATUS: ... s2vsb=1(ShortToSupply_B!) ola=1(OpenLoad_A!) cs_actual=25.
오류 원인: TMC 드라이버 오류 진단 비트가 다음을 나타냅니다: s2vsb=1은 B상이 전원에 단락되었음을, ola=1은 A상 개방을, cs_actual=25는 현재 전류 설정값을 나타냅니다. 일반적으로 모터 배선 오류(A/B상 반대로 연결 또는 단락), 모터 자체 결함(권선 개방) 또는 드라이버 보드 하드웨어 문제로 인해 발생합니다.
해결 방법:
- 먼저 전원을 차단한 후 작업하십시오. 멀티미터로 스테핑 모터 A, B 두 그룹 코일의 저항이 일치하는지 측정하십시오(정상적으로 비슷해야 함).
- 전원을 차단한 후 모터 배선 순서가 올바른지 확인하십시오. 일반적으로 왼쪽 그룹(A상), 오른쪽 그룹(B상)이어야 합니다.
- 전원을 차단한 후 모든 배선 터미널이 단단히 고정되었는지, 느슨함이나 접촉 불량이 없는지 확인하십시오.
- 가능한 경우 전원을 차단한 후 모터를 다른 정상으로 알려진 드라이버 포트에 연결하여 테스트하십시오.
드라이버 리셋 (Reset)
오류 메시지: TMC 'stepper_x' reports error: GSTAT: 00000001 reset=1(Reset).
오류 원인: 전원 불안정 또는 외부 간섭으로 인해 드라이버가 자동으로 리셋되었습니다. 전원 전압 변동, 배선 접촉 불량 또는 전자기 간섭에서 흔히 발생합니다.
해결 방법:
- 완전히 전원을 차단한 후 24V 전원 케이블, 드라이버 모듈 및 메인보드 소켓이 느슨하거나, 검게 변했거나, 부식되지 않았는지 확인하십시오.
- 정상으로 알려진 전원 공급 장치, 드라이버 모듈 또는 와이어 하네스로 교체하여 교차 테스트하십시오.
- 드라이버 냉각 및 팬이 정상적으로 작동하는지 확인하십시오.
- 모터 케이블이 히터 또는 히트베드 케이블과 장거리 평행하게 배선되지 않았는지 확인하십시오. 필요한 경우 전원을 차단한 후 배선을 다시 정리하십시오.
- 먼저 전원을 차단한 후 작업하십시오. 모터 케이블에 단선, 내부 소선 파손 또는 터미널 접촉 불량으로 인한 간헐적 연결 문제가 있는지 확인하십시오. 트랙 체인의 장기적인 움직임은 케이블 피로 파손을 유발할 수 있으므로 트랙 체인 굽힘 부분과 터미널 압착 부분을 집중적으로 점검하십시오.
- 고객이 드라이버 전원 입력단을 임의로 변경하거나, 전자 부품을 추가하거나, 접지 방식을 변경하는 것은 권장하지 않습니다. 이러한 작업은 전문가 또는售后(애프터 서비스)에게 문의하십시오.
저전압 보호 (Undervoltage)
오류 메시지: TMC 'stepper_x' reports error: DRV_STATUS: ... uv_cp=1(Undervoltage!).
오류 원인: 드라이버가 공급 전압이 너무 낮은 이벤트를 감지했습니다. 일반적으로 전원 공급 장치 오류, 배선 느슨함 또는 전원 공급 부족으로 인해 발생합니다.
해결 방법:
- 완전히 전원을 차단한 후 전원 케이블, 메인보드 전원 플러그 및 터미널 외관이 느슨하거나, 검게 변했거나, 부식되지 않았는지 확인하십시오.
- 전원 공급 장치 사양이 드라이버와 히터의 총 전력 요구 사항을 충족하는지 확인하십시오.
- 정상으로 알려진 전원 공급 장치 또는 와이어 하네스로 교체 테스트를 수행하십시오.
- 노출된 24V 단자의 전기적 검사는售后(애프터 서비스) 또는 전문가에게 문의하십시오. 스스로 처리하지 마십시오.
SPI 통신 오류 (DRV_STATUS: ffffffff)
오류 메시지: Unable to write tmc spi 'stepper_x' register ..., TMC reports error: DRV_STATUS: ffffffff ... 또는 READRSP@RDSEL2: 00000000 ....
오류 원인: SPI 모드에서 TMC 드라이버(tmc2130/tmc5160/tmc2660)와 통신할 수 없습니다. 일반적으로 SPI 배선 오류, SPI 버스에 구성되지 않은 장치가 있거나 TMC 드라이버 자체 리셋/오류로 인해 발생합니다.
해결 방법:
- 전원을 차단한 후 SPI 배선(MOSI, MISO, SCK, CS) 순서가 올바른지 확인하십시오.
- SPI 버스를 여러 장치가 공유하는 경우 각 장치가 Klipper에서 완전히 구성되었는지 확인하십시오.
- 전원을 차단한 후 메인보드에 드라이버 하나만 연결하여 단독 테스트를 수행하여 공유 버스 간섭을 배제하십시오.
- 드라이버 전원 공급이 정상인지 확인하고, 필요한 경우 몇 초간 전원을 차단했다가 다시 켜십시오.
- 오류에
reset=1,uv_cp=1또는 무작위ffffffff가 동반되는 경우 전원 공급 및 드라이버 접촉을 우선 점검하십시오.
단독 드라이버 테스트: 드라이버가 정상인지 격리하여 확인하려면 주변 장치 및 드라이버 테스트의 SPI 드라이버 단독 테스트 방법을 참조하십시오.