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.
工具与软件:
您好、专家!
我正在尝试通过 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、
戴尔