本帖最后由 jeffj 于 2018-11-8 17:43 编辑
ISP上位机烧录工具第一版(支持.bin文件)。
17:31 2018/11/8
========================
大家好,分享一个串口ISP固件。
配置字选项:
1) 启动选项, 选择LDROM
2) LDROM大小, 选择2KB
工作原理:
上电复位后检测P30管脚状态,如果为低电平,进入LDROM执行isp命令(命令在下面公布,上位机测试程序待写好后也会公布)。
如果P30管脚没被人为拉低,则直接执行用户程序。所以,如果想更新程序,就把P30拉到地,然后手动复位(复位后即可断开P30和地之间的连接,以防无法执行用户程序),此时即可更新用户程序。
更新成功后,可以使用命令跳转到用户程序,或者手动按复位键。
命令详解:
1) 写配置字节: 0x03, config0, config1, config2, config4, 0xXX, 0xXX, 0xXX, 0xXX, 0xXX, 0xXX, 0xXX, 0xXX, 0xXX, 0xXX, 0xXX, 0xXX, 0xXX, 0xXX, 0xXX(此字节为校验字节,用0xFF减去前19个字节之和,下同)
例: 0x03, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF8
2) 跳转用户程序(P30不要接地): 0x04, 0xXX, 0xXX, 0xXX, 0xXX, 0xXX, 0xXX, 0xXX, 0xXX, 0xXX, 0xXX, 0xXX, 0xXX, 0xXX, 0xXX, 0xXX, 0xXX, 0xXX, 0xXX, 0xXX
例:0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFB
3) 擦除APROM页(128bytes/page): 0x05, add_H, add_L, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xXX
例:0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFA (擦除第一页)
例:0x05, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7A (擦除第二页)
4) 写APROM: 0x06, add_H, add_L, D0, D1, D2, D3, D4, D5, D6, D7, D8, D9, D10, D11, D12, D13, D14, D15, 0xXX (一条命令最多可写16个字节,不足16个字节用0xFF补足16个字节)
例:0x06, 0x00, 0x03, 0x8F, 0x0B, 0x8E, 0x0A, 0x8D, 0x09, 0x8C, 0x08, 0xE4, 0xFF, 0xFE, 0xFD, 0xFC, 0xAB, 0x0B, 0xAA, 0xB5 (写0x0003起始的16个字节) 例:0x06, 0x00, 0x33, 0xFF, 0xF5, 0x08, 0x80, 0xD3, 0x22, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xB4 (写0x0033起始的6个字节,0x0039至0x0042未被写入数据)
5) 读APROM: 0x07, add_H, add_L, D0, D1, D2, D3, D4, D5, D6, D7, D8, D9, D10, D11, D12, D13, D14, D15, 0xXX (一条命令读16个字节,注意到APROM结尾不要读越界)
例:0x07, 0x00, 0x03, 0x8F, 0x0B, 0x8E, 0x0A, 0x8D, 0x09, 0x8C, 0x08, 0xE4, 0xFF, 0xFE, 0xFD, 0xFC, 0xAB, 0x0B, 0xAA, 0xB4 (读0x0003起始的16个字节) 0x07, 0x00, 0x03, D0, D1, D2, D3, D4, D5, D6, D7, D8, D9, D10, D11, D12, D13, D14, D15, 0xXX (返回值)
如果有什么问题,请反馈给我。
|