请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
部件号:IND-COMMS-SDK 主题中讨论的其他器件:AM2432
工具/软件:
您好:
我使用的是:
- 定制硬件上的 AM2432
- IND_COMMS_SDK_am243x_09_02_00_24
- 固件版本 6.5.54 用于 ICSSG1 上的 EtherCAT 控制器
- 基于 EtherCAT_SLAVE_Beckhoff ssc_demo 的自定义工程
我尝试通过 EtherCAT (TwinCAT) 写入 EEPROM 中的供应商信息 spcae(字偏移量 0x0020)。 参见 ETG2010。 以下图片来自 ETG2010: 
很遗憾、这不起作用。 可以向 EEPROM 的其他空间写入、例如写入序列号(字偏移 0x000E)。
在调试过程中、它似乎具有以下行为:
- 通过 EtherCAT 写入从站的 TwinCAT 中的 EEPROM 内容最初存储在 ICSSG1 存储器中的 ESC_EEPROM_DATA_OFFSET (0x0508) 处。
- Beckhoff SSC 将其从此处读取到内部 EEPROM 缓冲器。
- 这发生在文件 ecatappl.c 中
- 在硬件版本 (0x0021) 等的字偏移处、始终返回 0x0000、即使 TwinCAT 更改了此值也是如此。
因此、ICSSG1 中的 ESC 固件是否可能有意阻止从字偏移量 0x0020 开始访问供应商信息空间?
因为使其正常工作的一种方法是:
- 使用所需数据直接通过 I2C 对 EEPROM 进行编程。
- 现在、使用 EtherCAT 应用程序启动 AM243x 后、修改后的供应商空间会按预期读取到 R5 中的 EEPROM 缓冲区、例如修改后的硬件版本会按预期显示在 TwinCAT 中。
感谢您的支持。
此致、
Martin