AFE4900: AFE4900传感器芯片寄存器设置问题

Part Number: AFE4900
Other Parts Discussed in Thread: TIDA-01580

您好

我需要采样率为500HZ的,只使用PPG,未使用ECG,参考电路是TIDA-01580,只是去掉了ECG电路部分,其他未变,寄存器设置这样:

uint32_t const  AFE_ppg_ecg_reg_arr[][2]=

{

 {0x00, 0x000020}, /*CONTROL0*/

      {0x01, 0x00000B}, /*LED2STC*/

      {0x02, 0x00000D}, /*LED2ENDC*/

      {0x03, 0x000014}, /*LED1LEDSTC*/

      {0x04, 0x000017}, /*LED1LEDENDC*/

      {0x05, 0x000010}, /*ALED2STC*/

      {0x06, 0x000012}, /*ALED2ENDC*/

      {0x07, 0x000015}, /*LED1STC*/

      {0x08, 0x000017}, /*LED1ENDC*/

      {0x09, 0x00000A}, /*LED2LEDSTC*/

      {0x0A, 0x00000D}, /*LED2LEDENDC*/

      {0x0B, 0x00001A}, /*ALED1STC*/

      {0x0C, 0x00001C}, /*ALED1ENDC*/

      {0x0D, 0x00000F}, /*LED2CONVST*/

      {0x0E, 0x000012}, /*LED2CONVEND*/

      {0x0F, 0x000014}, /*ALED2CONVST*/

      {0x10, 0x000017}, /*ALED2CONVEND*/

      {0x11, 0x000019}, /*LED1CONVST*/

      {0x12, 0x00001C}, /*LED1CONVEND*/

      {0x13, 0x00001E}, /*ALED1CONVST*/

     {0x14, 0x000021}, /*ALED1CONVEND*/

     {0x1D, 0x00003F}, /*PRPCOUNT*/

     {0x1E, 0x000101}, /*CONTROL1*/

     {0x1F, 0x000000}, /*TIAGAIN_2_3*/

     {0x20, 0x000006},//{0x20, 0x000003}, /*TIAGAIN*/

     {0x21, 0x000006},//{0x21, 0x007006},//{0x21, 0x000003}, /*TIA_AMB_GAIN*/

     {0x22, 0xFFF000},//{0x22, 0xF00000}, /*LEDCNTRL1*/

     {0x23, 0x104218}, /*CONTROL2*/

     {0x24, 0x002A00}, /*LEDCNTRL2*/

     {0x28, 0x000000}, /*TOGGLE*/

     {0x29, 0x000000}, /*CLKDIV1*/

     {0x2A, 0x000000}, /*LED2VAL*/

     {0x2B, 0x000000}, /*ALED2VAL*/

     {0x2C, 0x000000}, /*LED1VAL*/

     {0x2D, 0x000000}, /*ALED1VAL*/

     {0x2E, 0x000000}, /*LED2-ALED2VAL*/

     {0x2F, 0x000000}, /*LED1-ALED1VAL*/

     {0x31, 0x000020}, /*CONTROL3*/

     {0x34, 0x000000}, /*PROG_INT2_STC*/

     {0x35, 0x000000}, /*PROG_INT2_ENDC*/

     {0x36, 0x00000F}, /*LED3LEDSTC*/

     {0x37, 0x000012}, /*LED3LEDENDC*/

     {0x39, 0x000000}, /*CLKDIV2*/

     {0x3A, 0x100000},//{0x3A, 0x17BDEF},//, /*OFFDAC*/

     {0x3B, 0x000000}, /*THRDETLOW*/

     {0x3C, 0x000000}, /*THRDETHIGH*/

     {0x3D, 0x000000}, /*THRDET*/

     {0x3E, 0x000055},//{0x3E, 0x000088},//{0x3E, 0x000000}, /*I_OFFDAC*/偏置电流设置为0.125uA.

     {0x3F, 0x000000}, /*AVG_LED2_ALED2VAL*/

     {0x40, 0x000000}, /*AVG_LED1_ALED1VAL*/

     {0x42, 0x000000}, /*FIFO*/

     {0x43, 0x000019}, /*LED4LEDSTC*/

     {0x44, 0x00001C}, /*LED4LEDENDC*/

     {0x45, 0x000000}, /*TG_PD1STC*/

     {0x46, 0x0000FF},//{0x46, 0x000042}, /*TG_PD1ENDC*/

     {0x47, 0x000000},//{0x47, 0x000046}, /*TG_PD2STC*/

     {0x48, 0x000000}, //{0x48, 0x0000FF},/*TG_PD2ENDC*/

     {0x49, 0x000000}, /*TG_PD3STC*/

     {0x4A, 0x000000}, /*TG_PD3ENDC*/

     {0x4B, 0x000000}, /*CONTROL4*/

     {0x4E, 0x000000},//{0x4E, 0xA4F00C}, /*DUAL_PD*/

     {0x50, 0x000018},//{0x50, 0x180018}, /*CONTROL5*/

     {0x51, 0x000000}, /*FIFO_OFFSET*/

     {0x52, 0x000027}, /*DATA_RDY_STC*/

     {0x53, 0x000027}, /*DATA_RDY_ENDC*/

     {0x54, 0x000000}, /*MASK_PPG*/

     {0x57, 0x000000}, /*PROG_INT1_STC*/

     {0x58, 0x000000}, /*PROG_INT1_ENDC*/

     {0x61, 0x000000},//{0x61, 0x080000}, /*ECG_CHOP*/

     {0x62, 0x000000},//{0x62, 0xE00000}, /*ECG_RLD*/

     {0x63, 0x000000}, /*RCOMP*/

     {0x64, 0x000000}, /*DYN_TIA_STC*/

     {0x65, 0x000023}, /*DYN_TIA_ENDC*/

     {0x66, 0x000000}, /*DYN_ADC_STC*/

     {0x67, 0x000023}, /*DYN_ADC_ENDC*/

     {0x68, 0x000000}, /*DYN_CLOCK_STC*/

     {0x69, 0x000023}, /*DYN_CLOCK_ENDC*/

     {0x6A, 0x00002E}, /*DEEP_SLEEP_STC*/

     {0x6B, 0x000038}, /*DEEP_SLEEP_ENDC*/

     {0x6C, 0x000800}, /*PD_SHORT*/

     {0x6D, 0x000000}, /*REG_POINTER*/

     {0x72, 0x000000}, /*LED_DRIVER_CONTROL*/

     {0x73, 0x000000}, /*THR_DETECT_LOGIC*/

 

     {0xFF, 0x00}  //End of Array

};为什么不接光电二极管的时候,读取0X2A,0X2B,0X2C,0X2D的数据,ADC已经趋近于满量程了?

