Max30100 可穿戴光电式的血氧心率传感器IC 总体描述: Max30100是一款集成的脉搏血氧和心率检测传感器。它使用了两个LED灯,一个用来优化光学的光电探测器,和低噪声模拟信号处理器,用来检测脉搏的血氧和心率信号。 Max30100的运行电压在1.8V到3.3V之间,并且可以通过软件来控制,待机电流极小,可以忽略不计,这样可以使电源在如何时候都能保持连接状态。
应用:
Benefts和功能 集成的LED,照片传感器和高性能模拟面前端小x 2.8毫米2.8毫米5.6毫米14-Pin光学增强System-in-Package - 超低功耗操作增加电池寿命,可穿戴设备可编程采样率和当前电力储蓄超低关闭当前(0.7,typ)
- 先进的功能提高了测量性能的高SNR提供了健壮的运动工件弹性集成环境光消除高采样率能力快速数据输出能力
Table1 寄存器图表及其描述 详细描述: 1、中断状态寄存器(基地址0x00) 总共有5个中断状态,每个中断状态控制都是一样的:高电平的相关中断使能,直到中断被清除,中断才停止。 无论什么时候,只要中断寄存器被读或者中断寄存器被触发,中断都会被清除。例如:如果SpO2传感器被触发当转换完成,读到FIFO的数据寄存器或者中断引脚的中断寄存器被清除,中断状态寄存器会被清除,中断寄存器为0. - 、Bit7:FIFO数据填满了的标志(A_FULL)
在SpO2和心率的模式下,当FIFO的写指针和读指针都被减去一时就会被触发,这也是说明FIFO只有一个数字没有填满。如果FIFO的数据在下一个转换之前没有被读出,那么FIFO的数据就会丢失。 当内部温度传感器的数据转换完成,这个中断就会被触发,此时处理器就可以读温度的数据寄存器了。 在心率或者SpO2模式下,当每个数据都被搜集后,这个中断就会被触发。一个心率数据只是由一个红外(IR)数据组成。当FIFO数据寄存器被读后,这个中断就会被自动的触发。 - 、Bit4:SpO2数据完成标志位(SPO2_RDY)
在SpO2的模式下,当每次的数据都被转换完成这个中断就会被触发。一个SpO2的数据由一个红外(IR)和一个红光的点组成。当FIFO数据寄存器被读后,这个中断就会被自动的触发。 省略 在开机或者低功耗状态下,当电源电压在过低锁定(UVLO)之下或者之上,控制器(IC)开机并且数据收集完成,这个中断就会被触发。 2、中断使能寄存器(基地址0x01) 在MAX30100 IC里,每一个硬件中断的来源都可以使用软件寄存器来控制其不使能状态,除了电源准备完成中断。开机中断不能被打断,因为在MAX30100复位时,默认状态下是不使能的。 当中断使能位被设置成0的时候,相应的中断在其寄存器中是1(上一个介绍),但是INT引脚不是低电平(相反电平)。(B3:B0设置为0)
3、FIFO寄存器(基地址 0x02—0x05) ①、FIFO写指针寄存器(FIFO Write Pointer)(FIFO_WR_PTR基地址 0x02) FIFO写指针指向MAX30100写的下一个数据或命令的位置。这个指针把每一个数据或者命令放进FIFO中。当 MOD[2:0]被设置的时候,也可以通过IIC总线的方式进行改变。 ②、FIFO溢出计数器寄存器(OVF_COUNTER基地址 0x03) 当FIFO寄存器的数据记满数据,采样的数据将溢出FIFO寄存器,并且数据将会丢失。OVF_COUNTER 会保存溢出的数据。保存在0xF中。当所有的数据从FIFO中取出,OVF_COUNTER就会被置零。 ③、FIFO 读指针寄存器(FIFO_RD_PTR基地址 0x04) FIFO读指针指向处理器通过IIC总线从FIFO通道获取的下一个数据。每次只从FIFO取出一个数据。当在读数据的时候,控制器也可以使用这个寄存器来写命令或者数据到FIFO中,如果FIFO的数据传输出现错误,也可以重新从其读出样本。 ④、FIFO数据寄存器(FIFO_DATA基地址 0x05) 循环的FIFO是16位的数据存储,能够存储16个SPO2通道数据(Red 和 IR)。FIFO_DATA寄存器在IIC寄存器的映射下指向从FIFO中读出的下一个数据。FIFO_RD_PTR(FIFO读数据指针)指向这个数据。FIFO_DATA寄存器不会自动增加其地址值,因此会反复读取这个地址的数据。每一个样本是4字节的数据,因此得到一个样本需要读取4次的FIFO_DATA寄存器。理论上上面的所有寄存器都可以进行读取或者写入数据,但是在实际上,只有FIFO_RD_PTR寄存器才可以进行写入操作。其他的寄存器的数据只能自动增加或者由MAX30100进行填充(填满)。当开始一个新的SPO2或者心率转换,我们希望FIFO_RD_PTR、OVF_COUNTE、FIFO_WR_PTR寄存器能够被清零,以确保FIFO是空并且是已知的状态。当从IIC读取MAX30100寄存器时,地址指针寄存器就会自动的增加,那么读取的字节就是下一个寄存器发送的。FIFO_DATA寄存器不是这样的,他的指针不会增加。在FIFO数据寄存器中下一个被发送的数据就是下一个可用的数据。
正常情况下,在一个IIC总线数据传输事件中,因为寄存器地址可用自动增加,所以一次数据传输可用读取所有的寄存器。除了FIFO_DATA寄存器,其他的都可以这样读取。地址0xFF寄存器的数据没有意义。 FIFO的数据存储器由16个IR和RED的ADC数据样本存储块组成。每一个样本由一个IR字和一个RED字,总共有4个这样的字节数据组成。因此FIFO数据由4*16=64字节的数据组成。 每一个样本数据由一个IR和一个RED数据字(2个寄存器)组成,因此每次读取一个样本,需要4个IIC字节数据读一行。当4字节样本被读取完毕,FIFO的读指针就会自动增加。 在心率模式下,每个样本的第3和第4字节会被置0,但是其他的FIFO配置都是一样的。
从FIFO读取数据的例子,伪代码: 第一步:得到FIFO_RD_PTR 开始; 发送器件地址 + 写 模式 发送 FIFO_RD_PTR(地址0x04); 再次启动开始; 发送器件地址 + 读 模式 读 FIFO_WR_PTR (地址0x03); 停止; 主控制器检查从FIFO中读取的样本: NUM_AVAILABLE_SAMPLES = FIFO_WR_PTR – FIFO_RD_PTR(应该考虑到指针包的问题) NUM_SAMPLES_TO_READ = < NUM_AVAILABLE_SAMPLES 第二步:从FIFO读取 NUM_SAMPLES_TO_READ 的样本: 开始; 发送器件地址 + 写 模式 发送 FIFO_DATA 地址(0x05); 重新开始; 发送器件地址 + 写 模式 for( i = 0 ;i< NUM_SAMPLES_TO_READ;i++) { 读 FIFO_DATA; 保存 IR[15:8]; 读 FIFO_DATA; 保存 IR[7:0]; 读 FIFO_DATA; 保存 R[15:8]; 读 FIFO_DATA; 保存 R[15:8]; } 停止; 第三步:写FIFO_RD_PTR寄存器。如果第二步成功了,在FIFO中的FIFO_RD_PTR指针就会指向下一个样本,那么第三步就不是特别重要了。否则控制器适当的刷新FIFO_RD_PTR寄存器,因此这个样本就是重新读取。 开始; 发送器件地址 + 写 模式 发送FIFO_RD_PTR寄存器地址(0x04); 写FIFO_RD_PTR; 停止; 把这一位置为 1,就会设置成省电模式。当是设置成省电模式时,所有的寄存器都会保存他们当前的值,并且其读写功能正常。在这个模式下所有的中断都是被清除。 当这一位被置为1,所有的配置、阀阈值及数据寄存器都会被复位到上电状态。唯一的例外是,当温度数据寄存器0x16和0x17没有被清除时,并且RESET和TEMP_EN都被置1,声明的情况不会发生。当复位完成之后RESET位会被自动置为0. 当初始化单次温度数据从温度传感器读出来之后,这一位就会被清除。在SPO2或者心率模式下,和上面一样。 - Bit6:高分辨率采样使能SpO2(SPO2_HI_RES_EN)
这位设置为1,SpO2的ADC就会设置成16位采样,LED脉冲为1.6ms(频率625Hz) - Bit5:复位,默认设置为0
- Bit4:2 :SpO2采样率设置
这一位被定义为有效扫描率控制,一个扫描由一个IR脉冲/转换和一个RED转换组成。 采样率和脉冲宽度是相关的,样本速率在脉冲宽度的时间内设置一个上界。如果用户选择的样本率对于选定的ledpw设置来说太高了,那么可能的最高样本率将被编入寄存器中。 这些位设置了LED脉冲宽度(IR和红色具有相同的脉冲宽度),因此间接地设置了每个样本中ADC的集成时间。ADC的分辨率与集成时间直接相关。 这一位设置红色LED的电流大小(等级)。 这一位设置红外LED的电流大小(等级)。 ADC采样的温度数值被分为两个部分,一个是整数部分,一个是分数部分。下面是其计算公式。 整数部分以二进制补码的形式存放在整数寄存器中(0x16) 小数部分的数据以0.0625℃(1/16步进)
以上的Word格式中文翻译文档51黑下载地址:
max30100.docx
(807.93 KB, 下载次数: 294)
|