From 33c0c2f02c087df62688ac3a2b95e825367376ea Mon Sep 17 00:00:00 2001 From: sakumisu <1203593632@qq.com> Date: Mon, 2 May 2022 23:08:57 +0800 Subject: update doc --- docs/source/quick_start/img/stm32f429_1.png | Bin 0 -> 24351 bytes docs/source/quick_start/img/stm32f429_10.png | Bin 0 -> 30271 bytes docs/source/quick_start/img/stm32f429_11.png | Bin 0 -> 19428 bytes docs/source/quick_start/img/stm32f429_12.png | Bin 0 -> 99451 bytes docs/source/quick_start/img/stm32f429_13.png | Bin 0 -> 74429 bytes docs/source/quick_start/img/stm32f429_14.png | Bin 0 -> 38590 bytes docs/source/quick_start/img/stm32f429_15.png | Bin 0 -> 32694 bytes docs/source/quick_start/img/stm32f429_16.png | Bin 0 -> 36301 bytes docs/source/quick_start/img/stm32f429_17.png | Bin 0 -> 56795 bytes docs/source/quick_start/img/stm32f429_18.png | Bin 0 -> 13584 bytes docs/source/quick_start/img/stm32f429_2.png | Bin 0 -> 36152 bytes docs/source/quick_start/img/stm32f429_3.png | Bin 0 -> 49701 bytes docs/source/quick_start/img/stm32f429_4.png | Bin 0 -> 74975 bytes docs/source/quick_start/img/stm32f429_5.png | Bin 0 -> 23833 bytes docs/source/quick_start/img/stm32f429_6.png | Bin 0 -> 22778 bytes docs/source/quick_start/img/stm32f429_7.png | Bin 0 -> 8848 bytes docs/source/quick_start/img/stm32f429_8.png | Bin 0 -> 17224 bytes docs/source/quick_start/img/stm32f429_9.png | Bin 0 -> 8929 bytes docs/source/quick_start/other_chip.rst | 4 ++ docs/source/quick_start/stm32f429.rst | 77 +++++++++++++++++++++++++++ 20 files changed, 81 insertions(+) create mode 100644 docs/source/quick_start/img/stm32f429_1.png create mode 100644 docs/source/quick_start/img/stm32f429_10.png create mode 100644 docs/source/quick_start/img/stm32f429_11.png create mode 100644 docs/source/quick_start/img/stm32f429_12.png create mode 100644 docs/source/quick_start/img/stm32f429_13.png create mode 100644 docs/source/quick_start/img/stm32f429_14.png create mode 100644 docs/source/quick_start/img/stm32f429_15.png create mode 100644 docs/source/quick_start/img/stm32f429_16.png create mode 100644 docs/source/quick_start/img/stm32f429_17.png create mode 100644 docs/source/quick_start/img/stm32f429_18.png create mode 100644 docs/source/quick_start/img/stm32f429_2.png create mode 100644 docs/source/quick_start/img/stm32f429_3.png create mode 100644 docs/source/quick_start/img/stm32f429_4.png create mode 100644 docs/source/quick_start/img/stm32f429_5.png create mode 100644 docs/source/quick_start/img/stm32f429_6.png create mode 100644 docs/source/quick_start/img/stm32f429_7.png create mode 100644 docs/source/quick_start/img/stm32f429_8.png create mode 100644 docs/source/quick_start/img/stm32f429_9.png (limited to 'docs/source/quick_start') diff --git a/docs/source/quick_start/img/stm32f429_1.png b/docs/source/quick_start/img/stm32f429_1.png new file mode 100644 index 00000000..7c7152d3 Binary files /dev/null and b/docs/source/quick_start/img/stm32f429_1.png differ diff --git a/docs/source/quick_start/img/stm32f429_10.png b/docs/source/quick_start/img/stm32f429_10.png new file mode 100644 index 00000000..d02dcc95 Binary files /dev/null and b/docs/source/quick_start/img/stm32f429_10.png differ diff --git a/docs/source/quick_start/img/stm32f429_11.png b/docs/source/quick_start/img/stm32f429_11.png new file mode 100644 index 00000000..3ad5b074 Binary files /dev/null and b/docs/source/quick_start/img/stm32f429_11.png differ diff --git a/docs/source/quick_start/img/stm32f429_12.png b/docs/source/quick_start/img/stm32f429_12.png new file mode 100644 index 00000000..ab5b92e6 Binary files /dev/null and b/docs/source/quick_start/img/stm32f429_12.png differ diff --git a/docs/source/quick_start/img/stm32f429_13.png b/docs/source/quick_start/img/stm32f429_13.png new file mode 100644 index 00000000..598a9578 Binary files /dev/null and b/docs/source/quick_start/img/stm32f429_13.png differ diff --git a/docs/source/quick_start/img/stm32f429_14.png b/docs/source/quick_start/img/stm32f429_14.png new file mode 100644 index 00000000..d350a776 Binary files /dev/null and b/docs/source/quick_start/img/stm32f429_14.png differ diff --git a/docs/source/quick_start/img/stm32f429_15.png b/docs/source/quick_start/img/stm32f429_15.png new file mode 100644 index 00000000..e5aa5b19 Binary files /dev/null and b/docs/source/quick_start/img/stm32f429_15.png differ diff --git a/docs/source/quick_start/img/stm32f429_16.png b/docs/source/quick_start/img/stm32f429_16.png new file mode 100644 index 00000000..6bd9a684 Binary files /dev/null and b/docs/source/quick_start/img/stm32f429_16.png differ diff --git a/docs/source/quick_start/img/stm32f429_17.png b/docs/source/quick_start/img/stm32f429_17.png new file mode 100644 index 00000000..b779f7f7 Binary files /dev/null and b/docs/source/quick_start/img/stm32f429_17.png differ diff --git a/docs/source/quick_start/img/stm32f429_18.png b/docs/source/quick_start/img/stm32f429_18.png new file mode 100644 index 00000000..977bda82 Binary files /dev/null and b/docs/source/quick_start/img/stm32f429_18.png differ diff --git a/docs/source/quick_start/img/stm32f429_2.png b/docs/source/quick_start/img/stm32f429_2.png new file mode 100644 index 00000000..a6c32050 Binary files /dev/null and b/docs/source/quick_start/img/stm32f429_2.png differ diff --git a/docs/source/quick_start/img/stm32f429_3.png b/docs/source/quick_start/img/stm32f429_3.png new file mode 100644 index 00000000..492d6739 Binary files /dev/null and b/docs/source/quick_start/img/stm32f429_3.png differ diff --git a/docs/source/quick_start/img/stm32f429_4.png b/docs/source/quick_start/img/stm32f429_4.png new file mode 100644 index 00000000..dd90f5b8 Binary files /dev/null and b/docs/source/quick_start/img/stm32f429_4.png differ diff --git a/docs/source/quick_start/img/stm32f429_5.png b/docs/source/quick_start/img/stm32f429_5.png new file mode 100644 index 00000000..5bec9878 Binary files /dev/null and b/docs/source/quick_start/img/stm32f429_5.png differ diff --git a/docs/source/quick_start/img/stm32f429_6.png b/docs/source/quick_start/img/stm32f429_6.png new file mode 100644 index 00000000..a7346c93 Binary files /dev/null and b/docs/source/quick_start/img/stm32f429_6.png differ diff --git a/docs/source/quick_start/img/stm32f429_7.png b/docs/source/quick_start/img/stm32f429_7.png new file mode 100644 index 00000000..8aef0bfa Binary files /dev/null and b/docs/source/quick_start/img/stm32f429_7.png differ diff --git a/docs/source/quick_start/img/stm32f429_8.png b/docs/source/quick_start/img/stm32f429_8.png new file mode 100644 index 00000000..08d2e724 Binary files /dev/null and b/docs/source/quick_start/img/stm32f429_8.png differ diff --git a/docs/source/quick_start/img/stm32f429_9.png b/docs/source/quick_start/img/stm32f429_9.png new file mode 100644 index 00000000..d55b38e7 Binary files /dev/null and b/docs/source/quick_start/img/stm32f429_9.png differ diff --git a/docs/source/quick_start/other_chip.rst b/docs/source/quick_start/other_chip.rst index db919461..66e14a28 100644 --- a/docs/source/quick_start/other_chip.rst +++ b/docs/source/quick_start/other_chip.rst @@ -15,6 +15,8 @@ USB Device 移植要点 - 编译使用。各个 class 如何使用,参考 demo 下的 template +.. note:: device 移植要点其实就三个,实现 `usb_dc_low_level_init` ,改 `USBD_IRQHandler=xxxx` 、`USB_BASE=0xxxxx` 、 `USB_NUM_BIDIR_ENDPOINTS=x`,改 `usb_config.h` 中的内容 + USB Host 移植要点 ----------------------- @@ -35,6 +37,8 @@ USB Host 移植要点 - 编译使用。各个 class 如何使用,参考 demo 下的 `usb_host.c` 文件 +.. note:: device 移植要点其实就三个,实现 `usb_hc_low_level_init` ,改 `USBH_IRQHandler=xxxx` 、`USB_BASE=0xxxxx` ,改 `usb_config.h` 中的内容 + .. note:: 使用 host 时,推荐添加除了 hub 以外的所有适配的 class 驱动,达到自动加载驱动的目的。当然,如果不用,那就不添加。 .. caution:: 如果主从 ip 共用一个中断,推荐设置 `USBD_IRQHandler=USBD_IRQHandler` 、 `USBH_IRQHandler=USBH_IRQHandler` ,然后由真正的中断函数根据主从模式调用这两个函数。 \ No newline at end of file diff --git a/docs/source/quick_start/stm32f429.rst b/docs/source/quick_start/stm32f429.rst index 6ec8b352..fcb331c0 100644 --- a/docs/source/quick_start/stm32f429.rst +++ b/docs/source/quick_start/stm32f429.rst @@ -1,2 +1,79 @@ 基于 STM32F429 开发指南 ========================= + +本节是基于 stm32f429 开发板的使用,仓库中已经默认有主从机的 demo ,其余 stm32 系列,基本类似,所以后续不再赘述。 + +.. note:: stm32的 porting 使用寄存器编写,所以 st 的 usb 库没有一丁点用,想删就删。(ps 主机还没用寄存器,所以删不了) + +工程样例试用 +----------------------- + +默认删除 Drivers ,所以需要使用 stm32cubemx 生成一下 Drivers 目录下的文件,demo 底下提供了 **stm32f429igt6.ioc** 文件,双击打开,点击 **Generate Code** 即可。 + + +USB Device 移植要点 +----------------------- + +- 使用 **stm32cubemx** 创建工程,配置基本的 RCC、UART (作为log使用) + +.. figure:: img/stm32f429_1.png +.. figure:: img/stm32f429_2.png + +- 如果使用 PA11 和 PA12,勾选 **USB_OTG_FS**,否则勾选 **USB_OTG_HS**,并按下面进行配置,我们只需要开启中断和 gpio 配置,其他配置对我们没用。 + +.. figure:: img/stm32f429_3.png + +- 配置 usb clock 为 48M + +.. figure:: img/stm32f429_4.png + +- 选择好工程,这里我们选择 keil,设置好 stack 和 heap,如果使用 msc 可以推荐设置大点,然后点击 **Generate Code**。 + +.. figure:: img/stm32f429_5.png + +- 添加 CherryUSB 必须要的源码( **usbd_core.c** 、 **usb_dc_synopsys.c** ),以及想要使用的 class 驱动,可以将对应的 class template 添加方便测试。 + +.. figure:: img/stm32f429_6.png + +- 头文件该加的加 + +.. figure:: img/stm32f429_7.png + +- 复制一份 **usb_config.h**,这里放到 `Core/Inc` 目录下 + +.. figure:: img/stm32f429_8.png + +- 如果使用 PB14 和 PB15,并且仅使用 FS 模式,编译选项中添加 `CONFIG_USB_HS_IN_FULL`,剩下的按照下图配置,编译器推荐使用 **AC6**。打开 **Microlib**,后续 **printf** 使用 + +.. figure:: img/stm32f429_9.png +.. figure:: img/stm32f429_10.png + +- 实现 printf,如果关闭 usb 的log,可以不实现 + +.. figure:: img/stm32f429_11.png + +- 拷贝 **xxx_msp.c** 中的 **HAL_PCD_MspInit** 函数中的内容到 **usb_dc_low_level_init** 函数中,屏蔽 st 生成的 usb 中断函数和 usb 初始化 + +.. figure:: img/stm32f429_12.png +.. figure:: img/stm32f429_13.png +.. figure:: img/stm32f429_14.png +.. figure:: img/stm32f429_15.png + +- 主函数屏蔽 **stm32cubemx** 生成的中断函数和 usb 初始化,然后调用 template 的内容初始化,就可以使用了 + +USB Host 移植要点 +----------------------- + +前面 9 步与 Device 一样,目前 Host 暂时用的 st 的 hal 库,后面有时间了再整理成寄存器的并进行优化。 + +- 添加 CherryUSB 必须要的源码( **usbh_core.c** 、 **usb_hc_synopsys.c** 、以及 **osal** 目录下的适配层文件),以及想要使用的 class 驱动(推荐添加除了 hub 之外的所有的 class),可以将对应的 usb host template 添加方便测试。 + +.. figure:: img/stm32f429_16.png + +- 主函数屏蔽 st 的 usb 初始化,屏蔽 st 生成的 usb 中断函数,然后调用 **usbh_initialize** 以及 os 需要的启动线程的函数即可使用 + +.. figure:: img/stm32f429_17.png + +- 如果使用 **msc**,并且带文件系统,需要自行添加文件系统文件了,对应的 porting 编写参考 **fatfs_usbh.c** 文件。 + +.. figure:: img/stm32f429_18.png \ No newline at end of file -- cgit v1.3.1