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.

[参考译文] ADS8699:有关ADC重置,写入范围_sel_reg和二进制电压转换的帮助

Guru**** 1125150 points
Other Parts Discussed in Thread: ADS8699
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/data-converters-group/data-converters/f/data-converters-forum/1091406/ads8699-help-regarding-adc-reset-writing-to-range-_sel_reg-and-binary-to-voltage-conversion

部件号:ADS8699

TI技术支持团队,您好!

在 本论坛上我上一篇文章的帮助和建议下 ,我设计了一个带有两个TI ADS8699 18位100kHz ADC的电路板,它将用于测量0到5V之间的模拟电压。  在写入任何要注册的内容之前,我使用默认范围设置(双极3*Vref)对主板进行了测试,方法是对ADC输入应用3.3V电压,并成功地使其工作。 测试输入为3.27V,相应的ADC测量值非常接近它(关于3.255。 )。 测量差异很小,因为我的输入电压不精确,而且我使用电缆进行连接。 我使用了以下设置。

将csADC设为低电平

字节firstByte = SPI.transfer (B0万);
字节辅助字节= SPI.transfer (B0万);
字节第三字节= SPI.transfer (B0万);
字节4字节= SPI.transfer (B0万);

将csADC设为高

为了获得电压结果,我使用了前18位,并使用 了附加的Excel文件进行二进制电压计算,我在本论坛的另一篇文章中找到了与ADS8699 ADC相关的信息。 成功读数后,我试图写入range_sel_reg,以使ADC输入范围0-5.12V,但我失败了。

我有以下问题。

1.我尝试使用以下命令写入range_sel_reg,以便将ADC输入范围调整为0-5.12V。 然后,通过再次应用~3.3V测试输入,我测量了ADC输出(约17.0235万十进制)。 使用Excel文件并将Excel中的range参数设置为1.25 ,我得到0.76V。 我认为我使用Excel文件的方式有误,或者我不是写在范围内,请正确选择"注册"。 我的寄存器配置命令是:

将csADC设 为低电平
SPI.transfer (0xD4);//1101.01万
SPI.transfer (0x14);// 1.01万
SPI.transfer (0x00);
SPI.transfer (0xB);// 1011
将csADC设为高

请问我的错在哪里?

2.我有连接到ADC复位引脚的复位引脚。 我正在使用它们在通电时进行重置。 以下命令是否足以使ADC复位,是否需要额外的命令?

使ADC复位引脚 处于低位

等待20毫秒

使ADC复位引脚高

3.在将1011写入range_sel_reg后,无法获得预期的电压结果,我尝试使用以下命令读取range_sel_reg,以查看我是否能够写入寄存器。  

将csADC设为低电平

SPI.transfer (0xC8);//1100.1万
SPI.transfer (0x14); // 1.01万
SPI.transfer (B0万);
byte reading=spI.transfer(B0万);//我希望读取字节中有1011

将csADC设为高

延迟1秒后,我尝试连续读取range_sel_reg。 每次通电时我都会读取预期结果(1011),但之后我总是得到0。 这是预期行为吗?

感谢您的帮助,  

Ahmet

e2e.ti.com/.../3302.ADS869x_5F00_FormatConversion_5F00_DL-_2800_2_2900_.xlsx</s>2800 2900

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好,Ahmet:

    在此传输中,您只显示28位。 但是,所有寄存器写入的长度都应该为32位。

    您的最终传输(0xB)应为0x0B,因为您正在写入range_sel_REG的位7:0 (如果要禁用内部VREF,位6也可能为1)。

    [quote userid="44.9242万" url="~/support/data-conders-group/data-conders/f/data-conders-forum/109.1406万/ads8699-help-fution-adC-reset-write-to-range-_sel_reg-and_binary-to-voltage-conversion ">8699 ">使csADC 降低
    SPI.transfer (0xD4);//1101.01万
    SPI.transfer (0x14);// 1.01万
    SPI.transfer (0x00);
    SPI.transfer (0xB);// 1011
    将csADC设为高

    回读的前两个字节(使用READ_HOWORD命令)似乎是正确的,但我希望您根据ADS8699数据表中的命令列表(表7-5)再发出两个零字节。

    请纠正这些问题,并告诉我您是否获得了正确的结果。

    -Bryan

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    谢谢,Bryan。

    您好,Ahmet:

    请使用随附的文件进行单极输入转换。 另外,由于 一个错误,我更新了双极计算。 如果您有任何疑问,请尝试并告知我。

    此致,

    戴尔

    /cfs/file/__key/communityserver-discussions-组件文件/73/ADS869x_5F00_FormatConversion_5F00_DL_5F00_2022.xlsx

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好,Bryan,您好,Dale,

    感谢你的帮助。 现在,我可以更改范围并获得结果。

    DALE,感谢您提供计算单极转换输出电压的文档。 在设计电路板和编码时,我使用了您在先前有关ADS8699的帖子中的答案。 他们帮了我很多。

    此致,

    Ahmet  

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好,Ahmet:

    很高兴我们能提供帮助。 如果您需要有关ADS8699的其它问题的进一步帮助,请启动新线程,我们将在那里为您提供支持

    -Bryan