工具与软件:
您好、专家!
我正在尝试通过 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·佩鲁兹