https://e2e.ti.com/support/sensors-group/sensors/f/sensors-forum/660421/afe4900-ecg-settings
器件型号:AFE4900你好!
我目前正在 ECG 模式下使用 AFE4900器件。
我希望仅获得采样率为128Hz 的 ECG 数据。
我将在 INP_ECG 和 INM_ECG 引脚之间向器件馈送一个正弦信号(1.0Vpp @ 1Hz)、以检查转换线。
我可以在 ADC_RDY 引脚 上看到@128Hz 的中断脉冲、但无法在2Dh 寄存器中获取 ADC 结果。 我只有非常小的值、例如噪声信号。
转换结果似乎没有写入寄存器。 我想我错过了一个寄存器配置中的某个内容、但我不知道是什么。
有人可以帮帮我吗?
此致。
以下是我自己的器件配置:
vdDrvAfe4900_WriteRegister (U8_DRV_AFE4900_REG_control0、((u32) 0x000028u)); //所有寄存器上的软复位
vdDrvAfe4900_WriteRegister (U8_DRV_AFE4900_REG_control0、((u32) 0x000020u)); //启用 ULP 模式、禁用 FIFO、写入 SPI 模式
vdDrvAfe4900_WriteRegister (U8_DRV_AFE4900_REG_Control2、((u32) 0x104218u)); //内部振荡器(128kHz)、 ILED_FS = 50mA
vdDrvAfe4900_WriteRegister (U8_DRV_AFE4900_REG_CONTROL1、((u32) 0x000101u)); //启用定时器模块;2个平均值
//vDDRvAfe4900_WriteRegister (U8_DRV_AFE4900_REG_ECG_CHOP、(((u32) 0x000000u))); //禁用 ECG 斩波模式
//vdDrvAfe4900_WriteRegister (U8_DRV_AFE4900_REG_ECG_CHOP、(((u32) 0x080000u))); //启用 ECG 斩波模式(较高频率的噪声、忽略 NUMAV)
//vdDrvAfe4900_WriteRegister (U8_DRV_AFE4900_REG_ECG_RLD、((u32) 0x800000u)); //启用 ECG RLD 输出
//vdDrvAfe4900_WriteRegister (U8_DRV_AFE4900_REG_ECG_RLD、((u32) 0x000000u)); // ECG RLD 输出被禁用
vdDrvAfe4900_WriteRegister (U8_DRV_AFE4900_REG_Control5、((u32) 0x000000u)); // ECG Gain = 3、ECG 引脚未短接至 RLD OUT 引脚
vdDrvAfe4900_WriteRegister (U8_DRV_AFE4900_REG_DUAL_PD、((u32) 0x000004u)); // ECG 模式启用
vdDrvAfe4900_WriteRegister (U8_DRV_AFE4900_REG_PRPCOUNT、((u32) 0x0003E7u)); // PRPCT = 999 -> FS = 128Hz
vdDrvAfe4900_WriteRegister (U8_DRV_AFE4900_REG_LED2STC、((u32) 0x00002Bu)); // LED2采样开始值时序
vdDrvAfe4900_WriteRegister (U8_DRV_AFE4900_REG_LED2ENDC、((u32) 0x0000A7u)); // LED2采样结束值时序
vdDrvAfe4900_WriteRegister (U8_DRV_AFE4900_REG_LED1LEDSTC、(((u32) 0x00012BU)); // LED1 on 起始值时序
vdDrvAfe4900_WriteRegister (U8_DRV_AFE4900_REG_LED1LEDENDC、(((u32) 0x0001ABU))); // LED1 on end value timing
vdDrvAfe4900_WriteRegister (U8_DRV_AFE4900_REG_ALED2_3STC、((u32) 0x0000ADu)); // LED2采样环境/LED3采样开始值时序
vdDrvAfe4900_WriteRegister (U8_DRV_AFE4900_REG_ALED2_3ENDC、(((u32) 0x000129u))); // LED2采样环境/LED3采样结束值时序
vdDrvAfe4900_WriteRegister (U8_DRV_AFE4900_REG_LED1STC、((u32) 0x00012FU)); // LED1采样开始值时序
vdDrvAfe4900_WriteRegister (U8_DRV_AFE4900_REG_LED1ENDC、((u32) 0x0001ABU)); // LED1采样结束值时序
vdDrvAfe4900_WriteRegister (U8_DRV_AFE4900_REG_LED2LEDSTC、(((u32) 0x000027u))); // LED2 on start value timing
vdDrvAfe4900_WriteRegister (U8_DRV_AFE4900_REG_LED2LEDENDC、(((u32) 0x000A7u))); // LED2 on end value timing
vdDrvAfe4900_WriteRegister (U8_DRV_AFE4900_REG_ALED1STC、(((u32) 0x0001B1u))); // LED1采样环境启动值时序
vdDrvAfe4900_WriteRegister (U8_DRV_AFE4900_REG_ALED1ENDC、(((u32) 0x00022Du)); // LED1采样环境结束值时序
vdDrvAfe4900_WriteRegister (U8_DRV_AFE4900_REG_LED2CONVST、((u32) 0x0000A9u)); // LED2转换开始值时序
vdDrvAfe4900_WriteRegister (U8_DRV_AFE4900_REG_LED2CONVEND、(((u32) 0x0000B9u))); // LED2转换结束值时序
vdDrvAfe4900_WriteRegister (U8_DRV_AFE4900_REG_ALED2_3CONVST、(((u32) 0x00012BU));// LED2环境/LED3转换开始值时序
vdDrvAfe4900_WriteRegister (U8_DRV_AFE4900_REG_ALED2_3CONVEND、(((u32) 0x00013BU));// LED2环境/LED3转换结束值时序
vdDrvAfe4900_WriteRegister (U8_DRV_AFE4900_REG_LED1CONVST、((u32) 0x0001ADu)); // LED1转换开始值时序
vdDrvAfe4900_WriteRegister (U8_DRV_AFE4900_REG_LED1CONVEND、(((u32) 0x0001BDu)); // LED1转换结束值时序
vdDrvAfe4900_WriteRegister (U8_DRV_AFE4900_REG_ALED1CONVST、((u32) 0x00022FU)); // LED1环境转换开始值时序
vdDrvAfe4900_WriteRegister (U8_DRV_AFE4900_REG_ALED1CONVEND、((u32) 0x00023FU)); // LED1环境转换结束值时序
vdDrvAfe4900_WriteRegister (U8_DRV_AFE4900_REG_LED3STC、((u32) 0x000A9u)); // LED3关于起始值时序
vdDrvAfe4900_WriteRegister (U8_DRV_AFE4900_REG_LED3ENDC、((u32) 0x000129u)); // LED3关于结束值时序
vdDrvAfe4900_WriteRegister (U8_DRV_AFE4900_REG_LED4LEDSTC、(((u32) 0x0001ADu))); // LED4开启开始值时序
vdDrvAfe4900_WriteRegister (U8_DRV_AFE4900_REG_LED4LEDENDC、(((u32) 0x00022Du)); // LED4关于结束值时序
vdDrvAfe4900_WriteRegister (U8_DRV_AFE4900_REG_DATARDYSTC、((u32) 0x0000245u)); // DATA_RDY 起始值时序
vdDrvAfe4900_WriteRegister (U8_DRV_AFE4900_REG_DATARDYENDC、((u32) 0x000255u)); // DATA_RDY 结束值时序
vdDrvAfe4900_WriteRegister (U8_DRV_AFE4900_REG_DYNTIASTC、((u32) 0x000000u)); //TIA 活动相位启动时序
vdDrvAfe4900_WriteRegister (U8_DRV_AFE4900_REG_DYNTIAENDC、(((u32) 0x000242u))); //TIA 活动相位结束计时
vdDrvAfe4900_WriteRegister (U8_DRV_AFE4900_REG_DYNADCSTC (((u32) 0x000000u))); //ADC 活动相位启动时序
vdDrvAfe4900_WriteRegister (U8_DRV_AFE4900_REG_DYNADCENDC、(((u32) 0x000242u))); //ADC 活动相位结束时序
vdDrvAfe4900_WriteRegister (U8_DRV_AFE4900_REG_DYNCLKSTC (((u32) 0x000000u))); //4MHz 示波器活动相位启动时序
vdDrvAfe4900_WriteRegister (U8_DRV_AFE4900_REG_DYNCLKENDC、(((u32) 0x000242u))); //4MHz 示波器活动相位结束时序
vdDrvAfe4900_WriteRegister (U8_DRV_AFE4900_REG_DEEPSLPSTC、((u32) 0x000260u)); //深度睡眠阶段开始计时
vdDrvAfe4900_WriteRegister (U8_DRV_AFE4900_REG_DEEPSLPENDC、(((u32) 0x0003CDu))); //深度睡眠阶段结束计时