Files
CherryUSB/docs/source/q&a.rst
2024-06-06 22:53:51 +08:00

95 lines
4.0 KiB
ReStructuredText
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
Q & A
==============================
移植提问模板
----------------
- 使用的板子引脚USB IP
- USB 中断,时钟,引脚,寄存器地址是否正确,截图
- 是否能进 USB 中断
- 芯片是否带有 cache功能是否做了 no cache 处理,截图
- 硬件是否正常,是否使用杜邦线连接,如果正常,请说明正常原因
- 打开 CONFGI_USBDEV_SETUP_LOG_PRINT并提供 log
- 是否流片并销售
其余问题提问模板
------------------
具体说明现象,复现方式,使用我提供的 demo 再测试,以及提供完整 log
CherryUSB 版本推荐
---------------------
如果没有特别情况,请使用最新版本.详细版本更新说明请参考 https://github.com/cherry-embedded/CherryUSB/releases。
- <= v0.10.2 初代版本
用于定基本的框架,仅支持单 USB IP, 并且无法动态使用硬件 pipe.
使用 XHCI 需要切到这个版本,高版本后续重构. 部分 IP 只能使用此版本,后续版本删除不再使用
- v1.0.0 过度版本
**支持动态使用硬件 pipe不再固定**
- v1.1.0 过度版本
**主从机支持多 USB IP 且要相同 IP**;主机增加 bluetooth, chh340, ftdi, cp210x, asix 驱动
- v1.2.0
主机增加 rtl8152cdc ncm 主机驱动;增加 esp aic 主机驱动DWC2 优化代码方便阅读,并增加一些 FIFO 配置宏给用户,并增加 fifo check这个很重要也很坑
- v1.3.0
增加一些宏的 check;
主机增加 pl2303 驱动;使用 id table 来支持多个 vidpid增加 user_data 给用户使用;优化网络相关的 class 配置和性能;
从机增加一些获取端点信息的 api**统一 ep0 buffer 的使用,美化代码****支持多种速度描述符自动选择功能**
port 中 urb->timeout 清0 的处理有点问题(大数据量传输时会出现 no pipe alloc 异常,主要原因是刚启动传输就完成了,还没判断 timeout就被修改为0了没有进入 take sem 流程),此版本已修复
CherryUSB 性能能到多少
----------------------------------------------------------------
可以达到硬件极限性能当然需要硬件理论支持到这速度CherryUSB 就支持到这速度,举例如下:
- HPM 系列(从机可以到 42MB/S, 主机 44MB/S, 已经达到硬件极限)
- BL 系列(从机 32MB/S, 主机 25MB/S, 已经达到硬件极限)
- STM32F4 全速(从机 900KB/S, 主机 1.12MB/S, 已经达到硬件极限)
从机测速demo: cdc_acm_template.c 并且关闭 log脚本使用 `tools/test_srcipts/test_cdc_speed.py`
主机测速demo: usb_host.c 中 TEST_USBH_CDC_SPEED=1
ST IP 命名问题
------------------
ST 命名为 USB_OTG_FS, USB_OTG_HS并不是说明本身是高速或者全速只是代表可以支持到高速但是本身都是全速需要外挂高速phy。因此提问禁止说这两个词请使用 USB0(PA11/PA12),USB1(PB14/PB15) 代替。其余国产厂家同理。
GD IP 问题
------------------
GD IP 采用 DWC2但是读取的硬件参数都是 0我也不懂为什么不给人知道因此需要用户自行知道硬件信息并修改代码下面 check 的内容,然后删除 while1。
dwc2 has less endpoints than config, please check
---------------------------------------------------------------
该 IP 硬件上没有这么多端点,请修改 `CONFIG_USBDEV_EP_NUM`
Ep addr XXX overflow
------------------------------
该 IP 硬件上没有这么多端点, 请更换 IP or 减少端点使用。
This dwc2 version does not support dma mode, so stop working
----------------------------------------------------------------
该 DWC2 版本不支持 dma 模式,禁止使用。
__has_include 报错
------------------------------------------------------------------
如果报错,需要编译器支持 c99 语法,如果是 keil请用 ac6 编译器
CONFIG_USB_HS 何时使用
----------------------------------------------------------------
当你的芯片硬件支持高速,并想初始化成高速模式时开启,相关 IP 会根据该宏配置内部或者外部 高速 PHY。