From 0f205de3e35c313b11849687eb57c44db9c3ceed Mon Sep 17 00:00:00 2001 From: sakumisu <1203593632@qq.com> Date: Wed, 15 Jun 2022 21:02:15 +0800 Subject: [PATCH] update dwc2 rst --- docs/source/porting_usbip.rst | 42 +++++++++++++++---- .../source/quick_start/rt-thread/rtthread.rst | 2 +- 2 files changed, 35 insertions(+), 9 deletions(-) diff --git a/docs/source/porting_usbip.rst b/docs/source/porting_usbip.rst index 57ba5d4d..9ee36de4 100644 --- a/docs/source/porting_usbip.rst +++ b/docs/source/porting_usbip.rst @@ -150,17 +150,43 @@ MUSB IP 支持主从,并且由 **mentor** 定义了一套标准的寄存器偏 - 0x01c13000 - 4 -SYNOPSYS +DWC2 -------------------------- -- STM32 芯片中,H7 的 FS 控制器(使用 PA11/PA12)基地址(**0x40080000UL**)与其他芯片 FS 控制器基地址(**0x50000000UL**)不一样, HS 基地址都是一样的。其次是关于 **VBUS_SENSE** 的控制,虽然寄存器相同,但是个别芯片对该 bit 操作 0 和操作 1 是相反的(估计是硬件设计问题),此问题会影响枚举,所以需要根据芯片控制是否使能 **CONFIG_USB_SYNOPSYS_NOVBUSSEN**。 -不可靠的统计是新款 F4、F7、H7、L4 都是需要使能的。 +DWC2 IP 支持主从,并且由 **synopsys** 定义了一套标准的寄存器偏移。大部分厂家都使用标准的寄存器偏移,所以如果是从机仅需要修改 `USBD_IRQHandler` 、 `USB_BASE` 、 `USB_NUM_BIDIR_ENDPOINTS` ,主机仅需要修改 `USBH_IRQHandler` 、 `USB_BASE` 即可。 -.. code-block:: C +.. caution:: 主机 port 仅支持有高速功能的 dwc2 ip, 因为他支持 dma 模式,如果厂家买的 ip 不支持 dma 模式,则无法使用。 - /* Deactivate VBUS Sensing B */ - USBx->GCCFG &= ~USB_OTG_GCCFG_VBDEN; +下表为具体芯片从机相关宏的修改值: - USBx->GCCFG |= USB_OTG_GCCFG_NOVBUSSENS; +.. list-table:: + :widths: 30 30 30 30 + :header-rows: 1 - 两者都是关闭作用,并且其中 USB_OTG_GCCFG_NOVBUSSENS 和 USB_OTG_GCCFG_VBDEN 都是 21 bit \ No newline at end of file + * - 芯片 + - USBH_IRQHandler + - USB_BASE + - USB_NUM_BIDIR_ENDPOINTS + * - STM32 非 H7 + - OTG_FS_IRQHandler/OTG_HS_IRQHandler + - 0x50000000UL/0x40040000UL + - 5 + * - STM32 H7 + - 同上 + - 0x40080000UL/0x40040000UL + - 9 + +下表为具体芯片主机相关宏的修改值: + +.. list-table:: + :widths: 30 30 30 30 + :header-rows: 1 + + * - 芯片 + - USBH_IRQHandler + - USB_BASE + - CONFIG_USB_DWC2_PIPE_NUM + * - STM32 全系列 + - OTG_HS_IRQHandler + - 0x40040000UL + - 12 diff --git a/docs/source/quick_start/rt-thread/rtthread.rst b/docs/source/quick_start/rt-thread/rtthread.rst index 2ee4c0b3..92f847ff 100644 --- a/docs/source/quick_start/rt-thread/rtthread.rst +++ b/docs/source/quick_start/rt-thread/rtthread.rst @@ -44,7 +44,7 @@ .. figure:: img/env7.png -* 选择 USB host ip,不清楚自己芯片是哪个 ip 的可以参考 **port** 目录下对应的 readme。选择好 USB host ip 以后,还需要选择是哪款芯片,第二个箭头则是用来选择芯片,选择以后会帮忙配置相对应的 ip 的一些信息,比如 `USB_BASE` 、 `USBH_Handler` 以及特殊的一些配置等等,如果没找到自己的芯片,可以手动在 `usb_dc_xxx.c` 中修改。 +* 选择 USB host ip,不清楚自己芯片是哪个 ip 的可以参考 **port** 目录下对应的 readme。选择好 USB host ip 以后,还需要选择是哪款芯片,第二个箭头则是用来选择芯片,选择以后会帮忙配置相对应的 ip 的一些信息,比如 `USB_BASE` 、 `USBH_Handler` 以及特殊的一些配置等等,如果没找到自己的芯片,可以手动在 `usb_hc_xxx.c` 中修改。 .. figure:: img/env8.png