CH551G 模拟成HID在不拔USB设备的情况下, 如何从HID设备转换到USB MODULE

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工具升级 


只有登录才能回复,可以选择微信账号登录