数字输出驱动器:理解关键特性与挑战
Abstract
本文介绍MAX14912/MAX14913八通道数字输出驱动器的关键特性,及其在工业和楼宇自动化领域的应用。
引言
数字输出驱动器广泛用于工业应用中的过程控制(PLC系统)和楼宇自动化,也可用于任何使用24V DC系统进行控制的应用,例如电机控制、机器人和机械自动化。
乍一看,数字输出驱动器是只有两种输出状态的简单器件:开或关;略微深入了解,就会发现,成功替代机械开关和继电器能够为工程师带来诸多好处,例如可靠性、低功耗、简单、较小尺寸、灵活性,可编程性,可以用其构建自动化、容错控制系统。
Maxim的数字输出驱动器拥有高达200kHz的开关频率、快速且安全的电感负载消磁、负载开路/低电压/欠压检测、过流和过温保护、看门狗定时器以及SPI检错。器件能够承受高达60V电源尖峰脉冲、±1kV浪涌脉冲,以及高达12kV ESD冲击,工作在-40°C至+125°C宽温工作范围。
本文中,我们讨论如何有效利用MAX14912/MAX14913输出驱动器的不同特性。为实现这一目的,我们讨论系统设计师必须采取的决策,并了解综合权衡因素和MAX14912/MAX14913提供的好处。
确定系统工作状态
高边(HS)或推挽(PP)式?
一般来说,推挽式工作方式用于高速通信,信号波形应具有陡峭的边沿。该模式的缺点是输出总处于工作状态,为高电平或低电平,不能处于三态或具有高阻抗,除非使用Global EN引脚。
相反,高边工作方式允许工程师将输出置于高阻态,但信号波形很大程度上依赖于负载阻抗。高边模式下也可以将输出并联,支持高达9.6A的较大负载。
因此,工作模式的选择取决于具体的应用。
电源要求
MAX14912/MAX14913支持从12V至36V的较宽范围电源,所以能够用于较宽范围的应用,甚至用于电源要求较低以及容限更宽的系统。这样可保证系统设计的可靠性和灵活性。
集成5V DC-DC转换器省去了额外的电源,最大程度减少外部元件的数量,以及提高系统效率。系统中的其它器件可由该5V DC电源供电,该电源能够为外部电路提供超过100mA的电流。
系统集成
数字输出驱动器是低电压MCU/FPGA与相对高电压(12V至36V)外设器件之间的接口,外设的例子包括执行器、电机、照明灯、继电器、LED等。器件提供了对电压和电流尖峰脉冲、电感或电容负载、磁干扰和静态放电的高抗扰性。
此外,MAX14912/MAX14913提供全面的诊断能力,包括热关断、开路检测、低电源和欠压检测、过压和过流保护。4 × 4 LED驱动器矩阵可以对每通道的输出状态和故障状态进行指示。
数字接口
MAX14912和MAX14913支持两种接口:并行和串行。系统设计师能够灵活使用并行或串行接口进行控制,或者同时使用两种接口。为便于理解接口,我们首先了解几个全局配置引脚。
全局配置引脚
EN – 该引脚为高电平时,器件处于正常工作模式;该引脚为低电平时,禁止任何输出操作,例如设置所有输出为高阻态。
SRIAL – 该引脚为高电平时,使能串行(SPI)操作;该引脚为低电平时,使能并行操作。
PUSHPUL – 该引脚为高电平时,使能推挽式工作模式;该引脚为低电平或浮空时,所有输出引脚处于高边工作模式。
FLTR – 该引脚为高电平时,使能所有并行逻辑输入和CS引脚上的尖峰脉冲滤波。
并行接口
并行接口是基于引脚的简单接口,用于控制驱动器输出。如果SRIAL引脚连接至地(SRIAL = 低电平),则通过并行接口控制器件。OUT_引脚的状态由对应IN_引脚和全局配置引脚控制:PUSHPL、FLTR和EN。在并行模式下控制MAX14912/MAX14913,至少需要9个GPIO引脚:控制8个输入引脚IN_和PUSHPL引脚。FLTR和EN引脚可始终保持为高电平。表1为引脚设置汇总。
PUSHPL | 驱动器模式 | IN_ | OUT_状态 |
---|---|---|---|
0 | 高边 | 0 | 高边驱动器关闭/高阻态 |
0 | 高边 | 1 | 高边驱动器打开/输出高电平 |
1 | 推挽式 | 0 | 输出低电平 |
1 | 推挽式 | 1 | 输出高电平 |
注:MAX14913在并行模式下不允许通过串行接口进行配置,而MAX14912即使在SRIAL为低电平时也可通过串行接口进行配置。该模式下可访问除寄存器0之外的全部寄存器(参见下文的“串行接口”部分)。
通过串行接口进行配置的优先级比PUSHPL引脚设置高。逻辑电平0 (低电平)或1 (高电平)取决于VL输入,1.6V至5.5V有效。并行模式的缺点是缺少诊断信息。
串行接口
将SRIAL引脚驱动为VL电平(SRIAL = 高电平)时,使能SPI串行接口。串行模式下,所有输出引脚由内部寄存器设置和输入引脚控制。可通过串行接口引脚访问寄存器:CS、CLK、SDI和SDO。详细信息请参考MAX14912/MAX14913数据资料的串行接口部分。
循环冗余校验(CRC)、看门狗和滤波等部分特性仅受CRC/IN3、WDEN/IN5和FLTR引脚的输入逻辑控制,而负载开路检测和输出配置由OL/IN1和PUSHPL引脚的输入逻辑控制或通过寄存器设置控制。
此外,CMND/IN2、CNFG/IN7和S16/IN8的设置见表2中的汇总。
引脚 | 配置 | |||||||
---|---|---|---|---|---|---|---|---|
SPI模式 | SRIAL | CMND/IN2 | CNFG/IN7 | S16/IN8 | BITS | SDI | SDO | 注释 |
1 | 0 | 1 | 0 | 8 | 各通道故障 | OUT由SPI设置。FAULT为故障的实时状态(驱动器关断或负载开路) | ||
1 | 16 | 各通道故障和电平 | ||||||
1 | 0 | 1 | 0 | 8 | 各通道故障 | OUT电平不变化 | ||
1 | 16 | 各通道故障和电平 | ||||||
1 | 1 | X | X | 16 | 之前的命令输出 | OUT电平可能变化或不变化,取决于命令 | ||
0 | X | X | X | 16 | 之前的命令输出 | OUT由INx引脚输出。MAX14912允许SPI配置;MAX14913不允许SPI配置。 |
直接模式
直接SPI模式下,不需要命令字节。16位模式下,高字节控制输出电平,低字节控制输出配置。CNFG/IN7和S16/IN8设置为低电平时,只能访问寄存器0;CNFG/IN7和S16/IN8设置为高电平时,只能访问寄存器1和寄存器2。
直接模式写操作期间,通过SDO引脚提供故障(F)和输出电平(L)诊断信息(参见图1和表3)。
位 | 位值 | CNFG/IN7 | 定义 |
---|---|---|---|
D_ | 0 | 低 |
高边模式:HS关闭,LS关闭 |
1 | 低 | HS打开,LS关闭 | |
C_ | 0 | 低 | 高边模式 |
1 | 低 | 推挽模式 | |
D_C- | 00 | 高 | 高边模式;负载开路检测由OL/IN1引脚定义 |
01 | 高 | 高边模式,带负载开路检测 | |
10 | 高 | 推挽模式 | |
11 | 高 | 未使用 | |
00 | 低 | 高边模式:HS打开,LS关闭 | |
10 | 低 | 高边模式:HS打开,LS关闭 | |
01 | 低 | 推挽模式:HS关闭,LS打开 | |
11 | 低 | 推挽模式:HS关闭,LS打开 | |
F_ | 0 | X | 无故障 |
1 | X | 故障状态(热保护或负载开路) | |
L_ | 0 | 0 | 输出电平 < 7V |
1 | 0 | 输出电平 > 7V | |
0 | 1 | 禁止慢速模式 | |
1 | 1 | 禁止慢速模式 |
总结:
- S16/IN8 = 低电平,且CNFG/IN7 = 低电平时,一个字节的串行数据控制OUT_状态;S16/IN8 = 低电平,且CNFG/IN7 = 高电平时,一个字节的串行数据控制输出模式:高边或推挽式。
- S16/IN8 = 高电平,且CNFG/IN7 = 低电平时,两个字节的串行数据控制OUT_状态和输出模式配置:高边或推挽式。
- S16/IN8 = 高电平,且CNFG/IN7 = 高电平时,第一个字节设置输出配置(高边/推挽),第二个字节使能/禁止负载开路检测功能。
建议首先设置配置寄存器,然后再更新输出电平。
注:返回的F_ (故障)和L_ (电平)信息针对之前写入的命令。为了获得实时故障和电平诊断信息,写两次。驱动器处于高边模式且使能负载开路检测时,无负载的OUT_引脚由75μA电流上拉至VDD电平。在这种情况下,确定为FAULT条件。
命令模式
命令模式下,通过SPI接口提供所有特性和增强诊断信息。为设置为命令模式,CNMD/IN2引脚必须为高电平。S16/IN8和CNFG/IN7引脚输入被忽略。命令包含命令字节和之后的数据字节。总共有六种命令类型(命令说明见表4,寄存器映射见表5)。更多信息请参考数据资料。
COMMAND # | 功能 | DI | DO | 注释 | |
---|---|---|---|---|---|
命令 | 数据 | 在下一周期有效 | |||
0 | 设置OUT状态(寄存器0) | Z0000000 | DDDDDDDD | FFFFFFFF.LLLLLLLL | D = 0:HS关闭;LS打开(PP模式) D = 1:HS打开; LS关闭 L:输出电平或慢速模式 (CNFG = 1) F:故障(实时) Z = 1:清除默认寄存器 |
1 | 设置HS/PP模式(寄存器1) | Z0000001 | DDDDDDDD | FFFFFFFF.LLLLLLLL |
D = 0:HS模式 D = 1:PP模式 |
2 | 设置OL检测(寄存器2) | Z0000010 | DDDDDDDD | FFFFFFFF.LLLLLLLL |
D = 0:OL检测关闭 D = 1:OL检测打开(HS模式) |
3 | 设置配置(寄存器3) | Z0000011 | 000SJJAV | FFFFFFFF.LLLLLLLL | AB:看门狗,00 = 0.90s,01 = 0.45s,10 = 0.15s J = 1:通道组合(禁止PP) S = 1:FAULT未触发 检测到短路 |
4 | 读寄存器 | Z0100000 | 00000NNN | AAAAAAAA.QQQQQQQQ | NNN = 0、1、2、3:Q = 寄存器值,A = 0 NNN = 4、5、6:Q = 寄存器值, A = 实时故障状态 NNN = 7:Q = 0,A = 实时 |
5 | 读取实时状态 | Z0110000 | 00000000 | FFFFFFFF.LLLLLLLL | F-L状态读取(实时)。 无数据写入。 |
注:所有故障寄存器只能由任意命令周期中设置Z = 1清除。 |
寄存器 | 读/写 | 作用 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
---|---|---|---|---|---|---|---|---|---|---|
0 | R/W | 驱动器设置 | IN8 | IN7 | IN6 | IN5 | IN4 | IN3 | IN2 | IN1 |
1 | R/W | 推挽/高边配置 | PP8 | PP7 | PP6 | PP5 | PP4 | PP3 | PP2 | PP1 |
2 | R/W | R/W 负载开路检测使能 | OL_EN8 | OL_EN7 | OL_EN6 | OL_EN5 | OL_EN4 | OL_EN3 | OL_EN2 | OL_EN1 |
3 | R/W | 看门狗配置和通道并联 | X | X | X | Short-circuit Pulse OFF | joinUP | joinDW | WD1 | WD0 |
4 | R | 各通道负载开路状态 | OL8 | OL7 | OL6 | OL5 | OL4 | OL3 | OL2 | OL1 |
5 | R | 各通道热关断 | THSD8 | THSD7 | THSD6 | THSD5 | THSD4 | THSD3 | THSD2 | THSD1 |
6 | R | 全局故障 | WDfault | CRCfault | DCDC Current Limit |
8CLKmult Error | THSDglob | 5V UVLO | VDD UVLO | VDD WARN |
7 | R | OUT 过压检测或慢速模式 | OV8 | OV7 | OV6 | OV5 | OV4 | OV3 | OV2 | OV1 |
通信错误(CRC检测)
循环冗余校验(CRC)是一种检错机制,可提高通信可靠性,以及避免意外执行错误命令。SPI协议初始没有任何检错能力,在恶劣工业环境下可能破坏串行数据。使能CRC检测时(SRIAL= 高电平,CRC/IN3 = 高电平),来自SPI主机的所有命令之后必须有一个包括7位CRC编码的附加字节,如图2所示。
7位CRC编码,也称为CRC帧校验序列(FCS),根据生成多项式计算(x7 + x5 + x4 + x2 + x + 1)。MAX14900E也使用相同的多项式。更多信息以及CRC计算的C语言示例代码,请参考应用笔记6002:“MAX14900E八通道、高速工业开关的CRC编程”。
MAX14912或MAX14913安装好后,器件检查接收到的数据是否存在误码,如果未检测到错误则执行命令。如果从微控制器接收的CRC编码与计算的CRC不一致,则忽略该命令,并置位寄存器6中的第6位CRC错误位。在下一个SPI帧将CRC错误报告给主机微控制器。
MAX14912EVKIT评估软件内置有CRC计算器。如果CRC/IN3引脚为高电平,自动计算CRC字节并附加到SPI命令帧。从Option菜单中选中Show Status Log选项后,可在Status Log窗口中看到。
在CRC计算器弹出式窗口中,可手动计算CRC编码。进入Help菜单,点击CRC计算器,将其调出。输入字节1和字节2的值,然后点击Calculate CRC按钮,如图4所示。
多个IC的菊链配置
MAX14912和MAX14913支持多个器件采用菊链配置,通过单命令方法控制/监测同一SPI总线上的所有器件。所有器件使用相同的CLK和CS信号;第一片器件的SDI引脚连接到主机的MOSI引脚,最后一片器件的SDO引脚连接到主机的MISO引脚。第一片器件的数据输出(SDO)引脚连接到第二片器件的数据输入(SDI)引脚,如图5所示。其它器件通过类似的方式以菊链连接。
MAX14912/MAX14913EVKIT支持两个评估板采用菊链连接,但相同的命令结构适用于三片或更多器件。
例如,16位模式下两片器件菊链连接的命令帧。
安装评估板时,应使下一片器件EVKIT #2的J24连接头连接到上一片器件EVKIT #1的J23,如图6所示。USB电缆或外部主机应连接到EVKIT #1。此外,EVKIT #1的跳线J26必须处于位置2至3,EVKIT #2的跳线J26应处于位置1至2。必须手动将EVKIT #2的跳线J9、J5、J4、J22、J10、J6、J12、JMP1、J11、JMP2、J8和J3的位置设置为与GUI中一致。更多信息请参考MAX14912/MAX14913数据资料和原理图。
如图7所示,应选中菊链连接选择框。
菊链连接不仅对扩展输出通道的数量没有限制,而且也支持通过组合使用数字输出驱动器和数字输入接收器,构建更加复杂的系统。例如八通道数字输入隔离器/串行器家族,MAX31910/MAX31913。
驱动电感负载
MAX14912和MAX14913具有对电感负载进行安全消磁(SafeDemag)的功能,防止高边模式下电感负载关断时引起的反冲电压损坏芯片。如果您需要驱动大电感,例如执行器、继电器或电机,当电流由芯片通过负载流向地时,电感负载中储存较大的能量。当高边开关关断造成电流终止时,能量转换为OUT_引脚上的负向尖峰脉冲。内部齐纳二极管将尖峰脉冲箝位到(VDD -56V)。例如,如果VDD = 24V,则将OUT_引脚箝位到-32V (相对于地)。在这种情况下,由于能量与|V x I|成比例,电感负载中储存的能量将快速释放。然而,能量越大,释放需要的时间越长。在此时间期间,芯片的温度可能会达到安全门限。为防止危险的热击穿,激活低边开关,使能量释放较小,直到内部温度达到安全范围。
总结
Maxim的高度集成数字输出驱动器为系统设计师提供大量的可靠性、灵活性和丰富功能。这些器件是为工业自动化和通信应用构建高度集成和高效控制系统的关键要素。