CH551G 已经成功模拟成HID键盘
如果要用USB升级, 要求免按键.也就是 从用户程序跳转到 BOOT_ADDR
但是跳转以后, 设备管理器里面还是显示的是HID设备, ISP TOOL 也不能查找到 CH551-1
重新上电又自动识别为HID设备,
那么, 如何在不拔USB设备的情况下, 从HID设备转换到USB MODULE 实现在线ISP升级呢?
CH551G 已经成功模拟成HID键盘
如果要用USB升级, 要求免按键.也就是 从用户程序跳转到 BOOT_ADDR
但是跳转以后, 设备管理器里面还是显示的是HID设备, ISP TOOL 也不能查找到 CH551-1
重新上电又自动识别为HID设备,
那么, 如何在不拔USB设备的情况下, 从HID设备转换到USB MODULE 实现在线ISP升级呢?
现在用先中断USB,再重新初化设备描述成 USB_MODULE, 重载USB中断里面的函数, 等5秒左右,可以成功转到BOOT_ADDR,ISP TOOL 也能查找到 CH551-1了. .
就是代码量有点大了, 空间怕多了有点吃不消, 不知道有没有更高效简洁的方法,
你好,关于跳转到BOOT区可以参考我们CH554EVT中的IAP程序,通过检测引脚电平变化进入boot区。
简单的代码就是跳转IAP前,USBDEV_CTL=0,关闭USB功能,相当于软件断开连接;
延时1S,(时间大于200ms)都可以,然后再跳转IAP。
USBDEV_CTL=0;
EA = 0; //关闭总中断,必加
tasksArr[0] = BOOT_ADDR;
mDelaymS( 100 );
(tasksArr[0])( ); //跳至BOOT升级程序,使用ISP工具升级