你(们)好。
我已根据 EVM 原理图开发了 PCB、以使用 AFE4300测量组织阻抗。 我使用 STM32f103c8微控制器作为主机。 微控制器通过其计时器的 PWM (50% DS)功能为 AFE4300提供1MHz 时钟。 我可以根据需要设置和读取 AFE4300上的寄存器、但当我尝试读取 ADC_DATA_RESULT 寄存器以获得使用 IQ 或 FWR 模式进行阻抗测量的结果时、我始终得到0!
下面是我使用的代码:
(二 AFE4300初始化代码
AFE4300_writeRegister (ADC_CONTRAL_REGISTER1、0X4140);
AFE4300_writeRegister (MISC_REGISTER1、0x0000);
AFE4300_writeRegister (MISC_REGISTER2、0xFFFF);
AFE4300_writeRegister (DEVICE_CONTROL1、0X6005);
AFE4300_writeRegister (ISW_MUX、0x0000);
AFE4300_writeRegister (VSENSE_MUX、0x0000);
AFE4300_writeRegister (IQ_MODE_ENABLE、0x0000);
AFE4300_writeRegister (weight_scale_control、0x0000);
AFE4300_writeRegister (BCM_DAC_FREQ、0x0000);
AFE4300_writeRegister (DEVICE_CONTROL2、0x0000);
AFE4300_writeRegister (ADC_CONTRAL_REGISTER2、0x0000);
AFE4300_writeRegister (MISC_REGISTER3、0x0030);
******** 将数据采集速率设置为32*********
AFE4300_writeRegister (ADC_CONTRAL_REGISTER1、0x4120);
(图2 使用 FWR 模式*********
AFE4300_writeRegister (DEVICE_CONTROL2、0x0060);
AFE4300_writeRegister (DEVICE_CONTROL1、0x6006);
AFE4300_writeRegister (IQ_MODE_ENABLE、0x0000);
AFE4300_writeRegister (BCM_DAC_FREQ、0x0000);
AFE4300_writeRegister (ADC_CONTRAL_REGISTER2、0x0063);
(图2 设置频道*********
AFE4300_writeRegister (VSENSE_MUX、0x0000);
AFE4300_writeRegister (VSENSE_MUX、0x0408);
AFE4300_writeRegister (ISW_MUX、0x0000);
AFE4300_writeRegister (ISW_MUX、0x0408);
(图2 50毫秒后延迟*****
AFE4300_readRegister (ADC_DATA_RESULT);
秘书长的报告
我得到的结果是0。
再次使用 IQ 模式:
(图2 使用 Iq 模式********
AFE4300_writeRegister (ADC_CONTRAL_REGISTER2、0x0060);
AFE4300_writeRegister (DEVICE_CONTROL1、0x6006);
AFE4300_writeRegister (IQ_MODE_ENABLE、0x0800);
AFE4300_writeRegister (DEVICE_CONTROL2、0x0000);
AFE4300_writeRegister (BCM_DAC_FREQ、0x0000);
AFE4300_writeRegister (BCM_DAC_FREQ、0x0020);
AFE4300_writeRegister (DEVICE_CONTROL2、0x1800);
******** 将数据 采集 速率设置为32*********
AFE4300_writeRegister (ADC_CONTRAL_REGISTER1、0x4120);
(图2 设置频道*********
AFE4300_writeRegister (VSENSE_MUX、0x0000);
AFE4300_writeRegister (VSENSE_MUX、0x0408);
AFE4300_writeRegister (ISW_MUX、0x0000);
AFE4300_writeRegister (ISW_MUX、0x0408);
(第5颗星 阅读 i ********
AFE4300_writeRegister (ADC_CONTRAL_REGISTER2、0x0063);
**** 10毫秒后延迟。*******
I = AFE4300_readRegister (ADC_DATA_RESULT);
(第5颗星 阅读问题********
AFE4300_writeRegister (ADC_CONTRAL_REGISTER2、0x0065);
**** 10毫秒后延迟。*******
Q = AFE4300_readRegister (ADC_DATA_RESULT);
秘书长的报告
同样、结果为0!
这就是我将电路板连接到测试阻抗(并联 RC)的方法:
我用一根简单的导线将 IOUT0和 VSENSE0连接到 RC 端的一端、将 IOUT1和 VSENSE1连接到另一端 我知道数据表图12中有一个电路可帮助电极读取更准确的阻抗、但我发现它不能导致读数为0、并且不是必须首先将探针连接到此电路的原因 为了简单起见、我绕过了它。 我还尝试了从 RC 电路到芯片的直接路径以及通过运算放大器的路径、但结果没有改变(P4或 P6上的跳线)。 我这次还使用 RN0和 RP0上的校准电阻尝试了相同的代码、地址如下:
AFE4300_writeRegister (ISW_MUX、0x0101);
AFE4300_writeRegister (VSENSE_MUX、0x0101);
但我无法获得除0以外的任何结果。 我还将到芯片的路径从直接更改为放大(P8或 P9上的跳线)、但未显示任何结果。 我连接了我设计的电路板、如下所示。 我知道设计可能不是最佳的、但我不认为这可能会导致我面临的问题。 我现在是个无头绪的人、我不知道要测试什么、也不知道要做什么、因此您提供的任何线索都可能会有所帮助。
感谢你能抽出时间、