AFE4490如何配置
TI的应用工程师,您好。我目前正在使用AFE4490,但是发现按照我的配置读出的LED2VAL的值显示出来的总是乱码,根本不是血氧曲线,求指教。
SPI1_WriteAFE4490( AFE4490_PRPCOUNT, 6399); //the period is 1600us
SPI1_WriteAFE4490( AFE4490_TIAGAIN, 0x000000); //Rf and Cf are same for both LED2 & LED1
SPI1_WriteAFE4490( AFE4490_TIA_AMB_GAIN, 0x00800A); //1Khz filter conner; Cf = 5pf+5pf; Rf = 100K ohm
SPI1_WriteAFE4490( AFE4490_LEDCNTRL, 0x016666); //LED current range is 75mA. LED1/2 current is 30 mA.
SPI1_WriteAFE4490( AFE4490_ALARM, 0x000080); //Disable
SPI1_WriteAFE4490( AFE4490_CONTROL2, 0x000000); //0.75V Tx reference voltage
//H-Bridge; AFE Power up
SPI1_WriteAFE4490( AFE4490_CONTROL0, 0x000000);
SPI1_WriteAFE4490( AFE4490_CONTROL1, 0x000302); //0x000F02Internal Clock no output; Timer is enabled; No average.
根据ADC_RDY的中断进行读
void GPABC_IRQHandler(void)
{
uint32_t userdata;
if ( GPIOB -> ISR & GPIO_ISR_ISR_9)
{
userdata = SPI1_ReadAFE4490( AFE4490_LED2VAL );
UART0_Send32BitString(userdata);
UART0_SendString( userstring, 2);
GPIOB -> ISR |= GPIO_ISR_ISR_9; //Clear the pin9 interrupt flag
}
}
你好! 尝试写入下面的所有寄存器配置看结果如何,从已经工作的AFE4490EVM上保存下来的。 当然,只读的就不需写了。
2013/10/11 13:23 | |||
ADC Register Settings | |||
Block Name | Register Name | Data | Register Address |
AFE4490 | CONTROL0 | 0 | 0 |
AFE4490 | LED2STC | 1770 | 1 |
AFE4490 | LED2ENDC | 1F3E | 2 |
AFE4490 | LED2LEDSTC | 1770 | 3 |
AFE4490 | LED2LEDENDC | 1F3F | 4 |
AFE4490 | ALED2STC | 0 | 5 |
AFE4490 | ALED2ENDC | 7CE | 6 |
AFE4490 | LED1STC | 7D0 | 7 |
AFE4490 | LED1ENDC | F9E | 8 |
AFE4490 | LED1LEDSTC | 7D0 | 9 |
AFE4490 | LED1LEDENDC | F9F | A |
AFE4490 | ALED1STC | FA0 | B |
AFE4490 | ALED1ENDC | 176E | C |
AFE4490 | LED2CONVST | 2 | D |
AFE4490 | LED2CONVEND | 7CF | E |
AFE4490 | ALED2CONVST | 7D2 | F |
AFE4490 | ALED2CONVEND | F9F | 10 |
AFE4490 | LED1CONVST | FA2 | 11 |
AFE4490 | LED1CONVEND | 176F | 12 |
AFE4490 | ALED1CONVST | 1772 | 13 |
AFE4490 | ALED1CONVEND | 1F3F | 14 |
AFE4490 | ADCRSTSTCT0 | 0 | 15 |
AFE4490 | ADCRSTENDCT0 | 0 | 16 |
AFE4490 | ADCRSTSTCT1 | 7D0 | 17 |
AFE4490 | ADCRSTENDCT1 | 7D0 | 18 |
AFE4490 | ADCRSTSTCT2 | FA0 | 19 |
AFE4490 | ADCRSTENDCT2 | FA0 | 1A |
AFE4490 | ADCRSTSTCT3 | 1770 | 1B |
AFE4490 | ADCRSTENDCT3 | 1770 | 1C |
AFE4490 | PRPCOUNT | 1F3F | 1D |
AFE4490 | CONTROL1 | 101 | 1E |
AFE4490 | SPARE1 | 0 | 1F |
AFE4490 | TIAGAIN | 0 | 20 |
AFE4490 | TIA_AMB_GAIN | 0 | 21 |
AFE4490 | LEDCNTRL | 1BEBE | 22 |
AFE4490 | CONTROL2 | 0 | 23 |
AFE4490 | SPARE2 | 0 | 24 |
AFE4490 | SPARE3 | 0 | 25 |
AFE4490 | SPARE4 | 0 | 26 |
AFE4490 | RESERVED1 | 0 | 27 |
AFE4490 | RESERVED2 | 0 | 28 |
AFE4490 | ALARM | 0 | 29 |
AFE4490 | LED2VAL | 0 | 2A |
AFE4490 | ALED2VAL | 0 | 2B |
AFE4490 | LED1VAL | 0 | 2C |
AFE4490 | ALED1VAL | 0 | 2D |
AFE4490 | LED2-ALED2VAL | 0 | 2E |
AFE4490 | LED1-ALED1VAL | 0 | 2F |
AFE4490 | DIAG | 0 | 30 |
但是出来的波形很不好:
我是自己做的板子,这种情况我怀疑是和探头及前级输入有关系吧。求指教
一点拙见:
请问您的供电是否是采用低纹波的LDO供电的?
AFE4490对电源上的噪声比较敏感。
谢谢提醒,使用的LDO的Dropout果然是很大啊。。
AFE4490如何检测血氧探头里面没有手指?如果没有手指在血氧探头里面,AFE4490能输出中断吗?具体是哪个中断?另外,我设置EN_SLOW_DIAG = 0,设置DIAG_EN = 1,可是DIAG_END中断信号没有产生呀?谢谢回复!
请教一下,读取了LED1和LED2的值,计算血氧的公式能提供吗?AFE4490的测量精度能达到多少?谢谢