MAX30102 高灵敏度脉搏氧器和心率传感器说明书

MAX30102

一、简介
MAX30102是一个集成的脉搏血氧测量和心率监测模块。它包括内部led、光电探测器、光学元件和具有环境光排斥作用的低噪声电子器件。MAX30102提供了一个完整的系统解决方案,以简化移动和可穿戴设备的设计过程。MAX30102在单个1.8V电源和内部LED的单独的5.0V电源上工作。通信是通过一个标准的I2c兼容的接口。该模块可以通过具有零备用电流的软件关闭,允许电源导轨始终保持供电。

二、优点和特性
●心率监测器和脉冲测氧器传感器在LED反射解决方案
●小5.6mmx3.3mmx1.55mm14针光学模块集成盖玻璃最佳性能
●超低功率操作移动设备可编程采样率和LED电流节能低功率心率监测器(<1mW)超低关机电流(0.7µA,典型)
●快速数据输出能力高样本率
●鲁棒运动艺术家韧性高信噪比
●-40°C到85°C工作温度范围

三、系统框图
在这里插入图片描述
四、

与I2C 兼容的时序图
在这里插入图片描述
引脚图
在这里插入图片描述
在这里插入图片描述

五、从FIFO中读取数据的伪代码示例
1、首先: Get the FIFO_WR_PTR:
START;
Send device address + write mode
Send address of FIFO_WR_PTR;
REPEATED_START;
Send device address + read mode
Read FIFO_WR_PTR;
STOP;
2、中央处理器计算要从FIFO中读取的样本的数量:
NUM_AVAILABLE_SAMPLES = FIFO_WR_PTR – FIFO_RD_PTR
(Note: pointer wrap around should be taken into account)
NUM_SAMPLES_TO_READ = < less than or equal to NUM_AVAILABLE_SAMPLES >
3、其次:从FIFO中读取NUM_SAMPLES_TO_READ示例:
START;
Send device address + write mode
Send address of FIFO_DATA;
REPEATED_START;
Send device address + read mode
for (i = 0; i < NUM_SAMPLES_TO_READ; i++) {
Read FIFO_DATA;
Save LED1[23:16];
Read FIFO_DATA;
Save LED1[15:8];
Read FIFO_DATA;
Save LED1[7:0];
Read FIFO_DATA;
Save LED2[23:16];
Read FIFO_DATA;
Save LED2[15:8];
Read FIFO_DATA;
Save LED2[7:0];
Read FIFO_DATA;
}
STOP;
START;
Send device address + write mode
Send address of FIFO_RD_PTR;
Write FIFO_RD_PTR;
STOP;
4、最后:写入FIFO_RD_PTR寄存器。如果第三步成功,则FIFO_RD_PTR将指向FIFO中的下一个示例,并且不需要此 。否则,处理器会适当地更新FIFO_RD_PTR,以便重读样本。

六、时序图
在这里插入图片描述

1、启停时序
当总线未使用时,启动和停止条件SDA和SCL怠速过高。主服务器通过发出启动条件来启动通信。启动条件是在SCL高的SDA上的高到低过渡。停止条件是SDA上的低到高过渡,而SCL较高。来自主设备的启动条件发出到设备的传输的开始信号。主服务器通过发出停止条件来终止传输,并释放总线。如果生成重复启动条件而不是停止条件,则总线将保持活动状态。
在这里插入图片描述

2、提前停止条件
MAX30102在数据传输期间的任何一点识别停止状态,除非停止状态发生在与启动条件相同的高脉冲下。为了正常操作,不要在与启动条件相同的SCL高脉冲期间发送STOP状态。

3、从属服务器地址
从地址总线主服务器通过发出7位从设备I之后的启动条件来启动与从设备的通信D. 空闲时,MAX30102等待启动条件,然后是其从属设备ID. 串行接口逐位比较每个从属ID,如果检测到错误的从属ID,接口可以关闭电源,立即断开SCL,识别开始条件后,对MAX30102进行编程,接收或发送数据,LSB为读/写位,表示主是从MAX30102写入或读取数据(收发=0选择写条件,收发=1选择读取条件)。在收到适当的从属ID后,MAX30102通过将SDA降低一个时钟循环来发出ACK。MAX30102从属ID包括7个固定位,B7-B1(设置为0b1010111)。首先传输最重要的从属ID位(B7),然后是剩余的位。表17显示了设备可能的从属ID。

4、ACK应答信号
确认位(ACK)是第9位,MAX30102在写入模式时用来握手接收每个字节的数据(图8)。如果已成功接收到前一个字节,则MAX30102将在整个主节点生成的第9个时钟脉冲期间拉下SDA。监视ACK允许检测到不成功的数据传输。如果接收设备忙或发生系统故障,则数据传输失败。如果数据传输失败,总线主服务器将重试通信。主机在第9个时钟周期中拉下SDA,以确认在MAX30102处于读取模式时接收到的数据。主机在每个读取字节后发送一个确认,以允许数据传输继续。当主服务器从MAX30102读取最后一个字节的数据,然后出现STOP条件时,将发送不确认。
在这里插入图片描述

5、写入数据格式
对于写入操作,将从属ID作为第一个字节发送,然后是寄存器地址字节,然后是一个或多个数据字节。寄存器地址指针在收到每个字节的数据后自动递增,例如,整个寄存器库可以一次写入。以“停止”条件终止数据传输。写入操作如图9所示。内部寄存器地址指针会自动递增,因此写入额外的数据字节会依次填充数据寄存器。
在这里插入图片描述

6、读取数据格式
对于读取操作,必须执行两个I2C操作。首先,发送从属ID字节,然后是您希望读取的I2C寄存器。然后发送一个重复启动(Sr)条件,然后是读取的从属ID。然后,MAX30102开始从第一操作中选择的寄存器开始发送数据。读取指针自动递增,因此设备继续按顺序从其他寄存器发送数据,直到接收到停止§条件为止。其中的例外是FIFO_DATA寄存器,在读取附加字节时,读取指针不再递增。要读取FIFO_DATA之后的下一个寄存器,需要使用I2C写入命令来更改读取指针的位置。图10和图11显示了读取一个字节和多个字节数据的过程。需要一个初始写入操作才能发送读取寄存器地址。数据按顺序从寄存器发送,从初始I2C写入操作中选择的寄存器开始。如果读取FIFO_DATA寄存器,读取指针将不会自动增加,随后的数据字节将包含FIFO的内容。
在这里插入图片描述
在这里插入图片描述

  • 14
    点赞
  • 145
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值