This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] AFE4400:AFE4400

Guru**** 2389500 points
Other Parts Discussed in Thread: AFE4400
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/data-converters-group/data-converters/f/data-converters-forum/1295181/afe4400-afe4400

器件型号:AFE4400

我使用 AFE4400通过动脉获取 PPG 信号。 我们将 使用以下代码(附加的图形和代码)在 Arduino IDE 中获取附加的图形。

请告诉我如何使用 Arduino 正确测量 PPG 信号 。  

#include <SPI.h>
#include "protocentral_afe44xx.h"

#define AFE44XX_CS0_PIN   7
#define AFE44XX_CS1_PIN   8
#define AFE44XX_CS2_PIN   9
#define AFE44XX_CS3_PIN   10
#define AFE44XX_CS4_PIN   11
#define AFE44XX_PWDN0_PIN 2
#define AFE44XX_PWDN1_PIN 3
#define AFE44XX_PWDN2_PIN 4
#define AFE44XX_PWDN3_PIN 5
#define AFE44XX_PWDN4_PIN 6
#define AFE44XX_INTNUM    0


AFE44XX afe44xx0(AFE44XX_CS0_PIN, AFE44XX_PWDN0_PIN); 
AFE44XX afe44xx1(AFE44XX_CS1_PIN, AFE44XX_PWDN1_PIN);
AFE44XX afe44xx2(AFE44XX_CS2_PIN, AFE44XX_PWDN2_PIN);
AFE44XX afe44xx3(AFE44XX_CS3_PIN, AFE44XX_PWDN3_PIN);
AFE44XX afe44xx4(AFE44XX_CS4_PIN, AFE44XX_PWDN4_PIN);

afe44xx_data afe44xx_raw_data0;
afe44xx_data afe44xx_raw_data1;
afe44xx_data afe44xx_raw_data2;
afe44xx_data afe44xx_raw_data3;
afe44xx_data afe44xx_raw_data4;

void setup()
{

  Serial.begin(57600);
  Serial.println("Intilaziting AFE44xx.. ");
  
  SPI.begin();
  afe44xx0.afe44xx_init();
  afe44xx1.afe44xx_init();
  afe44xx2.afe44xx_init();
  afe44xx3.afe44xx_init();
  afe44xx4.afe44xx_init();
  Serial.println("Inited...");
}

void loop()
{
  static uint32_t diff = 0,start_time = 0;
  static bool start_flag = 0;

if(start_flag == 0)
{
  start_flag = 1;
  start_time = millis();
}

diff = millis() - start_time;

 if(diff <= 10000)
{
 afe44xx0.get_AFE44XX_Data(&afe44xx_raw_data0);
/////////////////////////////////////////////////    
  Serial.println(afe44xx_raw_data0.RED_data);
  
}  
/////////////////////////////////////////////////
else if(diff >= 10000 && diff <= 20000)
{
  afe44xx1.get_AFE44XX_Data(&afe44xx_raw_data1);
/////////////////////////////////////////////////
  Serial.println(afe44xx_raw_data1.RED_data); 
}
/////////////////////////////////////////////////
//else if(diff >= 20000 && diff <= 30000)
//{
 // afe44xx2.get_AFE44XX_Data(&afe44xx_raw_data2);
/////////////////////////////////////////////////   
 // Serial.println(afe44xx_raw_data2.RED_data);
//}  
//else if(diff >= 30000 && diff <= 40000)
//{
/////////////////////////////////////////////////
 // afe44xx3.get_AFE44XX_Data(&afe44xx_raw_data3);
/////////////////////////////////////////////////  
 // Serial.println(afe44xx_raw_data3.RED_data);
//}  
/////////////////////////////////////////////////
//else if(diff >= 40000 && diff <= 50000)
//{
 // afe44xx4.get_AFE44XX_Data(&afe44xx_raw_data4);
/////////////////////////////////////////////////
 // Serial.println(afe44xx_raw_data4.RED_data);
//}  
else if(diff >= 20000)
{
  start_flag = 0;
}

/////////////////////////////////////////////////
 // Serial.println(afe44xx_raw_data0.IR_data);
/////////////////////////////////////////////////
 // Serial.println(afe44xx_raw_data1.IR_data);
/////////////////////////////////////////////////
 // Serial.println(afe44xx_raw_data2.IR_data);
/////////////////////////////////////////////////
 // Serial.println(afe44xx_raw_data3.IR_data);
/////////////////////////////////////////////////
 // Serial.println(afe44xx_raw_data4.IR_data);
/////////////////////////////////////////////////
 delay(8); 
}

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好 Apakrita:

    您需要根据 AFE 中的 ADC_RDY 中断读取数据、而不是基于 Arduino 的计时器。

    另请与 Arduino 驱动程序代码所有者联系、了解 更多详细信息。 TI 不能拥有此代码来对数据提供任何注释。