最新消息: USBMI致力于为网友们分享Windows、安卓、IOS等主流手机系统相关的资讯以及评测、同时提供相关教程、应用、软件下载等服务。

MAX30100心率芯片-英文手册关键部分中文手工翻译

IT圈 admin 29浏览 0评论

2024年2月25日发(作者:晏实)

/**********************************************************************************************/

FIFO Write Pointer

The FIFO write pointer points to the location where the MAX30100 writes the next sample.

//FIFO写指针 指向MAX30100写下一个样品的位置

This pointer advances for each sample pushed on to the FIFO.

//这个指针向前 将每个样品推入FIFO中

It can also be changed through the I2C interface when MODE[2:0] is nonzero.

//当模式[2:0]不为0时,它也能够通过I2C接口而被修改

/**********************************************************************************************/

FIFO Overflow Counter

When the FIFO is full, samples are not pushed on to the FIFO, samples are lost. //当FIFO满时,样品不再被推入FIFO,样品此时丢失

OVF_COUNTER counts the number of samples lost. It saturates at 0xF.

//OVF_COUNTER会计数样品丢失的数量,到达0xF时 将饱和

When a complete sample is popped from the FIFO (when the read pointer advances),

//当一个完整的样品从FIFO被捕获时(即当读指针向前时)

OVF_COUNTER is reset to zero.

//OVF_COUNTER被重置为0

/**********************************************************************************************/

FIFO Read Pointer

The FIFO read pointer points to the location from where the processor gets the next

sample

//FIFO读指针 指向处理器获得下一个FIFO通过I2C接口得到的样品的位置

from the FIFO via the I2C interface. This advances each time a sample is popped from

the FIFO.

//这个指针向前 当每次从FIFO捕获一个样品时

The processor can also write to this pointer after reading the samples,

//如果存在一个数据交流错误 处理器 将允许从FIFO重读样品 并在读样品之后 也能够写入这个指针

which would allow rereading samples from the FIFO if there is a data communication

error.

/**********************************************************************************************/

FIFO Data

The circular FIFO depth is 16 and can hold up to 16 samples of SpO2 channel data (Red

and IR).

//这个供读取的FIFO深度为16,并且能够保存16个血氧饱和度通道数据样品(红光与红外)

The FIFO_DATA register in the I2C register map points to the next sample to be read

from the FIFO.

//在I2C寄存器表中的FIFO_DATA寄存器指向下一个能够在FIFO中读取的样品

FIFO_RD_PTR points to this sample.

//FIFO_RD_PTR指向这个样品

Reading FIFO_DATA register does not automatically increment the register address;

//读FIFO_DATA寄存器时不会自动增加寄存器地址

burst reading this register reads the same address over and over.

//突发读取这个寄存器只会重复读同一个地址

Each sample is 4 bytes of data, so this register has to be read 4 times to get one sample. //每个样品是4字节的数据,所以合格寄存器必须读4次才能得到一个样品

The above registers can all be written and read, but in practice,

//在这之前的寄存器 都能够被写和读,当在实践中

only the FIFO_RD_PTR register should be written to in operation.

//只有FIFO_RD_PTR寄存器自能在操作中被写

The others are automatically incremented or filled with data by the MAX30100. When

starting a new SpO2

//其他的寄存器会自动自增或者通过MAX30100填满数据 当开始一个新的血氧饱和度

or heart-rate conversion, it is recommended to first clear the FIFO_WR_PTR,

OVF_COUNTER,

//或者心率转化时,它会被重新命令 先清空FIFO_WR_PTR,OVF_COUNTER

and FIFO_RD_PTR registers to all zeros (0x00) to ensure the FIFO is empty and in a known

state.

//和FIFO_RD_PTR寄存器为0(0x00)来确认FIFO为空 并处于已知状态

When reading the MAX30100 registers in one burst-read I2C transaction,

//在一次突发读取的I2C交易中 读取MAX30100寄存器时

the register address pointer typically increments so that the next byte of data sent is from

//寄存器地址指针典型自增 以至于下一字节是从下个寄存器传来的,等等

the next register, etc. The exception to this is the FIFO data register, register 0x05.

//这个例外是对于 这是FIFO data寄存器,即寄存器0x05 而言

When reading this register, the address pointer does not increment, but the

FIFO_RD_PTR does.

//当读取这个寄存器时,地址指针不会自增,但FIFO_RD_PTR寄存器地址指针会

So the next byte of data sent will represent the next byte of data available in the FIFO.

//所以 下个数据的字节的传送 将替代FIFO中下个现有的数据的字节

/**********************************************************************************************/

Reading from the FIFO

Normally, reading registers from the I2C interface autoincrements the register address

pointer,

//通常,从I2C接口读取寄存器时会自增这个寄存器的地址指针

so that all the registers can be read in a burst read without an I2C restart event.

//所以,所有的寄存器 都能够在没有I2C重启事件时 被一个突发读指令读取

In the MAX30100, this holds true for all registers except for the FIFO_DATA register (0x05). //在MAX30100中,这适用于除了FIFO_DATA寄存器(0x05)的所有寄存器

Reading the FIFO_DATA register does not automatically increment the register address;

//读FIFO_DATA寄存器是不会自动增加该寄存器的地址

