大家好,欢迎来到IT知识分享网。
从站控制器(ESC)的EEPROM作用
ESC相应的寄存器表:
地址 | 位 | 名称 | 描述 | 复位值 |
---|---|---|---|---|
0x0500 | 0 | EEPROM访问权限分配 | 0:ECAT主站 1:PDI | 0 |
0x0500 | 1 | 强制PDI操作释放 | 0:不改变0x0501.0 1:复位0x0501.0为0 | 0 |
0x0500 | 2~7 | 保留 | 0 | |
0x0501 | 0 | PDI操作 | 0:PDI释放EEPROM操作 1:PDI正在操作EEPROM | 0 |
0x0501 | 1~7 | 保留 | 0 | |
0x0502~0x0503 | 0~15 | EEPROM控制和状态寄存器 | ||
0x0502~0x0503 | 0 | ECAT帧写使能 | 0:写请求无效 1:使能写请求 | 0 |
0x0502~0x0503 | 1~5 | 保留 | ||
0x0502~0x0503 | 6 | 支持写字节数 | 0:4个字节 1:8个字节 0 | |
0x0502~0x0503 | 7 | EEPROM地址范围 | 0:1个地址字节(1KB-16KB)1:2个地址字节(32KB-4MB) | 芯片配置引脚 |
0x0502~0x0503 | 8 | 读命令位 | 读写操作时含义不同,当写时:0:无操作 1:开始读操作 当读时:0:无读操作 1:读操作进行中 | 0 |
0x0502~0x0503 | 9 | 写命令位 | 读写操作时含义不同,当写时:0:无操作 1:开始写操作 当读时:0:无写操作 1:写操作进行中 | 0 |
0x0502~0x0503 | 10 | 重载命令位 | 读写操作时含义不同,当写时:0:无操作 1:开始重载操作 当读时:0:无重载操作 1:重载操作进行中 | 0 |
0x0502~0x0503 | 11 | ESC配置区校验 | 0:校验和正确 1:校验和错误 | 0 |
0x0502~0x0503 | 12 | 器件信息校验 | 0:器件信息正确 1:从EEPROM装在器件信息错误 | 0 |
0x0502~0x0503 | 13 | 命令应答 | 0:无错误 1:EEPROM无应答,或命令无效 | 0 |
0x0502~0x0503 | 14 | 写使能错误 | 0:无错误 1:请求写命令时无写使能 | |
0x0502~0x0503 | 15 | 忙位 | 0:EEPROM接口空闲 1:EEPROM接口忙 | 0 |
0x0504~0x0507 | 0~32 | EEPROM地址 | 请求操作的EEPROM地址,以字为单位 | 0 |
0x0508~0x050F | 0~15 | EEPROM数据 | 将写入EEPROM的数据或从EEPROM读到数据,地位字 | 0 |
0x0508~0x050F | 16~63 | EEPROM数据 | 从EEPROM读到的数据,高位字,一次读4个字节时,只有16~31位有效 | 0 |
读写EEPROM的具体流程
- 读取0x0500寄存器(8bit),该寄存器对应的是EEPROM当前的权限以及状态信息。
- 根据步骤1读出来的值判断当前操作EEPROM的权限是否交予PDI,如果没有交予PDI,则无法通过MCU对EEPROM进行读写,也就是无法在线升级ESC。
注意:0x0500寄存器对于PDI来说是只读的,也就是说PDI操作EEPROM的权限只能由主站给予,不能主动去获取。以下情况下,Ethercat主站应该通过写0x0500.0=1,将访问权交给PDI
- 在I–>P转换时
- 在I–>B转换时并在boot状态下
- 若在ESI文件中定义了“AssignToPdi”元素,除INIT状态外,Ethercat主站应该将访问权交给PDI一端。经过试验,AssignToPdi是写在Eeprom标签中。
详细的读写过程就不细写,可以通过SSC自动生成EEPROM读写函数。在SSC设置中将ESC_EEPROM_ACCESS_SUPPORT置1就可以自动生成读写接口。
UINT16 ESC_EepromAccess(UINT32 addr, UINT16 wordSize, UINT16 *pData, UINT8 access);
免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://haidsoft.com/132561.html