사람의 눈은 밝기를 선형적으로 인지할 수 없습니다. 즉, 어두운 부분에서 밝기의 변화는 실제 변화보다 더 많이 변화하였다고 인지하고 밝은 부분에서는 밝기 변화는 실제 변화보다 적게 변화하였다는 느껴진다는 것입니다.



위 그림은 입력에 따른 실제 밝기의 변화는 기울기인 '1'이지만 사람의 눈 빨간색 커브처럼 느낀다는 것입니다. 여기서 x축은 밝아지는 방향으로 어두운 부분에서는 실제 변화보다 크게 변화하는 것처럼 보이고 밝은 부분에서 실제 변화보다 적게 변화하는 것처럼 보여진다는 것입니다.


사람의 눈의 이러한 왜곡을 해결하기 위해서 이미지 데이터를 미리 빨간색 커브를 y=x의 곡선에 대칭인 커브로 조정한다면 해결될 수 있다는 것입니다. 이와 같은 커브는 지수함수로 나타낼 수 있으며 이처럼 이미지 데이터를 보정하는 것을 감마보정(gamma correction)이라고 부릅니다.



위 그림에서 초록색 커브는 감마 교정을 한 커브이며 이 커브의 지수함수 표현은 다음 식과 같습니다.



입출력은 밝기이며 M은 최대값을 의미하며 통상 255이며, g는 감마(gamma)값입니다. 만일 g값이 '1'이면 기울기 '1'이어서 선형적인 위 그림에 파란색 직선 y=x이 g값이 '1'보다 작으면 위로 볼록한 커브가 만들어지고 '1'보다 크면 아래로 볼록한 커브가 반들어집니다. 또한 g값이 '0.5'인 커브의 y=x 축에 대한 선형 대칭 변환은 '1/0.5'의 g값을 갖습니다.



Posted by Nature & Life


Color LED는 각각 red, green, blue의 색을 발하는 3개의 LED 소자가 집적화되어 빛의 3원색에 해당하는 각 LED의 발기를 조절하면 사용자가 원하는 색깔의 얻을 수 있는 LED입니다. 다음은 대표적인 color LED인 Adafruit사의 ada-2739입니다. 



Color LED는 단자가 4개로 아래 그림에서와 같이 가장 긴 단자가 2번으로 Common Anode이며, 이를 Common-Anode 타입이라 부릅니다. 따라서 Common Anode 단자에는 VDD가 연결되어야 하며 Common-Cathode 타입의 경우에는 반대로 GND에 연결되어야 합니다. 



위와 같은 Common-Anode 타입의 color LED는 각 rgb 단자가 LOW이면 점등되며, 그러므로 PWM 제어의 경우 duty가 0%에서 점등하게 된다는 것입니다. 만일 각각의 rgb 단자에 8-bit인 256 레벨의 PWM 출력을 연결하고 전체 24-bit 데이터 스트림으로 PWM을 동시에 제어할 수 있다면 이 color LED를 자유롭게 색상을 변경하며 사용할 수 있습니다(24-bit true color).


이를 위해 설계된 칩이 WS2811로 시리얼 통신으로 24-bit 데이터를 전송 받고 3개의 8-bit PWM 채널로 출력하며, 별도의 저항 소자가 필요없도록 약 20mA로 전류를 제어한다는 것입니다. 최근에는 color LED 자체에 WS2811 소자를 내장하여 구동이 더욱 간편한 digital color LED가 출시되고 있습니다.


WS2811은 single-line NZR(None return to zero) 통신 모드를 사용합니다. DIN 포트는 데이터를 받고, DOUT 포트에 cascade로 연결된 다음 WS2811 소자에 800KHz로 다시 데이터를 전송됩니다. 비록 순차적으로 24-bit 데이터가 전송되지만 사람의 눈으로 보기에는 여러개의 color LED가 동시에 켜지고 커지는 것처럼 보이게 됩니다.



아래 그림에서와 첫번째 WS2811 소자는 연속적으로 들어오는 데이터의 첫번째 24-bit 데이터를 내부 data latch에 래치시키고, 나머지 후속되는 데이터는 다음 WS2811 소자로 보내게 됩니다. 또한 두번째 WS2811 소자도 자신에게 도달하는 첫번째 24-bit 데이터를 취하고 나머지 후속되는 데이터를 세번째 WS2811 소자로 보내지며, casecade로 연결된 소자들이 이를 반복하게 됩니다.



위 그림에서와 같이 cascade로 연결된 color LED를 실장한 WS2811 소자는 차례로 D1, D2, D3, ...라고 하면 시간에 따른 데이터의 흐름을 도식적으로 보인 것입니다. 



데이터 통신 방식은 800KHz에서 고주파 NRZ 프로토콜을 따르므로, 각 비트는 다음과 같이 코딩되어야 합니다. 타이밍은 엄격하지 않으며 +/-150ns의 마진이 있습니다.

    • Bit 0 - 1/3 of the period HIGH, 2/3 of the period LOW

    • Bit 1 - 2/3 of the period HIGH, 1/3 of the period LOW

    • Reset Stay LOW for at least 40 cycles (50us are about 40 periods of 1.25us)


데이터 전송은 RGB의 순서를 따르며 high bit가 먼저 전송됩니다.


http://fabioangeletti.altervista.org/blog/stm32-interface-ws2812b/?doing_wp_cron=1520571971.3953249454498291015625



Posted by Nature & Life


https://vesc-project.com/node/281


In VESC, the packet(payload) structure on UART communication


The packet is a uint8_t byte stream.

  • First byte(header):

    • 0x02 for payload length of 256 bytes, the next one byte is for the payload length

    • 0x03 for > 256 byte payload length, the next 2 bytes for the payload length

  • Payload(communication command + data)

  • The following 2 bytes after the payload are the checksum.

  • The byte stream it terminated with a 0x03 (footer).


"header(2 | 3) + 1-2 byte length + 2 byte crc + footer(3)"


The following function, packet_process_byte() shows how to process a packet stream.