burst reading this register reads the same address over and over. Each sample is 4 bytes

of data,

//突发读取 只会重复读取这个寄存器的同一个地址 每个样品是一个4字节的数据

so this register has to be read 4 times to get one sample.

//所以这个寄存器必须被读取4次 才能得到一个样品

The other exception is 0xFF, reading more bytes after the 0xFF register does not advance

//另外一个例外是0xFF,在0xFF寄存器之后读取多个字节

the address pointer back to 0x00, and the data read is not meaningful.

//不会让它的地址向前 而回到0x00 并且读到的数据 也是没有意义的

/**********************************************************************************************/

FIFO Data Structure

The data FIFO consists of a 16-sample memory bank that stores both IR and RED ADC

data.

//数据FIFO由一个 可存16个 红外和红光LED的ADC数据样品 的存储银行 组成

Since each sample consists of one IR word and one RED word, there are 4 bytes of data

for each sample,

//因此每个样品都由一个 红外字(word)和一个红光字(word)组成,而每个数据有四字节

and therefore, 64 total bytes of data can be stored in the FIFO.

//因此,在FIFO中,可存储总共64个字节的数据

Figure 2 shows the structure of the FIFO graphically.

//表2 展示了FIFO的结构

The FIFO data is left-justified as shown in Table 1;

//FIFO数据如表1所展示的那样,是向左对齐的

i.e. the MSB bit is always in the bit 15 position regardless of ADC resolution.

//如例,无论ADC的分辨率如何,MSB位总是在第15位

Each data sample consists of an IR and a red data word (2 registers),

//每个样品都由一个 红外字(word)和一个红光字(word)组成,(两个寄存器)

/**********************************************************************************************/

Write/Read Pointers

The locations to store new data, and the read pointer for reading data,

//储存数据的位置,和读数据的读指针,被用于控制FIFO里的数据流

are used to control the flow of data in the FIFO.

The write pointer increments every time a new sample is added to the FIFO.

//在每一次添加数据到FIFO时,写指针都会自增

The read pointer is incremented automatically every time a sample is read from the FIFO.

//在每一次从FIFO读数据时,读指针都会自增

To reread a sample from the FIFO, decrement its value by one and read the data register

again.

//在重新从FIFO读取数据时,需要自减指针的值,并再一次读取数据寄存器

The SpO2 write/read pointers should be cleared (back to 0x0) upon entering SpO2 mode

or heart-rate mode, //血氧饱和度 写/读 指针应该清空(即回到0x00)并进入血氧饱和度模式或心率模式

so that there is no old data represented in the FIFO.

//所以FIFO中不存在旧的数据代表

The pointers are not automatically cleared when changing modes, but they are cleared

if VDD is power

//在转换模式时,这几个指针都不会自动清空,但如果VDD是循环供电时,

cycled so that the VDD voltage drops below its UVLO voltage.

//他们将会被清空,所以VDD电压拉低于他的UVLO电压

/**********************************************************************************************/

Pseudo-Code Example of Reading Data from FIFO // 从FIFO中读取数据的伪代码示例

First transaction: Get the FIFO_WR_PTR: // 第一次交易:获得fifo_wr_ptr:

START;

Send device address + write mode

Send address of FIFO_WR_PTR;

so to read one sample requires 4 I2C byte reads in a row.

//所以在读一个样品时,要求一行中进行4次I2C操作

The FIFO read pointer is automatically incremented after each 4-byte sample is read.

//在每一次从FIFO读取4字节的样品数据时,读指针都会自增

In heart-rate only mode, the 3rd and 4th bytes of each sample return zeros,

//在只在心率模式时,每个样品的第3、第4字节都会返回0

but the basic structure of the FIFO remains the same.

//但FIFO的基本结构仍是一样的

REPEATED_START;

Send device address + read mode

Read FIFO_WR_PTR;

STOP;

/**********************************************************************************************/

The central processor evaluates the number of samples to be read from the FIFO:

// 中央处理器评估从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 >

/**********************************************************************************************/

Second transaction: Read NUM_SAMPLES_TO_READ samples from the FIFO:

// 第二次交易:从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 IR[15:8];

Read FIFO_DATA;

Save IR[7:0];

Read FIFO_DATA;

Save R[15:8];

Read FIFO_DATA;

Save R[7:0];

}

STOP;

/**********************************************************************************************/

Third transaction: Write to FIFO_RD_PTR register. If the second transaction was successful,

// 第三次交易:写fifo_rd_ptr寄存器。如果第二次交易成功,

FIFO_RD_PTR points to the next sample in the FIFO, and this third transaction is not

necessary.

// fifo_rd_ptr指向FIFO的下一个样品,这第三次交易不是必要的。

Otherwise, the processor updates the FIFO_RD_PTR appropriately, so that the samples

are reread.

// 另外,处理器适当地更新fifo_rd_ptr,使得样品得以重读。

START;

Send device address + write mode

Send address of FIFO_RD_PTR;

Write FIFO_RD_PTR;

STOP;

/**********************************************************************************************/

Events Sequence for Figure 4 in Heart-Rate Mode

//心率模式中图4的事件序列

---------------------------------------------------------------------------------------------------------------------------------------------------------------

