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.

[参考译文] ADS124S08:对于某些特定的设置值进行写操作后读取了错误的寄存器值

Guru**** 2391355 points
Other Parts Discussed in Thread: ADS124S08, TMS320F28377D

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

https://e2e.ti.com/support/data-converters-group/data-converters/f/data-converters-forum/1284745/ads124s08-reads-wrong-register-value-after-a-write-operation-for-certain-specific-setting-values

器件型号:ADS124S08
主题中讨论的其他器件: TMS320F28377D

尊敬的先生:

我能够使用 RREG 正确读取默认寄存器(使用 SPI 连接)。 但我在写入和读回一些配置寄存器值时遇到了一个奇怪的问题。 例如:

在我写入时使用 INPMUX 寄存器:

0x12带有 WREG I 回读0x13 (似乎无法将 MUXN 设置为 AIN2)

使用 WREG 为0x16、我回读0x17 (似乎无法将 MUXN 设置为 AIN6)

但有趣的是、它适用于其他设置 (例如 AIN3、AIN4等)

PGA 寄存器也是如此。 当我尝试将 PGA 增益选择设置为2 (0bxxxxx001)时、无法做到、我仍然使用相同的写入和读取方法读取默认值1 (0bxxxxx000)

对于这些观察到的结果、可能的解释是什么。 请参阅随附的逻辑分析仪读数。

非常感谢。

 

图 1.将命令分别写入寄存器02和03值0x12和0x09。

图 2.读取寄存器02和03时分别显示了值0x13和0x08。

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

    尊敬的 Emmanuel O-L:

    欢迎来到 E2E 论坛! 传输数据时、可能使用了错误的相位。  DIN 应在 SCLK 的上升沿发生变化并在下降沿保持稳定。  确保您遵循数据表中所示的 SPI 时序参数。

    此致、

    鲍勃 B

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

    在后台、C 代码中的 SPI 模式设置为 CPOL=0、CPHA = 1、SCLK 设置为5MHz。

    下面是将逻辑分析仪桌面应用程序设置中的极性更改为 CPOL = 0和 CPHA = 1 (逻辑分析仪上的设置)后的结果–两个信号似乎都右移1。 在我之前的图像中、逻辑分析仪应用程序中的 SPI 设置为 cpol=0和 cpha = 0;

     

    问题仍然存在...

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

    尊敬的 Emmanuel O-L:

    您将逻辑分析仪设置为正确的设置、但您真正需要验证和更改的是微控制器。  看一下你的屏幕截图为 MOSI 相比 MISO .  来自您的微控制器的 MOSI 数据使用了错误的相位。  数据输出应在 SCLK 的上升沿发生变化、并在下降沿保持稳定。  对于某些微控制器、CPHA 可能与您可能预期的情况相反、因此请参阅微控制器数据表以验证应如何配置它。

    此致、

    鲍勃 B

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

    Bob B、您好!

    感谢您的答复。 我已经确保了这次正确的相位、数据输出在 SCLK 的上升沿发生变化、并在下降沿保持稳定。 (请参阅下图)

    以下是到5个寄存器(02至07)的写入命令: 0x42 0x05 0x78 0x09 0x93 0x12 0x05 0xF6

    在发出 FIFO 的下一个周期从上述寄存器读回时的响应 0x22 0x05 命令显示为

    0x00 0x00 0x78 0x08 0x93 0x13 0x04 0xF7。

    在我看来、对于一些寄存器、有一些位的翻转(寄存器03、05、06和07)。 可能的解释是什么? 是否仍可能是时钟问题?

    谢谢!

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

    它现在工作。 谢谢... 我必须将 CPOL 和 CPHA 设置为1 (SPI 模式2)、尽管在数据表中另行提到

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

    尊敬的 Emmanuel O-L:

    您可能会认为它可以正常工作、但如果不遵循数据表、则会无法正常工作。 SCLK 必须空闲低电平、数据相位应在上升沿转换、并在下降沿保持稳定。  我已尝试从您上次的示波器截图中说明这是不正确的。

    可以看到您更改的是在之前的一个时钟前发送数据、但在下降沿仍在变化。  下面是读取部分。  请注意、来自微控制器的数据在下降沿发生变化、而来自 ADS124S08的数据在上升沿发生变化、并在下降沿保持稳定。  这表明微控制器使用了错误的 SCLK 相位。  尽管这似乎适用于这一个实例和器件、但时序上的任何变化都可能会在将来引发问题。

    此致、

    鲍勃 B

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

    Bob 您好!

    非常感谢您的演示... 抱歉,我忘了显示最终工作版本的图像。 我解决了 SCLK 的问题、结果似乎是一致的。 请参阅以下内容...  

    谢谢!

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

    尊敬的 Emmanuel O-L:

    不正确。  SCLK 应保持低电平。  您应该校正的是相位而不是更改 SCLK 极性。  您正在使用什么微控制器?  或许我可以帮助您为微控制器提供正确的设置吗?

    此致、

    鲍勃 B

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

    谢谢。

    我正在使用 TMS320F28377D DSP... 我的当前设置为 cpol=1和 cpha=1。  当我将其设置为 cpol=0和 cpha=1时得到错误。   

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

    尊敬的 Emmanuel O-L:

    您需要正确匹配通信。  SCLK 应保持低电平、数据应在 SCLK 的下降沿保持稳定以便于捕捉。

    正如我在之前的帖子中所说的、器件之间的相位设置并不总是匹配、您需要从数据表中验证是否正常运行。  对于微控制器、正确的设置是将 CPOL 和 CPHA 都设置为0。

    此致、

    鲍勃 B

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

    Bob 您好!

    非常感谢。

    请再看一下逻辑分析仪的快照(仍然具有相同的设置)... 数据似乎可以正确读取、正如您在上一篇文章中所述。 -当设置为 cpol=1时, cpha=1在我的情况下,它似乎。 当设置为 cpol=0和 cpha=0时、MISO 上不会显示任何数据-除非我在这里丢失了什么内容

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

    尊敬的 Emmanuel O-L:

    我们需要确保我们谈论的是相同的事情。  有一个微型器件、还有一个逻辑分析仪。  这两者可能具有不同的设置、具体取决于相位的解释方式。  无论使用何种逻辑分析仪、您都需要目视检查通信、以确保它相对于 MICRO 和 ADS124S08是正确的。  完成这一操作后、您可以校正逻辑分析仪以跟随通信。

    我尚未看到您的原理图、因此很难判断 SPI 通信是直接连接还是通过隔离器进行。  我只能假定逻辑分析仪快照位于 ADS124S08的引脚或其附近。  是这样吗?  如果是、则要求 ADS124S08的 SCLK 在 IDLE 时保持低电平。  为什么?  因为当第一个 SCLK 高电平到低电平转换发生时、第一个字节的位7是传输的第一个时钟。  这使得位7没有时间从数据缓冲区中锁存。

    至于微控制器、数据表说明为了遵循 SPI 外设的正确通信、时钟极性应为0、相位应为0。  您是否能够以这种方式设置微控制器并向我显示来自这些设置的通信?  我想您会在线路上的某个位置移动数据、以便通信仅关闭一位。  这些快照将向我们展示确切正在发生的情况、但最后 SCLK 空闲在低电平和不处于高电平是非常重要的、而且在 SCLK 处于低电平时、数据稳定保持在下降沿。

    此致、

    鲍勃 B