找回密码
 立即注册
查看: 170|回复: 16

最大包64字节限制问题(一键双雕之USB转双串口固件)

[复制链接]
  • TA的每日心情
    开心
    12 小时前
  • 签到天数: 25 天

    [LV.4]偶尔看看III

    3

    主题

    25

    回帖

    159

    积分

    注册会员

    积分
    159
    发表于 2024-4-9 17:16:55 | 显示全部楼层 |阅读模式
    本帖最后由 纯今 于 2024-4-10 15:31 编辑

    问题的起因是,对比FT232RL与CH340G转串口

    发现FT232RL拥有FIFO缓存高达4K 4096 字节,而CH340G拥有FIFO缓存只有可怜兮兮的64字节

    正常联想,我就查看了STC8H8K64U的DATASHEET,赫然标注:1280 字节USB 数据RAM。嗯,硬件很优秀

    我想起USB协议栈默认一次最大包是64字节,我就下载了发表在嘉立创开源项目的那个固件,在usb_desc.c源代码中发现

    在设备描述符中,bMaxPacketSize0 字段的值为 0x40,这表示默认的端点0的最大包大小是64字节(0x40 转换为十进制就是64)。端点0通常用于控制传输,而控制传输的大小通常被限制在64字节。

    在配置描述符中,定义了多个接口和端点。对于每个端点,wMaxPacketSize 字段指定了该端点的最大包大小。在该固件源代码的描述符中,所有的批量传输(Bulk)端点和中断传输(Interrupt)端点的 wMaxPacketSize 都被设置为 0x40,即64字节。譬如,批量输入端点4(0x84)和批量输出端点5(0x05)的描述符中,wMaxPacketSize 都被设置为 0x40。同理,中断端点3(0x83)的描述符中,wMaxPacketSize 同样被设置为 0x40。从描述符配置信息来看,所有的端点都遵循了USB 2.0协议中对端点的最大包大小的限制,即64字节。这意味着,尽管STC这颗MCU具备处理更大数据包的能力,但在与USB主机通信时,它仍然遵循了USB协议的标准限制。

    发表在嘉立创的开源项目,采用的是STC8G1K08这颗MCU,这是比STC8H8K64U低档些的产品,阅读它的DATASHEET未发现它有USB缓存,是否正因为没有缓存,所以固件源代码采用了默认。我不仅采购了STC8G1K08这颗MCU,也采购了多颗STC8H8K64U这种MCU。虽然,它们还在途中。

    我自然想问问官方,贵司有针对STC8H8K64U这颗拥有1280字节USB缓存MCU吞吐能力优化过的固件吗?是几种不同的MCU都是用嘉立创开源项目里下载的一种源代码吗?

    回复 送花

    使用道具 举报

  • TA的每日心情
    开心
    11 小时前
  • 签到天数: 131 天

    [LV.7]常住居民III

    26

    主题

    1297

    回帖

    4033

    积分

    论坛元老

    积分
    4033
    发表于 2024-4-9 17:31:28 | 显示全部楼层
    USB模块6个端点总共有1280字节的FIFO,大部分端点的缓冲区上限也就64字节。
    截图202404091727217210.jpg
    官方提供的例程包里面大部分都有USB的开源例子,例如STC8H实验箱例程包。
    论坛下载地址:https://www.stcaimcu.com/plugin. ... /~cateid=5&key=
    回复 支持 反对 送花

    使用道具 举报

  • TA的每日心情
    开心
    12 小时前
  • 签到天数: 25 天

    [LV.4]偶尔看看III

    3

    主题

    25

    回帖

    159

    积分

    注册会员

    积分
    159
     楼主| 发表于 2024-4-9 21:09:24 | 显示全部楼层
    本帖最后由 纯今 于 2024-4-9 21:10 编辑
    乘风飞扬 发表于 2024-4-9 17:31
    USB模块6个端点总共有1280字节的FIFO,大部分端点的缓冲区上限也就64字节。

    官方提供的例程包里面大部分都 ...



    你好:感谢回复

    原来,STC8H系列MCU的多功能USB特性是通过0-5一共6个Endpoint实现的。其中,Endpoint4-5支持128字节的输入和256字节的输出。对于其他Endpoint,定义它们支持键盘、鼠标和摇杆等设备,USB to UART的优化可否通过特别分配到Endpoint4-5来实现?

    至于STC8G1K08,由于没有USB专用缓存,它应该是利用128字节的内部直接访问RAM(DATA)。它默认最大包为64字节,这是由于客观所限。

    我的良好意愿是想充分发挥1280字节USB缓存的优势,希望官方工程师能够有针对性地进行优化。如果官方能告诉我即使最大包64字节,对软件兼容性很好了,速度也已经很好了,我也就放心大胆进行各种实验了
    回复 支持 反对 送花

    使用道具 举报

    该用户从未签到

    551

    主题

    9307

    回帖

    1万

    积分

    管理员

    积分
    14065
    发表于 2024-4-9 21:20:17 | 显示全部楼层
    回复 支持 反对 送花

    使用道具 举报

  • TA的每日心情
    开心
    12 小时前
  • 签到天数: 25 天

    [LV.4]偶尔看看III

    3

    主题

    25

    回帖

    159

    积分

    注册会员

    积分
    159
     楼主| 发表于 2024-4-9 21:38:30 | 显示全部楼层
    本帖最后由 纯今 于 2024-4-9 21:39 编辑
    神农鼎 发表于 2024-4-9 21:20
    STC8H2K08U ?

    深圳国芯人工智能有限公司-产品_STC8H系列 (stcai.com)

    你好:管理员
    STC8G1K08这个型号,我没打错。我提这个型号是从嘉立创你们一个开源项目BOM中看来的。为了实验方便,我还从淘宝特意选择DIP封装。我就是从这个型号MCU的固件,阅读源代码发现最大包64字节。我对优化它不抱希望了
    STC8H我购买的是STC8H8K64U,买了很多只,不仅仅为了转串口。网络上流传很多关于STC的神奇传说,比如时序混乱啦,我打算用STC8H8K64U亲自看看是不是谣言
    回复 支持 反对 送花

    使用道具 举报

    该用户从未签到

    551

    主题

    9307

    回帖

    1万

    积分

    管理员

    积分
    14065
    发表于 2024-4-9 22:16:12 | 显示全部楼层
    STC8G1K08 没有 硬件 USB
    回复 支持 反对 送花

    使用道具 举报

  • TA的每日心情
    开心
    12 小时前
  • 签到天数: 25 天

    [LV.4]偶尔看看III

    3

    主题

    25

    回帖

    159

    积分

    注册会员

    积分
    159
     楼主| 发表于 2024-4-9 23:06:24 | 显示全部楼层
    神农鼎 发表于 2024-4-9 22:16
    STC8G1K08 没有 硬件 USB

    你好,管理员,如果没有USB不支持,这事就神奇了

    请看就是这个链接:https://oshwhub.com/yefeng88/stc ... an-shuang-chuan-kou

    我还为您截了一个图
    Screen Shot 2024-04-09 at 11.02.55 PM.png

    回复 支持 反对 送花

    使用道具 举报

  • TA的每日心情
    开心
    12 小时前
  • 签到天数: 25 天

    [LV.4]偶尔看看III

    3

    主题

    25

    回帖

    159

    积分

    注册会员

    积分
    159
     楼主| 发表于 2024-4-9 23:22:11 | 显示全部楼层
    神农鼎 发表于 2024-4-9 22:16
    STC8G1K08 没有 硬件 USB

    管理员你好:让您这么一说,我去看了一下DATASHEET
    发现有这么一段描述,请用通俗大白话为我讲下好吗?

    STC8G1K08-20PIN 系列芯片所支持的 USB 下载为 I/O 口软件模拟的 USB 通信,
    不可避免的受各种软硬件因素的影响,尤其是电脑端的不同软件和硬件版本的
    影响,导致有一定比例的芯片无法进行 USB 下载(实测约有 0.2%无法 USB 下
    载)。建议批量生产还是使用普通的串口下载或 USB 转串口下载。
    回复 支持 反对 送花

    使用道具 举报

    该用户从未签到

    551

    主题

    9307

    回帖

    1万

    积分

    管理员

    积分
    14065
    发表于 2024-4-10 07:57:05 | 显示全部楼层
    就是改用有硬件USB的RMB0.99的
    STC8H2K08U-45I-TSSOP20/SOP16



    截图202404100758597082.jpg

    截图202404100759282631.jpg


    截图202404100800186701.jpg

    回复 支持 反对 送花

    使用道具 举报

    该用户从未签到

    551

    主题

    9307

    回帖

    1万

    积分

    管理员

    积分
    14065
    发表于 2024-4-10 08:01:43 | 显示全部楼层
    截图202404100801034613.jpg



    截图202404100801353647.jpg


    回复 支持 反对 送花

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    QQ|手机版|深圳国芯人工智能有限公司 ( 粤ICP备2022108929号-2 )

    GMT+8, 2024-5-3 22:45 , Processed in 0.085666 second(s), 67 queries .

    Powered by Discuz! X3.5

    © 2001-2024 Discuz! Team.

    快速回复 返回顶部 返回列表