EVENT DESCRIPTION COMMENTS

---------------------------------------------------------------------------------------------------------------------------------------------------------------

1 Enter into heart rate mode I2C Write Command Sets

MODE[2:0] = 0x02. Mask the HR_RDY interrupt.

// 进入心率模式 I2C写命令设置模式[2:0] =

0x02。掩盖HR_RDY中断。

---------------------------------------------------------------------------------------------------------------------------------------------------------------

2 FIFO is almost full, interrupt generated Interrupt is generated when the FIFO

has only one empty space left.

// FIFO几乎是满了,产生中断 只有一个空的空间留下FIFO时,产生中断。

---------------------------------------------------------------------------------------------------------------------------------------------------------------

3 FIFO data is read, interrupt cleared

// FIFO的数据被读取,中断离开

---------------------------------------------------------------------------------------------------------------------------------------------------------------

4 Next sample is stored New sample is stored at the

new read pointer location. Effectively, it is now the first sample in the FIFO.

// 下一个样品被存储 新的样品存储在新的读指

针位置。实际上,现在是第一个样本在FIFO。

---------------------------------------------------------------------------------------------------------------------------------------------------------------

/**********************************************************************************************/

Applications Information //应用程序信息

Sampling Rate and Performance //采样率和性能

The MAX30100 ADC is a 16-bit sigma delta converter. The ADC sampling rate can be

configured from 50sps to 1ksps.

The maximum sample rate for the ADC depends on the selected pulse width, which in

turn, determines the ADC resolution.

For instance, if the pulse width is set to 200/*μs*/, then the ADC resolution is 13 bits and

all sample rates from 50sps

to 1ksps are selectable. However, if the pulse width is set to 1600/*μs*/, then only sample

rates of 100sps and 50sps can be set.

The allowed sample rates for both SpO2 and HR mode are summarized in Table 8 and

Table 9.

//MAX30100 ADC是16位Sigma-Delta转换器。ADC的采样速率可以配置为50sps到1ksps。

//ADC的最大采样速率取决于所选择的脉冲宽度,从而确定ADC的分辨率。

//例如,如果脉冲的宽度设置为200μS,则ADC的分辨率为13位,并且采样率从50sps到1ksps都是可选的。

//然而,如果脉冲的宽度设置为1600μS,则采样率只有100sps和50sps可设置。

//SpO2、HR模式下允许的采样率总结在表8和表9

/**********************************************************************************************/

Power Considerations //功率因素

The LEDs in MAX30100 are pulsed with a low duty cycle for power savings, and the pulsed

currents can cause ripples in the LED power supply.

To ensure these pulses do not translate into optical noise at the LED outputs, the power

supply must be designed to handle peak LED current.

Ensure that the resistance and inductance from the power supply (battery, DC/DC

converter, or LDO) to the device LED+ pins is much smaller than 1/*Ω*/,

and that there is at least 1/*μF*/ of power-supply bypass capacitance to a low impedance

ground plane.

The decoupling capacitor should be located physically as close as possible to the

MAX30100 device.

In the heart-rate only mode, the red LED is inactive, and only the IR LED is used to capture

optical data and determine the heart rate.

This mode allows power savings due to the red LED being off; in addition, the IR_LED+

power supply can be reduced to save power because the forward

voltage of the IR LED is significantly less than that of the red LED.

The average IDD and LED current as function of pulse width and sampling rate is

summarized in Table 10 to Table 13.

//MAX30100中的LED脉冲调制为低占空比来节省功率,并且脉冲电流会在LED电源供给中导致纹波。

//为确保这些脉冲不转化为光噪声的LED输出,电源供给必须设计为处理峰值LED电流。

//确保从电源到LED+器件(电池、DC /直流转换器,或LDO)的引脚的电阻和电感远小于1Ω

//并有至少1μF电源旁路电容接到一个低阻抗的接地平面。

//去耦电容 应位于身体尽量靠近max30100装置

//在只有心率模式下,红色的LED是无效的,只有红外LED是用来捕获光学数据,并确定心脏率。

//这个模式允许的节省功率是由于红色LED被关闭;此外,该红外LED+电源可以减去以节省电力

//因为前面的红外LED的电压 是明显小于红色发光二极管。

//IDD和LED平均电流与脉冲宽度的函数和采样率列于表10到表13。

/**********************************************************************************************/

Slave ID Description //从器件描述

Write Data Format //写数据格式

For the write operation, send the slave ID as the first byte followed by the register address

byte and then one or more data bytes.

The register address pointer increments automatically after each byte of data received.

For example, the entire register bank can be written by at one time. Terminate the data

transfer with a STOP condition.

The write operation is shown in Figure 8. The internal register address pointer increments

automatically,

so writing additional data bytes fill the data registers in order.

//对于写操作,发送从器件地址为第一个字节,随后是寄存器地址字节,然后是一个或多个数据字节。

//寄存器地址指针在接收每一个字节的数据后自动增量。例如,整个寄存器库可以一次写入。

//以停止条件终止数据传输。写操作如图8所示。内部寄存器地址指针自动递增,

//因此,写额外数据字节时按顺序填充数据寄存器。

/**********************************************************************************************/

Read Data Format //读数据格式

