您好!
当 OFC0-OFC2和 FSC0-FSC2被设定为零时、是否有可能读取一个非零转换结果? 根据等式(3)、它应该是不可能的、但有时我得到0xFFFFFF. 这可能是由 MISO 线路始终处于高电平导致的。 我想确保 、当读取0xFFFFFFF 时、这肯定是一个通信问题、而不是 ADS1255器件内部可能出现的舍入误差。
最好
Martin
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.
您好、Bryan、
您可能会在某些设备上运行它。 电路板? 我的实验显示、0值不会一直被读取。
复位(+等待时间)后、ADS1255可通过以下方式进行配置:
uint8_t defaultADCConfiguration_[11]= { 0x02U、//状态寄存器、MSB 输出、自动校准被禁用、缓冲器被启用 0x01U、 // MUX 寄存器、AIN0正输入、AIN1负 0x02U、// ADCON 寄存器、时钟输出关闭、 传感器检测关闭、PGA = 4 0x63、// DRATE 50SPS、 0x00U、// I/O:所有引脚输出、以防止过多功率耗散。 0、// OFC0:未填充 0、// OFC1:未填充 0、// OFC2:未填充 0、// FSC0:未填充 0、// FSC1:未填充 0、// FSC2:未填充 };
稍后、在 while (1)循环中读取转换数据。 前6个读数为0、后7 - 8个读数为0xFFFFFF,其余读数始终为0。 如果我执行复位/(引脚)+配置、则重复该序列。
我知道这不是一个标准用例、但我想了解 ADS1255的内部运行情况、未来不会感到意外。
最好
Martin
编辑:当 FSC = 1时、观察到类似的行为。
尊敬的 Martin:
您能帮助我了解您要查找的信息吗? 我和我们的设计团队交谈、他们确认了 ADS1255的运行情况、正如我之前的帖子中所述:如果 FSC = 0、输出代码应始终扩展为0、在任何情况下我们都不会发现这是错误的。
我的观点更重要的是、即使我们无法确定乘法产生不同结果的原因、但这并不排除发生此类事件的可能性。 我不想向您保证无法保证的事情。
如您所述、通信错误会改变从 ADC 读取的输出、但如果 FSC=0、在器件内部执行的实际数学运算应始终导致0代码。
很遗憾、我家里没有 ADS1255 EVM、因此我无法立即执行这些测试。 您是否只是要求我确认您看到的内容? 或者您还想了解更多内容吗?
布莱恩
您好、Bryan、
该器件应在 SIL3 (IEC61508)项目中使用。 零 FSC 可用于自诊断功能、这是其中之一。 但是、我的测量数据显示了不同的行为。 我不知道我做了什么错。 如果有人可以确认 ADS1255的行为与您描述的完全相同、我将更加深入地研究 SPI 命令和时序。 现在错误空间太大。
最好
Martin
编辑:
我非常抱歉。 所有问题都是由硬件行为错误导致的。 我已尝试使用 ADS1256EVM 并在那里运行它。 连接逻辑探头后一切正常、断开连接时失败(读取0xFFFFFFF)。 在我们的原型板上、我们使用光耦合器。 我错过了数据表中的一个重要句子、即即使 CS 始终处于低电平时、DOUT 也会在不使用时置于高阻抗状态。 浮点光耦合器或 MISO 的输入可能会导致某种奇怪的状态。 很难观察到、示波器的探头(比逻辑探头的质量更好)会影响 UC 的 SPI 读取、并且我没有电池供电的器件来检查线路。 我将向 HW 团队建议放置一个下拉电阻器。 非常感谢您的支持。