电子工坊

MAX30100血氧心率模块(二)寄存器 – 中断

MAX30100的I2C接口最大速度400kHz。我是用STM32单片机的硬件I2C,因此能保证在高速通信的顺利运作并且不干扰其他子程序。该模块I2C地址是0xAE,请务必设对!I2C通信的SDA因为是开漏所以使用上拉电阻上拉到1.8V。

MAX30100 寄存器一 中断状态和中断设置

通过图可看到该器件分为两大部分,第一部分是发光电路,第二部分是光传感器ADC电路。

MAX30100中断在数据读取判断用处非常大,一旦某个功能完成后将会出发中断置高,如果设定了外部中断后外部中断变成低电平从而通知单片机处理相应的中断事件。MAX30100寄存器0x00是用作中断触发功能,一旦某个功能完成后相应的中断位置高电平,读取中断寄存器后中断全部清除。例如:SpO2转换完成,则读取FIFO数据寄存器或者读取中断寄存器会清除中断引脚(回到高电平状态),并且将中断寄存器清除为0。

MAX30100 寄存器二 硬件中断设置


这是硬件中断设置,可以设置哪个中断触发到中断引脚上,并且标注在中断寄存器。例如ENB_TEP_RDY设置为0,当触发中断后中断寄存器的TEMP_RDY设置为0而且INT引脚不会被拉低。如果ENB_TEP_RDY设置为1,INT引脚会被拉低。

四个标志位B3-B0没有用到,正常使用应该设置为0(禁用)。

注意:在硬件中断的每个源,除了电源就绪以外都可以在MAX30100的集成电路内的软件寄存器禁用。电源就绪中断不能被禁用,因为MAX30100的数字状态是建立在掉电条件(低电源电压)复位,默认所有的中断被禁止。为系统知道已发生掉电条件,以及装置内的数据被重置,因此,它是非常重要的。