请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
器件型号:AFE4300 嘿、我使用 AFE4300测量 BCM。
我使用 RC 系列进行测试、测试电阻为464欧姆和 105.6 nF
我的值具有不同的误差百分比、有时大约为0.02%、有时在 FWR 模式下为1.xx%、有时为20.xx%
我尚未添加导线和试验电路板的电阻、但例如、1根导线的电阻为0.3欧姆6*0.3 = 1.8欧姆导线的最大电阻+~ 1欧姆(例如)试验电路板的电阻
如何改进以减少2%的误差
第二个问题是、每次在同一会话中测量时、还是在重新引导/重置后、我都需要校准系统。 我的意思是、我给电路板加电并校准一次、然后我将在单/连续模式 BCM 下进行测量、测量前是否需要再次校准?
我的代码是
uint16_t FWR_Read (uint32_t input_mask、uint8_t freq、uint8_t delay) { set_frequency (freq、false); nrf_drv_gpioote_in_event_enable (DRDY_PIN、TRUE);//启用引脚 IRQ write_register (VSENSE_MUX、INPUT_MASK);//选择 VSENSE RN1-RP0 WRITE_register (ISW_MUX、INPUT_MASK);//选择 IOUT RN1-RP0 nrf_delay_ms (delay*1000); uint16_t 结果; while (真) { 如果(dflag = 1)// IRQ 引脚从高电平变为低电平 dflag 变为1 { Dflag = 0; 结果= READ_register (ADC_DATA_RESULT);//*(1.7/32768.0); 结果=(结果>= 32768)? 结果- 65536:结果; 中断; } } 返回结果; } void set_frequency (uint8_t freq、bool set_iq_DEMOD) { WRITE_REGISTER (BCM_DAC_FREQ、FREQ); } afe4300_RESET (); nrf_DELAY_ms (100); WRITE_REGISTER1 (ADC_CONTROL_REGISTER1、 0x4130);//差分测量模式、32SPS WRITE_register (MISC_REGISTER1、0x0000); WRITE_register (MISC_REGISTER2、 0xFFFF); WRITE_REGISTER (DEVICE_CONTROL1、0x0006);//为 BCM 信号链 WRITE_register (ISW_MUX、0x0408); WRITE_register (VSENSE_MUX、0x0408); WRITE_REGISE_MODE_ENABLE、 0x0000); WRITE_register (weight_scale_control、0x0000); WRITE_register (BCM_DAC_FREQ、0x0032); //0x0040 WRITE_REGISTER2 (DEVICE_CONTROL2、0x0000); WRITE_register (ADC_CONTROL_REGISTER2、0x0063);// ADC 选择 BCM-I 输出 WRITE_REGISTER3、0x0030)的输出; R1 = FWR_READ (0x0201、50、0.5); R2 = FWR_Read (0x0202、50、0.5); 双斜率=(ry - Rx)/(R2 - R1); 双偏移= Rx -(slope * R1); uint16_t z_code = FWR_Read (0x0408、50、0.5); 双 Z = SLOPE * z_code + offset; double Z_comp = sqrt (pow (RC_R、2)+(1 / pow ((2 * PI *(50 * 1000)* RC_C)、2))); double err = 100 - Z * 100 / Z_comp;