For the read operation, two I2C operations must be performed. First, the slave ID byte is

sent followed by the I2C register that you wish to read.

Then a REPEATED START (Sr) condition is sent, followed by the read slave ID. The

MAX30100 then begins sending data beginning with the register selected in the first

operation.

The read pointer increments automatically, so the MAX30100 continues sending data

from additional registers in sequential order until a STOP (P) condition is received.

The exception to this is the FIFO_DATA register, at which the read pointer no longer

increments when reading additional bytes.

To read the next register after FIFO_DATA, an I2C write command is necessary to change

the location of the read pointer.

An initial write operation is required to send the read register address. Data is sent from

registers in sequential order,

starting from the register selected in the initial I2C write operation. If the FIFO_DATA

register is read, the read pointer does not automatically increment,

and subsequent bytes of data contain the contents of the FIFO.

//对于读操作,两个I2C操作必须执行。首先,当你想读时从器件字节跟随I2C寄存器发送。

//然后重复启动(SR)的条件被送出,接着是读从器件。MAX30100然后从在第一次操作选择的寄存器开始发送数据。

//读指针自动递增,所以MAX30100继续从按顺序附加的寄存器发送数据,直到停止(P)条件被接收。

//唯一例外的是fifo_data寄存器,在读附加数据时,读指针不再增加。

//在fifo_data之后读下一个寄存器,用I2C读写命令来改变读指针的位置是必要的。

//要求一个初始写操作来发送读寄存器地址。数据从寄存器按顺序发送,从最初的I2C写操作选择的寄存器开始。

//如果fifo_data寄存器被读,读指针不会自动增值

//并且随后数据的字节包含FIFO的内容。

/**********************************************************************************************/

SpO2 Configuration (0x07)

Bit 6: SpO2 High Resolution Enable (SPO2_HI_RES_EN)

Set this bit high. The SpO2 ADC resolution is 16-bit with 1.6ms LED pulse width.

//6位:血氧饱和度高分辨率使(spo2_hi_res_en)

//设置这位为高。血氧饱和度的ADC的分辨率为16位,1.6ms LED脉冲宽度。

Bit 5: Reserved.

Set low (default).

//位5:保留。

//设置低(默认)。

Bit 4:2: SpO2 Sample Rate Control

These bits define the effective sampling rate, with one sample consisting of one IR

pulse/conversion and one RED pulse/conversion.

The sample rate and pulse width are related, in that the sample rate sets an upper bound

on the pulse width time.

If the user selects a sample rate that is too high for the selected LED_PW setting, the

highest possible sample rate will instead be programmed into the register.

//位4:2:SpO2采样率控制

//这些位定义有效的采样率,其中一个样本由一个红外脉冲/转换和一个红色脉冲/转换 组成的。

//采样率和脉冲宽度都是相关的,在这里 采样率在脉冲宽度的时间上设置了一个上限。

//如果用户选择的采样率时选择的led_pw设置得太高,那么样品中只有最高采样率将被编入寄存器。

Bits 1:0: LED Pulse Width Control

These bits set the LED pulse width (the IR and RED have the same pulse width), and

therefore, indirectly set the integration

time of the ADC in each sample. The ADC resolution is directly related to the integration

time.

//位1:0:LED脉冲宽度控制

//这些位是设置LED脉冲宽度(红外和红色有相同的脉冲宽度),因此,间接设置了

//在每个采样品的ADC的积分时间。ADC的分辨率与积分时间直接相关的。

/**********************************************************************************************/

LED Configuration (0x09)

Bits 7:4: Red LED Current Control

These bits set the current level of the Red LED as in Table 6.

//位[7:4]:红色LED电流控制

//这些位设置了在表6中的红色LED的电流水平。

Bits 3:0: IR LED Current Control

These bits set the current level of the IR LED as in Table 6.

//位[3:0]:红外LED电流控制

//这些位设置了在表6中的红外LED的电流水平。

Actual measured LED current for each part can vary widely due to the proprietary trim

methodology.

//实际测量的LED电流的每个部分 都可以有很大的不同,这是由于专有的修剪方法。

/**********************************************************************************************/

Hardware Interrupt

The active-low interrupt pin pulls low when an interrupt is triggered. The pin is

open-drain and requires a pullup resistor or current source

to an external voltage supply (up to +5V from GND). The interrupt pin is not designed

to sink large currents, so the pullup resistor value should be large, such as 4.7kΩ.

The internal FIFO stores up to 16 samples, so that the system processor does not need

to read the data after every sample. Temperature data may be needed to properly

interpret SpO2 data, but the temperature does not need to be sampled very often—once a second or every few seconds should be sufficient. In heart-rate mode temperature

information is not necessary.

//硬件中断

//当触发中断时,低电平有效中断引脚拉低。该引脚为开漏,需要一个上拉电阻或电流源给外部电源电压(高达+ 5V从GND)。中断引脚不是设计为拉沉大电流,所以电阻值要大,如4.7KΩ。

//内部的FIFO存储多达16个样品,以便系统处理器不需要在每个样本之后仍去读取数据。温度数据可能需要去正确解释血氧饱和度数据,但温度不需要采样,往往一次或每几秒应该足够了。

//但在心率模式,温度信息是没有必要的。

