主题中讨论的其他器件: OP07、 ADS8695
从 ADS 8689的输出获得的数据中存在10%的误差。 是否有任何原因?
缩写设置为单极0V ~ 10V。
发送命令[32'b1101_0000_0001_0100_0000_0000_0000_0000_1001]后、读取 ADC 的值。
※英语可能很奇怪。 我很抱歉
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.
您好 Lucas、
导致较大误差的原因有很多:前端电阻较大、基准电压不稳定、布局不良、信号源等 最好检查您的电路原理图、还需要有关测试的更多信息(您的输入信号、包括信号电平和发生器、您获取的原始数据)。 此外、我想查看您的时序以确保它正确、包括 CONVST/CS、SCLK、SDO 和 SDI 在内的两个帧将非常好。
您对 RANGE_SEL_REG 进行编程的命令是正确的、但我不确定是连续将其发送到 ADC 还是仅在器件加电后发送一次。
期待了解您的更多信息。
此致、
戴尔
Dale、
感谢您的回答。
首先、我确实连接了一个电路。 你有什么问题吗?
我在修复当前条件的状态下读取 ADC 的输出、输入电平为8.91V。
接下来、我在 FPGA 中控制 ADS8689。
关于 RANGE_SEL_REG、在电源注入后、在取消复位后、onece 命令会传输。
我确认的传输命令与逻辑仿真完全相同。
ADC 的输出与下图类似。
我读取的数据为"16'hC87E"。
由于它的 C87E (h) x156.25μV =8.019V、因此10%会偏离理想电平。
还有事我没在听吗?
谢谢!
此致、 Lucas.Ya
您好 Lucas、
我现在也测试过它。 在测试中、我将一个可调电压源(未校准)连接到 ADC 的模拟输入端、并将输入范围更改为0-10V。 在所选的9.109V 电压下、ADC 将此电压发送为响应(蓝色= SCLK、黄色= SDO):
我的微控制器将其读取为 E43Fh、对应 于58431 x 156.25uV = 9.129V。 与您的图表相比、我认为它看起来是一样的。
我不知道我是否正确、但0V 看起来是这样的:
如果我将输入范围更改为 有符号值范围(例如-12至12V)、则 ADC 的0V 响应如下所示:
您是否确实确定 ADC 的输入电压正好为8.91V? 例如、您是否测量过它?
此致
您好 Lucas、
我为答复迟了表示歉意。 Salacia 是对的、如果 CPOL 和 CPHA 都为0、那么您时序中的数据为0xE43F 而不是0xC87E。 通过在 SCLK 的上升沿检查每个 SDO 数据位(这是第一个边沿、CPHA=0)、您得到的实际数据为0xE43F、对于2.5Vref 输入范围(0-10.24V)为9.129V。 捕获并显示的正时 Salacia 清晰可见。
我有同样的问题、我不知道您是否准确测量了 ADC 输入端的电压、通常在放大器之前应使用精密直流信号发生器进行测试。 此外、 对于该16位 ADS8695 ADC、OP07不是精密放大器、因为它具有更高的失调电压和其他规格、放大器反馈中的10千欧会产生噪声、如果读数正确、RC 滤波器中的电阻器为0欧姆、 这个带有电容器的电阻器将不能过滤来自前端电路和源极的任何噪声。
我附加了一个简单的 Excel 文件、用于根据代码进行电压计算。
e2e.ti.com/.../ADS8681-Family_5F00_FormatConversion.xlsx
谢谢、Salacia。
此致
戴尔