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.

[参考译文] ADS8924B:菊花链数据读取的 SCLK 周期少于22 * N

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

https://e2e.ti.com/support/data-converters-group/data-converters/f/data-converters-forum/1423468/ads8924b-daisy-chained-data-readout-less-sclk-cycles-than-22-n

器件型号:ADS8924B

工具与软件:

我们使用3个菊花链 ADS8924BGER 完成了一项设计。 我们将使用 STM32 µcontroller 来读出转换后的数据。 由于 μ µC SPI 外设中存在某些不可预见的硬件限制、我们只能读出64位(因此仅发送64个 SCLK 脉冲)。 数据表中菊花链拓扑章节下有一条注释:"较短的数据传输帧(帧中的 SCLK 数量< 22 × N)可能会导致器件配置错误、必须避免"。 除了偏移校准(3V3参考)之外、所有配置寄存器在我们的设置中都具有默认值。  在采用该配置的初始测试中、未观察到任何错误。  是否有人能提供有关 "错误设备配置"的更多信息以及如何检测这些错误?   

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

    尊敬的 Hans:

    感谢您的提问。 要配置寄存器、数据帧必须是22位、如下所示:

    对于采用菊花链配置的器件、需要 N*22个 SCLK 帧以确保每个器件都配置正确。 如果 SCLK 较少(如示例所示)、则如果有64个 SCLK、但需要22*3=66个 SCLK、则第3个 ADC 的配置数据的2 LSB 可能无法正确传输。 在您的情况下、这将特别重要、因为3.3V 偏移校准的最后2个 LSB 是二进制的1。 第3个 ADC 是否正确配置以进行失调电压校准? 您 可以使用 RD_REG 命令读回偏移校准寄存器的内容、并检查寄存器0x020是否正确设置为0x03。

    如果仅读取转换数据、则每个 ADC 16个 SCLK 就足够了。

    此致、

    Samiha

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

    你好、Samiha! 感谢您的答复!

    在我们的设置中、我们具有启动例程、其中我们使用66个 SCLK 周期配置偏移校准。 配置完成后、我们通过将配置与预期配置进行比较来回读配置、以进行验证。 在 µ 过程中、μ C 控制器的 CPU 处理 SPI 通信。 在此阶段、我们没有位限制。 因此我们知道 ADC 的配置方式符合我们的预期。

    µ 后、SPI 数据读取由 μ C 控制器外设硬件处理、无需 CPU 参与、此处我们只能在64个 SCLK 周期内读取64位。  

    黄色的位表示我们执行的位 不会 读出;  

    据我了解、这些位硬连线到始终为零。  

    读数在示波器中的外观如下:  

    我们在阅读注释时担心的是、这种读取转换数据的方式可能会导致一些错误。 或者64个 SCLK 脉冲被视为配置帧。

    如果我正确理解了您的意思、那么只有在配置阶段、ADC 才需要获得精确的 N*22个 SCLK 周期、这一点很重要?

    48个周期就足够了、这是正确的吗? 在菊花链中、这是否不会导致从第一个 ADC 获取22位、从第二个 ADC 获取22位以及从第三个 ADC 获取4位? 数据表指出、 每个器件中的 ODR 和 IDR 会折叠起来构成一个单个22位统一移位寄存器(USR)。

    请告诉我是否有我误解的东西!  

    此致、  

    Hans-Petter  

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

    尊敬的 Hans-Petter:

    感谢屏幕截图! 可以、 为避免错误配置、只能对22*N 位帧执行寄存器写入。 对于转换数据、您应该可以使用64个 SCLK。 我的一个错误 是、每个器件16个 SCLK 在菊花链配置中足够了–正确的、前两个器件需要22位帧来移出前两个 ADC 中整个22位移位寄存器的内容、然后对于第三个器件的转换数据至少需要16个 SCLK。

    此致、

    Samiha