-
Full bridge 모터 제어Autonomous Lawn Mower/Full bridge Motor control 2024. 12. 30. 03:47반응형
Traction 모터 및 Mower 모터용으로 BTN7960을 사용하였다. BTN7960은 2개의 FET가 내장된 half bridge 제어용 칩이다. 전류 제한이 minimum 33A로 오버 스펙이기는 하지만, BTN7960 2개가 내장된 보드를 저렴하게 구매할 수 있어서 사용하게 되었다. 이 반도체는 최대 25kHz로 동작하고, 두개의 FET를 내장하여서 active freewheeling이 가능하다. 보호기능으로는 over temperature, over current, over voltage, under voltage가 내장되어 있다. 또한 EMI 최적화를 위한 slew rate 제어가 가능하고, 에러율은 있지만 전류 센싱 값을 마이컴에서 읽어서 전류 값에 의한 보호 기능 구현 등 코딩이 가능하다.
하나의 BTN7960 Block diagram은 아래와 같다.

BTN 7960 block diagram 2개 BTN7960이 내장된 보드를 구매하였다. 신호부는 A에서 H 핀으로 입력을 받고, 파워부는 1,2,3,4로 구성되어 있다.

Full bridge (2 x BTN7960) 

회로도 모터제어를 위해서 Nucleo F401RE 보드를 사용하였다. Nucleo F401RE는 STM32F401RET6 마이컴을 내장하고 있다. 2개의 Traction 모터, 1개의 Mower 모터를 제어하기 위해서 Timer1의 channel 1,2,3와 GPIO 출력을 위해서 PA7, PB0, PB1을 사용하였다.


모터 제어 주파수를 20kHz로 맞추기 위해서는 Prescaler와 Counter Period 파라메터를 설정해야 한다. APB1 clock을 60MHz로 설정하고 Prescaler를 3-1, Counter Period를 1000-1로 설정하면 20kHz의 FPWM값을 얻을 수 있다.


20kHz 주파수 출력 값. 파란색이 Timer1 Ch1 출력 파형이고 노란색이 GPIO set 값이다.

Lawn Mower 외형

BTN7960 Truth table은 아래와 같다. 테이블에서 정상상태 동작은 INH핀이 high인 경우이다. 모터를 PWM 입력으로 제어할 것이기 때문에 IN 값이 중요하며, IN 값이 high 인 경우 BTN7960 내부의 High side FET이 ON 된다. 일반적으로 high side에 사용된 P ch FET의 Rds_on 값이 low side에 사용된 N ch FET의 Rds_on 값보다 크기 때문에 N ch FET를 forward 방향 제어용으로 사용하고 P ch FET는 사용 빈도가 낮은 reverse 방향 제어용으로 사용한다.

Forward 방향으로 직진할 경우, Timer 1 Ch1의 PA7을 high로 유지하면 오른쪽 BTN7960은 항상 highside FET가 ON 된다. 이 후 왼쪽 BTN7960을 이용해서 모터를 제어하게 된다. 왼쪽 BTN7960의 lowside FET를 이용해서 모터를 제어해야 하므로, PWM 값은 반전된 값을 이용해야 한다.

Forward operation Reverse방향으로 후진할 경우, Timer 1 Ch1의 PA7을 low로 유지하면 오른쪽 BTN7960은 항상 lowside FET가 ON 된다. 이 후 왼쪽 BTN7960을 이용해서 모터를 제어하게 된다. 왼쪽 BTN7960의 highside FET를 이용해서 모터를 제어해야 하므로, PWM 값은 정상 상태 값을 이용해야 한다.

Reverse operation 
Source code 반응형'Autonomous Lawn Mower > Full bridge Motor control' 카테고리의 다른 글
모터 PI 제어 주기 변경 1s to 50ms (0) 2025.05.21