Stepper Motor의 Holding Current 제어 회로 – 1

개요

Texas Instrument사의 DRV8886으로 Stepper Motor를 제어하여 Thermal Printer의 인쇄 Film과 리본을 Feeding시키고 있는데 인쇄가 종료 되었을 때 감겨 있는 리본의 Tension에 의해 backlash가 발생을 하였습니다.
본 글은 이것을 해결하기 위한 해결책을 검토하고 회로를 구성한 것에 대한 것 입니다.

Stepper Motor Driver 회로

두 개의 Driver를 사용하여 두 개의 Stepper Motor를 구동 하며 하나는 인쇄Film을 feeding하며 다른 하나는 ribbon을 feeding하는 용도로
사용하도록 설계 하였습니다. Driver 앞단에는 아래와 같이 버퍼를 두어 MCU신호를 버퍼를 거쳐서 driver에 인가되도록 하였습니다.
방향신호를 제외하고 모든 신호는 버퍼를 거쳐 공유를 하게 하였습니다. 즉, 방향만 바꿀 수 있고 다른 모든 신호는 MCU에서 나오는 신호 하나로
제어를 하고 있습니다. Thermal Printer는 통상 1/2 Microstep을 사용하기 때문에 여기서도 M0=”0″, M1=”1″ 신호를 주어 1/2Microstep을 구현하였습니다.

Stepper Motor는 NEMA17 규격의 제품을 사용하였습니다.

Texas Instrument 사의 DRV8886 IC의 Datasheet는 아래에서 확인 할 수 있습니다.
http://DRV8886 Datasheet

문제점

위 Stepper Motor Driver회로는 잘 동작하고 있습니다. 그러나 동작을 꾸준히 관찰한 결과 두가지 문제점이 발견 되었는데
소음이 많이 발생한다는 것과 프린터 ribbon롤이 backlash가 일어 난다는 것 입니다.
소음 문제는 1/2Microstep을 1/4이나 1/8로 변경 하거나 DRV8886을 사용하지 않고 저소음 Driver로 바꾸는 방법으로 해결 할 수 있습니다.
저소음 Driver로는 Analog Device 사의 TMC2209 가 있습니다.
Ribbon 롤 backlash 문제는 stepper motor driver를 disable 하였을 때 모터가 자유롭게 회전을 하기 때문에 발생하는 문제 입니다.
disable을 하지 않으면 되는데 그렇게 되면 드라이버 IC가 과열이 될 가능성이 있습니다.

해결책

Ribbon 롤 backlash 문제는 stepper motor가 정지 하였을 때도 드라이버를 disable 시키지 않고 enable 상태를 유지하여 stepper motor가 자유회전을
하지 않도록 해 주면 됩니다. 이때 동작 current를 100%로 유지하면 드라이버 IC가 과열할 수도 있으므로 전류를 동작할 때 보다는 작게 조절을 하여 과열이 되지 않으면서도 backlash가 발생하지 않도록 하여야 합니다.
DRV8886AT의 Datasheet에 의하면 아래 그림과 같이 RREF에 연결된 저항값을 변경 해 줌으로써 동작전류를 조절 할 수가 있습니다.

우리 회로에서 TRQ가 GND에 연결되어 있으므로 TRQ = 0, 즉, 흑색 곡선을 기준으로 하면 됩니다.
또한 RREF에 15KOhm의 저항이 연결되어 있으므로 2A, 즉 100%의 동작 전류가 공급됩니다.
정지 시에는 이 저항값을 30KOhm 또는 45KOhm으로 변경을 해 줌으로써 전류 값을 낮추어 주는 것이 회로설계의 목표 입니다.
아래와 같이 MCU에서 저항값을 변경 할 수 있도록 회로 설계를 하였습니다.

MCU의 GPIO 신호 출력으로 세 개의 저항 중 하나를 선택 함으로써 저항값을 변경 할 수 있습니다.
정상 동작 시는 Q1을 On 시켜 R1=15K가 RREF에 연결되도록 하여 100% 전류를 공급하고 정지 시에는 Q2나 혹은 Q3를 On 시켜서 30K 혹은 45K 저항이
RREF에 연결 되도록 하여 전류를 50%이상 낮게 공급 할 수 있습니다. 어느 정도가 적정한 지는 실험을 통해 실제 적용될 저항값을 변경하면 됩니다.
이 회로는 두 개의 드라이버 중 리본롤을 회전 시키는 드라이버에만 적용 할 예정입니다.
이상과 같이 정지 시에도 적정량의 holding current를 공급 해 주어 모터가 자유회전을 하지 않도록 하는 회로를 설계 하였습니다.

댓글 남기기