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.

[参考译文] ADS131M08:ADS131m08 SPI 通信问题

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

https://e2e.ti.com/support/data-converters-group/data-converters/f/data-converters-forum/1366886/ads131m08-ads131m08-spi-communication-problems

器件型号:ADS131M08

工具与软件:

您好、专家!

我正在尝试通过 SPI 在 ads131m08和 f280049 uC 之间建立通信。 我在了解它应该如何正常工作方面存在很大的困难。

实际上、我有一个例程应该简单地从 ADC 读取数据。 SPI 时钟设置为10MHz、ADC 时钟为8.192MHz。

我的步骤是:

1.复位 ADC,等待它退出复位。

2.开始发送 NULL 帧,读取数据。

我发送的帧为10个零字、每个字为24位、因为复位后、ADC 默认具有24位大小的字。

我的阅读例程执行以下操作:

-等待 ADC 信号 DRDYn 变为低电平。

-我在我的 SPIA 的 SPITXBUF 中放入15个16位字的零

-我等待在 SPIA 的 FIFO RX 中接收15个字。

-我等待来自 ADC 的 DRDYn 信号再次上升、然后重复。

我不明白的是、DRDYn 信号似乎具有不可预测的行为、有时它在读取一帧后正常上升。 有时它会保持低电平、并在下一次转换发生之前生成非常窄的 pike (这意味着 DRDYn 保持低电平约244us)。 有时 DRDY 会保持低电平4ms、直至 ADC SPI 超时结束。

要从 ADC 正确读取数据、我缺少什么?

是否有一些示例代码、用于将 uC 的 SPI 外设连接到此 ADC? 只是为了比较我的错了什么??

此致

E·佩鲁兹

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

    尊敬的 Emanuele Peruzzi

    今天是美国的节日、我们将在本周晚些时候回复您的帖子。 感谢您的耐心等待

    -Bryan

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

    您好!

    我在站点的"ADC software"选项卡下找到软件示例。 如果与 TI 例程相比、我看到我的代码没有什么错误、问题是我的 ADC 有缺陷。 用新模块代替它可以解决问题、器件现在可以正常通信。

    请注意、为了使正确的 SPI 通信正常工作、我必须将主 SPI 配置为时钟= 0、极性= 0。 当极性= 1时(如 ADS131m0x 数据表建议、如果 I m 没有错误)、我只读取不良数据。 好的。

    谢谢!

    此致

    E·佩鲁兹

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

    尊敬的  Emanuele Peruzzi

    感谢您的更新、很高兴您找到了它。

    建议使用 SPI 配置(CPOL=0和 CPHA=1)、该 配置应该适用于 ADS131M08 ADC、请参阅我的时序以使用 RREG 命令读取增益寄存器(0x4地址)、SPI 配置按预期工作。

    Br、

    戴尔