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

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

器件型号:ADS8691

大家好、  

有人能不能向我解释一下当我对寄存器进行编程时实际会发生什么。  

例如、在该数据表中:www.ti.com/lit/ds/symlink/ads8691.pdf  

是0x02、它引用位23-16的地址= 02h、还是将0x02= 0010放入32位整数中、使其成为0000 0000 0000 0000 0000 0000 0010

该示例中设置了器件地址、并应从16-19位读取该地址、使其成为以十六进制表示为2000h 的0000 0000 0000 0010 0000 0000 0000 0000

希望有人会感到困惑、并能提供帮助。

此致、

Dukel

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

    您好!

    感谢您在 E2E 上提出的问题、我很快会回来的。

    此致

    戴尔

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

    可以找到我的问题的答案吗?

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

    尊敬的 Dukel:

    我为答复迟了表示歉意。 02h 是寄存器位23-16的地址。

    以下是使用 READ_HWORD 命令读取 ALARM_H_TH_REG 寄存器的16位内容的示例:

    (位7-0 = 24h 的字节0地址、位15-8 = 25h 的字节1地址、位23-16的字节2地址= 26h、位31-24的字节3地址= 27h)

    1. READ_HWORD 命令读取寄存器的16位(μ 0~15位):              数据帧:      <11001_xx><0_0010_0100><00000000><00000000000000000000000000000000>
    2. READ_HWORD 命令读取寄存器的16位(μ 16~31位):            数据帧:     <11001_xx><0_0010_0110><00000000><00000000000000000000000000000000>

    请注意以下信息:

    1. 应在地址之前添加一个“0”,以便地址24h 具有一个9位地址:0_0010_0100b。
    2. 始终忽略9位地址的 LSB 并将其视为0b。
    • 要在一条命令中写入/读取字节0和字节1 (或字节2和字节3)、应使用低字节地址(字节0或2)。 如果给定了字节1或3的地址、则 LSB (位0)将被忽略、因为它现在是一个16位地址。
    • HWORD 命令只能写入字节0+字节1或字节2+字节3等地址。 它们无法写入字节1+字节2。

    如果您有任何其他问题、请告诉我。 谢谢。

    此致

    戴尔

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

    感谢你的答复。

    但是、例如、当我在程序中放入以下行时:
    #define RANGE_SEL_REG     0x14 //输入范围选择控制寄存器

    我要写入的地址是0x14 (14h),假设我要启用内部基准并获取±2.5*Vref。 我首先写入0x14 (10100)、然后写入0000 0000 0001的32位、其中第6位为0以启用内部基准、第3-0位为1以选择±2.5Vref
    位:  31-16 15-8  7-4  3-0

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

    您好!

    地址应与 Write 命令和数据组合在一起以创建32位操作码、请参阅下表:

    此致

    戴尔

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    因此、如果我想向 RANGE_SEL_REG 写入数据表中指定的值0001b =±2.5×VREF、我发送的变量应为:11010_00_000010100_000000000001。 转换为十六进制的值为:D0140001

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

    尊敬的 Dukel:

    没错、感谢您选择 TI 精密 ADC。

    此致

    戴尔