i|=SPI2_ReadWriteByte(0x00)<8;
i|=SPI2_ReadWriteByte(0x00);
SPI2_ReadWriteByte (0x00);
SPI2_ReadWriteByte (0x00);
ADS868X_CS=1;
printf ("\r\n%d\ti\r\n",i);
当我使用此命令,我将其设置为0-10.24v 时,我无法获得正确的ADC数据,就 像它返回1.6383万,而它是46.6mv一样
This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
i|=SPI2_ReadWriteByte(0x00)<8;
i|=SPI2_ReadWriteByte(0x00);
SPI2_ReadWriteByte (0x00);
SPI2_ReadWriteByte (0x00);
ADS868X_CS=1;
printf ("\r\n%d\ti\r\n",i);
当我使用此命令,我将其设置为0-10.24v 时,我无法获得正确的ADC数据,就 像它返回1.6383万,而它是46.6mv一样
您可以使用RVS了解设备在对话 阶段的完成时间,请注意,RVS可能取决于所使用的输出协议。
我建议查看 数据表,从第10页开始了解设备的计时要求。 您使用的频率取决于 您使用设备的方式,只需确保 在设备功能范围内。
此外,如果您想了解ADC的更多信息, 有一个很好的资源,即Precision Labs- ADC ,可以提供真正的帮助
此致
Cynthia
您好,Biao:
您的原理图对我来说很好,但有一些问题:
1. 您的正在拆分地面 ,R22的接地连接点远离ADC, 而且您只使用两层PCB 板,而且模拟接地面积非常小。 您必须确保GND和AGND/REFGND之间的电压差小于+/-300mV,因此强烈建议使用实心接地平面,数据表中也提到了这一点。
2. 双层PCB布局不容易实现16位ADC的性能,而且您的电路板尺寸很小,所有电路(包括DC-DC和MCU数字电路)都组合在一起。 有一个干净的布局非常重要,以避免从数字/电源到模拟电路的任何干扰。
3. ADC的AVDD用于内部信号采集和转换,因此,拥有一个干净且旁路良好的电源非常重要。 低噪声LDO是 为ADC提供电源的良好解决方案,例如TPS7A47xx,这是我们的EVM板中非常常用的器件。
有关详细信息,请参阅ADS8689数据表第61页中的布局指南。
除了 上述布局建议之外 ,您能否告诉我们您的示意图中电阻器和电容器的值? 另外,请从范围上传您的计时屏幕截图,以便我们检查您的计时是否正确,如数据表中的图3。
我所指的测试条件是:
您是否在Q2上应用了测试信号? 测试电压是多少 ?信号来自何处(精密信号发生器或其他)? 您从ADC获得的输出转换代码是什么? 等等
谢谢。
此致
戴尔
您好,Biao:
当您将ADC输入范围设置为2.5xVref( 0-10.24v)时,如果您得到的转换码是1.6383万,则相应的电压约为2.56V [(1.6383万/65526)*ADC]<xmt-block0>6.5526万 10.24。 我建议您在不更改输入范围的情况下进行测试,以防您的数字信号计时出现任何潜在问题,在为ADC通电后,默认输入范围为±3×VREF (内部参考为4.096V时为±12.288V),请上传您的转换数据文件,我可以为您检查。
请注意:
1.请勿将电源用作输入测试信号,因为该代码对于嘈杂的电源来说将不稳定。
2.让我知道您的电阻器和电容器(输入)在原理图中的值。
3.从SCLK,/CS,SDO和SDI范围上传您的计时屏幕截图,以便我检查您的计时是否正确。
顺便说一下,正如我在前面的答复中所提到的,您的双层PCB布局板和分割地面将是在ADS8689上实现性能的一个挑战,即使该功能在您完成上述测试后仍能正常工作。 如果可能,请重新设计您的PCB板。
谢谢。
此致
戴尔
谢谢。
我的原理图中电阻器和电容器的值
我从ADC获得的输出转换代码:我得到平均10个数据。
/*设置量程0 - 2.5 * 4.096 */
ADS868X_CS=0;
delay_ms (1);//延时ms
SPI2_ReadWriteByte (0xD014);
SPI2_ReadWriteByte (0x0009);
ADS868X_CS=1;
浮点ADC_FILTER (U16 *DATA,U16数字)
{
U8 I=0;
U16最大值=0,最小值=0;
u32 sum=0;
浮点平均值=0;
最大=*(data+0);
最小值=*(data+0);
总和+=*(data+0);
对于(i=1;i<num; i++)
{
IF (最大<*(data+I))
{
最大=*(data+I);
}
如果(最小值>*(data+I))
{
最小值=*(data+I);
}
SUM +=*(data+I);
}
总和=总和-最大值-最小值;
Average =(float)((float) sum/(float)(num-2));
平均回报率;
}
void TIM3_IRQHandler(void)// TIM3中断
{
静态U16 ADC_RateDataGroup[ADC_FILTER_NUM]={0};
静态U16 ADC_RateDataCount=0;
检查TIM3更新中断发生与否(TIM_GetITStatus (TIM3,TIM_IT_Update)!= RESET)//
{
IF (ADC_RateDataRedy==0)
{
ADS868X_CS=0;
ADC_RateDataGroup[ADC_RateDataCount]=SPI2_ReadWriteByte (0x0000);//发送读取ID命令
SPI2_ReadWriteByte (0x0000);//发送读取ID命令
ADS868X_CS=1;
ADC_RateDataCount++;
IF (ADC_RateDataCount=ADC_FILTER_NUM)
{
ADC_RateData =ADC_FILTER (ADC_RateDataGroup,ADC_FILTER_NUM)* 10.24 ADC/6.5535万;//100-600
ADC_RateDataRedy=1;
ADC_RateDataCount=0;
}
}
TIM_ClearITPendingBit (TIM3,TIM_IT_Update);//清除TIMx更新中断标志
}
}
好,请告诉我如何 与 您沟通? 9.23190163亿@qq.com