summaryrefslogtreecommitdiff
path: root/docs/source/porting_usbip.rst
diff options
context:
space:
mode:
Diffstat (limited to 'docs/source/porting_usbip.rst')
-rw-r--r--docs/source/porting_usbip.rst50
1 files changed, 25 insertions, 25 deletions
diff --git a/docs/source/porting_usbip.rst b/docs/source/porting_usbip.rst
index 985a607c..4cbb8df2 100644
--- a/docs/source/porting_usbip.rst
+++ b/docs/source/porting_usbip.rst
@@ -6,16 +6,16 @@ USB IP 勘误
FSDEV
--------------------------
-FSDEV 仅支持从机。这个 ip 不同厂家基本都是基于标准的 usb 寄存器,所以用户使用时,仅需要修改 `USBD_IRQHandler` 、 `USB_BASE` 、 `USB_NUM_BIDIR_ENDPOINTS` 即可。有些芯片可能还需要配置 `PMA_ACCESS` 的值,默认为2。下表为具体芯片相关宏的修改值:
+FSDEV 仅支持从机。这个 ip 不同厂家基本都是基于标准的 usb 寄存器,有些芯片可能还需要配置 `PMA_ACCESS` 的值,默认为2。下表为具体芯片相关宏的修改值:
.. list-table::
:widths: 30 20 30 30 30
:header-rows: 1
* - 芯片
- - USBD_IRQHandler
- - USB_BASE
- - USB_NUM_BIDIR_ENDPOINTS
+ - 中断名
+ - 寄存器地址
+ - CONFIG_USBDEV_EP_NUM
- PMA_ACCESS
* - STM32F0
- USB_IRQHandler
@@ -67,7 +67,7 @@ fsdev 需要外置 dp 上拉才能使用,有些芯片可能是接上拉电阻�
MUSB
--------------------------
-MUSB IP 支持主从,并且由 **mentor** 定义了一套标准的寄存器偏移,所以如果是走的标准,则从机仅需要修改 `USBD_IRQHandler` 、 `USB_BASE` 、 `USB_NUM_BIDIR_ENDPOINTS` ,主机仅需要修改 `USBH_IRQHandler` 、 `USB_BASE` 以及 `CONIFG_USB_MUSB_EP_NUM` 即可。如果非标准,则需要实现以下宏的偏移,以标准为例:
+MUSB IP 支持主从,并且由 **mentor** 定义了一套标准的寄存器偏移,如果非标准,则需要实现以下宏的偏移,以标准为例:
.. code-block:: C
@@ -127,9 +127,9 @@ MUSB IP 支持主从,并且由 **mentor** 定义了一套标准的寄存器偏
:header-rows: 1
* - 芯片
- - USBD_IRQHandler
- - USB_BASE
- - USB_NUM_BIDIR_ENDPOINTS
+ - 中断名
+ - 寄存器地址
+ - CONFIG_USBDEV_EP_NUM
* - ES32F3xx
- USB_INT_Handler
- 0x40086400
@@ -150,8 +150,8 @@ MUSB IP 支持主从,并且由 **mentor** 定义了一套标准的寄存器偏
:header-rows: 1
* - 芯片
- - USBH_IRQHandler
- - USB_BASE
+ - 中断名
+ - 寄存器地址
- CONIFG_USB_MUSB_EP_NUM
* - ES32F3xx
- USB_INT_Handler
@@ -169,7 +169,7 @@ MUSB IP 支持主从,并且由 **mentor** 定义了一套标准的寄存器偏
DWC2
--------------------------
-DWC2 IP 支持主从,并且由 **synopsys** 定义了一套标准的寄存器偏移。大部分厂家都使用标准的寄存器偏移(除了 GCCFG(GGPIO)寄存器),所以如果是从机仅需要修改 `USBD_IRQHandler` 、 `USB_BASE` 、 `USB_NUM_BIDIR_ENDPOINTS` ,主机仅需要修改 `USBH_IRQHandler` 、 `USB_BASE` 即可。
+DWC2 IP 支持主从,并且由 **synopsys** 定义了一套标准的寄存器偏移。大部分厂家都使用标准的寄存器偏移(除了 GCCFG(GGPIO)寄存器),所以如果是从机仅需要修改 `中断名` 、 `USB_BASE` 、 `CONFIG_USBDEV_EP_NUM` ,主机仅需要修改 `中断名` 、 `USB_BASE` 即可。
.. note:: GCCFG(GGPIO) 根据不同的厂家设置不同,会影响 usb 枚举,需要根据厂家提供的手册进行配置,并实现 usbd_get_dwc2_gccfg_conf 和 usbh_get_dwc2_gccfg_conf 函数,填充相应需要使能的bit
@@ -182,9 +182,9 @@ DWC2 IP 支持主从,并且由 **synopsys** 定义了一套标准的寄存器�
:header-rows: 1
* - 芯片
- - USBH_IRQHandler
- - USB_BASE
- - USB_NUM_BIDIR_ENDPOINTS
+ - 中断名
+ - 寄存器地址
+ - CONFIG_USBDEV_EP_NUM
* - STM32 非 H7
- OTG_FS_IRQHandler/OTG_HS_IRQHandler
- 0x50000000UL/0x40040000UL
@@ -201,9 +201,9 @@ DWC2 IP 支持主从,并且由 **synopsys** 定义了一套标准的寄存器�
:header-rows: 1
* - 芯片
- - USBH_IRQHandler
- - USB_BASE
- - CONFIG_USB_DWC2_PIPE_NUM
+ - 中断名
+ - 寄存器地址
+ - CONFIG_USBHOST_PIPE_NUM
* - STM32 全系列
- OTG_HS_IRQHandler
- 0x40040000UL
@@ -216,17 +216,17 @@ EHCI 是 intel 制定的标准主机控制器接口,任何厂家都必须实�
.. code-block:: C
- //Host Controller Operational Register BASE 距离基地址的偏移
- #define CONFIG_USB_EHCI_HCOR_OFFSET (0x14)
- //是否打印 ehci 配置信息
- #define CONFIG_USB_EHCI_INFO_ENABLE
+ #define CONFIG_USB_EHCI_HCCR_OFFSET (0x0)
+ #define CONFIG_USB_EHCI_FRAME_LIST_SIZE 1024
+ #define CONFIG_USB_EHCI_QH_NUM CONFIG_USBHOST_PIPE_NUM
+ #define CONFIG_USB_EHCI_QTD_NUM 3
+ #define CONFIG_USB_EHCI_ITD_NUM 20
//是否关闭保留寄存器的占位,默认保留 9 个双字的占位
#define CONFIG_USB_EHCI_HCOR_RESERVED_DISABLE
//是否使能 configflag 寄存器中的 bit0
#define CONFIG_USB_EHCI_CONFIGFLAG
- //是否使能 port power bit
- #define CONFIG_USB_EHCI_PORT_POWER
- //是否查看 ehci 配置信息
- #define CONFIG_USB_EHCI_PRINT_HW_PARAM
+ #define CONFIG_USB_EHCI_ISO
+ // 不带 tt的 IP 一般使用OHCI
+ #define CONFIG_USB_EHCI_WITH_OHCI
同时由于 EHCI 只是主机控制器并且只支持高速,一般配合一个 otg 控制器和一个低速全速兼容控制单元,而速度的获取一般是在 otg 寄存器中,所以需要用户实现 `usbh_get_port_speed` 函数。 \ No newline at end of file