康辉55AA 发表于 2022-12-17 22:54:18

用串口和USB口分别对同一个芯片烧入相同的程序,显示速.....

用串口和USB口分别对同一个芯片烧入相同的程序,显示擦除速度有差别?

康辉55AA 发表于 2022-12-17 22:54:51

问题来了:
用串口和USB口分别对同一片芯片写入相同的程序,发现以下现象:

擦除目标区域:USB口慢1.310"   串口快0.639"
下载用户代码:USB口快0.062"   串口慢0.171"
设置硬件选项:速度相同0.016"

请技术人员帮我分析一下:擦除目标区域应该是相同的,但为什么USB口下载方式反倒慢了呢?

8051启蒙者 发表于 2022-12-19 09:51:43

下载速度也与设置的最高波特率大小有关。已给技术反馈,等技术回复。

神农鼎 发表于 2022-12-19 10:12:20

看整体就行了,现在 USB-HID下载的通信速度是 57600bps,
====没有用高速的 USB-CDC,以后新 USB-MCU 下载会采用高速的 USB-CDC
而STC-USB Link1D, 一箭双雕之USB转双串口的下载速度最高可以 6M bps

康辉55AA 发表于 2022-12-19 11:40:42

不是下载速度,是擦写速度有疑问。
其实不影响使用,我只想弄个明白。

神农鼎 发表于 2022-12-19 11:45:34

不同的通信协议,可能在处理等待其他任务事件,不要深究

zhp 发表于 2022-12-19 11:45:49

本帖最后由 zhp 于 2022-12-19 11:48 编辑

USB和串口的ISP擦除等待时间不同的主要原因:

    串口是全双工通讯,上位机发送完成擦除命令后,
就一直等待单片机擦除完成后回传“擦除完成”状态,
所以串口ISP状态都是实时的

    USB通讯是被动传输数据的(也可理解为半双工)
USB设备不能实时的上传数据,必须主机发送IN令牌后
单片机才能上传数据。所以USB模式下,上位机发送完
成擦除命令后,必须等待一定的时间后发送查询命令
擦除命令和查询命令直接的等待时间又不能设置太短
单片机在执行擦除动作时CPU是处于HOLD状态的,无法
处理USB命令,所以两个命令中间的等待时间是使用
经验值计算出来的大概的时间,所以和串口擦除时间不一致

希望上面的解释能解答你的疑惑

康辉55AA 发表于 2022-12-19 11:55:34

我觉得有道理。
就那么一小片EEPROM,擦除代码应该是一样的,时间也不至于差一倍,只是由不同的程序发出来。
不同的程序与PC机沟通时的内容区别很大,得到结果的总时间就差多了。
最后报告出来的时间,串口是实时的,基本可以反映真实情况。USB口是经验时间,仅做参考。
这样理解,不知可否?

zhp 发表于 2022-12-19 12:15:11

康辉55AA 发表于 2022-12-19 11:55
我觉得有道理。
就那么一小片EEPROM,擦除代码应该是一样的,时间也不至于差一倍,只是由不同的程序发出来 ...

可以这样理解
页: [1]
查看完整版本: 用串口和USB口分别对同一个芯片烧入相同的程序,显示速.....