主题中讨论的其他器件:ADS114S06、
工具与软件:
你(们)好 是多少。 12路输入配置。 我 将所有输入从外部连接至 AINCOM。
内部2.5V 基准
我在0和0x0B 之间切换 PMUX。 还为通道激活500uA IDAC。
对于输入 AIN0 - AIN7、我得到0 - 12之间的 ADC 读数。 这是可以的。
对于输入 AIN8-AIN11、我得到大约330。 这就是问题所在。
如果我不激活 IDAC、我将获得0-12 ADC 读数。
如果我测量输入和 AINCOM 之间的 mV、通道激活时、该值为6mV。 所有通道均具有6mV 电压、即使是"良好"通道也是如此。 似乎不是问题。
AIN8-AIN11也恰好是可选 GPIO、但它处于默认状态(模拟输入)
我已检查逻辑分析仪的 SPI 通信、正确无误。 还按照预期制作了寄存器回读和寄存器。
能否帮我理解一下、通道8-11有什么问题? 我有6个这样的板、它们的行为都相同。 我似乎是某种配置问题。
初始配置:
const uint8_t ADS114_S08B_init_commands[]={
0x03、//起始地址
ADS_DELAY_14 + ADS_PGA_BYPASS + ADS_GAIN_1、//对于 xx08B 芯片必须为延迟14
对于 xx08B 芯片、ADS_FilterType_LL + ADS_DR_50、//bit7必须为0且位4 1
ADS_REFP_BYP_ENABLE + ADS_REFN_BYP_ENABLE + ADS_REFSEL_INT + ADS_REFINT_ON_Always、
对于 XB 芯片、ADS_IDACMAG_500、//7:4必须为零
ADS_IDAC2_OFF + ADS_IDAC1_OFF、
0、//VBIAS 控制
0、//系统控制。 对于 XB 芯片、1:0必须为0
};
通道切换命令:
SPI1_ByteWrite (0x40 + INPMUX_ADDR_MASK);//WREG 命令及起始地址
SPI1_ByteWrite (6);// data length - 1
SPI1_ByteWrite ((Ch_no << 4)+ ADS_N_AINCOM);
SPI1_ByteWrite (ADS_delay_14 + ADS_PGA_BYPASS + ADS_GAIN_1);//对于 xx08B 芯片、必须延迟14
SPI1_ByteWrite (ADS_FilterType_LL + ADS_DR_50);//对于 xx08B 芯片、bit7必须为0、位4必须为1
SPI1_ByteWrite (ADS_REFP_BYP_ENABLE + ADS_REFN_BYP_ENABLE + ADS_REFSEL_INT + ADS_REFINT_ON_ALWAYS);
SPI1_ByteWrite (ADS_IDACMAG_500);对于 XB 芯片、//7:4必须为零
SPI1_ByteWrite (ADS_IDAC2_OFF + Ch_no);//
SPI1_ByteWrite (ADS_VBIAS_LVL_DIV2 + 0);//Vbias