TI论坛
直播中

赵辉

13年用户 967经验值
私信 关注
[问答]

使用xilinx的k7160t对ads5271的数字信号进行采集,外部输入电压时,FPGA采集到的值比实际的值大,怎么解决?


  • 使用xilinx的k7160t对ads5271的数字信号进行采集,通过sclk与sdata接口将ad配置成Deskew Pattern模式与Sync Pattern模式FPGA这边正确的收到555与fc0.但是当配置成用户模式后或者不配置,我外部输入电压时,FPGA采集到的值比实际的值大。比如,外部输入到ad的电压为0.514v时FPGA采集到的12bit数据为C1A。如果将此12bit数据的最高为认为是符号位,取低11位的数除以2048(4096的一般),计算出来的数据与输入的数据一致。当外部输入0v时,FPGA接收到数据为7dd。请问对ads5271而言最高位是否是符号位?有效数据位是否是11bit?计算电压值是否为FPGA采集到的电压值除以2048? 谢谢!

                                                               

回帖(1)

石玉兰

2024-12-26 16:50:35
针对您的问题,我们可以分步骤来分析和解决:

1. 首先,确认ADS5271的配置和FPGA的接口设置是否正确。确保SCLK和SDATA接口连接正确,并且FPGA的时钟频率与ADS5271的时钟频率相匹配。

2. 检查ADS5271的数据手册,了解其数据格式和有效数据位。根据ADS5271的数据手册,最高位确实是符号位,有效数据位为11位。因此,您在计算电压值时,应该将最高位视为符号位,取低11位的数据进行计算。

3. 检查FPGA的代码,确保在接收到ADS5271的数据后,正确地解析数据格式。您需要将接收到的12位数据的最高位作为符号位,然后取低11位的数据进行计算。计算公式如下:

   电压值 = (接收到的11位数据 / 2048) * 参考电压

   其中,参考电压是您为ADS5271设置的参考电压值。

4. 如果您在配置ADS5271为用户模式后,FPGA采集到的值仍然比实际值大,可以尝试以下方法:

   a. 检查ADS5271的配置寄存器设置,确保其配置正确。
   
   b. 检查FPGA的代码,确保在不同模式下,数据解析和计算方法保持一致。
   
   c. 如果可能,尝试使用其他模式(如Deskew Pattern模式或Sync Pattern模式)进行测试,以排除硬件问题。

5. 如果以上步骤都无法解决问题,可以考虑检查硬件连接和电源供应,确保没有硬件故障或电源问题导致数据采集不准确。

总之,您需要确保ADS5271的配置和FPGA的接口设置正确,同时在FPGA代码中正确解析和计算ADS5271的数据。通过以上步骤,您应该能够解决FPGA采集到的值比实际值大的问题。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分