packet.c

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
void packet_process_byte(uint8_t rx_data, int handler_num) {
    switch (handler_states[handler_num].rx_state) {
    case 0:
        if (rx_data == 2) {
            // 1 byte PL len
            handler_states[handler_num].rx_state += 2;
            handler_states[handler_num].rx_timeout = PACKET_RX_TIMEOUT;
            handler_states[handler_num].rx_data_ptr = 0;
            handler_states[handler_num].payload_length = 0;
        } else if (rx_data == 3) {
            // 2 byte PL len
            handler_states[handler_num].rx_state++;
            handler_states[handler_num].rx_timeout = PACKET_RX_TIMEOUT;
            handler_states[handler_num].rx_data_ptr = 0;
            handler_states[handler_num].payload_length = 0;
        } else {
            handler_states[handler_num].rx_state = 0;
        }
        break;
 
    case 1:
        handler_states[handler_num].payload_length = (unsigned int)rx_data << 8;
        handler_states[handler_num].rx_state++;
        handler_states[handler_num].rx_timeout = PACKET_RX_TIMEOUT;
        break;
 
    case 2:
        handler_states[handler_num].payload_length |= (unsigned int)rx_data;
        if (handler_states[handler_num].payload_length > 0 &&
                handler_states[handler_num].payload_length <= PACKET_MAX_PL_LEN) {
            handler_states[handler_num].rx_state++;
            handler_states[handler_num].rx_timeout = PACKET_RX_TIMEOUT;
        } else {
            handler_states[handler_num].rx_state = 0;
        }
        break;
 
    case 3:
        handler_states[handler_num].rx_buffer[handler_states[handler_num].rx_data_ptr++= rx_data;
        if (handler_states[handler_num].rx_data_ptr == handler_states[handler_num].payload_length) {
            handler_states[handler_num].rx_state++;
        }
        handler_states[handler_num].rx_timeout = PACKET_RX_TIMEOUT;
        break;
 
    case 4:
        handler_states[handler_num].crc_high = rx_data;
        handler_states[handler_num].rx_state++;
        handler_states[handler_num].rx_timeout = PACKET_RX_TIMEOUT;
        break;
 
    case 5:
        handler_states[handler_num].crc_low = rx_data;
        handler_states[handler_num].rx_state++;
        handler_states[handler_num].rx_timeout = PACKET_RX_TIMEOUT;
        break;
 
    case 6:
        if (rx_data == 3) {
            if (crc16(handler_states[handler_num].rx_buffer, handler_states[handler_num].payload_length)
                    == ((unsigned short)handler_states[handler_num].crc_high << 8
                            | (unsigned short)handler_states[handler_num].crc_low)) {
                // Packet received!
                if (handler_states[handler_num].process_func) {
                    handler_states[handler_num].process_func(handler_states[handler_num].rx_buffer,
                            handler_states[handler_num].payload_length);
                }
            }
        }
        handler_states[handler_num].rx_state = 0;
        break;
 
    default:
        handler_states[handler_num].rx_state = 0;
        break;
    }
}
cs


First byte of payload is command. All commands(38) supported by VESC firmware is shown bellow:


datatypes.h

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
// Communication commands
typedef enum {
    COMM_FW_VERSION = 0,
    COMM_JUMP_TO_BOOTLOADER,
    COMM_ERASE_NEW_APP,
    COMM_WRITE_NEW_APP_DATA,
    COMM_GET_VALUES,
    COMM_SET_DUTY,
    COMM_SET_CURRENT,
    COMM_SET_CURRENT_BRAKE,
    COMM_SET_RPM,
    COMM_SET_POS,
    COMM_SET_HANDBRAKE,
    COMM_SET_DETECT,
    COMM_SET_SERVO_POS,
    COMM_SET_MCCONF,
    COMM_GET_MCCONF,
    COMM_GET_MCCONF_DEFAULT,
    COMM_SET_APPCONF,
    COMM_GET_APPCONF,
    COMM_GET_APPCONF_DEFAULT,
    COMM_SAMPLE_PRINT,
    COMM_TERMINAL_CMD,
    COMM_PRINT,
    COMM_ROTOR_POSITION,
    COMM_EXPERIMENT_SAMPLE,
    COMM_DETECT_MOTOR_PARAM,
    COMM_DETECT_MOTOR_R_L,
    COMM_DETECT_MOTOR_FLUX_LINKAGE,
    COMM_DETECT_ENCODER,
    COMM_DETECT_HALL_FOC,
    COMM_REBOOT,
    COMM_ALIVE,
    COMM_GET_DECODED_PPM,
    COMM_GET_DECODED_ADC,
    COMM_GET_DECODED_CHUK,
    COMM_FORWARD_CAN,
    COMM_SET_CHUCK_DATA,
    COMM_CUSTOM_APP_DATA,
    COMM_NRF_START_PAIRING
} COMM_PACKET_ID;
 
cs


The processing for each command is excuted by 'commands_process_packet()' function in command.h and the following shows an example for 'COMM_GET_VALUES' command case.

 

commands.c

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
case COMM_GET_VALUES:
        ind = 0;
        send_buffer[ind++= COMM_GET_VALUES;
        buffer_append_float16(send_buffer, mc_interface_temp_fet_filtered(), 1e1&ind);
        buffer_append_float16(send_buffer, mc_interface_temp_motor_filtered(), 1e1&ind);
        buffer_append_float32(send_buffer, mc_interface_read_reset_avg_motor_current(), 1e2&ind);
        buffer_append_float32(send_buffer, mc_interface_read_reset_avg_input_current(), 1e2&ind);
        buffer_append_float32(send_buffer, mc_interface_read_reset_avg_id(), 1e2&ind);
        buffer_append_float32(send_buffer, mc_interface_read_reset_avg_iq(), 1e2&ind);
        buffer_append_float16(send_buffer, mc_interface_get_duty_cycle_now(), 1e3&ind);
        buffer_append_float32(send_buffer, mc_interface_get_rpm(), 1e0&ind);
        buffer_append_float16(send_buffer, GET_INPUT_VOLTAGE(), 1e1&ind);
        buffer_append_float32(send_buffer, mc_interface_get_amp_hours(false), 1e4&ind);
        buffer_append_float32(send_buffer, mc_interface_get_amp_hours_charged(false), 1e4&ind);
        buffer_append_float32(send_buffer, mc_interface_get_watt_hours(false), 1e4&ind);
        buffer_append_float32(send_buffer, mc_interface_get_watt_hours_charged(false), 1e4&ind);
        buffer_append_int32(send_buffer, mc_interface_get_tachometer_value(false), &ind);
        buffer_append_int32(send_buffer, mc_interface_get_tachometer_abs_value(false), &ind);
        send_buffer[ind++= mc_interface_get_fault();
        commands_send_packet(send_buffer, ind);
        break;
cs


please refer to https://github.com/RollingGecko/VescUartControl



Posted by Nature & Life


Mini VESC v0.4 하드웨어의 회로도 입니다.

https://github.com/antonchromjak/MINI4


다음은 부품리스트(BOM)입니다.

U1,U2,U3: LM5113SDE

U4,U5,U6: AD8417

U7: STM32F405RGT6

U8: LMR16006YDDCT

U9,U10: MCP1700T-3302E/TT

Q1,Q2,Q3,Q4,Q5,Q6: NTMFS5C604NLT1G

D1: PMEG6020AELR

D3: SML-D12P8WT86C

D4: SML-D12V8WT86C

L1: WURTH ELEKTRONIK 74438335220

X1: ABM3B-8.000MHZ

R1,R2,R3: CSS2H-2512R-L500F

R6,R7,R8,R9,R10,R11: 0603 3R9

R29,R28 0603 220R

R30,R20,R19,R18: 0603 100R

R31,R21,R34: 0603 10k

R25,R27: 0603 22R

R22: 0603 54k9

R33: 0603 100k

R5,R13,R15,R17: 0603 2k2

R4,R12,R14,R16: 0603 39k

R32: NCP18XH103F03RB

C30,C31: 0603 10p

C16,C15,C14: 0603 4n7 

C29,C21,C22,C26,C27,

C19,C76,C20: 0603 100n 50V

C23: 0603 220n 25V

C1,C2,C3: 0603 470n 25V

C6,C7,C8,C9,C10,C11,

C87,C88,C89,C90,C17,

C18,C86,C78,C77: 0603 2u2 25V

C48,C49,C50,C51,C52,

C53,C54,C55,C82,C33,

C34,C37,C38,C40,C41,

C42,C43,C81,C45,C46,

C47,C68,C69,C70,C71,

C73,C75,C57,C58,C59,

C64,C65,C66,C67,C72,

C83,C12,C13,C56,C44,

C4,C5,C61,C63,C84,

C25,C32,C35,C36,C39,

C60,C62,C74,C85,C79,

C80,C24: 1206 2u2 100V

C25: 1206 10u 16V

P11,P10,P9: Micro JST ZH 1.5mm 6-Pin


pdf 포맷입니다(v0.4).

MINI4.pdf

이전 버젼입니다.

MINI_VESC.pdf



Posted by Nature & Life


Mini VESC는 VESC 6에서 출력을 감소시고 사이즈를 줄여 드론에 적용하기 위해서 만들어진 보드입니다. VESC 펌웨어 v4.12에서 약간의 수정(shunt, hwconfig 등을 변경)을 하여 그대로 적용할 수 있습니다.



  • 72x18 mm / 9.5g

  • 8S 20-30A without heat sink (12V with 24A without heat sink @V0.4 / V0.5)

  • 3개의 6-pin 커넥터:

- For programming and debugging: GND, NRST, SWCLK, SWDIO, USBP, USBM

- For motor extra: GND, MOTORTEMP, HALL1, HALL2, HALL3, VCC(3,3V)

- For another one : GND, EN, RX(UART), TX(UART), SERVO, VCC(3,3V)

그리고 VESC Tool을 연결하기 위해서 다음의 케이블(Mini. Micro JST ZH 1.5mm 6-Pin to USB type-a male)이 필요합니다.



파워 스테이지 MOSFET은 NTMFS5C604NL, 게이트(GaN) 드라이버는 LM5113, 전류 센싱을 위한 current sense amplifier AD8417, +5V 전원을 위한 buck 레귤레이터 LMR16006과 VCC 그리고 VAA를 위한 LDO MCP1700, 3x R001 shunts 저항. 고전압 애플리케이션을 위해서 IRFH5006과 LMR16006을 사용할 수 있습니다. 테스트를 위해서 N5065 80A 모터를 사용하였습니다.



아래 그림에서와 같이 EN는 Pull-up 외에도 Pull-down 저항 옵션을 갖을 수 있습니다. EN이 '0'이면 단지 2uA의 전류를 당기지만, 2V 이상의 전압을 공급하면 게이트 드라이버와 MCU에 전원을 공급합니다.



구입처:

https://oshpark.com/profiles/Anton_Chromjak


kicad sources

https://github.com/antonchromjak/MINI4


VESC와 MINI4의 비교



Posted by Nature & Life


VESC 6 하드웨어(v6.4)의 회로도 입니다.



pdf 포맷입니다.

VESC_6.pdf


Posted by Nature & Life


VESC 하드웨어(v4.12)의 회로도 입니다.

https://github.com/vedderb/bldc-hardware



pdf 포맷입니다.

BLDC_4.pdf


Posted by Nature & Life


VESC 하드웨어(v4.12)의 부품리스트(BOM)입니다.

https://github.com/vedderb/bldc-hardware



Drstributor는 아래의 BOM 파일을 참고하시기 바랍니다.

BLDC4.12_BOM.ods



Posted by Nature & Life


다음의 GitHub에서 vesc-tool의 소스 코드를 다운로드 합니다.

https://github.com/vedderb/vesc_tool

다음의 Qt 홈페이지에서 Qt 프로그램을 받기 위해서는 다음의 링크에서 'Get your open source package' 버튼을 클릭하여 installer 프로그램을 우선 다운로드 받아 실행시켜야 합니다.

Qt 다운로드


만약 아래 게시글에서 처럼 이미 Qt 환경에서 vesc-tool의 이전 버젼인 bldc-tool을 성공적으로 컴파일 한 경험이 있고, 이와 같은 동일한 방법으로 vesc-tool을 컴파일을 시도하였는데, 사용자의 Qt 버젼에 따라 프로젝트 파일(*.pro)을 열자마자 다음의 에러 메세지가 나타날 수 있습니다.

Qt에서 bldc-tool 컴파일 방법



'Unknown module(s) in QT: quickcontrols2'라는 메세지는 프로젝트 파일인 'vesc_tool.pro'에서 'QT += quickcontrols2'의 지정 때문 이는 makefile을 생성하는 'qmake'가 'quick control 2'라는 C++ 라이브러리를 컴파일시 링크하기 위한 것입니다. 이 'quick control 2' 모듈은 Qt Quick에 완전한 인터페이스를 구현을 위한 도구들의 집합으로 Qt 5.7에서 포함되었습니다.


...

QT       += bluetooth

QT       += quick

QT       += quickcontrols2


contains(DEFINES, HAS_SERIALPORT) {

    QT       += serialport

}

...


따라서 그 미만의 버젼이 이미 설치되었거나 혹은 새롭게 Qt를 설치하는 경우에 bldc-tool과 다르게 Qt 5.7 이상을 설치해야 합니다. 아래는 설치시 콤포넌트 설정을 보인 것입니다. 이미 설치된 경우에는 '제어판'에서 '프로그램 제거'를 클릭하고 여기서 Qt에 우클릭으로 '삭제' 아닌 '변경'을 클릭하여 아래와 같은 동일한 'Maintain Qt' installer 화면을 볼 수 있습니다. 참고로 필자는 이전 버젼 Qt 5.5를 제거하고 새롭게 Qt 5.10.0을 용량의 이유로 최소 설치하였습니다. 



위 설정에서 보이지 않는 컴포넌트들은 선택되지 않았습니다. 설치가 완료되었다면 나머지는 bldc-tool의 컴파일 방법과 동일합니다. 또한 MinGW도 v4.9.2에서 v5.3.0으로 업데이트 되었습니다. 다음은 'Build' 메뉴의 'Run'으로 실행시킨 vesc-tool의 실행 화면입니다. 필자(Intel Atom CPU Z3735F @1.33GHz / 2GB 메모리 / Windows 10 Home(32bit))의 경우에는 컴파일 시간이 약 40분 걸렸습니다.




Posted by Nature & Life


http://www.ti.com/lit/ds/symlink/drv8302.pdf


Features

• 8-V to 60-V Operating Supply Voltage Range 

• 1.7-A Source and 2.3-A Sink Gate Drive Current Capability 

• Bootstrap Gate Driver With 100% Duty Cycle Support 

• 6 or 3 PWM Input Modes 

• Dual Integrated Current Shunt Amplifiers With Adjustable Gain and Offset 

• 3.3-V and 5-V Interface Support 

• Hardware Control Interface 

• Protection Features: 

– Programmable Dead Time Control (DTC) 

– Programmable Overcurrent Protection (OCP) 

– PVDD and GVDD Undervoltage Lockout (UVLO) 

– GVDD Overvoltage Lockout (OVLO) 

– Overtemperature Warning/Shutdown (OTW/OTS) 

– Reported through nFAULT and nOCTW pins


Function Block Diagram


Description 

The DRV8302 is a gate driver IC for three phase motor drive applications. It provides three bridge drivers, each capable of driving two N-channel MOSFETs. The device supports up to 1.7-A source and 2.3-A sink current capability. The DRV8302 can operate off of a single power supply with a wide range from 8-V to 60-V. It uses a bootstrap gate driver architecture with trickle charge circuitry to support 100% duty cycle. The DRV8302 uses automatic hand shaking when the high side or low side MOSFET is switching to prevent current shoot through. Integrated VDS sensing of the high and low side MOSFETs is used to protect the external power stage against overcurrent conditions.

DRV8302는 3상 모터 구동 애플리케이션을 위한 게이트 드라이버 IC입니다. 이는 3개의 브릿지 드라이버를 제공하는데 각각은 2개의 N채널 MOSFET을 구동하는 것이 가능합니다. 이 디바이스는 1.7A까지 source와 2.3A까지 sink 전류 용장성을 갖습니다. DRV8302는 8V - 60V의 넓은 범위의 단독 전원에서 동작할 수 있습니다. 이것은 100% 듀티 싸이클을 지원하기 위해서 trickle charge(작은 전류로 충전하는 완속충전) 회로로 부트스트랩(bootstrap) 게이트 드라이버 구조를 사용합니다. DRV8302는 high side 혹은 low side MOSFET이 스위칭 할 때 전류 shoot through를 방지하기 위해서 automatic hand shaking을 사용합니다. high 그리고 low side MOSFET의 집적화된 VDS 센싱은 과전류 조건에서 외부 전원을 보호하기 위해서 사용됩니다.


The DRV8302 includes two current shunt amplifiers for accurate current measurement. The amplifiers support bi-directional current sensing and provide and adjustable output offset up to 3 V.

DRV8302는 정확한 전류 측정을 위해서 2개의 current shunt amplifier를 내장합니다. 이 amplifier는 양방향 전류 센싱을 지원하고 3V까지 조정할 수 있는 출력 옵셋을 제공합니다.


The DRV8302 also includes an integrated switching mode buck converter with adjustable output and switching frequency. The buck converter can provide up to 1.5 A to support MCU or additional system power needs.

DRV8302는 또한 조정할 수 있는 출력 그리고 스위칭 주파수를 갖는 집적화된 스위칭 모드 buck 컨버터를 포함합니다. 이 buck 컨버터는 MCU 혹은 추가적인 시스템 전원을 지원하기 위해서 1.5A까지 공급할 수 있습니다.


A hardware interface allows for configuring various device parameters including dead time, overcurrent, PWM mode, and amplifier settings. Error conditions are reported through the nFAULT and nOCTW pins.

하드웨어 인터페이스는 dead time, overcurrent, PWM mode 그리고 amplifier 셋팅을 포함한 다양한 디바이스 파라미터들을 설정하는 것을 허용합니다. 에러 조건들은 nFAULT과 nOCTW 핀을 통해서 보고됩니다.



Three-Phase Gate Driver

The half-bridge drivers use a bootstrap configuration with a trickle charge pump to support 100% duty cycle operation. Each half-bridge is configured to drive two N-channel MOSFETs, one for the high-side and one for the low-side. The half-bridge drivers can be used in combination to drive a 3-phase motor or separately to drive various other loads.

Half-bridge 드라이버는 100% 듀티 싸이클 동작을 지원하기 위해서 trickle charge pump을 갖는 부트스트랩(bootstrap) 구성을 사용합니다. 각 half-bridge는 2개의 N채널 MOSFET를 구동하는데, high side에 하나 그리고 low side에 하나입니다. half-bridge 드라이버는 3상 모터를 구동하는 조합으로 혹은 다양한 부하를 독립적으로 구동하기 위해서 사용될 수 있습니다.


The internal dead times are adjustable to accommodate a variety of external MOSFETs and applications. The dead time is adjusted with an external resistor on the DTC pin. Shorting the DTC pin to ground provides the minimum dead time (50 ns). There is an internal hand shake between the high side and low side MOSFETs during switching transitions to prevent current shoot-through.

내부 dead time은 다양한 외부 MOSFET과 애플리케이션과 함께 사용할 수 있도록 조절이 가능합니다. 이 dead time은 DTC 핀에 외부 저항과 함께 조절됩니다. DTC 핀을 GND로 단락시키는 것은 최소 dead time(50 ns)을 갖습니다. 전류 shoot through를 방지하기 위해서 스위칭 천이 시간 동안에 high side와 low side MOSFET 사이에 내부적인 hand shake가 있습니다.


The three-phase gate driver can provide up to 30 mA of average gate driver current. This can support switching frequencies up to 200 kHz when the MOSFET Qg = 25 nC. The high side gate drive will survive negative output from the half-bridge up to –10 V for 10 ns. During EN_GATE low and fault conditions the gate driver keeps the external MOSFETs in high impedance mode. Each MOSFET gate driver has a VDS sensing circuit for overcurrent protection. The sense circuit measures the voltage from the drain to the source of the external MOSFETs while the MOSFET is enabled. This voltage is compared against the programmed trip point to determine if an overcurrent event has occurred. The trip voltage is set through the OC_ADJ pin with a voltage usually set with a resistor divider. The high-side sense is between the PVDD1 and SH_X pins. The low-side sense is between the SH_X and SL_X pins. Ensuring a differential, low impedance connection to the external MOSFETs for these lines helps provide accurate VDS sensing. The DRV8302 provides both cycle-by-cycle current limiting and latch overcurrent shutdown of the external MOSFET through the M_OC pin.

3상 게이트 드라이버는 30mA까지 평균적인 게이트 구동 전류를 공급할 수 있습니다. 이것은 MOSFET Qg = 25nC일 때 스위칭 주파수를 200kHz까지 지원할 수 있습니다. High side 게이트 구동은 10ns 동안 -10V까지 half-bridge로부터 음의 출력을 유지할 수 있습니다. EN_GATE가 low이고 결함 조건인 동안 게이트 드라이버는 외장 MOSFET을 높은 임피던스로 유지합니다. 각 MOSFET 게이트 드라이버는 과전류 보호(overcurrent protection)를 위한 VDS 센싱 회로를 갖습니다. 이 센스 회로는 외장 MOSFET이 가능한 동안 드레인으로부터 소스로의 전압을 측정합니다. 과전류 이벤트가 발생했다면, 이 전압은 과전류가 발생했는지 아닌지 결정하기 위해 프로그램된 트립 포인트(trip point)와 비교합니다. 이 트립 전압은 보통 저항 분배기로 설정된 전압으로 OC_ADJ를 통해서 설정됩니다. High side 센스는 PVDD1 그리고 SH_X 핀이고 low side 센스는 SH_X 그리고 SL_X 핀 사이입니다. 이들 라인들에 대해서 외장 MOSFET으로 differential, low impedance 배선을 확실하게 하는 것은 정확한 VDS 센싱이 가능하게 합니다. DRV8302는 cycle-by-cycle current limiting과 M_OC 핀을 통하여 외장 MOSFET의 latch overcurrent shutdown을 제공합니다.


The DRV8302 allows for both 6-PWM and 3-PWM control through the M_PWM pin.

DRV8302는 M_PWM 핀을 통하여 6-PWM과 3-PWM 제어를 허용합니다.


표 1. 6-PWM mode

표 2. 3-PWM mode

표 3. Gate Driver External Components 


Current Shunt Amplifiers
The DRV8302 includes two high performance current shunt amplifiers to accurate low-side, inline current measurement. The current shunt amplifiers have 2 programmable GAIN settings through the GAIN pin. These are 10, and 40 V/V. They provide output offset up to 3 V to support bidirectional current sensing. The offset is set to half the voltage on the reference pin (REF).
DRV8302는 정확한 low side, 인라인 전류 측정을 위해서 2개의 고성능 current shunt amplifier를 포함합니다. Current shunt amplifier는 GAIN 핀을 통해서 2개의 프로그램 가능한 GAIN 셋팅을 할 수 있습니다. 이것은 10과 40 V/V입니다. 이들은 양방향 전류 센싱을 지원하기 위해서 3V까지 출력 옵셋을 제공합니다. 이 옵셋은 reference 핀(REF) 상에 전압의 반으로 설정됩니다.
To minimize DC offset and drift overtemperature, a calibration method is provided through either the DC_CAL pin. When DC calibration is enabled, the device shorts the input of the current shunt amplifier and disconnect the load. DC calibration can be done at any time, even during MOSFET switching, since the load is disconnected. For the best results, perform the DC calibration during the switching OFF period, when no load is present, to reduce the potential noise impact to the amplifier.
DC 옵셋과 overtemperature 드리프트를 최소화하기 위해서 calibration 방법이 DC_CAL 핀을 통해서 제공됩니다. DC calibration이 enable 될 때, 디바이스는 current shunt amplifier의 입력을 단락하고 부하를 끊습니다. DC calibration은 부하가 끊어졌기 때문에 MOSFET 스위칭하는 동안조차도 어느 때이든 할 수 있습니다. 가장 좋은 결과를 위해서 부하가 없을 때 앰프로 잠재적인 잡음 영향을 줄이기 위해서 스위칭 OFF 구간에 DC calibration을 실행하세요.

The output of current shunt amplifier can be calculated as:
Current shunt amplifier의 출력은 다음과 같이 계산될 수 있습니다:

where 

• VREF는 reference 전압(REF pin)입니다
• G는 앰프의 이득입니다(10 or 40 V/V) 
• SNX와 SPx는 채널 x (1)의 입력입니다

SPx should connect to resistor ground for the best common mode rejection.
SPx는 가장 좋은 common mode rejection을 위해서 저항 GND로 연결되어야 합니다.

Figure 4 shows current amplifier simplified block diagram.
그림 4는 current amplifier의 간단화된 블럭 다이아그램입니다.

그림 4. Current Shunt Amplifier Simplified Block Diagram

Buck Converter

The DRV8302 uses an integrated TPS54160 1.5-A, 60-V, step-down DC-DC converter. Although integrated in the same device, the buck converter is designed completely independent of the rest of the gate driver circuitry. Because the buck converter can support external MCU or other external power need, the independency of buck operation is crucial for a reliable system; this gives the buck converter minimum impact from gate driver operations. Some examples are: when gate driver shuts down due to any failure, the buck still operates unless the fault is coming from the buck itself. The buck keeps operating at much lower PVDD of 3.5 V, assuring the system has a smooth power-up and power-down sequence when gate driver is not able to operate due to a low PVDD.

DRV8302는 집적화된 TPS54160 1.5A, 60V, step-down DC-DC 컨버터를 사용합니다. 비록 동일한 디바이스에 집적하였을지라도 buck 컨버터는 게이트 드라이버 회로의 나머지에 완전하게 독립적으로 설계되었습니다. buck 컨버터는 외장 MCU 혹은 다른 외장 전원 요구를 지원할 수 있습니다. buck 동작의 독립성은 신뢰성 있는 시스템을 위해서 결정적입니다: 이것은 게이트 구동 동작으로부터 buck 컨버터에 최소 충격을 줍니다. 일부 예제는 다음과 같습니다: 게이트 드라이버는 어떤 실수로 셧다운 되었을 때 buck는 만약 그 결함이 buck 자체로부터 오지 않는 한 여저히 동작할 것입니다. buck는 훨씬 낮은 3.5V PVDD에서도 동작을 유지합니다. 이는 게이트 드라이버가 낮은 PVDD로 인해 동작이 불가능할 때 시스템이 부드러운 power-up 그리고 power-down 시퀀스를 보장합니다.


For proper selection of the buck converter external components, see the data sheet, TPS54160 1.5-A, 60-V, Step-Down DC/DC Converter With Eco-mode™, SLVSB56

Buck 컨버터의 외장 부품의 적당한 선택을 위해서 데이터시트를 참조하세요. TPS54160 1.5-A, 60-V, Step-Down DC/DC Converter With Eco-mode™, SLVSB56.


The buck has an integrated high-side N-channel MOSFET. To improve performance during line and load transients the device implements a constant frequency, current mode control which reduces output capacitance and simplifies external frequency compensation design.

Buck는 집적화된 high-side N채널 MOSFET을 갖습니다. 라인 그리고 부하 과도 응답 동안에 성능을 개선하기 위해서 디바이스는 일정한 주파수, 출력 커패시턴스를 감소시키고 외부 주파수 보상 설계를 간단화하는 current mode 제어를 구현합니다.


The wide switching frequency of 300 kHz to 2200 kHz allows for efficiency and size optimization when selecting the output filter components. The switching frequency is adjusted using a resistor to ground on the RT_CLK pin.

300 - 2200kHz의 넓은 스위칭 주파수는 출력 필터 부품들을 선택할 때 효율과 사이즈 최적화를 허용합니다. 스위칭 주파수는 RT_CLK 핀에 GND로 저항을 사용하여 조정될 수 있습니다.


The device has an internal phase lock loop (PLL) on the RT_CLK pin that is used to synchronize the power switch turn on to a falling edge of an external system clock. 

이 디바이스는 RT_CLK 상에 내부적인 phase lock loop(PLL)을 가지며 이 핀은 외부 시스템 클럭의 falling edge에 전력 스위치가 켜지도록 동기화하기 위해서 사용됩니다.


The buck converter has a default start-up voltage of approximately 2.5 V. The EN_BUCK pin has an internal pullup current source that can be used to adjust the input voltage undervoltage lockout (UVLO) threshold with two external resistors. In addition, the pullup current provides a default condition. When the EN_BUCK pin is floating the device will operate. The operating current is 116 µA when not switching and under no load. When the device is disabled, the supply current is 1.3 µA.

Buck 컨버터는 약 2.5V의 디폴트 start-up 전압을 갖습니다. EN_BUCK 핀은 내부의 pullup 전류원을 가지며 이는 2개의 외장 저항으로 input voltage undervoltage lockout(UVLO) threshold를 조정하기 위해서 사용될 수 있습니다. 추가로, pullup 전류는 디폴트 조건을 제공합니다. EN_BUCK 핀이 플로팅(floating)일 때 디바이스는 동작할 것입니다. 동작 전류는 스위칭 하지 않고 부하 없는 조건에서 116 µA입니다. 디바이스가 disable 될 때 supply current는 1.3 µA입니다.


The integrated 200-mΩ high-side MOSFET allows for high-efficiency power supply designs capable of delivering 1.5 A of continuous current to a load. The bias voltage for the integrated high side MOSFET is supplied by a capacitor on the BOOT to PH pin. The boot capacitor voltage is monitored by an UVLO circuit that turns the high side MOSFET off when the boot voltage falls below a preset threshold. The buck can operate at high duty cycles because of the boot UVLO. The output voltage can be stepped down to as low as the 0.8-V reference.

집적화된 200mΩ high-side MOSFET은 부하에 연속적인 1.5A 전류를 공급하는 고효율 전원 설계가 가능하도록 합니다. 집적화된 high side MOSFET을 위한 바이어스 전압은 BOOT에서 PH 핀으로 커패시터에 의해서 공급됩니다. 부트 커패시터 전압은 UVLO 회로에 의해서 모니터되고 이 UVLO 회로는 부트 전압이 미리 설정한 threshold 아래로 떨어질 때 high side MOSFET을 off 합니다. Buck는 boot UVLO로 인하여 높은 듀티 싸이클에서 동작할 수 있습니다. 출력 전압은 0.8V reference 만큼 낮게 떨어집니다.


The BUCK has a power good comparator (PWRGD) which asserts when the regulated output voltage is less than 92% or greater than 109% of the nominal output voltage. The PWRGD pin is an open-drain output that deasserts when the VSENSE pin voltage is between 94% and 107% of the nominal output voltage, allowing the pin to transition high when a pullup resistor is used.

Buck는 우수한 비교기(PWRGD)를 가지며, 이는 안정화된 출력 전압이 정상적인 출력 전압보다 92% 작거나 혹은 109% 이상일 때 활성화됩니다. PWRGD 핀은 오픈 드레인 출력으로 VSENSE 핀 전압이 정상적인 출력 전압의 94%와 107% 사이일 때 비활성화됩니다. 즉, pullup 저항이 사용될 때 핀이 high로 가는 것을 허용합니다.


The BUCK minimizes excessive output overvoltage (OV) transients by taking advantage of the OV power good comparator. When the OV comparator is activated, the high-side MOSFET is turned off and masked from turning on until the output voltage is lower than 107%.

Buck은 overvoltage(OV) power good 비교기의 사용으로 과잉 출력 overvoltage 과도 응답을 최소화합니다. OV 비교기가 활성화되었을때 high-side MOSFET은 꺼지고 출력 전압이 107%보다 낮아질 때까지 켜지는 것으로부터 마스크됩니다.


The SS_TR (slow start/tracking) pin is used to minimize inrush currents or provide power supply sequencing during power-up. A small value capacitor should be coupled to the pin to adjust the slow start time. A resistor divider can be coupled to the pin for critical power supply sequencing requirements. The SS_TR pin is discharged before the output powers up. This discharging ensures a repeatable restart after an overtemperature fault,

SS_TR(slow start/tracking) 핀은 inrush current를 최소화하고 혹은 power-up 동안에 power supply sequencing을 제공하기 위해서 사용됩니다. 작은 값을 갖는 커패시터는 slow start time을 맞추기 위해서 그 핀으로 연결되어야 합니다. 저항 분배기는 중대한 power supply sequencing 요구조건을 위해서 그 핀에 연결될 수 있습니다. SS_TR 핀은 출력이 power-up 전에 방전됩니다. 이 방전은 overtemperature 문제 후에 반복적인 재시작을 확실하게 합니다.


The BUCK, also, discharges the slow-start capacitor during overload conditions with an overload recovery circuit. The overload recovery circuit slow-starts the output from the fault voltage to the nominal regulation voltage once a fault condition is removed. A frequency foldback circuit reduces the switching frequency during start-up and overcurrent fault conditions to help control the inductor current.

Buck은 또한 overload recovery circuit의 사용으로 과부하 조건 동안에 slow-start 커패시터를 방전합니다. Overload recovery circuit는 결함 조건이 일단 제거된 후에는 결함있는 전압을 정상적인 안정된 전압으로 출력을 천천히 시작합니다. Frequency foldback circuit은 start-up 그리고 인덕터 전류를 제어하는데 돕는 과전류 결함 조건 동안 스위칭 주파수를 감소시킵니다.


표 4. Buck Regulator External Components


Protection Features

The DRV8302 provides a broad range of protection features and fault condition reporting. The DRV8302 has undervoltage and overtemperature protection for the IC. It also has overcurrent and undervoltage protection for the MOSFET power stage. In fault shut down conditions all gate driver outputs is held low to ensure the external MOSFETs are in a high impedance state.

DRV8302는 광대한 범위의 보호 특성과 결함 조건 리포팅을 제공합니다. DRV8302는 IC에 대해서 undervoltage와 overtemperature protection을 갖습니다. 이것은 또한 MOSFET 파워 스테이지를 위해서 overcurrent와 undervoltage protection을 갖습니다. 결함으로 인한 셧다운 조건에서 모든 게이트 드라이버 출력은 외부 MOSFET이 높은 임피던스 상태에 있기를 확실히 하기 위해 'low'를 유지합니다.


1. Overcurrent Protection (OCP) and Reporting

To protect the power stage from damage due to excessive currents, VDS sensing circuitry is implemented in the DRV8302. Based on the RDS(on) of the external MOSFETs and the maximum allowed IDS, a voltage threshold can be determined to trigger the overcurrent protection features when exceeded. The voltage threshold is programmed through the OC_ADJ pin by applying an external reference voltage with a DAC or resistor divider from DVDD. Overcurrent protection should be used as a protection scheme only; it is not intended as a precise current regulation scheme. There can be up to a 20% tolerance across channels for the VDS trip point.

과잉 전류로 인한 손상으로부터 파워 스테이지를 보호하기 위해서, VDS 센싱 회로가 DRV8302에 구현되었습니다. 외장 MOSFET의 RDS(on)과 최대 허용된 IDS에 근거하여, 전압 한계(voltage threshold)는 과잉되었을 때 overcurrent protection 기능을 활성화하기 위해서 결정될 수 있습니다. 이 전압 한계는 OC_ADJ를 통하여 DAC 혹은 DVDD로부터 저항 분배기를 사용하여 외부 기준 전압(reference voltage)을 공급하는 것에 의해서 프로그램됩니다. Overcurrent protection은 단지 보호용으로서 사용되어야만 합니다; 이것은 정밀한 전류 안정화 회로로써 계획되지는 않았습니다. VDS 트립 포인트는 채널에 걸린 전압의 허용오차가 20%까지 될 수 있습니다.


The VDS sense circuit measures the voltage from the drain to the source of the external MOSFET while the MOSFET is enabled. The high-side sense is between the PVDD and SH_X pins. The low-side sense is between the SH_X and SL_X pins. Ensuring a differential, low impedance connection to the external MOSFETs for these lines helps provide accurate VDS sensing.

VDS 센스 회로는 외장 MOSFET이 enable 된 동안 드레인으로부터 소스로의 전압을 측정합니다. High-side 센스는 PVDD와 SH_X 핀 사이입니다. low-side 센스는 SH_X와 SL_X 핀 사이입니다. 이들 라인들에 대해서 외장 MOSFET로의 차분의, 낮은 임피던스 배선을 확실하게 하는 것이 정확한 VDS 센싱을 제공합니다.


There are two different overcurrent modes that can be set through the M_OC pin.

2개의 서로 다른 overcurrent 모드가 있으며 이는 M_OC 핀으로 설정될 수 있습니다.


1.1 Current Limit Mode (M_OC = LOW)

In current limit mode the devices uses current limiting instead of device shutdown during an overcurrent event.

전류 제한 모드(current limit mode)에서 디바이스는 overcurrent 이벤트 동안에 디바이스 셧다운 대신에 전류 제한을 사용합니다.


After the overcurrent event, the MOSFET in which the overcurrent was detected in will shut off until the next PWM cycle. The overcurrent event will be reported through the nOCTW pin. The nOCTW pin will be held low for a maximum 64 µs period (internal timer) or until the next PWM cycle. If another overcurrent event is triggered from another MOSFET, during a previous overcurrent event, the reporting will continue for another 64 µs period (internal timer will restart) or until both PWM signals cycle.

Overcurrent 이벤트 후에 과전류가 감지된 MOSFET은 다음 PWM 싸이클까지 커질 것입니다. Overcurrent 이벤트는 nOCTW 핀으로 보고될 것입니다. nOCTW 핀은 최대 64µs 기간(내부 타이머) 동안 혹은 다음 PWM 싸이클까지 'low'로 유지될 것입니다. 만일 또 다른 overcurrent 이벤트가 이전 overcurrent 이벤트 동안에 다른 MOSFET에서 발생하면, 리포팅은 또 다른 64 µs기간(내부 타이머는 다시 시작할 것입니다) 혹은 두 PWM 신호 싸이클까지 계속될 것입니다.


1.2 OC Latch Shutdown Mode

When an overcurrent event occurs, both the high-side and low-side MOSFETs will be disabled in the corresponding half-bridge. The nFAULT pin will latch until the fault is reset through a quick EN_GATE reset pulse.

Overcurrent 이벤트가 발생했을 때 high-side와 low-side MOSFET 모두 대응하는 half-bridge에서 disable 시킬 것입니다. nFAULT 핀은 빠른 EN_GATE reset 펄스로 fault가 reset 될 때까지 latch 될 것입니다.

 

2. OC_ADJ 

When external MOSFET is turned on, the output current flows through the on resistance, RDS(on) of the MOSFET, which creates a voltage drop VDS. The over current protection event will be enabled when the VDS exceeds a preset value. The voltage on OC_ADJ pin will be used to pre-set the OC tripped value. The OC tripped value IOC has to meet following equations:

외장 MOSFET이 켜졌을 때, 출력 전류는 MOSFET의 저항, RDS(on)을 통하여 흐릅니다. 이것은 VDS의 전압 강하를 만듭니다. Over current protection 이벤트는 VDS가 미리 설정된 값을 초과할 때 enable 될 것입니다. OC_ADJ 핀의 전압은 OC tripped 값을 미리 설정하기 위해서 사용될 것입니다. OC tripped 값 IOC는 다음의 방정식을 만족해야 합니다.

where 

• R1 + R2 ≥ 1 KΩ 

• DVDD = 3.3 V


Connect OC_ADJ pin to DVDD to disable the over-current protection feature.

Over-current protection 기능을 disable 하기 위해서 OC_ADJ 핀을 DVDD에 연결하세요.



3. Undervoltage Protection (UVLO)
To protect the power output stage during start-up, shutdown, and other possible undervoltage conditions, the DRV8302 provides undervoltage protection by driving the gate drive outputs (GH_X, GL_X) low whenever PVDD or GVDD are below their undervoltage thresholds (PVDD_UV/GVDD_UV). This will put the external MOSFETs in a high impedance state.
Start-up, 셧다운 그리고 다른 가능한 undervoltage 조건 동안에 파워 출력 스테이지를 보호하기 위해서, DRV8302는 PVDD 혹은 GVDD가 그들의 undervoltage 한계치(PVDD_UV/GVDD_UV) 아래에 있을 때마다 게이트 구동 출력(GH_X, GL_X)을 'low'로 구동하는 것에 의해서 undervoltage protection을 제공합니다.

A specific PVDD1 undervoltage transient brownout from 13 to 15 µs can cause the DRV8302 to become unresponsive to external inputs until a full power cycle. The transient condition consists of having PVDD1 greater than the PVDD_UV level and then PVDD1 dropping below the PVDD_UV level for a specific period of 13 to 15 µs. Transients shorter or longer than 13 to 15 µs will not affect the normal operation of the undervoltage protection. Additional bulk capacitance can be added to PVDD1 to reduce undervoltage transients.
13-15µs의 특별한 PVDD1 undervoltage 과도 응답 정전은 DRV8302가 완전한 전력 싸이클까지 외부 입력에 반응하지 않게 합니다. 이 과도 응답 조건은 PVDD1이 PVDD_UV 레벨보다 크고 그리고 나서 PVDD1가 13-15 µs의 특별한 기간 동안 PVDD_UV 레벨 아래로 떨어지는 것으로 구성됩니다. 13-15µs 보다 짧거나 긴 과도 응답은 undervoltage protection의 정상 동작에 영향을 주지 않을 것입니다. 추가적인 벌크(bulk) 커패시턴스는 undervoltage 과도 응답을 줄이기 위해서 PVDD1으로 더해질 수 있습니다.

4. Overvoltage Protection (GVDD_OV)
The device will shut down both the gate driver and charge pump if the GVDD voltage exceeds the GVDD_OV threshold to prevent potential issues related to the GVDD pin or the charge pump (For example, short of external GVDD cap or charge pump). The fault is a latched fault and can only be reset through a reset transition on the EN_GATE pin.
디바이스는 GVDD 핀 혹은 charge pump(예를 들어, 외장 GVDD 커패시터 혹은 charge pump의 단락)에 관련된 잠재적인 이슈를 방지하기 위해서 만일 GVDD가 GVDD_OV의 한계치를 초과하면, 게이트 드라이버와 charge pump를 셧다운할 것입니다. fault는 latch 되고 EN_GATE 핀 상에 reset transition을 통해서만 리셋 될 수 있습니다.

5. Overtemperature Protection
2-level overtemperature 감지 회로가 구현되었습니다:
• Level 1: overtemperature 경고 (OTW) 
OTW는 nOCTW 핀을 통해서 보고됩니다.
• Level 2: overtemperature (OT) latched shut down of gate driver and charge pump (OTSD_GATE) 
결함은 nFAULT 핀으로 보고될 것입니다. 이것은 latch 된 셧다운이어서 게이트 드라이버는 OT 조건이 더 이상 존재하지 않을지라도 자동적으로 회복되지 않을 것입니다. 온도가 미리 설정한 값, tOTSD_CLR 아래로 내려간 후에 정상 동작으로 게이트 드라이버를 회복하기 위해서 핀을 통한 EN_GATE reset이 요구됩니다.

6. Fault and Protection Handling
The nFAULT pin indicates an error event with shut down has occurred such as over-current, overtemperature, overvoltage, or undervoltage. Note that nFAULT is an open-drain signal. nFAULT goes high when gate driver is ready for PWM signal (internal EN_GATE goes high) during start-up.
nFAULT 핀은 over-current, overtemperature, overvoltage 혹은 undervoltage 같은 셧다운이 발생했을 때 오류 이벤트를 지시합니다. nFAULT는 오프 드레인 신호임을 주의하세요. nFAULT는 start-up 동안 게이트 드라이버가 PWM 신호(내부적인 EN_GATE는 'high'로 감)를 위해서 준비되었을 때 'high'로 올라갑니다.

The nOCTW pin indicates an overtemperature or over current event that is not necessarily related to shut down.
nOCTW 핀은 셧다운에 관련되어 필요하지 않은 overtemperature 혹은 over current 이벤트를 지시합니다.

Following is the summary of all protection features and their reporting structure:
다음은 모든 보호 특성과 리포팅 구조의 요약입니다:

표 5. Fault and Warning Reporting and Handling


Device Functional Modes
1. EN_GATE
EN_GATE low is used to put gate driver, charge pump, current shunt amplifier, and internal regulator blocks into a low-power consumption mode to save energy. The device will put the MOSFET output stage to high impedance mode as long as PVDD is still present.
EN_GATE low는 게이트 드라이버, charge pump, current shunt amplifier 그리고 내부 regulator 블록의 에너지를 절약하기 위해서 저파워 소비 모드로 놓는데 사용됩니다. 이 디바이스는 PVDD가 여전히 존재하는 한 MOSFET 출력 스테이지를 하이 임피던스 모드에 놓을 것입니다.

When the EN_GATE pin goes low to high, it goes through a power-up sequence, and enable gate driver, current amplifiers, charge pump, internal regulator, and so forth and reset all latched faults related to gate driver block. All latched faults can be reset when EN_GATE is toggled after an error event unless the fault is still present.
EN_GATE 핀이 low에서 high로 갈 때, 이것은 power-up 시퀀스, 그리고 게이트 드라이버, current amplifier, charge pump, 내부 regulator 등이 활성화되고, 게이트 드라이버 블럭에 관련된 모든 래치된 fault들은 리셋됩니다. 모든 래치된 fault들은 fault가 여전히 존재하지 않는 한 에러 이벤트 후에 EN_GATE가 토글될 때 리셋될 것입니다.

When EN_GATE goes from high to low, it will shut down gate driver block immediately, so gate output can put external FETs in high impedance mode. It will then wait for 10 µs before completely shutting down the rest of the blocks. A quick fault reset mode can be done by toggling EN_GATE pin for a very short period (less than 10 µs). This will prevent the device from shutting down the other functional blocks such as charge pump and internal regulators and bring a quicker and simple fault recovery. To perform a full reset, EN_GATE should be toggled for longer than 20 µs. This allows for all of the blocks to completely shut down and reach known states. An EN_GATE reset pulse (high → low → high) from 10 to 20 µs should not be applied to the EN_GATE pin. The DRV8301 has a transition area from the quick to full reset modes that can cause the device to become unresponsive to external inputs until a full power cycle. An RC filter can be added externally to the pin if reset pulses with this period are expected to occur on the EN_GATE pin.
EN_GATE가 high에서 low로 갈 때, 이것은 즉시 게이트 드라이버 블럭을 셧다운할 것입니다. 그래서 게이트 출력은 외장 FET들이 하이 임피던스 모드로 갈 수 있게 합니다. 이것은 그리고 블럭의 나머지를 완전하게 셧다운하기 전에 10us를 기다릴 것입니다. 빠른 fault 리셋 모드는 EN_GATE를 토글하여 매우 짧은 시간(<10us) 동안에 끝낼 수 있습니다. 이것은 디바이스가 charge pump 그리고 내부 regulator들과 같은 다른 기능 블럭을 셧다운하는 것을 방지하고 빠르고 간단한 fault 회복을 할 것입니다. 완전한 리셋을 수행하기 위해서, EN_GATE는 20us 보다 긴 시간 동안 토글되어야만 합니다. 이것은 모든 블럭들이 완전하게 셧다운하고 알려진 상태로 도달하게 허용합니다. 10에서 20us의 EN_GATE 리셋 펄스(high → low → high)는 EN_GATE 핀에 적용되지 않아야만 합니다. DRV8301는 디바이스가 완전한 파워 싸이클까지 외부 입력에 반응하지 않게 되는 것을 유발한 빠르고 완전한 리셋 모드의 transition area를 갖습니다. 만일 이 구간에 리셋 펄스가 EN_GATE 핀에 발생할 것으로 기대된다면 RC 필터가 핀에 외부에서 추가될 수 있습니다.

One exception is to reset a GVDD_OV fault. A quick EN_GATE quick fault reset will not work with GVDD_OV fault. A complete EN_GATE with low level holding longer than 20 µs is required to reset GVDD_OV fault. TI highly recommends inspecting the system and board when GVDD_OV occurs.
한가지 예외는 GVDD_OV fault를 리셋하는 것입니다. 빠른 EN_GATE fault 리셋은 GVDD_OV fault와 함께 동작하지 않을 것입니다. 20us보다 길게 low level을 유지하는 완전한 EN_GATE는 GVDD_OV fault를 리셋하기 위해서 요구됩니다. TI는 GVDD_OV가 발생할 때 시스템과 보드를 조사하는 것을 강력하게 권고합니다.

7.4.2 DTC
Dead time can be programmed through DTC pin. A resistor should be connected from DTC to ground to control the dead time. Dead time control range is from 50 ns to 500 ns. Short DTC pin to ground provides minimum dead time (50 ns). Resistor range is 0 to 150 kΩ. Dead time is linearly set over this resistor range. Current shoot through prevention protection will be enabled in the device all time independent of dead time setting and input mode setting.
Dead time은 DTC 핀으로 프로그램될 수 있습니다. 저항은 dead time을 제어하기 위해서 DTC로부터 GND로 연결되어야 합니다. Dead time 제어 범위는 50ns에서 500ns입니다. DTC 핀의 GND와 단락은 최소 dead time(50 ns)를 공급합니다. 저항 범위는 0 ~ 150 kΩ입니다. Dead time은 이 저항 범위를 따라 선형적으로 설정됩니다. 전류 shoot through prevention 보호는 디바이스에서 항상 dead time 설정과 input mode 설정에 상관없이 활성화될 것입니다.



'Flight Controller 이해 > 부품' 카테고리의 다른 글

WS2811를 이용한 color LED 구동  (0) 2018.03.09
Posted by Nature & Life