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.

[参考译文] ADS8354:不能更改CFR寄存器中的所有值

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

https://e2e.ti.com/support/data-converters-group/data-converters/f/data-converters-forum/1101860/ads8354-can-t-change-all-values-in-cfr-register

部件号:ADS8354
主题中讨论的其他部件: TMS320F28.0049万

您好,

我有一个微控制器,它与ADS8354通信。 我要将配置更改为:

RD_DATA_Lines = 1,

input_range = 1,

Ref_SEL = 1。

因此,我必须向ADS发送以下字来更改配置:1000.11万10000000b +1000万 + 0x00h (总共32位)

发送此配置后,我要检查配置是否正确并发送:11万00000000b +0万 + 0x00h + 0x00h (总计48位)

ADC在下一帧中的应答为:0.01万00000000b +0万 + 0x00h + 0x00h (总计48位)

这意味着只设置了RD_DATA_Lines的配置。 我希望 RD_DATA_LinesINPUT_RANGEREF_SEL都已设置。

我做错了什么?

图例:

A (SPI_A)是SOMI行,

SIMO (SPI_A_In)是SIMO线路。

CS1是芯片选择,CS2在这种情况下不相关。

非常感谢

Sebastian

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

    您好,Sebastian:

    感谢您的帖子。

    我相信你在下面分享的写命令中有一个错误。 您写入的位(B[11:0])似乎向左偏移一位。 正确的命令为 1000.011万01000000b (100万 (粗体 表示前四个命令位B[15:12])。

    因此我必须向ADS发送以下字来更改配置:1000.11万10000000b +1000万 + 0x00h (总计[32bit]

    *Edit*-仔细查看SPI捕获,上面的文本似乎只是一个拼写错误。 如果是这种情况,SDI帧似乎正在正确发送。 可能只有回读不起作用。 发送read命令后,下一帧中的响应应以0011b (R[15:12])开头。 让我继续更仔细地研究这个问题,并在短期内向各位提出其他建议。

    此致,

    Ryan

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

    您好Ryan:

    感谢您的回答。 我在帖子中写的错误命令确实是打字错误。

    我使用SPI模式0,这是ADS8354的正确设置吗? 我在数据表中找不到这种显式。

    我是否也可能通过应用一个共模电压高于Vref/2的输入信号来损坏ADC? 尽管AINP和AINM的电压始终< AVDD。

    此致,

    Sebastian

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

    您好,Sebastian:

    大多数SAR ADC上的接口不遵循常规SPI模式配置。 相反,我们指定了SDI和SDO分别用于数据启动和数据捕获的时钟边缘。

    我将包括下图作为参考:

    SDO上的数据在SCLK下降沿上启动,并应由主机控制器在随后的SCLK上升沿上捕获。 我认为这最接近SPI模式3 (CPOL和CPHA = 1),因为上升边也是后边。 您可以使用数据表中的数据启动表准确了解SDO上的每个位何时启动。  

    对于SDI,ADS8354将捕获SCLK下降沿上的数据。 数据必须在SCLK下降边缘之前至少5 ns有效,在SCLK下降边缘之后5 ns有效(即设置/保持时间)。 控制器应更改SCLK上升沿上的SDI。 这主要类似于SPI模式1 (CPOL = 0,CPHA = 1)。

    您认为这可能是寄存器读/写命令问题的原因吗?  

    此致,

    Ryan

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

    您好Ryan:

    感谢您的解释。

    我尝试了不同的模式,但我却以某种方式使它工作。 我将微控制器(TMS320F28.0049万)更改为模式3 (带延迟的下降边缘)。 SPI在SPICLK下降边缘前半个周期传输数据
    在SPICLK信号的下降边缘发出信号并接收数据。 -> TMS320F28.0049万数据表中的定义),用于将信息写入ADC,并且它似乎起作用。 ADC的响应为0.011万01000000b。100万。 因此,数据已经存在,但我希望收到0.1101万10010000000b (10.01万 (参见0万参见ADC数据表中的表9)。 此问题似乎以前发生过:

    https://e2e.ti.com/support/data-converters-group/data-converters/f/data-converters-forum/79.6668万/ads8353-cfr-register-data-read-back</s>8353

    要阅读,我必须切换模式。

    此致

    Sebastian

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

    您好,Sebastian:

    这听起来肯定是进步。 您 是否在逻辑分析器上看到正确的响应,并且MCU可能没有正确捕获(即缺少响应单词0011b的前几位)?

    此致,

    Ryan