Linux驱动---心率脉搏传感器MAX30102

一、电路连接

在这里插入图片描述

查看网络标号可知,SCL----PF14,SDA----PF15,INT3----PB12
三个引脚均外接了上拉电阻
在这里插入图片描述

在这里插入图片描述

二、数据手册

(一)中断寄存器

在这里插入图片描述

  1. FIFO几乎满标志(A_FULL)
    FIFO队列几乎已满时触发的中断。这通常用于指示数据缓冲区即将被填满,需要尽快处理数据。
  2. 新FIFO数据就绪(PPG_RDY)
    新的PPG(光电容积脉搏波)数据已准备好被读取时触发的中断。
    PPG数据通常用于心率和血氧饱和度的测量。
  3. 环境光消除溢出(ALC_OVF)
    环境光消除功能已达到其最大光强时触发的中断。这表示环境光对测量的干扰已超出设备的处理能力,可能会影响测量结果。
  4. 接近阈值触发(PROX_INT):当测量的接近度达到预设阈值时触发的中断。这通常用于手势识别或接近传感器功能。
  5. 电源就绪标志(PWR_RDY):电源已就绪,设备可以开始正常工作时触发的中断。
  6. 环境光校正(ALC):MAX30101设备的一个功能,用于消除环境光对测量的影响。环境光可能会干扰心率和血氧饱和度的测量,因此设备具有此功能以提高测量的准确性。

(二)FIFO读写指针寄存器

在这里插入图片描述
FIFO最多可容纳32个样本数据

(三)FIFO配置寄存器

在这里插入图片描述
SMP_AVE(0x08中的位7:5)用于选择每个FIFO样本平均的样本数量。
在这里插入图片描述

FIFO_ROLLOVER_EN位允许用户更新FIFO。
当FIFO满时,此位允许FIFO地址回滚到零,当它被设置时,FIFO地址会回滚到零,并允许新数据填充FIFO。

FIFO_A_FULL位允许用户设置触发A_FULL中断的FIFO样本数量阈值。

  • 注: 在开始新的心率或SpO2转换时,将FIFO_WR_PTR(FIFO写指针)、FIFO_RD_PTR(FIFO读指针)和OVF_COUNTER(FIFO溢出计数器)重置为0x00。
  • MAX30101输入数据时,FIFO_WR_PTR、OVF_COUNTER和FIFO_DATA会自动前进

(四)模式寄存器

用于配置MAX30101设备的工作模式和其他相关设置。
在这里插入图片描述

  1. 关机控制(SHDN)
    通过设置此位,用户可以将MAX30101置于省电模式,以节省功耗。
  2. 复位控制(RESET)
    当复位位被设置为1时,设备会执行一个上电复位操作,将所有配置、阈值和数据寄存器恢复到它们的初始状态(即上电状态)。
  3. 模式选择:
    模式[3:0]:这四个位用于选择设备的工作模式。用户可以根据需要选择心率(HR)模式、血氧饱和度(SpO2)模式或多LED模式。
    心率(HR)模式:用于测量心率。
    血氧饱和度(SpO2)模式:用于测量血氧饱和度。
    多LED模式:可能允许设备同时使用多个LED进行不同的测量或校准操作。
    在这里插入图片描述

(五)spO2配置寄存器

在这里插入图片描述

  1. SpO2_ADC_RGE(血氧饱和度ADC范围控制)
    这个设置决定了SpO2传感器ADC的满量程电流范围。
    满量程范围越宽,传感器能够测量的电流范围就越大,但可能牺牲了分辨率。
    默认设置是8192nA
    在这里插入图片描述

  2. SPO2_SR(血氧饱和度采样率控制):
    采样率决定了每秒采集的样本数量。每个样本包括一个红外脉冲/转换和一个红光脉冲/转换,用于计算血氧饱和度。
    默认采样率是100Hz,这意味着每秒采集100个样本。
    在这里插入图片描述

  3. LED_PW(LED脉冲宽度):
    脉冲宽度决定了LED发光的时间长度。红外、红光和绿光LED具有相同的脉冲宽度,但可以根据需要进行调整。脉冲宽度越长,ADC分辨率就越高,因为更多的电荷可以积累在ADC的输入电容上,从而提高测量的准确性。
    在这里插入图片描述

ADC分辨率与脉冲宽度的关系:
ADC分辨率是指ADC能够区分的最小电压或电流变化。在这个上下文中,ADC分辨率与LED脉冲宽度成正比。脉冲宽度越长,ADC能够积累的电荷就越多,从而能够更准确地测量电流变化。因此,通过调整LED脉冲宽度,可以优化ADC的分辨率以适应不同的测量需求。

(六)LED脉冲幅度寄存器

在SpO2和HR模式中,LED用于发射光以测量心率和血氧饱和度。
通过LED脉冲幅度寄存器,用户可以调整LED的电流强度,这会影响LED的亮度和功耗。

LED脉冲幅度寄存器(0x0C到0x10)允许用户设置典型的LED电流,单位为毫安(mA)。
在这里插入图片描述
在这里插入图片描述

(七)多LED模式控制寄存器

在这里插入图片描述

(八)操作流程

在这里插入图片描述
第一步:复位设备

  1. 使能相应的中断标志位(0x02)
  2. 复位中断状态寄存器(0x03),队列读指针寄存器(0x04),队列写指针寄存器(0x06),队列溢出计数寄存器(0x05)
  3. 配置寄存器模式(0x08)
  4. 配置模式寄存器(0x09)
  5. 配置spO2配置寄存器(0x0A)
  6. 配置LED脉冲幅度

在这里插入图片描述
第二步:读取数据

三、 设备树

从机地址为0x57
max30102传感器PB12引脚触发中断

&i2c1{
	//心率脉搏传感器
	max30102@57{
		compatible = "zyx,max30102";
		reg = <0x57>;
		interrupt-parent = <&gpiob>;
		interrupts = <12 0>;
	};
};
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值