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.

[参考译文] ADS1248:从 ADS1248读取数据

Guru**** 2538930 points
Other Parts Discussed in Thread: ADS1248

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

https://e2e.ti.com/support/data-converters-group/data-converters/f/data-converters-forum/932296/ads1248-reading-data-from-ads1248

主题中讨论的其他器件:ADS1248

ART 编号:ADS1248

大家好、

在我的项目中、我将使用两个具有 ADS1248的 RTD 进行温度测量。 我将随附两个文件。 在 SPI_Test1.c 中、我编写了 SPI 通信初始化并在同一主循环中读回 ADS1248。 现在、为了给我的主程序下一个指令、我决定重写主代码、所有初始化例程都作为一个组、信号读数用其他组。 作为其中的一部分、我将 SPI_Test1.c 拆分、如 SPI_Test2.c 中所示 我在第一个通道 AIN0-3上使用100欧姆固定电阻进行比例式测量。 运行第一个代码时、我得到一个等于"6217209"的输出代码值、这是正确的值。 但是、当我运行 SPI_Test2.c 中所示的相同代码拆分为函数时、有时读取时不会得到任何结果、有时我会得到正确的值、有时我会得到等于'8388607,我认为是 FSR 的代码。 为什么会发生这种情况?  

是否可以在不监控 DRDY 引脚的情况下使用 RDATA 命令使 START 引脚持续保持高电平、以便器件在所需时间继续转换和读取数据?

谢谢、

葡萄园 N

e2e.ti.com/.../SPI_5F00_Test1.c

e2e.ti.com/.../SPI_5F00_Test2.c  

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

    您好、Vineyeth、

    这是可以接受的、但当您有时发送 SCLK 以检索数据时、似乎存在时序不匹配。 如果您不监控 DRDY 引脚、则不可避免地会出现小的时序不匹配、这会导致您在获取数据时发生"漂移"。 最终、这将导致样本截断-听起来就像您看到的一样。 因此、我们通常建议监控 DRDY。  

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

    尊敬的 Alex:

    感谢您的回答。 我的目标是每20ms 从 ADC 读取一次结果。 我的电路中还有另外三个 ADC。 主循环的总运行时间限制为20us。 这就是为什么我将 ADC 代码拆分为初始化部分和信号读取部分、 以便在主循环中仅激活信号读取部分。 这是我的想法。 考虑到这一想法、您可以向我提供一个建议、说明如何通过监控 DRDY 引脚来实现这一目标。

    我怀疑、如果我不监控 DRDY 引脚、但仍在读取转换结果、它应该会给我上次存储的转换结果、而不是一些垃圾值、对吧?  

    我尝试使用1us 正脉冲对 START 引脚进行脉冲、以一次获得单次转换。 由于这是单次转换、我认为结果寄存器上的数据不会改变。 我读数是否正确? 如果在脉冲启动后出现这种情况、如果我读取结果、我应该得到正确的值。 使用此方法时、我还会得到大约8388607的相同错误值。

    如何使用 thios ADC 进行单次转换? 我无法使用 SLEEP 和 WAKEUP 命令执行此操作,因为我 无法始终保持 CS/低电平,因为我有其他 SPI ADC。

    谢谢、

    葡萄园 N

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

    您好、Vineyeth、

    查看命令表 表表19。 SPI 命令供参考。 加电和初始化时、我建议发出 SDATAC 命令以停止连续转换。 然后、每次循环时、只需使用 RDATA 命令从每个 ADC 读取一次数据。 这样、您就可以将 START 引脚保持为高电平。  

    是的、但是如果您正在读取结果、那么新的转换就会准备就绪、读取结果将被破坏、因为它将由两个不同的读取结果组成。

    将 START 拉至高电平后必须等待至少3tclk 才能开始读取-可能会超出计时。