DC COUNTS vs. DISTANCE FOR WHITE HIGH IMPACT STYRENE CARD

//非脉动计数

2024年2月25日发(作者:晏实)

/**********************************************************************************************/

FIFO Write Pointer

The FIFO write pointer points to the location where the MAX30100 writes the next sample.

//FIFO写指针 指向MAX30100写下一个样品的位置

This pointer advances for each sample pushed on to the FIFO.

//这个指针向前 将每个样品推入FIFO中

It can also be changed through the I2C interface when MODE[2:0] is nonzero.

//当模式[2:0]不为0时,它也能够通过I2C接口而被修改

/**********************************************************************************************/

FIFO Overflow Counter

When the FIFO is full, samples are not pushed on to the FIFO, samples are lost. //当FIFO满时,样品不再被推入FIFO,样品此时丢失

OVF_COUNTER counts the number of samples lost. It saturates at 0xF.

//OVF_COUNTER会计数样品丢失的数量,到达0xF时 将饱和

When a complete sample is popped from the FIFO (when the read pointer advances),

//当一个完整的样品从FIFO被捕获时(即当读指针向前时)

OVF_COUNTER is reset to zero.

//OVF_COUNTER被重置为0

/**********************************************************************************************/

FIFO Read Pointer

The FIFO read pointer points to the location from where the processor gets the next

sample

//FIFO读指针 指向处理器获得下一个FIFO通过I2C接口得到的样品的位置

from the FIFO via the I2C interface. This advances each time a sample is popped from

the FIFO.

//这个指针向前 当每次从FIFO捕获一个样品时

The processor can also write to this pointer after reading the samples,

//如果存在一个数据交流错误 处理器 将允许从FIFO重读样品 并在读样品之后 也能够写入这个指针

which would allow rereading samples from the FIFO if there is a data communication

error.

/**********************************************************************************************/

FIFO Data

The circular FIFO depth is 16 and can hold up to 16 samples of SpO2 channel data (Red

and IR).

//这个供读取的FIFO深度为16,并且能够保存16个血氧饱和度通道数据样品(红光与红外)

The FIFO_DATA register in the I2C register map points to the next sample to be read

from the FIFO.

//在I2C寄存器表中的FIFO_DATA寄存器指向下一个能够在FIFO中读取的样品

FIFO_RD_PTR points to this sample.

//FIFO_RD_PTR指向这个样品

Reading FIFO_DATA register does not automatically increment the register address;

//读FIFO_DATA寄存器时不会自动增加寄存器地址

burst reading this register reads the same address over and over.

//突发读取这个寄存器只会重复读同一个地址

Each sample is 4 bytes of data, so this register has to be read 4 times to get one sample. //每个样品是4字节的数据,所以合格寄存器必须读4次才能得到一个样品

The above registers can all be written and read, but in practice,

//在这之前的寄存器 都能够被写和读,当在实践中

only the FIFO_RD_PTR register should be written to in operation.

//只有FIFO_RD_PTR寄存器自能在操作中被写

The others are automatically incremented or filled with data by the MAX30100. When

starting a new SpO2

//其他的寄存器会自动自增或者通过MAX30100填满数据 当开始一个新的血氧饱和度

or heart-rate conversion, it is recommended to first clear the FIFO_WR_PTR,

OVF_COUNTER,

//或者心率转化时,它会被重新命令 先清空FIFO_WR_PTR,OVF_COUNTER

and FIFO_RD_PTR registers to all zeros (0x00) to ensure the FIFO is empty and in a known

state.

//和FIFO_RD_PTR寄存器为0(0x00)来确认FIFO为空 并处于已知状态

When reading the MAX30100 registers in one burst-read I2C transaction,

//在一次突发读取的I2C交易中 读取MAX30100寄存器时

the register address pointer typically increments so that the next byte of data sent is from

//寄存器地址指针典型自增 以至于下一字节是从下个寄存器传来的,等等

the next register, etc. The exception to this is the FIFO data register, register 0x05.

//这个例外是对于 这是FIFO data寄存器,即寄存器0x05 而言

When reading this register, the address pointer does not increment, but the

FIFO_RD_PTR does.

//当读取这个寄存器时,地址指针不会自增,但FIFO_RD_PTR寄存器地址指针会

So the next byte of data sent will represent the next byte of data available in the FIFO.

//所以 下个数据的字节的传送 将替代FIFO中下个现有的数据的字节

/**********************************************************************************************/

Reading from the FIFO

Normally, reading registers from the I2C interface autoincrements the register address

pointer,

//通常,从I2C接口读取寄存器时会自增这个寄存器的地址指针

so that all the registers can be read in a burst read without an I2C restart event.

//所以,所有的寄存器 都能够在没有I2C重启事件时 被一个突发读指令读取

In the MAX30100, this holds true for all registers except for the FIFO_DATA register (0x05). //在MAX30100中,这适用于除了FIFO_DATA寄存器(0x05)的所有寄存器

Reading the FIFO_DATA register does not automatically increment the register address;

//读FIFO_DATA寄存器是不会自动增加该寄存器的地址

burst reading this register reads the same address over and over. Each sample is 4 bytes

of data,

//突发读取 只会重复读取这个寄存器的同一个地址 每个样品是一个4字节的数据

