summaryrefslogtreecommitdiff
path: root/docs/source
diff options
context:
space:
mode:
authorsakumisu <[email protected]>2025-07-22 18:20:37 +0800
committersakumisu <[email protected]>2025-07-22 18:20:37 +0800
commit68b28a43f30829f944eb9ba8a81c3ead4736b6f2 (patch)
treeac5c256b6c72af92566736c2e0975e112b3b3af0 /docs/source
parentddda03c4cb854041e38d8d28ffa3fcdb571b4cab (diff)
docs: update rst
Signed-off-by: sakumisu <[email protected]>
Diffstat (limited to 'docs/source')
-rw-r--r--docs/source/opensource.rst4
-rw-r--r--docs/source/q&a.rst4
-rw-r--r--docs/source/quick_start/demo.rst8
-rw-r--r--docs/source/quick_start/img/stm32_21.pngbin13584 -> 0 bytes
-rw-r--r--docs/source/quick_start/img/stm32_3_2.png (renamed from docs/source/quick_start/img/stm32_3.png)bin49701 -> 49701 bytes
-rw-r--r--docs/source/quick_start/img/stm32_4_2.png (renamed from docs/source/quick_start/img/stm32_4.png)bin74975 -> 74975 bytes
-rw-r--r--docs/source/quick_start/img/stm32_init.pngbin8280 -> 0 bytes
-rw-r--r--docs/source/quick_start/img/stm32_init2.pngbin47691 -> 0 bytes
-rw-r--r--docs/source/quick_start/img/stm32cubemx0.pngbin22591 -> 0 bytes
-rw-r--r--docs/source/quick_start/img/stm32cubemx1.pngbin37705 -> 0 bytes
-rw-r--r--docs/source/quick_start/img/stm32cubemx2.pngbin41977 -> 0 bytes
-rw-r--r--docs/source/quick_start/img/stm32cubemx_clk.pngbin16418 -> 0 bytes
-rw-r--r--docs/source/quick_start/transplant.rst10
-rw-r--r--docs/source/support/img/usbhost_uvc.gifbin0 -> 8564084 bytes
-rw-r--r--docs/source/support/index.rst12
15 files changed, 23 insertions, 15 deletions
diff --git a/docs/source/opensource.rst b/docs/source/opensource.rst
index 321fa4f6..7990538e 100644
--- a/docs/source/opensource.rst
+++ b/docs/source/opensource.rst
@@ -56,3 +56,7 @@ Klipper is a 3d-printer firmware.
适配链接:待开放
+MAKCU/KMBOX
+--------------
+
+懂的都懂,不开放 \ No newline at end of file
diff --git a/docs/source/q&a.rst b/docs/source/q&a.rst
index b5c08462..ae41d312 100644
--- a/docs/source/q&a.rst
+++ b/docs/source/q&a.rst
@@ -11,11 +11,11 @@ Q & A
提问中请包含以下信息:
- 使用的板子,引脚,USB IP
-- USB 中断,时钟,引脚,寄存器地址是否正确,截图
+- 是否配置 USB 中断,USB 时钟,USB 引脚,USB phy 配置,以及 USB 寄存器地址是否正确,截图
- 是否能进 USB 中断
- 芯片是否带有 cache功能,是否做了 no cache 处理,截图
- 硬件是否正常,是否使用杜邦线连接,如果正常,请说明正常原因
-- 配置 **#define CONFIG_USB_DBG_LEVEL USB_DBG_LOG** 并提供 log,仅限商业 IP, 其余 IP 禁止开启 log,否则无法枚举
+- 如果能进中断,配置 **#define CONFIG_USB_DBG_LEVEL USB_DBG_LOG** 并提供 log,仅限商业 IP, 其余 IP 禁止开启 log,否则无法枚举
- 是否流片并销售
其余问题提问模板
diff --git a/docs/source/quick_start/demo.rst b/docs/source/quick_start/demo.rst
index 3ad3ca72..3c330e46 100644
--- a/docs/source/quick_start/demo.rst
+++ b/docs/source/quick_start/demo.rst
@@ -116,12 +116,12 @@ USB Device 移植要点
- 如果使用 fsdev ip,勾选 **USB** 。如果使用 dwc2 ip,勾选 **USB_OTG_FS** 或者勾选 **USB_OTG_HS**。开启 USB 中断,其他配置对我们没用,代码中不会使用任何 st 的 usb 库。
.. figure:: img/stm32_3_1.png
-.. figure:: img/stm32_3.png
+.. figure:: img/stm32_3_2.png
- 配置 usb clock 为 48M
.. figure:: img/stm32_4_1.png
-.. figure:: img/stm32_4.png
+.. figure:: img/stm32_4_2.png
- 选择好工程,这里我们选择 keil,设置好 stack 和 heap,如果使用 msc 可以推荐设置大点,然后点击 **Generate Code**。
@@ -214,10 +214,12 @@ USB Host 移植要点
- 拷贝 **xxx_msp.c** 中的 `HAL_HCD_MspInit` 函数中的内容到 `usb_hc_low_level_init` 函数中,屏蔽 st 生成的 usb 初始化
- 在中断函数中调用 `USBH_IRQHandler`,并传入 `busid`
+
+.. figure:: img/stm32_19.png
+
- 链接脚本修改参考 :ref:`usbh_link_script` 章节
- 如果芯片带 cache,cache 修改参考 :ref:`usb_cache` 章节
- 调用 `usbh_initialize` 并填入 `busid` 和 USB IP 的 `reg base`, `busid` 从 0 开始,不能超过 `CONFIG_USBHOST_MAX_BUS`
- 启动线程
.. figure:: img/stm32_18.png
-.. figure:: img/stm32_19.png
diff --git a/docs/source/quick_start/img/stm32_21.png b/docs/source/quick_start/img/stm32_21.png
deleted file mode 100644
index 977bda82..00000000
--- a/docs/source/quick_start/img/stm32_21.png
+++ /dev/null
Binary files differ
diff --git a/docs/source/quick_start/img/stm32_3.png b/docs/source/quick_start/img/stm32_3_2.png
index 492d6739..492d6739 100644
--- a/docs/source/quick_start/img/stm32_3.png
+++ b/docs/source/quick_start/img/stm32_3_2.png
Binary files differ
diff --git a/docs/source/quick_start/img/stm32_4.png b/docs/source/quick_start/img/stm32_4_2.png
index dd90f5b8..dd90f5b8 100644
--- a/docs/source/quick_start/img/stm32_4.png
+++ b/docs/source/quick_start/img/stm32_4_2.png
Binary files differ
diff --git a/docs/source/quick_start/img/stm32_init.png b/docs/source/quick_start/img/stm32_init.png
deleted file mode 100644
index 3ce57201..00000000
--- a/docs/source/quick_start/img/stm32_init.png
+++ /dev/null
Binary files differ
diff --git a/docs/source/quick_start/img/stm32_init2.png b/docs/source/quick_start/img/stm32_init2.png
deleted file mode 100644
index eae3c026..00000000
--- a/docs/source/quick_start/img/stm32_init2.png
+++ /dev/null
Binary files differ
diff --git a/docs/source/quick_start/img/stm32cubemx0.png b/docs/source/quick_start/img/stm32cubemx0.png
deleted file mode 100644
index 1ea33e04..00000000
--- a/docs/source/quick_start/img/stm32cubemx0.png
+++ /dev/null
Binary files differ
diff --git a/docs/source/quick_start/img/stm32cubemx1.png b/docs/source/quick_start/img/stm32cubemx1.png
deleted file mode 100644
index a6ca5078..00000000
--- a/docs/source/quick_start/img/stm32cubemx1.png
+++ /dev/null
Binary files differ
diff --git a/docs/source/quick_start/img/stm32cubemx2.png b/docs/source/quick_start/img/stm32cubemx2.png
deleted file mode 100644
index e29254bb..00000000
--- a/docs/source/quick_start/img/stm32cubemx2.png
+++ /dev/null
Binary files differ
diff --git a/docs/source/quick_start/img/stm32cubemx_clk.png b/docs/source/quick_start/img/stm32cubemx_clk.png
deleted file mode 100644
index 41a7aae8..00000000
--- a/docs/source/quick_start/img/stm32cubemx_clk.png
+++ /dev/null
Binary files differ
diff --git a/docs/source/quick_start/transplant.rst b/docs/source/quick_start/transplant.rst
index 1b401d15..a6dcf14e 100644
--- a/docs/source/quick_start/transplant.rst
+++ b/docs/source/quick_start/transplant.rst
@@ -6,26 +6,24 @@
USB Device 移植要点
-----------------------
-- 拷贝 CherryUSB 源码到工程目录下,并按需添加源文件和头文件路径,其中 `usbd_core.c` 和 `usb_dc_xxx.c` 为必须添加项。而 `usb_dc_xxx.c` 是芯片所对应的 USB IP dcd 部分驱动,如果不知道自己芯片属于那个 USB IP,参考 **port** 目录下的不同 USB IP 的 readme。如果使用的 USB IP 没有支持,只能自己实现了
+- 拷贝 CherryUSB 源码到工程目录下,并按需添加源文件和头文件路径,头文件路径建议全部添加。其中 `usbd_core.c` 和 `usb_dc_xxx.c` 为必须添加项。而 `usb_dc_xxx.c` 是芯片所对应的 USB IP dcd 部分驱动,如果不知道自己芯片属于那个 USB IP,参考 **port** 目录下的不同 USB IP 的 readme。如果使用的 USB IP 没有支持,只能自己实现了
- 拷贝 `cherryusb_config_template.h` 文件到自己工程目录下,命名为 `usb_config.h`,并添加相应的目录头文件路径
- 实现 `usb_dc_low_level_init` 函数(该函数主要负责 USB 时钟、引脚、中断的初始化)。该函数可以放在你想要放的任何参与编译的 c 文件中。如何进行 USB 的时钟、引脚、中断等初始化,请自行根据你使用的芯片原厂提供的源码中进行添加。
-- 描述符的注册、class的注册、接口的注册、端点中断的注册。不会的参考 demo 下的 template
-- 调用 `usbd_initialize` 并填入 `busid` 和 USB IP 的 `reg base`, `busid` 从 0 开始,不能超过 `CONFIG_USBDEV_MAX_BUS`
- 在中断函数中调用 `USBD_IRQHandler`,并传入 `busid`, 如果你的 SDK 中中断入口已经存在 `USBD_IRQHandler` ,请更改 USB 协议栈中的名称
- 如果芯片带 cache,cache 修改参考 :ref:`usb_cache` 章节
-- 编译使用。各个 class 如何使用,参考 demo 下的 template
+- 注册描述符并调用 `usbd_initialize`,填入 `busid` 和 USB IP 的 `reg base`, `busid` 从 0 开始,不能超过 `CONFIG_USBDEV_MAX_BUS`,可以直接使用 demo 下的 template
USB Host 移植要点
-----------------------
-- 拷贝 CherryUSB 源码到工程目录下,并按需添加源文件和头文件路径,其中 `usbh_core.c` 、 `usb_hc_xxx.c` 以及 **osal** 目录下源文件(根据不同的 os 选择对应的源文件)为必须添加项。而 `usb_hc_xxx.c` 是芯片所对应的 USB IP hcd 部分驱动,如果不知道自己芯片属于那个 USB IP,参考 **port** 目录下的不同 USB IP 的 readme。如果使用的 USB IP 没有支持,只能自己实现了
+- 拷贝 CherryUSB 源码到工程目录下,并按需添加源文件和头文件路径,头文件路径建议全部添加。其中 `usbh_core.c` 、 `usb_hc_xxx.c` 以及 **osal** 目录下源文件(根据不同的 os 选择对应的源文件)为必须添加项。而 `usb_hc_xxx.c` 是芯片所对应的 USB IP hcd 部分驱动,如果不知道自己芯片属于那个 USB IP,参考 **port** 目录下的不同 USB IP 的 readme。如果使用的 USB IP 没有支持,只能自己实现了
- 拷贝 `cherryusb_config_template.h` 文件到自己工程目录下,命名为 `usb_config.h`,并添加相应的目录头文件路径
- 实现 `usb_hc_low_level_init` 函数(该函数主要负责 USB 时钟、引脚、中断的初始化)。该函数可以放在你想要放的任何参与编译的 c 文件中。如何进行 USB 的时钟、引脚、中断等初始化,请自行根据你使用的芯片原厂提供的源码中进行添加。
- 调用 `usbh_initialize` 并填入 `busid` 和 USB IP 的 `reg base`, `busid` 从 0 开始,不能超过 `CONFIG_USBHOST_MAX_BUS`
- 在中断函数中调用 `USBH_IRQHandler`,并传入 `busid`, 如果你的 SDK 中中断入口已经存在 `USBH_IRQHandler` ,请更改 USB 协议栈中的名称
- 链接脚本修改参考 :ref:`usbh_link_script` 章节
- 如果芯片带 cache,cache 修改参考 :ref:`usb_cache` 章节
-- 编译使用。基础的 cdc + hid + msc 参考 `usb_host.c` 文件,其余参考 **platform** 目录下适配
+- 调用 `usbh_initialize` ,填入 `busid` 和 USB IP 的 `reg base`, `busid` 从 0 开始,不能超过 `CONFIG_USBHOST_MAX_BUS` 。基础的 cdc + hid + msc 参考 `usb_host.c` 文件,其余参考 **platform** 目录下适配
.. _usbh_link_script:
diff --git a/docs/source/support/img/usbhost_uvc.gif b/docs/source/support/img/usbhost_uvc.gif
new file mode 100644
index 00000000..c4df04e0
--- /dev/null
+++ b/docs/source/support/img/usbhost_uvc.gif
Binary files differ
diff --git a/docs/source/support/index.rst b/docs/source/support/index.rst
index 74a50ee1..e30c4bb0 100644
--- a/docs/source/support/index.rst
+++ b/docs/source/support/index.rst
@@ -7,19 +7,23 @@
.. figure:: img/ohci.png
-- 主机 UVC & UAC 类 EHCI IP 中 ISO 驱动和 UAC/UVC 框架,iso 支持最多一个微帧 3 包
+- EHCI IP 中 ISO 驱动和 UAC/UVC 框架,搭配主机 UVC & UAC 类(这部分是开源的)使用。iso 支持一个微帧 1/2/3 包,支持 MJPEG 和 YUV 摄像头
.. figure:: img/ehci_hostuvc1.png
.. figure:: img/ehci_hostuvc2.png
-- 主机 UVC & UAC 类 DWC2 IP 中 ISO 驱动和 UAC/UVC 框架,iso 支持最多一个微帧 3 包
+演示 USB Host UVC 驱动 648 * 480 YUV 摄像头。FPS 30。
+
+.. figure:: img/usbhost_uvc.gif
+
+- DWC2 IP 中 ISO 驱动和 UAC/UVC 框架,搭配主机 UVC & UAC 类(这部分是开源的)使用。iso 支持一个微帧 1/2/3 包,支持 MJPEG 和 YUV 摄像头
.. figure:: img/dwc2_hostuvc1.png
.. figure:: img/dwc2_hostuvc2.png
.. figure:: img/dwc2_hostuvc3.png
.. figure:: img/dwc2_hostuac.png
-- 主机 UVC & UAC 类 MUSB IP 中 ISO 驱动和 UAC/UVC 框架, MUSB 需要为 mentor 公司制定的标准 IP
+- MUSB IP 中 ISO 驱动和 UAC/UVC 框架,搭配主机 UVC & UAC 类(这部分是开源的)使用。MUSB 需要为 mentor 公司制定的标准 IP
- 从机 MTP 类驱动, 支持多文件和多文件夹,支持 MCU 端增删文件并与 PC 同步
@@ -35,5 +39,5 @@
.. figure:: img/rndistx.png
.. figure:: img/rndisrx.png
-- 定制化 class 驱动或者 IP 驱动
+- 定制化 class 驱动或者 IP 驱动适配
- 技术支持相关 \ No newline at end of file