如果使用官网TIDA-01580官网提供的寄存器设置:

uint32_t const  AFE_ppg_ecg_reg_arr[][2]=

{

    {0x00, 0x000020}, /*CONTROL0*/

    {0x01, 0x00002B}, /*LED2STC*/

    {0x02, 0x000033}, /*LED2ENDC*/

    {0x03, 0x000001}, /*LED1LEDSTC*/

    {0x04, 0x000000}, /*LED1LEDENDC*/

    {0x05, 0x000039}, /*ALED2STC*/

    {0x06, 0x000041}, /*ALED2ENDC*/

    {0x07, 0x000047}, /*LED1STC*/

    {0x08, 0x00004F}, /*LED1ENDC*/

    {0x09, 0x000027}, /*LED2LEDSTC*/

    {0x0A, 0x000033}, /*LED2LEDENDC*/

    {0x0B, 0x000055}, /*ALED1STC*/

    {0x0C, 0x00005D}, /*ALED1ENDC*/

    {0x0D, 0x000035}, /*LED2CONVST*/

    {0x0E, 0x000053}, /*LED2CONVEND*/

    {0x0F, 0x000055}, /*ALED2CONVST*/

    {0x10, 0x000073}, /*ALED2CONVEND*/

    {0x11, 0x000075}, /*LED1CONVST*/

    {0x12, 0x000093}, /*LED1CONVEND*/

    {0x13, 0x000095}, /*ALED1CONVST*/

    {0x14, 0x0000B3}, /*ALED1CONVEND*/

    {0x1D, 0x0000FF}, /*PRPCOUNT*/

    {0x1E, 0x000103}, /*CONTROL1*/

    {0x1F, 0x000000}, /*TIAGAIN_2_3*/

    {0x20, 0x000003}, /*TIAGAIN*/

    {0x21, 0x000003}, /*TIA_AMB_GAIN*/

    {0x22, 0xF00000}, /*LEDCNTRL1*/

    {0x23, 0x104218}, /*CONTROL2*/

    {0x24, 0x002A00}, /*LEDCNTRL2*/

    {0x28, 0x000000}, /*TOGGLE*/

    {0x29, 0x000000}, /*CLKDIV1*/

    {0x2A, 0x000000}, /*LED2VAL*/

    {0x2B, 0x000000}, /*ALED2VAL*/

    {0x2C, 0x000000}, /*LED1VAL*/

    {0x2D, 0x000000}, /*ALED1VAL*/

    {0x2E, 0x000000}, /*LED2-ALED2VAL*/

    {0x2F, 0x000000}, /*LED1-ALED1VAL*/

    {0x31, 0x000020}, /*CONTROL3*/

    {0x34, 0x000000}, /*PROG_INT2_STC*/

    {0x35, 0x000000}, /*PROG_INT2_ENDC*/

    {0x36, 0x000035}, /*LED3LEDSTC*/

    {0x37, 0x000041}, /*LED3LEDENDC*/

    {0x39, 0x000000}, /*CLKDIV2*/

    {0x3A, 0x100000}, /*OFFDAC*/

    {0x3B, 0x000000}, /*THRDETLOW*/

    {0x3C, 0x000000}, /*THRDETHIGH*/

    {0x3D, 0x000000}, /*THRDET*/

    {0x3E, 0x000000}, /*I_OFFDAC*/

    {0x3F, 0x000000}, /*AVG_LED2_ALED2VAL*/

    {0x40, 0x000000}, /*AVG_LED1_ALED1VAL*/

    {0x42, 0x000000}, /*FIFO*/

    {0x43, 0x000043}, /*LED4LEDSTC*/

    {0x44, 0x00004F}, /*LED4LEDENDC*/

    {0x45, 0x000000}, /*TG_PD1STC*/

    {0x46, 0x000042}, /*TG_PD1ENDC*/

    {0x47, 0x000046}, /*TG_PD2STC*/

    {0x48, 0x0000FF}, /*TG_PD2ENDC*/

    {0x49, 0x000000}, /*TG_PD3STC*/

    {0x4A, 0x000000}, /*TG_PD3ENDC*/

    {0x4B, 0x000000}, /*CONTROL4*/

    {0x4E, 0xA4F00C}, /*DUAL_PD*/

    {0x50, 0x180018}, /*CONTROL5*/

    {0x51, 0x000000}, /*FIFO_OFFSET*/

    {0x52, 0x0000B9}, /*DATA_RDY_STC*/

    {0x53, 0x0000B9}, /*DATA_RDY_ENDC*/

    {0x54, 0x000000}, /*MASK_PPG*/

    {0x57, 0x000000}, /*PROG_INT1_STC*/

    {0x58, 0x000000}, /*PROG_INT1_ENDC*/

    {0x61, 0x080000}, /*ECG_CHOP*/

    {0x62, 0xE00000}, /*ECG_RLD*/

    {0x63, 0x000000}, /*RCOMP*/

    {0x64, 0x000000}, /*DYN_TIA_STC*/

    {0x65, 0x0000B6}, /*DYN_TIA_ENDC*/

    {0x66, 0x000000}, /*DYN_ADC_STC*/

    {0x67, 0x0000B6}, /*DYN_ADC_ENDC*/

    {0x68, 0x000000}, /*DYN_CLOCK_STC*/

    {0x69, 0x0000B6}, /*DYN_CLOCK_ENDC*/

    {0x6A, 0x0000C0}, /*DEEP_SLEEP_STC*/

    {0x6B, 0x0000E5}, /*DEEP_SLEEP_ENDC*/

    {0x6C, 0x000800}, /*PD_SHORT*/

    {0x6D, 0x000000}, /*REG_POINTER*/

    {0x72, 0x000000}, /*LED_DRIVER_CONTROL*/

    {0x73, 0x000000}, /*THR_DETECT_LOGIC*/

 

    {0xFF, 0x00}  //End of Array

};不接光电二极管的时候,读取0X2A,0X2B,0X2C,0X2D的数据,ADC值就很小,请问为什么500HZ和官网提供的数据差距这么大,可以提供几个思路,看看哪里设置有问题吗?