so this register has to be read 4 times to get one sample.

//所以这个寄存器必须被读取4次 才能得到一个样品

The other exception is 0xFF, reading more bytes after the 0xFF register does not advance

//另外一个例外是0xFF,在0xFF寄存器之后读取多个字节

the address pointer back to 0x00, and the data read is not meaningful.

//不会让它的地址向前 而回到0x00 并且读到的数据 也是没有意义的

/**********************************************************************************************/

FIFO Data Structure

The data FIFO consists of a 16-sample memory bank that stores both IR and RED ADC

data.

//数据FIFO由一个 可存16个 红外和红光LED的ADC数据样品 的存储银行 组成

Since each sample consists of one IR word and one RED word, there are 4 bytes of data

for each sample,

//因此每个样品都由一个 红外字(word)和一个红光字(word)组成,而每个数据有四字节

and therefore, 64 total bytes of data can be stored in the FIFO.

//因此,在FIFO中,可存储总共64个字节的数据

Figure 2 shows the structure of the FIFO graphically.

//表2 展示了FIFO的结构

The FIFO data is left-justified as shown in Table 1;

//FIFO数据如表1所展示的那样,是向左对齐的

i.e. the MSB bit is always in the bit 15 position regardless of ADC resolution.

//如例,无论ADC的分辨率如何,MSB位总是在第15位

Each data sample consists of an IR and a red data word (2 registers),

//每个样品都由一个 红外字(word)和一个红光字(word)组成,(两个寄存器)

/**********************************************************************************************/

Write/Read Pointers

The locations to store new data, and the read pointer for reading data,

//储存数据的位置,和读数据的读指针,被用于控制FIFO里的数据流

are used to control the flow of data in the FIFO.

The write pointer increments every time a new sample is added to the FIFO.

//在每一次添加数据到FIFO时,写指针都会自增

The read pointer is incremented automatically every time a sample is read from the FIFO.

//在每一次从FIFO读数据时,读指针都会自增

To reread a sample from the FIFO, decrement its value by one and read the data register

again.

//在重新从FIFO读取数据时,需要自减指针的值,并再一次读取数据寄存器

The SpO2 write/read pointers should be cleared (back to 0x0) upon entering SpO2 mode

or heart-rate mode, //血氧饱和度 写/读 指针应该清空(即回到0x00)并进入血氧饱和度模式或心率模式

so that there is no old data represented in the FIFO.

//所以FIFO中不存在旧的数据代表

The pointers are not automatically cleared when changing modes, but they are cleared

if VDD is power

//在转换模式时,这几个指针都不会自动清空,但如果VDD是循环供电时,

cycled so that the VDD voltage drops below its UVLO voltage.

//他们将会被清空,所以VDD电压拉低于他的UVLO电压

/**********************************************************************************************/

Pseudo-Code Example of Reading Data from FIFO // 从FIFO中读取数据的伪代码示例

First transaction: Get the FIFO_WR_PTR: // 第一次交易:获得fifo_wr_ptr:

START;

Send device address + write mode

Send address of FIFO_WR_PTR;

so to read one sample requires 4 I2C byte reads in a row.

//所以在读一个样品时,要求一行中进行4次I2C操作

The FIFO read pointer is automatically incremented after each 4-byte sample is read.

//在每一次从FIFO读取4字节的样品数据时,读指针都会自增

In heart-rate only mode, the 3rd and 4th bytes of each sample return zeros,

//在只在心率模式时,每个样品的第3、第4字节都会返回0

but the basic structure of the FIFO remains the same.

//但FIFO的基本结构仍是一样的

REPEATED_START;

Send device address + read mode

Read FIFO_WR_PTR;

STOP;

/**********************************************************************************************/

The central processor evaluates the number of samples to be read from the FIFO:

// 中央处理器评估从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 >

/**********************************************************************************************/

Second transaction: Read NUM_SAMPLES_TO_READ samples from the FIFO:

// 第二次交易:从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 IR[15:8];

Read FIFO_DATA;

Save IR[7:0];

Read FIFO_DATA;

Save R[15:8];

Read FIFO_DATA;

Save R[7:0];

}

STOP;

/**********************************************************************************************/

Third transaction: Write to FIFO_RD_PTR register. If the second transaction was successful,

// 第三次交易:写fifo_rd_ptr寄存器。如果第二次交易成功,

FIFO_RD_PTR points to the next sample in the FIFO, and this third transaction is not

necessary.

// fifo_rd_ptr指向FIFO的下一个样品,这第三次交易不是必要的。

Otherwise, the processor updates the FIFO_RD_PTR appropriately, so that the samples

are reread.

// 另外,处理器适当地更新fifo_rd_ptr,使得样品得以重读。

START;

Send device address + write mode

Send address of FIFO_RD_PTR;

Write FIFO_RD_PTR;

STOP;

/**********************************************************************************************/

Events Sequence for Figure 4 in Heart-Rate Mode

//心率模式中图4的事件序列

---------------------------------------------------------------------------------------------------------------------------------------------------------------

EVENT DESCRIPTION COMMENTS

---------------------------------------------------------------------------------------------------------------------------------------------------------------

1 Enter into heart rate mode I2C Write Command Sets

