[태그:] Motor Driver

모터 구동 회로

  • DRV10983 FG 기능과 전류·토크 측정: MotorCurrent 레지스터와 데이터시트 리비전 주의사항

    텍사스 인스트루먼트(TI)의 DRV10983은 12V~24V 시스템을 위한 3상 센서리스(Sensorless) BLDC 모터 드라이버 IC로, 외장 홀 센서 없이 모터를 정현파 구동한다. 드라이버 제어 및 상태 진단을 구현할 때 회전 속도 피드백을 위한 FG(Frequency Generator) 핀과 부하 토크 추정을 위한 전류 센싱 방식의 선정은 핵심 설계 요소다.


    1. DRV10983 FG 신호의 동작 원리와 RPM 계측 메커니즘

    DRV10983의 FG(Frequency Generator) 핀은 모터 로터의 전기적 회전 주기에 동기화된 디지털 펄스를 출력하여 실시간 회전수 계측, 폐루프(Closed-Loop) 속도 제어, 모터 구속(Stall/Lock) 감지 인터럽트 소스로 활용된다.

    Open-Drain 인터페이스 회로

    FG 핀의 내부 출력단은 오픈 드레인(Open-Drain) N채널 MOSFET 구조다. 내부 풀업 저항이 내장되어 있지 않으므로 신호 라인을 로직 하이(High)로 견인하기 위해 반드시 외부에 풀업 저항(\(R_{PU}\))을 실장해야 한다.

    풀업 저항의 전원 레일은 구동 MCU의 I/O 로직 레벨(+3.3V 또는 +5V)에 연결하며, 권장 저항값은 \(4.7\text{ k}\Omega \sim 10\text{ k}\Omega\) 범위다. 저항값이 지나치게 크면 PCB 부하 커패시턴스로 인해 구형파의 상승 시간(Rise Time)이 지연되어 고속 회전 시 펄스 왜곡이 발생하며, 반대로 너무 작으면 로우(Low) 상태에서 불필요한 싱크 전류 소모가 증가한다.

    DRV10983 FG 오픈드레인 출력과 풀업 저항 및 MCU Input Capture 연결 회로도
    DRV10983 FG Open-Drain 출력단과 MCU Input Capture 핀 간 풀업 저항 인터페이스 회로도

    주파수와 RPM 변환 수식

    FG 핀에서 출력되는 구형파의 주파수(\(f_{FG}\))는 모터의 기계적 회전수(RPM), 모터 로터의 극수(Poles, \(P\)), 그리고 DRV10983 내부 FGcycle 레지스터 설정 계수(\(K_{FG}\))에 비례한다.

    \[f_{FG} = \left( \frac{\text{RPM} \times P}{120} \right) \times K_{FG}\]

    MCU 타이머의 인풋 캡처(Input Capture) 인터럽트를 통해 측정된 \(f_{FG}\)로부터 실제 모터 회전수를 역산하는 공식은 다음과 같다:

    \[\text{RPM} = \frac{120 \times f_{FG}}{P \times K_{FG}}\]
    • \(P\): 모터 극수 (Pole 수, 예: 8극 모터의 경우 \(P=8\))
    • \(K_{FG}\): FGcycle 레지스터 설정에 따른 출력 펄스 배율 계수 (기본 1회전당 전기각 펄스 수 제어)
    8극 모터에서 RPM에 따른 DRV10983 FG 출력 주파수 그래프
    8극 모터, K_FG=1 조건의 RPM–FG 주파수 관계. 수식으로 계산한 값입니다.

    8극(\(P=8\)) 모터에서 \(K_{FG}=1\)로 설정한 경우, 기계각 1회전당 4개의 전기적 사이클이 생성되므로 \(2,000\text{ RPM}\) 구동 시 FG 주파수는 정확히 \(133.3\text{ Hz}\)로 출력된다.


    2. FG 신호의 토크 추정 한계와 상전류 계측의 필수성

    모터 제어 펌웨어 설계 시 FG 핀의 주파수나 듀티비 변화를 모니터링하여 부하 토크(Torque)를 추정하려는 혼선이 자주 발생한다. 하지만 정상 상태(Steady-State)에서 FG 신호 단독으로는 모터 부하 토크를 판별할 수 없다.

    속도와 토크의 물리적 분리

    FG 출력 신호는 순수하게 로터의 전기각 위치 변위율, 즉 기계적 속도 정보만을 제공한다. 모터 드라이버가 속도 폐루프 제어를 수행하여 \(2,000\text{ RPM}\)을 일정하게 유지하고 있다면, 부하가 전혀 걸리지 않은 무부하 상태와 정격 부하가 걸린 고부하 상태 모두에서 FG 핀의 출력 주파수는 동일하게 \(133.3\text{ Hz}\)다.

    과도 상태(Transient State)에서 급격한 부하 투입으로 속도 강하(Dip)가 발생할 때 일시적인 주파수 저하를 관측할 수는 있으나, 속도 루프가 정상 상태로 복귀하면 주파수는 다시 목표 RPM 값으로 수렴하므로 정상적인 부하 토크의 크기를 특정할 수 없다.

    토크 산출을 위한 상전류(\(I_{phase}\)) 필수 조건

    영구자석 동기 및 BLDC 모터의 전자기적 토크(\(T\))는 모터의 토크 상수(\(K_t\))와 고정자 권선에 흐르는 유효 상전류(\(I_{phase}\))의 곱에 직접 비례한다:

    \[T = K_t \times I_{phase}\]

    동일한 회전수를 유지하더라도 부하 토크가 증가하면 역기전력(BEMF)을 이겨내고 토크를 발생시키기 위해 드라이버가 인가 전압 듀티를 높이며, 이에 따라 모터 권선 전류(\(I_{phase}\))가 비례하여 상승한다. 따라서 모터의 출력 토크와 부하 상태를 정량적으로 계측하기 위해서는 상전류 또는 DC 링크 버스 전류 데이터를 반드시 확보해야 한다.


    3. 데이터시트 리비전 트랩: 2014 Rev vs 2020 Rev H의 MotorCurrent 사양 변화

    DRV10983의 전류 측정 기능을 검토할 때 가장 주의해야 할 하드웨어 엔지니어링 리스크는 참조하는 데이터시트 리비전(Revision)에 따른 사양 누락 문제다.

    항목 2014년 초기 데이터시트 (Rev. C 등) 2020년 5월 개정 데이터시트 (Rev. H)
    0x17 레지스터 누락 또는 Reserved 표기 MotorCurrent1 (전류 상위 비트) 공식 명시
    0x18 레지스터 누락 또는 Reserved 표기 MotorCurrent2 (전류 하위 비트) 공식 명시
    11비트 전류 수식 미제공 (I2C 전류 모니터링 불가로 오판 유도) \(11\text{비트}\) 조건 분기 변환 공식 수록
    개정 이력 (Rev History) – “Added MotorCurrent1 and MotorCurrent2 to Register Map” 명시

    2014년 초기 데이터시트를 열람하거나 비공식 아카이브에 미러링된 구버전 PDF를 참조할 경우, 레지스터 맵 상에서 0x17 및 0x18 주소가 ‘Reserved’로 비어 있어 “DRV10983은 내부 전류 모니터링을 지원하지 않으므로 무조건 외부에 션트 저항과 센스 앰프 회로를 추가해야 한다”는 잘못된 결론을 내리기 쉽다.

    그러나 2020년 5월 개정된 공식 Rev H 데이터시트에서는 내부 ADC를 거쳐 산출되는 11비트 MotorCurrent[10:0] 데이터 레지스터 사양이 공식 확정되었다. 따라서 하드웨어 설계자는 반드시 최신 Rev H 사양을 기준으로 레지스터 맵을 확인해야 한다.


    4. MotorCurrent 레지스터 판독과 변환 수식 및 펌웨어 구현 주의점

    DRV10983은 내부 센싱 회로와 ADC를 통해 모터 피크 전류를 연산하고, 그 결과를 11비트 디지털 값 MotorCurrent[10:0]으로 MotorCurrent1(0x17) 및 MotorCurrent2(0x18) 레지스터에 저장한다.

    조건 분기형(Piecewise) 전류 변환 공식

    11비트 원시 코드(MotorCurrent[10:0], 범위: \(0 \sim 2047\))로부터 실제 모터 전류(단위: A)를 계산하는 공식은 1023 코드를 경계로 하는 조건 분기 구조를 가진다:

    1. \(\text{MotorCurrent}[10:0] \ge 1023\) 인 경우: \[\text{Current (A)} = \frac{3 \times (\text{MotorCurrent}[10:0] – 1023)}{512}\]

    2. \(\text{MotorCurrent}[10:0] < 1023\) 인 경우: \[\text{Current (A)} = \frac{3 \times \text{MotorCurrent}[10:0]}{512}\]

    DRV10983 MotorCurrent 코드의 조건 분기 전류 변환 곡선
    MotorCurrent 11비트 코드의 조건 분기 변환과 1022/1023 경계의 불연속. 수식으로 계산한 값입니다.

    0A 부근 노이즈 튐 현상과 펌웨어 필터링

    이 변환 공식의 구조적 취약점은 코드 1023 부근에서 나타난다. 무부하 또는 정지 상태에서 실제 전류가 0A에 가까울 때, 내부 연산 오프셋 기준점인 1023 부근에서 ADC의 1 LSB 단위 미소 노이즈가 발생하면 치명적인 연산 불연속성이 발생한다:

    • 코드가 \(1023\)일 때: \(3 \times (1023 – 1023) / 512 = 0.0\text{ A}\)
    • 코드가 노이즈로 인해 \(1022\)로 1 LSB 하강할 때: 조건 분기(2)가 적용되어 \(3 \times 1022 / 512 \approx 5.988\text{ A}\)

    즉, 무부하 구동 중 미소 노이즈에 의해 전류 계산값이 \(0\text{ A}\)에서 순식간에 약 \(6\text{ A}\)로 튀는 현상이 발생한다. 이를 방치하면 과전류 오진단, 속도-토크 루프 발진, 잘못된 부하 구속 판정이 초래된다.

    따라서 펌웨어 구현 시 다음 두 가지 처리 과정이 필수적이다: 1. 데드밴드(Dead-band) 처리: 1023 코드 기준 상하 일정 범위의 LSB 변동(예: 저전류 대역)을 0A로 클램핑 처리. 2. 저역 통과 필터(LPF): 단일 주기 샘플링 값을 즉시 사용하지 않고, 1차 IIR 디지털 저역 통과 필터 또는 이동 평균(Moving Average) 필터를 적용하여 고주파 스파이크를 제거.

    0x17 선행 2바이트 Burst Read 필수성

    11비트 전류 데이터는 MotorCurrent1(0x17, 상위 비트)과 MotorCurrent2(0x18, 하위 비트)의 2개 레지스터에 분할되어 저장된다.

    I2C 통신으로 이 값을 읽을 때, 반드시 0x17 번지부터 시작하여 2바이트 연속 읽기(Burst Read)를 수행해야 한다. DRV10983의 내부 레지스터 인터페이스는 마스터가 0x17 번지를 읽는 순간 0x18 번지의 하위 바이트 값을 내부 래치(Latch)에 고정하도록 설계되어 있다.

    만약 I2C 통신에서 0x17과 0x18을 개별 트랜잭션으로 나누어 읽거나 0x18을 먼저 읽게 되면, 상위 바이트와 하위 바이트를 읽는 사이에 모터 통전 타이밍이 바뀌어 데이터 불일치(Data Corruption)가 발생하게 된다.

    // 올바른 I2C 판독 구현 예시 (Burst Read)
    uint8_t raw_buf[2];
    int16_t motor_current_raw;
    float calculated_current_A;
    
    // 0x17 레지스터부터 2바이트 연속 리드 (하위 바이트 래치 보장)
    I2C_BurstRead(DRV10983_I2C_ADDR, 0x17, raw_buf, 2);
    
    // 11비트 데이터 결합: MotorCurrent1(0x17)[2:0] 상위 3비트 + MotorCurrent2(0x18)[7:0] 하위 8비트
    motor_current_raw = ((uint16_t)(raw_buf[0] & 0x07) << 8) | raw_buf[1];
    
    // 조건 분기 변환 및 데드밴드 적용
    if (motor_current_raw >= 1023) {
        calculated_current_A = 3.0f * (float)(motor_current_raw - 1023) / 512.0f;
    } else {
        calculated_current_A = 3.0f * (float)motor_current_raw / 512.0f;
    }
    

    5. 센싱 아키텍처 비교: 내장 I2C MotorCurrent vs 외부 Shunt 센싱

    모터 제어 시스템을 구성할 때, 토크 모니터링을 내부 MotorCurrent 레지스터로 구현할 것인지, 아니면 외부 션트 저항과 전류 센스 앰프(CSA) 회로를 추가할 것인지는 시스템 요구사항에 따라 결정해야 한다.

    비교 항목 내장 I2C MotorCurrent 방식 외부 Shunt + CSA (Current Sense Amp) 방식
    추가 부품 (BOM) 불필요 (드라이버 내부 회로 활용) 션트 저항, 전류 센스 앰프, 수동 필터 소자 필요
    PCB 실장 면적 최소 (추가 패턴 불필요) 증가 (션트 발열 분산 및 켈빈 배선 면적 요구)
    샘플링 대역폭 낮음 (I2C 버스 폴링 주기: 수십~수백 Hz) 높음 (MCU 내부 ADC 직접 샘플링: 수십~수백 kHz)
    측정 정밀도 보통 (내부 ADC 분해능 및 1023 불연속 노이즈 존재) 높음 (정밀 저항 오차 및 저노이즈 차동 증폭)
    주요 적합 용도 단순 과부하 감시, 구속 검출, 팬/펌프 상태 모니터링 고속 폐루프 토크 제어, 정밀 외란 억제, 고성능 서보 루프
    • 내장 I2C 방식 선정 기준: 모터의 토크 제어가 주 목적이 아니라 과부하에 의한 셧다운 보호, 필터 막힘 감지, 정성적 부하 수준 판단이 목적인 경우 권장된다. 추가 비용과 기판 면적 없이 펌웨어 알고리즘만으로 구현 가능하다.
    • 외부 션트 센싱 선정 기준: 수 밀리초(ms) 단위 이하의 빠른 부하 응답 제어가 필요하거나, 고정밀 토크 리플 억제 및 과도 전류 보호가 요구되는 산업용 기구부 제어의 경우 필수적으로 채택해야 한다.
  • DRV8848 듀얼 H-브릿지로 모터 구동 발열과 전류 제어를 단순화하는 방법

    DRV8848 듀얼 H-브릿지로 모터 구동 발열과 전류 제어를 단순화하는 방법

    소형 DC 모터나 스테퍼 모터를 구동할 때, MOSFET 4개로 H-브릿지를 디스크리트 구성하는 것은 겉보기보다 훨씬 번거롭다. 게이트 드라이브 회로가 복잡해지고, 전류 제한이 필요하면 별도의 션트 앰프와 비교기를 추가해야 하며, 과전류·과열 보호까지 직접 구현하려면 설계 기간이 크게 늘어난다. Texas Instruments의 DRV8848은 이런 부담을 하나의 16핀 HTSSOP 패키지로 해소하는 듀얼 H-브릿지 모터 드라이버다.

    DRV8848 datasheet page 1: features and description
    그림 1: DRV8848 간략화된 회로도
    항목사양비고
    구동 전압 (VM)4~18V12V 시스템 최적
    출력 전류 (채널당)최대 2A병렬 모드 시 4A
    RDS(on) (HS+LS)900mΩ (typ)25ºC 기준
    입력 로직A: Tri-level / B: CMOSA채널 Hi-Z 감지
    초퍼 오프타임20μs (fixed)ICHOP = VREF/(5×RSENSE)
    슬립 전류3μA (typ)nSLEEP = LOW
    보호 기능OCP, TSD, UVLOnFAULT 핀으로 진단
    패키지16-HTSSOP (PowerPAD)5.0×4.4mm
    표 1: DRV8848 주요 사양 요약

    발열과 부품 수를 줄이는 내부 구조

    DRV8848의 가장 실용적인 장점은 낮은 \( R_{DS(on)} \)에 있다. HS+LS 합성 저항이 25°C 기준 900mΩ(typ)에 불과해, 1A 구동 시 H-브릿지 전체 전압 강하가 0.9V에 그친다. 이는 BJT 기반의 구형 드라이버(예: L293D의 \( V_{CE(sat)} pprox 1.8V \) 이상)와 비교하면 채널당 손실이 절반 이하다. 12V, 1A로 DC 모터 2개를 동시 구동해도 총 손실이 1.8W 수준으로, HTSSOP 패키지의 PowerPAD만 적절히 납땜하면 방열판 없이도 운용 가능하다.

    DRV8848 datasheet page 9: functional block diagram
    그림 2: DRV8848 Functional Block Diagram — 내부 차지 펌프, 게이트 드라이브, 전류 레귤레이션, 보호 회로 포함

    내부 차지 펌프가 하이사이드 N-MOS를 직접 구동하므로, 디스크리트 설계에서 필수였던 부트스트랩 회로가 필요 없다. 채널당 최대 2A, 병렬 모드(OUT1끼리, OUT2끼리 결선)로는 최대 4A까지 구동할 수 있어 하나의 소자로 상당히 넓은 출력 범위를 커버한다. 슬립 모드에서는 소비 전류가 3μA까지 떨어지므로, 배터리 구동 애플리케이션의 대기 전력도 문제가 되지 않는다.


    션트 저항 하나로 완성되는 전류 레귤레이션

    스테퍼 모터의 마이크로스테핑이나 DC 모터의 토크 제어를 구현하려면 권선 전류를 정밀하게 제한해야 한다. 디스크리트로 구성할 경우 션트 저항 → 차동 증폭기 → 비교기 → 히스테리시스 로직으로 이어지는 피드백 루프 전체를 설계해야 하지만, DRV8848은 이 모든 기능을 내장하고 있다. xISEN 핀에 션트 저항 하나만 연결하면 20μs 고정 오프타임(fixed off-time) 방식의 초퍼 레귤레이션이 즉시 동작한다.

    초핑 전류 임계값은 VREF 핀 전압 하나로 설정된다. \( I_{CHOP} = V_{REF} / (5 imes R_{SENSE}) \) 관계를 가지므로, \( V_{REF} = 1.65V \), \( R_{SENSE} = 0.33\Omega \)일 때 \( I_{CHOP} pprox 1.0A \)로 설정된다. VREF는 외부 DAC나 단순 저항 분압으로 공급할 수 있어, MCU에서 실시간 전류 프로파일을 가변하는 것도 간단하다. 20μs의 짧은 오프타임 덕분에 초핑 주파수가 가청 대역을 벗어나 모터 소음도 자연스럽게 억제된다. 전류 레귤레이션이 필요 없는 단순 ON/OFF 구동이라면 xISEN을 GND에 직결하여 이 기능을 비활성화할 수도 있다.


    보호 기능과 진단 핸들링

    DRV8848은 과전류 보호(OCP), 열 셧다운(TSD), 저전압 차단(UVLO)의 3중 보호 체계를 갖추고 있으며, 이 중 하나라도 트리거되면 nFAULT 핀이 로우로 내려간다. MCU에서 nFAULT를 GPIO 인터럽트 입력으로 받아 폴트 발생 시 모터를 정지시키고 일정 시간 후 재시도하는 복구 시퀀스를 구현할 수 있다. TSD는 접합 온도 약 150°C에서 작동하며 온도가 내려가면 자동 복구되므로, 과도한 부하로 인한 일시적 셧다운은 시스템 레벨에서 자연스럽게 핸들링된다. UVLO는 VM이 약 4V 이하로 떨어질 때 출력을 차단해 로직 오동작을 방지하며, 전원 투입 시에도 VM이 안정화될 때까지 출력을 억제하는 파워온 리셋 역할을 겸한다.

    A채널 입력(AIN1, AIN2)은 Tri-level 입력으로 설계되어 있어, HIGH·LOW 외에 Hi-Z 상태도 감지한다. 이를 통해 정방향·역방향 구동 외에 감속(coast) 모드를 구현할 수 있으며, MCU GPIO를 입력 모드(Hi-Z)로 전환하는 것만으로 모터를 관성 회전시킬 수 있다. B채널(BIN1, BIN2)은 일반 로직 입력에 내부 풀다운이 있어 플로팅 시 자동으로 LOW로 인식되므로, 미사용 채널은 단순히 개방해 두면 된다.

    DRV8848 datasheet page 3: pin configuration and functions
    그림 3: DRV8848 핀 구성 (16-Pin HTSSOP)

    설계 시 주의사항

    VM 핀의 디커플링은 특히 중요하다. 모터 구동 중 발생하는 전류 스파이크가 전원 레일을 흔들면 UVLO가 오작동할 수 있으므로, 100μF 전해 커패시터와 0.1μF MLCC를 VM 핀에 최대한 가까이 병렬 배치해야 한다. VINT 핀은 내부 3.3V 레귤레이터의 출력으로, 0.47μF 이상의 세라믹 커패시터로 바이패스하지 않으면 레귤레이터가 발진할 가능성이 있다.

    방열은 HTSSOP 패키지 하단의 PowerPAD에 달려 있다. PowerPAD는 반드시 GND 플레인에 납땜하고, 최소 9개 이상의 비아로 내층 GND와 열적 경로를 확보해야 한다. 2A 연속 구동 시 접합 온도 상승을 40°C 이내로 억제하려면 4-layer 기판의 내층 GND를 히트 스프레더로 활용하는 것이 사실상 필수다. nSLEEP 핀은 내부 풀다운이 있어 플로팅 시 자동으로 슬립 모드에 진입하므로, MCU가 초기화되기 전까지 모터가 구동되지 않도록 보장하는 안전 인터록으로 활용할 수 있다.


    DRV8848 vs L293D power dissipation
    그림 4: 채널당 전력 손실 비교 — DRV8848(청색, I²×0.9Ω), L293D(적색, I×1.8V), DRV8833(녹색 점선, I²×0.6Ω). 1A 구동 시 DRV8848은 L293D 대비 손실이 50% 감소

    경쟁 소자와의 비교

    같은 소형 모터 드라이버 계열에서 DRV8833과 L293D가 자주 비교된다. DRV8833은 2.7V~10.8V 전압 범위와 600mΩ의 더 낮은 \( R_{DS(on)} \)을 제공하지만, 최대 전압이 10.8V로 제한되어 12V 시스템에서는 사용할 수 없다. L293D는 36V까지 대응 가능하지만 BJT Darlington 출력단의 \( V_{CE(sat)} \)이 1.8V 이상으로, 1A만 구동해도 채널당 1.8W의 손실이 발생해 사실상 소전류 구동에만 적합하다. DRV8848은 4V~18V 범위와 900mΩ \( R_{DS(on)} \)으로 12V 시스템에서 최적의 밸런스를 제공하며, 여기에 내장 초퍼 레귤레이션과 nFAULT 진단 기능을 갖추고 있어 산업용 및 가전 제품의 신뢰성 요구사항을 단일 칩으로 충족시킨다. nSLEEP 핀의 3μA 슬립 전류와 자동 복구되는 보호 기능은 단순한 모터 드라이버를 넘어 시스템 수준의 견고성을 제공하는 핵심 차별점이다.

  • ULN2003 vs TPL7407L — DARLINGTON ARRAY와 NMOS ARRAY의 차이점

    ULN2003 vs TPL7407L — DARLINGTON ARRAY와 NMOS ARRAY의 차이점

    여러 채널의 부하를 하나의 IC로 구동해야 할 때, 대표적으로 사용되는 소자가 ULN2003과 같은 달링턴 어레이(Darlington Array)와 TPL7407L과 같은 NMOS 어레이다. 두 소자 모두 릴레이, 모터, LED, 솔레노이드와 같은 유도성 부하를 저전압 로직 신호로 구동할 수 있지만, 내부 구조가 BJT 기반인지 MOSFET 기반인지에 따라 전기적 특성과 손실이 크게 달라진다. 특히 전원 회로의 보조 구동단이나 시퀀스 제어에서는 이러한 어레이 소자의 선택이 신뢰성과 효율에 직접적인 영향을 준다.


    달링턴 어레이의 구조와 동작 — ULN2003을 중심으로

    ULN2003은 7채널의 NPN 달링턴 페어를 하나의 패키지에 집적한 소자로, 각 채널은 2개의 NPN 트랜지스터와 입력 저항 \( R_{B} \) , 베이스-이미터 저항 \( R_{BE} \) , 그리고 출력단의 플라이백 다이오드(flyback diode)로 구성된다. 입력 신호가 2.4V 이상 인가되면 달링턴 페어가 도통하여 출력이 GND 방향으로 전류를 싱크(sink)하는 오픈컬렉터 구조다.

    ULN2003A datasheet page 1 - internal schematic at top-right
    그림 1: ULN2003 단일 채널 내부 구조 — 2개의 NPN 트랜지스터로 구성된 달링턴 페어, 입력 저항 Rb(2.7kΩ), 베이스-이미터 저항 Rbe(7.2kΩ), 플라이백 다이오드 D1 포함

    달링턴 구성의 특성상 입력단 \( Q_{1} \) 과 출력단 \( Q_{2} \) 의 베이스-이미터 전압이 직렬로 연결되므로, 출력 포화 전압 \( V_{CE(sat)} \) 은 약 0.9V~1.1V로 비교적 높다. 예를 들어 \( I_{C} = 350mA \) 로 구동할 때, ULN2003의 \( V_{CE(sat)} \) 은 약 1.1V로 채널당 약 0.39W의 손실이 발생한다. 전체 7채널을 동시 구동하면 2.7W 이상의 열이 발생하므로 방열 설계가 필수적이다.

    ULN2003은 제조사에 따라 ULN2003A(LV), ULQ2003 등 다양한 변형이 있지만, 모든 채널이 동시에 최대 정격으로 동작하는 것은 보장되지 않는다. 데이터시트에는 채널당 최대 500mA의 싱크 전류를 표시하고 있으나, 이는 1채널만 구동할 때의 값이며 7채널 동시 구동 시에는 발열 제한으로 인해 채널당 100~150mA로 디레이팅해야 한다. 또 입력 전압이 TTL 레벨(5V)을 기준으로 설계되어 있어, 3.3V 마이크로컨트롤러로 직접 구동할 때는 \( V_{BE} \) 마진 부족으로 동작이 불안정해질 수 있다.

    그럼에도 ULN2003은 수십 년간 검증된 신뢰성과 광범위한 호환성을 가진다. 내장된 플라이백 다이오드 덕분에 릴레이나 솔레노이드 같은 유도성 부하를 외부 다이오드 없이 바로 구동할 수 있으며, 단가가 낮고 입수가 쉬워 산업용 제어 회로에서 여전히 널리 사용된다.


    NMOS 어레이의 구조와 동작 — TPL7407L을 중심으로

    TPL7407L은 7채널의 N채널 MOSFET을 하나의 패키지에 집적한 소자로, TI에서 ULN2003의 대체품으로 출시하였다. 각 채널은 N-MOSFET, 게이트 구동 회로, 풀다운 저항으로 구성되며, ULN2003과 마찬가지로 오픈드레인(open-drain) 싱크 구조를 가진다.

    TPL7407L datasheet page 7 - Functional Block Diagram
    그림 2: TPL7407L 단일 채널 내부 구조 — N-MOSFET(M1), 게이트 드라이버, 풀다운 저항 Rpd(200kΩ)로 구성된 오픈드레인 구조. 유도성 부하에는 외부 플라이백 다이오드(D_ext)가 필요함

    출력단에는 플라이백 다이오드가 내장되어 있지 않으므로, 유도성 부하 구동 시에는 외부에 다이오드를 추가하거나 공통 핀(COM)을 부하 전원에 연결해야 한다.

    MOSFET 기반이므로 BJT의 \( V_{CE(sat)} \) 와 달리, 도통 시 저항 \( R_{DS(on)} \) 으로 손실을 모델링한다. \( I_{D} \) 의 전류가 흐를 때의 전압 강하는 \( V_{DS} = I_{D} \times R_{DS(on)} \) 이며, TPL7407L은 \( V_{GS} = 3.3V \) , \( I_{D} = 350mA \) 에서 \( R_{DS(on)} \) 이 약 1.2Ω 이하이므로 \( V_{DS} \approx 0.42V \) , 손실은 약 0.15W에 불과하다. 동일 조건의 ULN2003(약 0.39W) 대비 손실이 60% 이상 적다.

    입력 전압 특성도 가장 큰 차별점이다. TPL7407L은 \( V_{IH(min)} = 1.5V \) 로, 1.8V나 3.3V 로직에서도 충분한 게이트 구동 전압을 확보할 수 있다. 따라서 레벨 시프터 없이 저전압 마이크로컨트롤러로 직접 구동할 수 있어, 최신 MCU 기반 설계에서 부품 수를 줄일 수 있다. 또 입력 임피던스가 높아 마이크로컨트롤러 GPIO의 구동 전류 부담이 거의 없다.

    스위칭 속도 면에서도 MOSFET은 소수 캐리어 축적 효과가 없기 때문에, TPL7407L의 턴-온/턴-오프 시간은 수십 ns 수준으로 kHz 이상의 PWM 구동에도 적합하다. 반면 ULN2003은 \( t_{off} \) 가 수 μs 이상으로, 고속 스위칭 시 손실이 급격히 증가한다.

    단점으로는 플라이백 다이오드가 내장되지 않아 유도성 부하에 대해 추가 부품이 필요하고, 정전기(ESD)에 민감한 MOSFET 특성상 취급 및 보호 회로 설계에 더 많은 주의가 필요하다. 또한 ULN2003에 비해 단가가 약간 높고, 핀 배열이 완전히 동일하지 않아 기존 ULN2003 설계에 드롭인(drop-in) 대체가 되지 않는 경우가 많다.


    주요 특성 비교: ULN2003 vs TPL7407L

    두 소자의 주요 전기적 특성을 정리하면 다음과 같다. 가장 큰 차이는 출력단 소자의 종류에서 비롯된 전압 강하와 입력 임계값에 있다.

    특성 ULN2003 (달링턴 어레이) TPL7407L (NMOS 어레이)
    출력 소자 NPN Darlingtion (BJT) N-Channel MOSFET
    채널 수 7 7
    입력 임계값 \( V_{IH(min)} \) 2.4V (TTL) 1.5V (CMOS)
    출력 전압 강하 \( @350mA \) \( V_{CE(sat)} = 0.9V \sim 1.1V \) \( V_{DS} = I_{D} \times R_{DS(on)} \approx 0.42V \)
    채널당 손실 \( @350mA \) \( P_{D} \approx 0.39W \) \( P_{D} \approx 0.15W \)
    7채널 동시 구동 손실 \( P_{D(total)} > 2.7W \) \( P_{D(total)} \approx 1.0W \)
    턴-오프 시간 수 μs (느림) 수십 ns (빠름)
    내장 플라이백 다이오드 있음 (COM-SUPPLY) 없음 (외부 추가 필요)
    입력 임피던스 중간 (BJT 입력) 높음 (MOSFET 입력)
    최소 입력 전압 약 2.0V 이상 필요 1.5V 이상
    PWM 호환성 저속 (1kHz 이하 권장) 고속 (수십 kHz 가능)
    단가 낮음 중간
    ESD 내성 높음 중간 (보호 회로 필요)
    ULN2003 vs TPL7407L 전력 손실 비교 그래프
    그림 3: 채널당 전력 손실 비교 — ULN2003(적색)은 전류에 선형 비례, TPL7407L(녹색 점선)은 I²에 비례하는 2차 곡선. 동일 전류에서 TPL7407L의 손실이 현저히 낮음

    표에서 보듯이, 두 소자의 본질적인 차이는 출력 전압 강하에서 비롯되는 전력 손실이다. ULN2003은 \( V_{CE(sat)} \) 이 전류에 따라 크게 변하지 않는 반면, TPL7407L은 \( R_{DS(on)} \) 이 부성 온도 계수를 가지므로 온도 상승 시 저항이 증가하여 손실이 다소 늘어날 수 있다. 그러나 실사용 영역에서는 TPL7407L의 손실이 ULN2003보다 항상 작다. 또 입력 특성에서 CMOS 레벨(1.8V)과 TTL 레벨(5V)의 차이가 현저하여, 저전압 시스템 설계에서는 TPL7407L이 사실상 유일한 선택지가 된다.


    설계 시 선택 기준

    실제 설계에서는 다음과 같은 조건에 따라 소자를 선택한다.

    구동 전류가 작고 채널 수가 적은 경우에는 단가가 낮고 검증된 ULN2003이 충분히 적합하다. 릴레이 2~3개를 구동하는 단순한 시퀀스 제어 회로에서는 \( V_{CE(sat)} \) 에 의한 손실이 문제 되지 않으며, 내장 플라이백 다이오드로 부품 수를 줄일 수 있어 ULN2003이 유리하다.

    저전압 마이크로컨트롤러(1.8V/3.3V)로 직접 구동해야 하는 경우에는 TPL7407L을 선택한다. ULN2003은 3.3V 로직에서 \( V_{BE} pprox 1.3V \) 를 빼면 베이스 전류 마진이 부족하여 온도 변화나 소자 편차에 따라 동작이 불안정해질 수 있다. 레벨 시프터를 추가할 수 있지만, 부품 수와 기판 면적이 증가하므로 TPL7407L 한 개로 해결하는 것이 효율적이다.

    다채널 동시 구동이 많거나 전력 효율이 중요한 경우에도 TPL7407L이 적합하다. 예를 들어 SMPS의 보조 전원 시퀀서에서 4채널 이상의 릴레이를 동시에 구동한다면, ULN2003의 발열이 문제가 될 수 있다. TPL7407L은 동일 조건에서 열 손실이 절반 이하이므로 방열판을 생략하거나 기판 사이즈를 줄일 수 있다.

    PWM 구동으로 전류 제어가 필요한 경우에는 스위칭 속도가 빠른 TPL7407L을 사용한다. ULN2003은 수백 Hz~1kHz 정도의 저속 PWM만 가능하지만, TPL7407L은 수십 kHz의 PWM 구동이 가능하여 LED 디밍이나 DC 모터 속도 제어에 적합하다.

    고전압/고전류 유도성 부하 구동 시에는 플라이백 다이오드가 내장된 ULN2003이 편리하다. TPL7407L은 외부에 쇼트키 다이오드를 추가해야 하므로 부품 수가 늘어나지만, 외부 쇼트키 다이오드의 \( V_{F} \) 가 ULN2003 내장 다이오드의 \( V_{F} \) 보다 낮아 역기전력 억제 성능이 더 우수할 수도 있다.


    실장 호환성과 대체 시 주의사항

    ULN2003과 TPL7407L은 모두 16핀 SOIC/DIP 패키지로 제공되며, 핀 배열도 유사하게 설계되어 있으나 완전히 동일하지는 않다. ULN2003의 9번 핀은 플라이백 다이오드의 캐소드 공통 단자(COM)이나, TPL7407L의 9번 핀은 부하 전원에 직접 연결해야 하는 전원 핀으로 기능이 다르다. 따라서 기존 ULN2003 설계를 TPL7407L로 단순 교체할 수 없으며, 회로 수정이 필요하다.

    반대로 TPL7407L을 사용 중인 설계에서 ULN2003으로 대체할 경우, 입력 신호 레벨이 3.3V 이하라면 충분한 베이스 전류를 확보할 수 없어 동작하지 않을 수 있으므로 반드시 확인해야 한다.

    핀 배열 비교 (16-SOIC/DIP)

    핀 번호ULN2003TPL7407L차이점
    11B (입력 1)1B (입력 1)동일
    22B (입력 2)2B (입력 2)동일
    33B (입력 3)3B (입력 3)동일
    44B (입력 4)4B (입력 4)동일
    55B (입력 5)5B (입력 5)동일
    66B (입력 6)6B (입력 6)동일
    77B (입력 7)7B (입력 7)동일
    8GNDGND동일
    9COM (플라이백 다이오드 공통)VDD (부하 전원)⚠️ 기능 다름
    107C (출력 7)7C (출력 7)동일
    116C (출력 6)6C (출력 6)동일
    125C (출력 5)5C (출력 5)동일
    134C (출력 4)4C (출력 4)동일
    143C (출력 3)3C (출력 3)동일
    152C (출력 2)2C (출력 2)동일
    161C (출력 1)1C (출력 1)동일
    표 2: ULN2003 vs TPL7407L 핀 배열 비교 — 9번 핀의 기능이 가장 큰 차이점

    핵심 차이는 9번 핀에 있다. ULN2003의 9번 핀(COM)은 내장 플라이백 다이오드의 공통 캐소드 단자로, 유도성 부하의 역기전력을 전원으로 클램핑하는 역할을 한다. 반면 TPL7407L의 9번 핀은 부하 전원(VDD) 입력 핀이므로, 유도성 부하 구동 시 반드시 외부에 쇼트키 다이오드를 추가해야 한다. 이 차이로 인해 두 소자는 단순 핀-투-핀 대체(drop-in replacement)가 불가능하다.

    최근에는 ULN2003의 단점을 보완하면서도 유사한 핀 배열과 내장 다이오드를 갖춘 소자들이 등장하고 있으며, TI의 TPL7407L뿐 아니라 Toshiba의 TBD62083A(DMOS), Infineon의 ISO1H811G(절연형) 등 다양한 대체 소자가 있으므로 설계 요구사항에 맞추어 최신 소자를 검토하는 것이 바람직하다.