EntF@ln! MAX30102
e>l,(ql 高灵敏度脉搏血氧仪和心率传感器 $Y6I_U
【硅天下备货信息】 MAX30102EFD+T -40°C to +85°C 14-Lead OESIP (0.8mm Pin Pitch)
【产品说明】
9>by~4An? MAX30102
是一个集成的脉搏血氧仪和心率监测仪生物传感器的模块。它集成了多个LED、光电检测器、光器件,以及带环境光抑制的低噪声电子电路。采用一个1.8V
电源和一个独立的3.3V
用于内部LED
的电源,标准的I2C
兼容的通信接口。 .,3Zj / `)R?nVb 【MAX30102
典型电路图】 TE^7P0bh .'|mY$U~] MAX30102
9W!8gCs 高灵敏度脉搏血氧仪和心率传感器 vS OT*0r 【硅天下备货信息】 MAX30102EFD+T -40°C to +85°C 14-Lead OESIP (0.8mm Pin Pitch)
【产品说明】
6M ^IwE MAX30102
是一个集成的脉搏血氧仪和心率监测仪生物传感器的模块。它集成了多个LED
、光电检测器、光器件,以及带环境光抑制的低噪声电子电路。采用一个1.8V
电源和一个独立的3.3V
用于内部LED
的电源,标准的I2C
兼容的通信接口。 ^P`NMSw R?cUy8?'S 【MAX30102
典型电路图】 kdp%
!S%2 pDu{e>S|: +TC1nkX 【关键特性】 8-7dokg> LED
反射方案中提供心率监测仪和脉搏血氧仪生物传感器 ddsUz1%l 微小、5.6mm x 3.3mm x 1.55mm
、14
引脚光模块 b'i'GJBQ+$ 集成玻璃盖,实现最优、可靠的性能 %*lp< D 使移动设备以极低功耗工作 KOjluP 可编程采样率和LED
电流,节省功耗 6*IpAIh 低功耗心率监测仪(< 1mW)
~e P 超低关断电流(0.7µA
,典型值)
nV}8M 快速数据输出 #G_F`& 高采样率 !tEe\K\e 可靠的运动伪影抑制 WsR+Np@c 高SNR
?^ZXU0IkP -40
°C
至+85
°C
工作温度范围 6v to++ rH&G<o&, 【应用场景】 V!4a*,Pz 一、STM32F103C8T6+MLX90614+MAX30102
bd!U)b(}OV fXO_g e+'%!w"B 二、nrf52832+ADXL362+max30102心率心电智能 A\z`c
e! 【程序代码】#include <stdio.h> Z!6UW:&~7
#include <stdint.h> q$[n`w-
#include <string.h> -DP*q3
#include <math.h>
#include "nordic_common.h" ?}}qu'N:N
#include "nrf.h"
#include "app_util_platform.h" !:WW
#include "nrf_delay.h" !Xj#@e
#include "nrf_drv_rtc.h" Qzqc .T
#include "nrf_drv_clock.h" >"v9iT
#include "nrf_drv_saadc.h" S]^`woD
#include "app_error.h"
//if define SOFTWARE_TWI in project parameter ,then use soft iic }aF
#ifdef SOFTWARE_TWI $ rUSKm#
#include "twi_master.h" ]f8L:=c
#else h}Rx_d
#include "nrf_drv_twi.h" A%u_&a}
#endif kA4@`YCl
#include "nrf_ppi.h" rn8cdMN
#include "device.h" =su]w2,Iy
#include "nrf_gpio.h" {tw+#}T a
#include "nrf_drv_timer.h" 1l5JP|x
#include "nrf_drv_spi.h" 2N5`'
/************************************************ +m)q% I>
data of flash 5G[x }4U
1S data length:481bytes |mhKI is U
1sector length:4096bytes &<3&'*ueW
1sector store:8s data "
.4,."
sector total:8192 Apj;
8192*8=65536s = 18hours +bA%
if ble speed is 2KB/s then need 4.37hours to send all the data thc <xxRP
************************************************/
/***********************************/ aJhxc<"e
//W25Q256FV: 256M-bit / 32M-byte
#define W25P_WRITEENABLE 0x06 <YB9Ac~}z
#define W25P_WRITEDISABLE 0x04 IXpc,l `
#define W25P_READSTATUSREG 0x05 8|@9{
#define W25P_WRITESTATUSREG 0x01 xb:&(6\F
#define W25P_READDATA 0x03 rf.`h{!!
#define W25P_FASTREADDATA 0x0B +1rkq\{l
#define W25P_PAGEPROGRAM 0x02 OGOND,/R?/
#define W25P_SECTORERASE 0xD8 // 64KB 8`=v.
#define W25P_CHIPERASE 0xC7 /( hUfYm0
#define W25P_POWERDOWN 0xB9 NI aFI(
#define W25P_RELEASEPOWERDOWN 0xAB 3Fs5RC~a
#define W25P_DEVICEID 0xAB /mA,F;
#define W25P_MANUFACTDEVICEID 0x90
// = &tmP
#define ADXL362_READ_REG 0x0B ]fBUT6
#define ADXL362_WRITE_REG 0x0A /Fgw$
^H
#define ADXL362_REG_FILTER_CTL 0x0A//错误 ) ;FS7R
#define ADXL362_REG_INTMAP2 0x0A o`n$b(VZ
#define ADXL362_REG_POWER_CTL 0x0A
#define SAMPLES_IN_BUFFER 4
#define max30102_WR_address 0xAE )5_jmW`n
#define INTERRUPT_REG 0X00
/* TWI instance ID. */ 5]5 KB;
#define TWI_INSTANCE_ID 0
!|
#83
#define SPI_INSTANCE 1 /**< SPI instance index. */ :o46rBs
static const nrf_drv_spi_t spi = NRF_DRV_SPI_INSTANCE(SPI_INSTANCE); /**< SPI instance. */ oD9^ID+
static volatile bool spi_xfer_done; /**< Flag used to indicate that SPI instance completed the transfer. */
static nrf_saadc_value_t m_buffer_pool[2][SAMPLES_IN_BUFFER];
static uint32_t timestamp;
const nrf_drv_rtc_t rtc = NRF_DRV_RTC_INSTANCE(2); /**< Declaring an instance of nrf_drv_rtc for RTC1. */
%}-?bHB1c 'Gl&Pa1g? 【关键特性】 eJ0?=u!x LED
反射方案中提供心率监测仪和脉搏血氧仪生物传感器 rx0~`cVV: 微小、5.6mm x 3.3mm x 1.55mm
、14
引脚光模块 ? *>]")[> 集成玻璃盖,实现最优、可靠的性能 9QQyl\ 使移动设备以极低功耗工作 W,XTF 可编程采样率和LED
电流,节省功耗 >w+HHs/$wK 低功耗心率监测仪(< 1mW)
30>3 !Xqa 超低关断电流(0.7µA
,典型值)
#P<N^[m 快速数据输出 Q GZyL)Q 高采样率 83%)/_& 可靠的运动伪影抑制 #|[
M?3 高SNR
|`TgX@,#9 -40
°C
至+85
°C
工作温度范围 ntFT>g{B T*g:#
^4 【应用场景】 N@ \&1I`c$ 一、STM32F103C8T6+MLX90614+MAX30102
M(x$xAiD u .f= te 0k)rc$eDF+ 二、nrf52832+ADXL362+max30102心率心电智能 kF(n!2"W 【程序代码】#include <stdio.h> 0:w"M<80
#include <stdint.h> 'k;rH!R
#include <string.h> U_x )#,4
#include <math.h>
#include "nordic_common.h" Ar*^;/
#include "nrf.h"
#include "app_util_platform.h" I[)% , jd
#include "nrf_delay.h" Wbr+KX8)
#include "nrf_drv_rtc.h" CI353-`
#include "nrf_drv_clock.h" v~QHMg
#include "nrf_drv_saadc.h" }>)[<;M>%
#include "app_error.h"
//if define SOFTWARE_TWI in project parameter ,then use soft iic 8>hwK )av
#ifdef SOFTWARE_TWI @)o^uU T
#include "twi_master.h" V |(H|9
#else >B]'fUt5a
#include "nrf_drv_twi.h" I:K"'R^
#endif jCbV,0)^
#include "nrf_ppi.h" fhL,aCS=
#include "device.h" /1Ue?)g
#include "nrf_gpio.h" DL$@?.?I
#include "nrf_drv_timer.h" }=c85f~i
#include "nrf_drv_spi.h" rj(T~d4
/************************************************ ~e6Brq
data of flash (L^]Lk
x)
1S data length:481bytes lpz2 m\
1sector length:4096bytes 'Ut7{rZ5
1sector store:8s data 0lhVqy}:}o
sector total:8192 !1e6Ss
8192*8=65536s = 18hours ^#-nE7
if ble speed is 2KB/s then need 4.37hours to send all the data <HbcNE~
************************************************/
/***********************************/ |*}4 m'c
//W25Q256FV: 256M-bit / 32M-byte
#define W25P_WRITEENABLE 0x06 bv&;R
#define W25P_WRITEDISABLE 0x04 'Lu__NfN
#define W25P_READSTATUSREG 0x05 tH-C8Qxy
#define W25P_WRITESTATUSREG 0x01 X5j1`t,
#define W25P_READDATA 0x03 |JQQU!x
#define W25P_FASTREADDATA 0x0B Ii G6<|d8H
#define W25P_PAGEPROGRAM 0x02 tQS5hwm*
#define W25P_SECTORERASE 0xD8 // 64KB Q%xC}||1s"
#define W25P_CHIPERASE 0xC7 @`gk|W3
#define W25P_POWERDOWN 0xB9 V4_=<W
#define W25P_RELEASEPOWERDOWN 0xAB dq]0X?[6
#define W25P_DEVICEID 0xAB N;\'N
ne
#define W25P_MANUFACTDEVICEID 0x90
// nDHTV!]<
#define ADXL362_READ_REG 0x0B Z]B~{!W1
#define ADXL362_WRITE_REG 0x0A !QvZ<5(
#define ADXL362_REG_FILTER_CTL 0x0A//错误 -3Hy*1A.
#define ADXL362_REG_INTMAP2 0x0A 3\XU_Xs(]
#define ADXL362_REG_POWER_CTL 0x0A
#define SAMPLES_IN_BUFFER 4
#define max30102_WR_address 0xAE R6]Gk)5
#define INTERRUPT_REG 0X00
/* TWI instance ID. */ :Of^xj>A
#define TWI_INSTANCE_ID 0
p,eTY[k?
#define SPI_INSTANCE 1 /**< SPI instance index. */ g*_cPU0~m
static const nrf_drv_spi_t spi = NRF_DRV_SPI_INSTANCE(SPI_INSTANCE); /**< SPI instance. */ Q\ 0cvmU
static volatile bool spi_xfer_done; /**< Flag used to indicate that SPI instance completed the transfer. */
static nrf_saadc_value_t m_buffer_pool[2][SAMPLES_IN_BUFFER];
static uint32_t timestamp;
const nrf_drv_rtc_t rtc = NRF_DRV_RTC_INSTANCE(2); /**< Declaring an instance of nrf_drv_rtc for RTC1. */
C#Na&m