TI的工程师您好,问题附在图片里面,这边的软件包是根据官网的ADS7945/7946来写的,因为官网这2个型号是通用的,但是7945是差分的,7946是单端的,这边一直怀疑是软件编程有问题,请各位工程指教,我也把软件代码附上,如描述不够清楚,请在下方提出我再补充
下面是软件的代码
unsigned int getdataADS7945(unsigned char GetCHSEL)
{
unsigned char t;
unsigned long hd;
unsigned long DataReadTemp;
hd = 0;
DataReadTemp = 0;
// GPIO_PinOutSet(gpioPortF, 3); //不掉电…
GPIO_PinOutClear(gpioPortF, 3);
if(GetCHSEL == 1)
{
GPIO_PinOutClear(gpioPortF, 2); //选择CH1…
}
else
{
GPIO_PinOutSet(gpioPortF, 2);
}
GPIO_PinOutClear(gpioPortF, 4); //CS脚拉低…
// GPIO_PinOutClear(gpioPortF, 5);
for(t=0;t<32;t++)
{
GPIO_PinOutSet(gpioPortF, 5);
// Delay(10);
hd<<=1;
GPIO_PinOutClear(gpioPortF, 5);
// Delay(10);
DataReadTemp = GPIO_PinInGet(gpioPortE, 8);
hd|=DataReadTemp;
// Delay(10);
}
hd>>=2;
hd = hd & 0x03fff;
GPIO_PinOutSet(gpioPortF, 4); //CS脚拉高…
// GPIO_PinOutSet(gpioPortF, 5);
return hd;
}
Amy Luo:
您好,
ADS7945/7946的基准电压范围最小都是2.5V,电路图中接的是2.048V,建议先将基准电压修改一下,看看是否可以解决问题。
user6215961:
回复 Amy Luo:
好的工程师我改一下,然后有什么问题我再跟您回复
user6215961:
回复 Amy Luo:
TI工程师您好,基准电压改用2.5v的效果比用2.048v还用再差一些
Amy Luo:
回复 user6215961:
刚注意到输入信号加了上拉至VREF,这样就相当于给输入信号加了一个VREF的直流信号,即使不加输入信号,输出也会是最大值3FFF。VCC电压是多少呢,对于ADS7946,AINx至GND所能承受的最大电压是AVDD+ 0.3,建议确认一下ADS7946的AINP是否过压损坏。
user6215961:
这个是更改成2.5v的测试记录
user6215961:
回复 Amy Luo:
VCC是3.3V
Amy Luo:
回复 user6215961:
为什么加上拉R1和R9至VREF?您这样就改变了输入信号的直流电压。
两通道存在相互影响应该与PCB设计有关,两输入通道走线距离是不是比较小,造成两通道信号相互影响。
user6215961:
回复 Amy Luo:
两个上拉的电阻现在没有使用了
user6215961:
回复 Amy Luo:
TI工程师您好,这边看了一下只是多加了一个电阻,其他有什么疑问请您提出来一下