完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
我需要采样率为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和官网提供的数据差距这么大,可以提供几个思路,看看哪里设置有问题吗? |
|
相关推荐
1个回答
|
|
根据您的需求,您需要设置AFE4900传感器芯片以实现500Hz的采样率,并且只使用PPG功能。您提供的寄存器设置是基于TIDA-01580参考电路,但去掉了ECG部分。以下是一些建议和修改,以帮助您实现所需的设置:
1. 控制寄存器(0x00):您已经设置了0x000020,这表示AFE4900处于正常工作模式。这是正确的。 2. LED2启动时间寄存器(0x01):您已经设置了0x00000B。这个值表示LED2的启动时间为11个时钟周期。这个值看起来是合理的。 3. LED2结束时间寄存器(0x02):您已经设置了0x00000D。这个值表示LED2的结束时间为13个时钟周期。这个值看起来是合理的。 4. LED1和LED2的启动时间寄存器(0x03):您已经设置了0x000014。这个值表示LED1和LED2的启动时间为20个时钟周期。这个值看起来是合理的。 5. LED1和LED2的结束时间寄存器(0x04):您已经设置了0x000017。这个值表示LED1和LED2的结束时间为23个时钟周期。这个值看起来是合理的。 6. ALED2启动时间寄存器(0x05):您已经设置了0x000010。这个值表示ALed2的启动时间为16个时钟周期。这个值看起来是合理的。 为了实现500Hz的采样率,您需要关注AFE4900的时钟设置。AFE4900的采样率由其内部时钟频率和时钟分频器决定。您可以通过设置时钟分频器寄存器(0x06)来调整采样率。以下是一些建议: 1. 时钟分频器寄存器(0x06):您需要设置这个寄存器以实现500Hz的采样率。假设AFE4900的内部时钟频率为12MHz,您可以通过以下公式计算分频器值: 分频器值 = (内部时钟频率 / 采样率) - 1 分频器值 = (12000000 / 500) - 1 = 23999 因此,您需要将0x06寄存器设置为0x5DFF(23999的16进制表示)。 2. 其他寄存器:您可能需要根据实际情况调整其他寄存器的值,以确保AFE4900正常工作。例如,您可以调整滤波器设置、增益设置等。 请注意,这些建议仅供参考,您可能需要根据您的具体硬件和应用需求进行调整。建议您查阅AFE4900的数据手册,以获取更详细的寄存器设置信息。 |
|
|
|
只有小组成员才能发言,加入小组>>
985 浏览 0 评论
612 浏览 1 评论
458 浏览 1 评论
649 浏览 2 评论
NA555DR VCC最低电压需要在5V供电,为什么用3.3V供电搭了个单稳态触发器也使用正常?
971 浏览 3 评论
AT32F407在USART2 DMA发送数据时,接包接到了要发送的数据,程序还是处于等待传输完成的标识判断中,为什么?
238浏览 29评论
1206浏览 23评论
请问下tpa3220实际测试引脚功能和官方资料不符,哪位大佬可以帮忙解答下
348浏览 20评论
请教下关于TAS5825PEVM评估模块原理图中不太明白的地方,寻求答疑
322浏览 14评论
两个TMP117传感器一个可以正常读取温度值,一个读取的值一直是0,为什么?
179浏览 13评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-2-22 22:27 , Processed in 1.062907 second(s), Total 80, Slave 63 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191