串行外设接口(SPI)输出驱动芯片在嵌入式设计中很受欢迎,因为它提供了多个(通常是8个)输出,而不需要使用任何CPU I/O引脚。芯片通过CPU的SPI总线接受输出命令,并将有关输出打开和短路的诊断信息通过SPI线供电或接地。
然而,大多数应用程序需要随机混合输入和输出。因此,一个芯片能够提供这样一个随机I/O混合,并且CPU可以通过SPI总线进行处理,这将是嵌入式设计师的福音。但大多数芯片只提供输出或输入,而不是随机组合,这迫使设计人员不得不使用许多未使用的输入和输出引脚。
这个想法解释了如何适应一个标准的八边形继电器驱动器(意法半导体公司的L9822),以在其输出引脚上提供一个随机的I/O混合,尽管设计师可以将这个概念应用到任何等效芯片。该方案利用芯片的“诊断状态”特征,识别“负载开路”和“接地短路”故障,并通过SPI总线通知CPU。该特性可用于检测高侧数字输入和低侧数字输入。
图1说明了这个概念。在图1一个,一个板载上拉电阻作为虚拟负载的输出引脚,需要感知一个高侧数字输入。外部开关S1连接在虚拟负载和输出引脚之间。为了感知S1的状态,输出引脚必须被编程在一个高逻辑电平(输出驱动器开关保持关闭)。当S1接通时,诊断状态显示无负载开路故障。当开关处于OFF状态时,诊断状态表示存在负载开路故障。
图1 b演示如何连接低边数字输入(S2)到L9822的输出引脚。同样,输出引脚保持关闭。如果S2状态为off,则诊断状态不为故障。如果S2灯亮,则芯片诊断状态为近地故障。
因此,高侧和低侧开关都可以使用芯片的输出引脚读取为数字输入。此外,芯片输出电路中提供的固有瞬态保护在汽车应用中也很有用。在与CPU引脚进行常规输入接口时,汽车系统的设计者无需担心电平从12v切换到5v。图2显示两个版本的流程图。
在将这个想法应用到大电流输出芯片(几安培)之前,需要提醒一下。上拉电阻将需要消耗相当大的电流,略高于这种芯片的开路电流阈值。通常,对于一个5-A电流容量的芯片来说,这可能会达到几十毫安。在许多应用中,这样大的电流损耗可能是不可接受的。对于像L9822这样的芯片来说,这不是问题。L9822的额定功率为几百毫安,因此可以很容易地让引体向上只消耗几毫安。(其开路电流阈值为1ma。)