主题中讨论的其他器件: ADS7945
工具/软件:Code Composer Studio
大家好、TI 的工程师、
问题描述参考电压为2.048V
需求:两个信号输入、POS 信号范围0-2.048V (VREF);CMD 信号范围0-2V:所有直流信号。
问题1:当使用 ads7946进行采样时、当 CMD 电压为 VREF/2时、代码转换值达到最大值16384、并且 VREF/2 ~ 2V 再次循环。 这种现象与芯片手册的介绍不一致
有关测试记录、请参阅附件
当同一电路被 ads7945取代时、相应的转换代码值0-Vref 电压为0 ~-16384、这与手册中描述的 ads7945不一致。
通过这种测试现象、人们认为 ads7945和 ads7946手册的引入与实际的芯片模型正好相反
此处的软件包是根据官方网站上的 ads7945 / 7946编写的、因为这两种型号是通用的、但7945是差分的、7946是单端的。 始终怀疑软件编程有问题。 请提供您的工程建议。 我还随附了软件代码。 请提供您的指导。 如果描述不够清楚、请在下面提交我的补充说明
这是软件代码
unsigned int getdataADS7945 (unsigned char GetCHSEL)
{
unsigned char t;
无符号长整型 HD;
unsigned long DataReadTemp;
HD = 0;
DataReadTemp = 0;
// GPIO_PinOutSet (gpioPortF、3);//不掉电……
GPIO_PinOutClear (gpioPortF、3);
if (GetCHSEL = 1)
{
GPIO_PinOutClear (gpioPortF、2);//选择CH1……
}
其他
{
GPIO_PinOutSet (gpioPortF、2);
}
GPIO_PinOutClear (gpioPortF、4);// CS脚拉低……
// GPIO_PinOutClear (gpioPortF、5);
for (t=0;t<32;t++)
{
GPIO_PinOutSet (gpioPortF、5);
//延迟(10);
HD<<=1;
GPIO_PinOutClear (gpioPortF、5);
//延迟(10);
DataReadTemp = GPIO_PinInGet (gpioPortE、8);
HD|=DataReadTemp;
//延迟(10);
}
HD>>=2;
HD = HD 和0x03fff;
GPIO_PinOutSet (gpioPortF、4);// CS脚拉高……
// GPIO_PinOutSet (gpioPortF、5);
返回 HD;
}