做了个SWIM调试器与CDC的合体

发个贴记下我这两周用CH552G ,这儿人来得不多,同步发到数码之家,码字辛苦,看能从WCH挣个CH554或559的学习板么。

8月底买的芯片,上周一开始焊,上周五测试完CDC,这周合体SWIM,很快OK,这两天在做各种测试。

j_0057.gif


很久就要找低管脚的USB芯片,台系的寻常用户没法接触,CY有低速芯片,也很不好找,突然论


坛看到出了CH551-554,第一时间买了CH552G,前段时间在各种玩JLINK-OB,好吧,就学学他在


调试器上做个CDC,SWD调试JLINK做得很完美了,那就做个SWIM学习STM8吧,STM8也是很火热的


片子。

哦,重要的事情说三遍:

DIY的不是STLINK,是SWIM+CDC,仅能刷,调STM8,并有一个USB转串口;

DIY的不是STLINK,是SWIM+CDC,仅能刷,调STM8,并有一个USB转串口;

DIY的不是STLINK,是SWIM+CDC,仅能刷,调STM8,并有一个USB转串口;

在CH552上做之前,先在STM32上走了遍全过程,毕竟STM32能RAM跑直接看结果,反复试不用烧


实验要做到CDC支持做有标准波特,所以CH552G选择运行在24M,如果跑32M,115200要大2.12%,


虽然能用看着不爽。

波特支持23----1.5Mbps,30K以下误差不会大于1%,1.5M,750K,500K,375K,250K,125K无误


差支持,所有数字描述基于CPU主频是24M。不刷SWIM时CDC刷1.5M做过压力测试不掉字,测试方


法是用另一个STM32输出10000个字节,间或850ms便于停下来观察,低4位是0,掉字很明显,观


察过2000次以上循环不掉。

刷SWIM同时CDC可以工作在115200全速收或发互相无影响,但不建议这么做也无必要。测试也是


用STM32输出10000个字节/115200,同时SWIM读STM8S103F,证实无影响。

有逻辑分析仪抓图看工作效能还可以。方法是在RX数据搬到USB之前取反LED,然后USB中断再取


反,一般大约150US,按1.5Mbps计算,64个字节约420us,CPU还有约270us闲暇,加上RX缓冲,


估算主机取延迟一次500us不丢,性能再降肯定丢。

SWIM性能如下,用逻辑分析仪判读的:

山上的STLINK STM8S103F写入时间:5'56--5'771  715ms    

读1'607.2---1'782.8=175.8ms 校验898.5-1'74.3=175.8ms


CH552 DIY: 

write 80--751  671ms

read 57.3--201.3 =144ms


105K6 32KB

write:104--1'607  1.5秒


速度要比山上的快点点,105K6因为是大页面,自身比103与入速度差不多快一倍,这是器件性


能与SWIM无关。



CH552-CDC-1.JPG


1.5M CDC接收工况显示图.jpg

特意挑了个搬数据加上传花费200us的细节,看前后的宽度要明显窄点,波形的底部在跑LOOP,

当然也不完全是空闲,还要在中断中处理接收到缓冲,开销约50CK。1.5Mbps每字节160CK,尚有100左右CK空闲。



RX接收同时刷SWIM.jpgSWIM&CDC-RX同时工作波形_CH2.RX_CH4.LED_CH5.SWIM_CH7.SWIMRST

RX接收的同时,SWIM(STVP)读STM8S103 8K FLASH


SWIM进入时序.jpg


低速格式写1字节.jpg


高速格式写读命令.jpg


展开看波形细节
看图3工况显示,RX还在有条不紊的接收,并通过USB上传到HOST,对刷SWIM并无明显影响。


测试环境改3.jpg


最后,亮作案现场及作案凶器


还有一张硬件信息图


ID信息.JPG



学习USB必备工具

Bus Hound显示的硬件信息.jpg


片花,写8S105K6,32KB FLASH,前面是写,后面是读校验,STVP操作,可以看大概耗时。


写8S105K6.jpg


楼主真厉害~!!


                           

楼主真厉害~!!

                       


哥,能奖励一片CH554实验板么?


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