MODE[2:0] = 0x02. Mask the HR_RDY interrupt.

// 进入心率模式 I2C写命令设置模式[2:0] =

0x02。掩盖HR_RDY中断。

---------------------------------------------------------------------------------------------------------------------------------------------------------------

2 FIFO is almost full, interrupt generated Interrupt is generated when the FIFO

has only one empty space left.

// FIFO几乎是满了,产生中断 只有一个空的空间留下FIFO时,产生中断。

---------------------------------------------------------------------------------------------------------------------------------------------------------------

3 FIFO data is read, interrupt cleared

// FIFO的数据被读取,中断离开

---------------------------------------------------------------------------------------------------------------------------------------------------------------

4 Next sample is stored New sample is stored at the

new read pointer location. Effectively, it is now the first sample in the FIFO.

// 下一个样品被存储 新的样品存储在新的读指

针位置。实际上,现在是第一个样本在FIFO。

---------------------------------------------------------------------------------------------------------------------------------------------------------------

/**********************************************************************************************/

Applications Information //应用程序信息

Sampling Rate and Performance //采样率和性能

The MAX30100 ADC is a 16-bit sigma delta converter. The ADC sampling rate can be

configured from 50sps to 1ksps.

The maximum sample rate for the ADC depends on the selected pulse width, which in

turn, determines the ADC resolution.

For instance, if the pulse width is set to 200/*μs*/, then the ADC resolution is 13 bits and

all sample rates from 50sps

to 1ksps are selectable. However, if the pulse width is set to 1600/*μs*/, then only sample

rates of 100sps and 50sps can be set.

The allowed sample rates for both SpO2 and HR mode are summarized in Table 8 and

Table 9.

//MAX30100 ADC是16位Sigma-Delta转换器。ADC的采样速率可以配置为50sps到1ksps。

//ADC的最大采样速率取决于所选择的脉冲宽度,从而确定ADC的分辨率。

//例如,如果脉冲的宽度设置为200μS,则ADC的分辨率为13位,并且采样率从50sps到1ksps都是可选的。

//然而,如果脉冲的宽度设置为1600μS,则采样率只有100sps和50sps可设置。

//SpO2、HR模式下允许的采样率总结在表8和表9

/**********************************************************************************************/

Power Considerations //功率因素

The LEDs in MAX30100 are pulsed with a low duty cycle for power savings, and the pulsed

currents can cause ripples in the LED power supply.

To ensure these pulses do not translate into optical noise at the LED outputs, the power

supply must be designed to handle peak LED current.

Ensure that the resistance and inductance from the power supply (battery, DC/DC

converter, or LDO) to the device LED+ pins is much smaller than 1/*Ω*/,

and that there is at least 1/*μF*/ of power-supply bypass capacitance to a low impedance

ground plane.

The decoupling capacitor should be located physically as close as possible to the

MAX30100 device.

In the heart-rate only mode, the red LED is inactive, and only the IR LED is used to capture

optical data and determine the heart rate.

This mode allows power savings due to the red LED being off; in addition, the IR_LED+

power supply can be reduced to save power because the forward

voltage of the IR LED is significantly less than that of the red LED.

The average IDD and LED current as function of pulse width and sampling rate is

summarized in Table 10 to Table 13.

//MAX30100中的LED脉冲调制为低占空比来节省功率,并且脉冲电流会在LED电源供给中导致纹波。

//为确保这些脉冲不转化为光噪声的LED输出,电源供给必须设计为处理峰值LED电流。

//确保从电源到LED+器件(电池、DC /直流转换器,或LDO)的引脚的电阻和电感远小于1Ω

//并有至少1μF电源旁路电容接到一个低阻抗的接地平面。

//去耦电容 应位于身体尽量靠近max30100装置

//在只有心率模式下,红色的LED是无效的,只有红外LED是用来捕获光学数据,并确定心脏率。

//这个模式允许的节省功率是由于红色LED被关闭;此外,该红外LED+电源可以减去以节省电力

//因为前面的红外LED的电压 是明显小于红色发光二极管。

//IDD和LED平均电流与脉冲宽度的函数和采样率列于表10到表13。

/**********************************************************************************************/

Slave ID Description //从器件描述

Write Data Format //写数据格式

For the write operation, send the slave ID as the first byte followed by the register address

byte and then one or more data bytes.

The register address pointer increments automatically after each byte of data received.

For example, the entire register bank can be written by at one time. Terminate the data

transfer with a STOP condition.

The write operation is shown in Figure 8. The internal register address pointer increments

automatically,

so writing additional data bytes fill the data registers in order.

//对于写操作,发送从器件地址为第一个字节,随后是寄存器地址字节,然后是一个或多个数据字节。

//寄存器地址指针在接收每一个字节的数据后自动增量。例如,整个寄存器库可以一次写入。

//以停止条件终止数据传输。写操作如图8所示。内部寄存器地址指针自动递增,

//因此,写额外数据字节时按顺序填充数据寄存器。

/**********************************************************************************************/

Read Data Format //读数据格式

For the read operation, two I2C operations must be performed. First, the slave ID byte is

sent followed by the I2C register that you wish to read.

Then a REPEATED START (Sr) condition is sent, followed by the read slave ID. The

