本站首发
ch55x这个系列的芯片还是不错的,可以算是最便宜的带usb的芯片了。虽然除了usb以外,51核和外设都一般般,甚至可以说有点烂。不过价格在那里,用来做一些小下载器/协议接口转接桥之类的,小的HID设备什么的还是不错的。
鉴于这个芯片可以USB下载,不需要额外买烧录器,对普通爱好者来说可以说是相当友好了。
不过呢,下载还是需要个ISP上位机,而这波呢,我弄了个Keil的下载插件,这样就吧官方的上位机给撇了,直接在keil里面集成开发就行了。
下载在keil里面直接点这个按钮
就可以下载CH55x系列芯片(目前仅支持CH551/CH552/CH553/CH554)(对应CH558/559因为手上没有 暂时没法抓包和测试 当然欢迎各位大佬补充)
前仅支持USB接口的官方ISP下载,不支持串口下载。Keil4/Keil5可以通用。
效果
在建工程的时候 设置方法
点击setting可以设置配置位,和官方上位机一样的选项,一般保持默认就可以了
两个常见的错误提示
CH55x芯片不在bootloader状态,点击下载时会出现这个提示
下载中报错(这种情况实际上代码写进去了,配置位没改)
这个提示的意思是,芯片进入boot的状态不是上电复位,此时是不能进行配置位更新的。如果要改写配置位,需要先断电,然后上拉D+再插USB,然后即可改写配置位信息。
进入boot有三种方法
1、常规方法:断电->20K电阻上拉D+到VCC33->连接USB
2、方便调试方法1:添加复位按键和D+上拉按键,开启手动复位设置,程序运行中,按下复位和D+上拉按键,先松开复位
3、方便调试方法2:加复位按键,关闭手动复位设置,程序运行中,按下复位键就进boot
但是需要在代码中加入以下内容
先定义:
typedef void( *goISP)( void );
goISP ISP_ADDR=0x3800;
程序主循环或者定时器中需要添加这段检测代码:
if(CLOCK_CFG&bRST)
{
USB_CTRL=0;
UDEV_CTRL=0x80;
mDelaymS(10);
(ISP_ADDR)();
}
关于源码:
源码不直接公开,但是可以分享,需要的可以给我发邮件(感兴趣的 详细内容看github页面)
附件:内附详细PDF教程和编译好的插件
https://whycan.cn/files/members/884/CH55x.7z
也可以github下载
https://github.com/posystorage/CH55x-Keil-Plugin
如果大家感兴趣的话,我再开个贴发下n76e003的下载套件(包括下位机/上位机/keil插件)
离线
话说,晕哥的这个站似乎是建在搬瓦工上面的?
离线
大神,摩拜摩拜!
这是破解了 CH55X的isp协议,然后自己做了一个keil 插件?
是的 套了他的ISP协议
离线
修正了一个闪退的BUG,已经更新到github
离线
https://whycan.cn/files/members/1470/Error8.png
请问这个错误是怎么回事?
你应该是拿了新版本boot的ch55x在下载。
离线
需要新版本bootloader下载程序可以使用ch55xtool,在此:https://github.com/MarsTechHAN/ch552tool。
需要python3和pyserial。实测Ubuntu 20.04 + CH552P有效。
不错 学习了 回头有空更新下
离线