您尚未登录。

楼主 # 2021-10-29 10:26:06

echo
会员
注册时间: 2020-04-16
已发帖子: 351
积分: 356.5

CH552的IO反转率相当拉胯

当然,所有的8051都拉胯,不是CH552的自己的问题,所有对性能有一定追求的场合,8051都是不合适的。代码很简单

while(TRUE)
{
    P17=1;
    P17=0;
}
//实际编译成汇编以后只有三条指令
//L0: SETB P17
//    CLR  P17
//    SJMP L0

SETB和CLR各需要2个周期,SJMP是5个周期,加起来总共9个周期,16M主频下,最高反转频率不超过2MHz。
各种调试器的TCK频率都会有这个限制,相比之下,USB的速度并不是什么瓶颈。硬件SPI能到8M,不过限制就多了,很多场合用不了,比如有2条SDO信号的地方。CH552实现的各种调试器,只能说能凑合用。

离线

#1 2021-10-29 10:36:42

Blueskull
会员
注册时间: 2020-02-20
已发帖子: 458
积分: 444.5

Re: CH552的IO反转率相当拉胯

@echo

是的,比如高云的FPGA要求flash编程模式TCK稳定输出一个频率范围,IO自己可以打出来,但是带上USB控制IO就打不出来需要的最小频率了。所以我的实现(以及Diodep的实现)都用了T2产生时钟,外部并起来,靠选择性高阻的方式实现SPI/TCK复用。当然,T2打波只能出时钟,不能出数据,所以只能reset或者run-test-idle。

离线

#2 2021-10-29 14:40:54

iamseer
会员
注册时间: 2020-06-06
已发帖子: 68
积分: 45.5

Re: CH552的IO反转率相当拉胯

@echo
我觉得这么说CH552有失偏颇,循环开销高的话大可循环展开,靠牺牲一点点flash来换取低循环开销。同步接口时钟不稳定也不是什么大问题。
另外如果不介意上汇编优化,JZ JNZ好像比SJMP快 (测了一下好像一样快。)

最近编辑记录 iamseer (2021-10-29 14:53:12)

离线

楼主 #3 2021-10-29 15:51:29

echo
会员
注册时间: 2020-04-16
已发帖子: 351
积分: 356.5

Re: CH552的IO反转率相当拉胯

@iamseer
任何对性能有要求的场合都不应该考虑8051,这个评价是很准确的,不用怀疑。

离线

#4 2021-10-30 00:22:29

iamseer
会员
注册时间: 2020-06-06
已发帖子: 68
积分: 45.5

Re: CH552的IO反转率相当拉胯

echo 说:

@iamseer
任何对性能有要求的场合都不应该考虑8051,这个评价是很准确的,不用怀疑。

51不就是追求便宜好用么。一般51的外设也比较弱,确实也没办法。

离线

楼主 #5 2021-11-21 08:59:04

echo
会员
注册时间: 2020-04-16
已发帖子: 351
积分: 356.5

Re: CH552的IO反转率相当拉胯

补充下:其实拉胯的是执行速度,本身IO还可以,CH552使用SPI输出8M时钟毫无问题。

离线

#6 2021-11-21 16:06:24

Blueskull
会员
注册时间: 2020-02-20
已发帖子: 458
积分: 444.5

Re: CH552的IO反转率相当拉胯

echo 说:

补充下:其实拉胯的是执行速度,本身IO还可以,CH552使用SPI输出8M时钟毫无问题。

但是没有fifo和dma,维持不了8M码率。

离线

楼主 #7 2021-11-21 17:42:39

echo
会员
注册时间: 2020-04-16
已发帖子: 351
积分: 356.5

Re: CH552的IO反转率相当拉胯

Blueskull 说:
echo 说:

补充下:其实拉胯的是执行速度,本身IO还可以,CH552使用SPI输出8M时钟毫无问题。

但是没有fifo和dma,维持不了8M码率。

CH552号称有一个字节的FIFO,不过聊胜于无吧,不要再难为一颗只有16M主频的8051了。

离线

页脚

工信部备案:粤ICP备20025096号 Powered by FluxBB

感谢为中文互联网持续输出优质内容的各位老铁们。 QQ: 516333132, 微信(wechat): whycan_cn (哇酷网/挖坑网/填坑网) service@whycan.cn