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.

[参考译文] ADS124S08:CRC 故障

Guru**** 2391415 points
Other Parts Discussed in Thread: ADS124S08

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

https://e2e.ti.com/support/data-converters-group/data-converters/f/data-converters-forum/1322341/ads124s08-crc-trouble

器件型号:ADS124S08

您好、TI

我有一个 ADS124S08、正致力于将它实施到一个更大的项目中。 我想用它测量一些东西、但现在我想尝试测量 RTD。 我得到了我认为良好的读数、但 CRC 与我得到的数据不一致。  

我将使用我昨天获得的读数作为示例。 测量100欧姆电阻时、读数为0x32、0x33、0xaa、0x62。 前三个问题与我的预期有关、但当我尝试对该值执行 CRC 时、我得到的是0xAE、而不是0x62。 我将我所做的计算全部放在这篇文章的底部、但基本而言、我

连接前三个字节、并将其左移8位、添加末尾零。  

使 ADS124S08文档中指示的分频值为100000111、数据中最高有效值为1。  

将数据与除数异或运算。  

将分频值移到下一个最高有效位1、并重复执行、直到数据小于100000000。  

我假设芯片正确发送了 CRC、而我的算法错误、但我似乎找不到我的错误。 我不认为这是算术错误、这是在多个读数上发生的、所以我必须做一些系统错误的事情。  

如果有人能帮助我理解该算法、我会非常感激。  

原始读数(左移8位) 0 0 1 1 0 0 1 0 0 0 1 1 0 0 1 1 1 0 1 0 1 0 1 0 0 0 0 0 0 0 0 0
分频系数 1 0 0 0 0 0 1 1 1            
余数 1 0 0 1 0 1 1 0 1 0 0 1 1 1 0 1 0 1 0 1 0 0 0 0 0 0 0 0 0
分频系数 1 0 0 0 0 0 1 1 1          
余数 0 0 0 1 0 1 0 1 0 0 0 1 1 1 0 1 0 1 0 1 0 0 0 0 0 0 0 0 0
分频系数   1 0 0 0 0 0 1 1 1          
余数   0 0 1 0 1 0 1 1 0 1 1 0 1 0 1 0 1 0 0 0 0 0 0 0 0 0
分频系数     1 0 0 0 0 0 1 1 1        
余数     0 0 1 0 1 1 1 0 0 0 1 0 1 0 1 0 0 0 0 0 0 0 0 0
分频系数     1 0 0 0 0 0 1 1 1        
余数     0 0 1 1 1 0 1 1 0 0 1 0 1 0 0 0 0 0 0 0 0 0
分频系数       1 0 0 0 0 0 1 1 1      
余数       0 1 1 0 1 1 1 1 0 0 1 0 0 0 0 0 0 0 0 0
分频系数       1 0 0 0 0 0 1 1 1      
余数       0 1 0 1 1 1 0 1 1 1 0 0 0 0 0 0 0 0 0
分频系数       1 0 0 0 0 0 1 1 1      
余数       0 0 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0
分频系数         1 0 0 0 0 0 1 1 1    
余数         0 1 1 0 0 0 1 1 1 0 0 0 0 0 0 0
分频系数         1 0 0 0 0 0 1 1 1    
余数         0 1 0 0 0 1 0 0 1 0 0 0 0 0 0
分频系数         1 0 0 0 0 0 1 1 1    
余数         0 0 0 0 1 0 1 0 1 0 0 0 0 0
分频系数           1 0 0 0 0 0 1 1 1  
余数           0 0 1 0 1 0 1 1 1 0
余数现在小于除数、因此 CRC 为01011110或0xAE。                
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Cassius Peter:

    您使用的长除法方法似乎正确。  ADS1x4s0x 计算器工具中还有一个基于 CRC Excel 的计算器 、位于 Web 登录页面。  此外还有一份 关于 CRC 的应用手册

    一个注意事项是在整个数据传输上计算 CRC。  这意味着如果还启用了状态字节、则计算中还必须包含此字节。 此外、为了消除任何软件问题、我建议您使用逻辑分析仪或示波器捕获数据传输、并将该数据与您的软件数据进行比较。  如果您向我发送通信的照片、我可以帮助您进一步进行故障排除。

    此致、

    鲍勃 B

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

    您好、Bob。  

    我简要考虑了这一点、但我不会发送状态位。 这里是我的寄存器设置、大多是在 TI 官方程序中被盗。  

    寄存器2: 0x24;
    寄存器5:0x06;
    寄存器3:0x0A;
    寄存器6:0x07;
    寄存器4:0x14;
    寄存器9:0x12;<-如果我的理解正确、如果我想启用状态位、我会将此位置设为0x13。  
    寄存器7:0xF5;

    我将从示波器获得屏幕截图。 请您稍等片刻。

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

    实际上、我甚至不需要屏幕截图。 我意识到自己在做什么错了。  

    目前、我正在通过 RDATA 命令进行读取。 该代码指定在发送 RDATA 命令的同时忽略输入的内容、然后取接下来的三到五个、具体取决于是否发送状态字节和 CRC 字节。 我本来以为我是在过滤掉第一个字节、但其实我并没有过滤掉、所以我无意中忽略了最后一个字节。 现在我已经更正了它、CRC 每次都会匹配。  

    感谢您的帮助、请查看波形、了解我是如何获得比预期更多的字节的。