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.

[参考译文] ADS8691:器件配置和寄存器映射

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

https://e2e.ti.com/support/data-converters-group/data-converters/f/data-converters-forum/713143/ads8691-device-configuration-and-register-maps

器件型号:ADS8691

我尝试将+/-10.24V 的 RANGE_SEL_REG 寄存器更改为0001、但当我发送写入命令时、它不会改变。 我读回地址、说我更改了它、但输出仍然是+-12.288。 我尝试了分解并以二进制形式发送命令、然后读回它、它仍然显示我正在写入寄存器而没有任何变化。 我已经尝试使用16位写入命令将16位1写入地址15h、使用 LSB 写入命令将8位1写入地址14h。 对于14h LSB 写入、I SEND 命令为 1101 0100 0010 1000 0000 0000 0001。 对于15h 16字节写入命令、我发送 1101 0000 0010 1010 0000 0000 0001。 我还尝试了地址为14h 、1101 0000 0010 1000 0000 0000 0001的相同写入命令。 在所有这些情况下、我将读取命令发送到相同的地址、它返回1、但输入范围仍为+-12.288。 我的设置是一个 Tensy 3.6 MCU、用于驱动 ADC 并串行打印转换数据值、精密电压校准器连接到 ADC 的信号输入。 其他的都可以正常工作。

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

    Noah、您好!

    欢迎访问 E2E 论坛。

    由于寄存器地址为8位,因此应在寄存器地址之前添加“0”,以使     地址14h 为0_0001_0100b。

    半字写入命令(将两个字节的输入数据写入指定的地址)、address=14h 作为示例:

                  数据帧:        <11010_00><0_0001_0100><0000 0000><0000 0001>

                                    -->          1101 0000 0001 0100 0000 0000 0001

    请尝试此命令并检查结果。

    谢谢。

    此致

    戴尔

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

    非常感谢! 我知道 LSB 会因为存储器对齐而被忽略、但如果使用9位地址而不是8位地址、并说"9位地址的 LSB 始终被忽略并被视为0b"、这可能会在将来以某种方式加以澄清。 再次感谢!

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

    Noah、您好!

    感谢您的反馈、很高兴这解决了您的问题。

    数据表中对"9位地址的 LSB 始终被忽略并被视为0b"的描述、因为:

    • 要在一条命令中写入/读取字节0和字节1 (或字节2和字节3)、应使用低字节地址(字节0或2)。 如果给定了字节1或3的地址、则 LSB (位0)将被忽略、因为它现在是一个16位地址。

    感谢、我们将在下次更新数据表时明确说明。

    此致

    戴尔