一、MAX30100是什么?
MAX30100是一款能测量心率和血氧饱和度的传感器,该芯片还集成有两个LED、一个光电探测器、经过优化的光学器件和低噪声模拟信号处理器,可以检测脉搏血氧及心率信号(可测温度吗? )。
模块采用的是光容积测量法,利用血管搏动起伏时的透光率不同,测量心跳搏动速率、血氧饱和度。
MAX30100参数
电源电压:1.6V-5.5V
通讯方式:IIC
IIC 读取地址:0xAF
IIC 写入地址:0xAE
IIC 时钟频率:0-400KHz
测量方式:光容积法
什么是光容积法? (补充说明:)
传感器有一个光源,发出红外光(一般将手指放在此光源上);还有一个光电转换器,用来测量反射回来的光。
测量血氧饱和度可根据氧合血红蛋白(HBO2 )和血红蛋白(HB)对红外光的吸收量计算。
测量心率可根据反收到传感器的光亮周期来测量,具体为:血管舒张时血量多,吸收的红外光多;收缩时血量少,则吸收的红外光少。
MAX30100的引脚
VIN :电源正极,3.3V。
SCL:IC 时钟线。
SDA:IIC 数据线。
INT :中断引脚,低电平有效,悬空。
IRD :IRLED 的驱动连接点,悬空。
RD I :红色 LED 的驱动连接点,悬空。
GND:电源负极
二、软件部分
-
里面内置了16位的fifo,除了存储读取的数据外,还能进行速度匹配。
-
里面内置了16位的fifo,除了存储读取的数据外,还能进行速度匹配。
-
有16位的积分型ADC,输出数据的频率可以通过编程,实现50Hz到1kHz。
-
LED的脉冲宽度也可以通过编程设置为200μm到1.6ms,可以优化测量精度和降低功耗。
-
需要设置相应的寄存器才能对其进行操作
-
当心率FIFO被读时,它会自动清除FIFO
FIFO
- FIFO——First Input First Output,先进先出。它是一种存储器,有一个输入口,一个输出口,满足数据先进先出的关系。
它就像是一个水库,处理的数据过多,主控芯片的读取速度跟不上时,它能起到一个缓冲作用。
-
在系统设计中,以增加数据传输率、处理大量数据流、匹配具有不同传输率的系统为目的而广泛使用FIFO存储器,从而提高了系统性能。
-
当写指针等于读指针减1时,将触发中断(如果中断开启的话),表示FIFO已满。
-
指针列表
FIFO WritePointer 写指针(写入下一个样本时会自动加一)
FIFO Overflow Counter 溢出指针
FIFO Read Pinter 读指针
写程序时要用宏定义,定义以上指针 -
FIFO Data 数据寄存器
存储的数据分为RED(血氧)、IR(心率)
IR数据优先放在高位(IR数据共16位)
-
写程序
将寄存器中的数据读取出来即可。值得注意的是,在读取时读取指针不会自动增加。每一个样本占4个字节(1个字=2个字节;1个字节=8比特),而每读一次只能读取一个字节,因此一个样本需要4次才能读完整。 -
初始化模式,进行温度测量
-
等待29ms
-
采集温度,触发中断,表明温度数据已经准备好
-
读取温度数据,清除温度中断标志位
-
FIFO数据完成, 产生中断,表明FIFO数据已满
-
读取FIFO数据,清FIFO中断
-
下一次采集
未完待续