MAX30100 then begins sending data beginning with the register selected in the first

operation.

The read pointer increments automatically, so the MAX30100 continues sending data

from additional registers in sequential order until a STOP (P) condition is received.

The exception to this is the FIFO_DATA register, at which the read pointer no longer

increments when reading additional bytes.

To read the next register after FIFO_DATA, an I2C write command is necessary to change

the location of the read pointer.

An initial write operation is required to send the read register address. Data is sent from

registers in sequential order,

starting from the register selected in the initial I2C write operation. If the FIFO_DATA

register is read, the read pointer does not automatically increment,

and subsequent bytes of data contain the contents of the FIFO.

//对于读操作,两个I2C操作必须执行。首先,当你想读时从器件字节跟随I2C寄存器发送。

//然后重复启动(SR)的条件被送出,接着是读从器件。MAX30100然后从在第一次操作选择的寄存器开始发送数据。

//读指针自动递增,所以MAX30100继续从按顺序附加的寄存器发送数据,直到停止(P)条件被接收。

//唯一例外的是fifo_data寄存器,在读附加数据时,读指针不再增加。

//在fifo_data之后读下一个寄存器,用I2C读写命令来改变读指针的位置是必要的。

//要求一个初始写操作来发送读寄存器地址。数据从寄存器按顺序发送,从最初的I2C写操作选择的寄存器开始。

//如果fifo_data寄存器被读,读指针不会自动增值

//并且随后数据的字节包含FIFO的内容。

/**********************************************************************************************/

SpO2 Configuration (0x07)

Bit 6: SpO2 High Resolution Enable (SPO2_HI_RES_EN)

Set this bit high. The SpO2 ADC resolution is 16-bit with 1.6ms LED pulse width.

//6位:血氧饱和度高分辨率使(spo2_hi_res_en)

//设置这位为高。血氧饱和度的ADC的分辨率为16位,1.6ms LED脉冲宽度。

Bit 5: Reserved.

Set low (default).

//位5:保留。

//设置低(默认)。

Bit 4:2: SpO2 Sample Rate Control

These bits define the effective sampling rate, with one sample consisting of one IR

pulse/conversion and one RED pulse/conversion.

The sample rate and pulse width are related, in that the sample rate sets an upper bound

on the pulse width time.

If the user selects a sample rate that is too high for the selected LED_PW setting, the

highest possible sample rate will instead be programmed into the register.

//位4:2:SpO2采样率控制

//这些位定义有效的采样率,其中一个样本由一个红外脉冲/转换和一个红色脉冲/转换 组成的。

//采样率和脉冲宽度都是相关的,在这里 采样率在脉冲宽度的时间上设置了一个上限。

//如果用户选择的采样率时选择的led_pw设置得太高,那么样品中只有最高采样率将被编入寄存器。

Bits 1:0: LED Pulse Width Control

These bits set the LED pulse width (the IR and RED have the same pulse width), and

therefore, indirectly set the integration

time of the ADC in each sample. The ADC resolution is directly related to the integration

time.

//位1:0:LED脉冲宽度控制

//这些位是设置LED脉冲宽度(红外和红色有相同的脉冲宽度),因此,间接设置了

//在每个采样品的ADC的积分时间。ADC的分辨率与积分时间直接相关的。

/**********************************************************************************************/

LED Configuration (0x09)

Bits 7:4: Red LED Current Control

These bits set the current level of the Red LED as in Table 6.

//位[7:4]:红色LED电流控制

//这些位设置了在表6中的红色LED的电流水平。

Bits 3:0: IR LED Current Control

These bits set the current level of the IR LED as in Table 6.

//位[3:0]:红外LED电流控制

//这些位设置了在表6中的红外LED的电流水平。

Actual measured LED current for each part can vary widely due to the proprietary trim

methodology.

//实际测量的LED电流的每个部分 都可以有很大的不同,这是由于专有的修剪方法。

/**********************************************************************************************/

Hardware Interrupt

The active-low interrupt pin pulls low when an interrupt is triggered. The pin is

open-drain and requires a pullup resistor or current source

to an external voltage supply (up to +5V from GND). The interrupt pin is not designed

to sink large currents, so the pullup resistor value should be large, such as 4.7kΩ.

The internal FIFO stores up to 16 samples, so that the system processor does not need

to read the data after every sample. Temperature data may be needed to properly

interpret SpO2 data, but the temperature does not need to be sampled very often—once a second or every few seconds should be sufficient. In heart-rate mode temperature

information is not necessary.

//硬件中断

//当触发中断时,低电平有效中断引脚拉低。该引脚为开漏,需要一个上拉电阻或电流源给外部电源电压(高达+ 5V从GND)。中断引脚不是设计为拉沉大电流,所以电阻值要大,如4.7KΩ。

//内部的FIFO存储多达16个样品,以便系统处理器不需要在每个样本之后仍去读取数据。温度数据可能需要去正确解释血氧饱和度数据,但温度不需要采样,往往一次或每几秒应该足够了。

//但在心率模式,温度信息是没有必要的。

DC COUNTS vs. DISTANCE FOR WHITE HIGH IMPACT STYRENE CARD

//非脉动计数

发布评论

评论列表 (0)

  1. 暂无评论