大家好、
我们使用 PM 管理器示例成功实现了与 HEIDENHAIN AT1218 (22位)传感器的 Endat22通信。
它的工作方式... 但我们面临2个问题。
1) 1) CRC 校验
PM_endat22_getCrcPos (endat22Data.Position_Clocks、ENDAT22、endat22Data.Position_lo、
endat22Data.position_hi、endat22Data.error1、endat22Data.error2、endat22CRCtable)
使用隐式 CRC 声明
//
// CRC 相关声明
//
#define NBITS_POLY1 5.
#define POLY1 0x0B
#define RXLEN 4 //例如、消息中的100个字节
#define 奇偶校验0 //奇偶校验0表示从输入的第一个16位地址的低字节开始
#define SIZEOOF_ENDAT_CRCABLE 256
只是不会在 endat22Data.data_CRC 中为数据提供一致的数字匹配
AT1218传感器是否使用不同的 CRC 多项式或位长度? (我怀疑……)
2) 2)位置数据是正确的、但我们不时会遇到干扰、从而导致接收到错误的位置数据。
我们有2个 AT1218传感器、它们都表现出相同的行为、无论时钟频率如何、都会发生这种情况。
>#define ENDAT_RUNTIME_FREQ_DIVIDER 24/CA。 2MHz
>#define ENDAT_INIT_FREQ_DIVIDER 250
我们使用 HEIDENHAIN Eib741硬件对传感器进行了测试、它在4Mhz OK 下运行数小时、无干扰、无 CRC 错误。
有什么想法?
Martin


