victorsnow 发表于 2024-9-18 15:10:37

8H8K64U USB的最大速度?| 是 USB-FS, 12Mbit/s

使用官方的stc8h_cdc_xdata_query_demo做收发测试
每次写64字节,然后读取64字节,统计10s的收发数量
924672字节,平均90KB/s * 2
理论上STC8H8K64使用USB库的最大速度是多少?
同样的只收或者只发,理论速度是多少?
是否有参考值,方便在开发的时候优化
#!/usr/bin/python3

import serial
import datetime
import time

try:
    ser = serial.Serial(
      port='COM9',
      baudrate=20000000000,
      parity=serial.PARITY_NONE,
      stopbits=serial.STOPBITS_ONE,
      bytesize=serial.EIGHTBITS,
            timeout=None)

    ser.set_buffer_size(rx_size=12800*100, tx_size=12800*100)

    count = 0
    cmd = bytearray([])
    for i in range(64):
      cmd.append(i%256)

    st = time.time()
    now = st
    print(st)
    while 1 :
      ser.write(cmd)
      byts = ser.read(64)
      count += 64
      now = time.time()
      if (now - st > 10):
            break;
    print(now - st)
    print(count)
finally:
    pass


DebugLab 发表于 2024-9-18 15:21:33


神农鼎 发表于 2024-9-18 17:05:00

8H8K64U的 USB是 USB-FS, 12Mbit/s

晓飛飛 发表于 2024-9-19 00:01:27

比如说USB2.0的U盘,有些速度能达到20Mbyte/s,有些能达到40Mbyte/s,无论如何都达不到理论的480MBit/s,因为瓶颈不在通道,而是在于数据的搬运和处理,STC的USB支持FS,理论速度是12Mbit/s,实际上看你如何搬运数据,中间如何处理数据,瓶颈不在通道,而在数据处理过程。

victorsnow 发表于 2024-9-19 13:59:38

晓飛飛 发表于 2024-9-19 00:01
比如说USB2.0的U盘,有些速度能达到20Mbyte/s,有些能达到40Mbyte/s,无论如何都达不到理论的480MBit/s,因 ...

benchmark能提供一个很好的参考点,在选型和预估上都能提供一个预期
8H8K64U 目前j接收以后理解标记为完成 大概能达到500KB/s
寻常加入操作数据,大约在200KB/s-300KB/s左右
void usb_out_ep1()
{
    BYTE csr;
    BYTE cnt;

    usb_write_reg(INDEX, 1);
                usb_write_reg(OUTCSR1, 0);
                return;
}
使用范例修改: 12-CDC(Communication Device Class)协议范例 - USB-CDC转单串口
注释掉void uart_polling()
在Windows下发送4MB大概Speed: 517.49 KB/s Cost: 7.92s

神农鼎 发表于 2024-9-19 16:24:12

USB-FS, 12Mbit/s, 10Mbit/s 还是可以的
公示版 USB转双串口 就是 10Mbit/S



www.stcai.com/hxgnsyb






victorsnow 发表于 2024-9-20 02:28:05

神农鼎 发表于 2024-9-19 16:24
USB-FS, 12Mbit/s,10Mbit/s 还是可以的

{:funk:}是PCB设计的原因吗还是代码没调好
芯片我用的是3.3v 22欧姆 ucap 0.1uf

victorsnow 发表于 2024-9-21 06:07:06

之前屯了太多8h8k64的芯片了,就拿来做贴片了,等32g12k的芯片到了,测试遍再来同步
8H的USB那应该有瓶颈,最大跑到590KB/s就上不去了
4MB 7.1s

_NCY_ 发表于 2024-10-7 05:47:31

usbmsc范例怎么提速啊
卡在64kB/s上不去了

jmg 发表于 2024-10-7 10:23:16

神农鼎 发表于 2024-9-19 16:24
USB-FS, 12Mbit/s,10Mbit/s 还是可以的
公示版 USB转双串口 就是 10Mbit/S



Note that 10Mbit/s is only the peak BAUD setting (using 40MHz /4)

A better test is the sustained average baud speeds, (time to send 1,000,000 bytes) and there, the 8H8K64U comes in much slower.
The USB 12MHz has some over head, so the top limit is a bit over 1MBytes/sec

Another test is to confirm no dropped or lost bytes during send or receive.
页: [1] 2
查看完整版本: 8H8K64U USB的最大速度?| 是 USB-FS, 12Mbit/s