AFE4400的使用

随着人们越来越重视医疗健康,相对应的产品也随之推出。TI就很好的走在前面,对于生理信号采集方面不仅推出了ADS124x系列和ADS129x系列,也推出了集成了光传感器AFE系列。

AFE4400 是一款非常适合于脉冲血氧仪应用的完全集成模拟前端 (AFE)。 此器件包含一个具有集成模数转换器 (ADC) 的低噪声接收器通道、一个 LED 发射部件和针对传感器以及 LED 故障检测的诊断功能。

数据手册介绍到此结束。不废话,接下来介绍电路原理图。原理图也是根据数据手册的典型应用得到的。两个红光和红外LED选用的是DCM05(或者DCM03)


NRST芯片复位,低电平有效,复位后需要重新配置寄存器。

PD_ALM为光电传感器断开信号,LED_ALM为LED断开信号,DIAG_END是检测终了信号,这3个信号可连接单片机,用于检测器件的连接情况。

AFE_PDN为低功耗引脚,低电平有效。

ADC_RDY为信号采集并转换完成,此时可通过SPI读取转换结果。


PCB布局也非常简单,左边芯片为AFE4400,右边的芯片是stm8L151.

程序方面主要讲一下寄存器配置和数据读取。

void AFE4404_Set_Value(void)
{
  //AFE4400_Set_Register(CONTROL0,        0x04);
  AFE4400_Set_Register(LED2STC,         6050);
  AFE4400_Set_Register(LED2ENDC,        7998);
  AFE4400_Set_Register(LED2LEDSTC,      6000);
  AFE4400_Set_Register(LED2LEDENDC,     7999);
  AFE4400_Set_Register(ALED2STC,        50);
  AFE4400_Set_Register(ALED2ENDC,       1998);
  AFE4400_Set_Register(LED1STC,         2050);
  AFE4400_Set_Register(LED1ENDC,        3998);
  AFE4400_Set_Register(LED1LEDSTC,      2000);
  AFE4400_Set_Register(LED1LEDENDC,     3999);
  AFE4400_Set_Register(ALED1STC,        4050);
  AFE4400_Set_Register(ALED1ENDC,       5998);
  AFE4400_Set_Register(LED2CONVST,      4);
  AFE4400_Set_Register(LED2CONVEND,     1999);
  AFE4400_Set_Register(ALED2CONVST,     2004);
  AFE4400_Set_Register(ALED2CONVEND,    3999);
  AFE4400_Set_Register(LED1CONVST,      4004);
  AFE4400_Set_Register(LED1CONVEND,     5999);
  AFE4400_Set_Register(ALED1CONVST,     6004);
  AFE4400_Set_Register(ALED1CONVEND,    7999);
  
  AFE4400_Set_Register(ADCRSTSTCT0,     0);
  AFE4400_Set_Register(ADCRSTENDCT0,    3);
  AFE4400_Set_Register(ADCRSTSTCT1,     2000);
  AFE4400_Set_Register(ADCRSTENDCT1,    2003);
  AFE4400_Set_Register(ADCRSTSTCT2,     4000);
  AFE4400_Set_Register(ADCRSTENDCT2,    4003);
  AFE4400_Set_Register(ADCRSTSTCT3,     6000);
  AFE4400_Set_Register(ADCRSTENDCT3,    6003);
  
  AFE4400_Set_Register(PRPCOUNT,        7999);
  
  AFE4400_Set_Register(CONTROL1,        0x100);
//  AFE4400_Set_Register(TIA_AMB_GAIN,    0x004481);
  AFE4400_Set_Register(TIA_AMB_GAIN,    0x004141);
  AFE4400_Set_Register(LEDCNTRL,        0x8F8F);
  AFE4400_Set_Register(CONTROL2,        0x100);
}

前面的寄存器是配置芯片的时序的,这里的配置使用的是官方手册给的数值,这里不做讨论,详细意思在手册上能查阅。由于我们使用的是8M的晶振,寄存器PRPCOUNT的值为7999,意味着一个周期为1ms,这里采样率为1000Hz,对于采集血氧饱和度足矣。

AFE4400读取寄存器的方式有些特别,根据手册所述需要设置CONTROL0的读写位之后才能读取数据。

void AFE4400_Set_READABLE(u8 isReadable)
{
  SPI_WriteByte(CONTROL0);  //写入寄存器地址
  SPI_WriteByte(0x00);
  SPI_WriteByte(0x00);
  SPI_WriteByte(isReadable);
}

u32 AFE4400_Read_Register(u8 reg_address)
{
  u32 temp0=0, temp1=0, temp2=0;
  u32 temp=0;
  
  AFE_CS_L;
  AFE4400_Set_READABLE(1);
  
  SPI_WriteByte(reg_address);  //写入寄存器地址
  temp0 = SPI_ReadByte();
  temp1 = SPI_ReadByte();
  temp2 = SPI_ReadByte();
  AFE_CS_H;
  
  temp = temp0<<16 | temp1<<8 | temp2;
  return temp;
}

void AFE4400_Set_Register(u8 reg_address, u32 data)
{
  AFE_CS_L;
  AFE4400_Set_READABLE(0);
  
  SPI_WriteByte(reg_address);  //写入寄存器地址
  SPI_WriteByte((data>>16)&0xFF);
  SPI_WriteByte((data>>8)&0xFF);
  SPI_WriteByte((data)&0xFF);
  AFE_CS_H;
}

数据读取通过ADC_RDY信号的下降沿触发之后使用SPI读取。

通过蓝牙发送到手机编写的APP中,画图显示波形。


最后附上驱动代码:http://download.csdn.net/detail/devintt/9849976





  • 7
    点赞
  • 39
    收藏
    觉得还不错? 一键收藏
  • 35
    评论
ti的afe4400源码安装包是一种软件包,包含了afe4400传感器的驱动程序和相关的开发工具。它用于帮助开发人员在使用afe4400传感器时进行项目开发和测试。 安装这个源码安装包有几个步骤。首先,我们需要下载源码安装包,可以从ti的官方网站上获得。下载完成后,我们需要解压缩源码安装包到一个合适的目录。 安装之前,我们需要确保电脑上已经安装了相应的开发环境,比如Code Composer Studio等。接下来,我们打开Code Composer Studio,并创建一个新的工程。 在Code Composer Studio中,我们选择"import"功能,然后选择afe4400源码安装包中的相关文件。将这些文件导入到我们创建的工程中。 导入成功后,我们可以看到afe4400源码已经添加到我们的工程中。此时,我们需要根据我们的具体需求进行一些配置,比如串口通信设置、时钟配置等等。 配置完成后,我们可以编译和下载我们的代码到目标设备中。这样,我们就可以开始使用afe4400传感器进行项目开发和测试了。 除了源码安装包,ti还提供了用户手册、API文档和示例代码等资源,以帮助开发人员更好地理解和使用afe4400传感器。在我们开发的过程中,如果遇到了问题,可以参考这些资源进行排查和解决。 总而言之,afe4400源码安装包是ti提供的帮助开发人员使用afe4400传感器的工具,安装和配置这个源码安装包后,我们可以利用它进行项目开发和测试。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 35
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值