diff --git a/rt-thread-version/rt-thread-standard/application-note/packages/rw007_module_using/an0034-rw007-module-using.md b/rt-thread-version/rt-thread-standard/application-note/packages/rw007_module_using/an0034-rw007-module-using.md index 2f725561f5888ee351084df4885ed2670e5152c8..f00d25a6b48f91fd32fa173b4400c9d05f6c4489 100644 --- a/rt-thread-version/rt-thread-standard/application-note/packages/rw007_module_using/an0034-rw007-module-using.md +++ b/rt-thread-version/rt-thread-standard/application-note/packages/rw007_module_using/an0034-rw007-module-using.md @@ -26,19 +26,23 @@ Nucleo 上的 Arduino 接口能让开发板与 WiFi 模块「无缝衔接」, ## RW007 -RW007 是由上海睿赛德电子科技有限公司开发的高速 WiFi 模块,模块基于 Realtek RTL8710BN(Ameba Z 系列) WIFI SOC,使用 SPI/UART 与主机通信 ,支持 IEEE 802.11b/g/n 网络、 WEP/WPA/WPA2 加密方式和 STA 和 AP 模式。 +RW007 是由上海睿赛德电子科技有限公司开发的高速 WiFi 模块,使用 SPI 与主机通信 ,支持 IEEE 802.11b/g/n 网络、 WEP/WPA/WPA2 加密方式和 STA 和 AP 模式。 ![RW007 WiFi 模块](figures/rtt-rw007.jpg) ### 主要特性 -* Cortex-M4 高性能 MCU -* 可自由选择的 AT SPI 双模式,工作模式可由主机配置 -* SPI 时钟高达 30Mbps,UART 波特率高达 6Mbps。 +* 高性能 MCU +* 使用 SPI 通信方式 +* SPI 时钟高达 30Mbps * SPI 模式下有效以太网带宽高达上传 1MBytes/s,下载 1MBytes/s -* 内置 Bootloader,支持固件升级、安全固件功能。 -* 支持快速连接、airkiss 配网 -* 支持存储多达 5 条连接信息 +* 支持 WiFi+BLE 主从机功能 +* BLE 主机功能可同时连接多个 BLE 设备 +* WiFi 支持 STA+AP 模式 +* 支持微信小程序 BLE 快速配网 +* 支持断网快速回连 +* 内置 Bootloader,支持 OTA 固件升级、安全固件功能 +* 支持批量远程升级,方便运维管理 *更多相关信息资料见 RW007 介绍页面:[睿赛德科技推出高速Wi-Fi模块RW007:内置RT-Thread物联网操作系统](https://mp.weixin.qq.com/s/HYHoMnOhzad2m6IBS2Z-Qg)* @@ -96,11 +100,11 @@ pin 序号与引脚名对应关系如下表: | PC0 - PC15 | 32 - 47 | | PD0 - ... | 48 - ... | -*在 [bsp/stm32/libraries/HAL_Drivers/drv_gpio.c](https://github.com/RT-Thread/rt-thread/blob/master/bsp/stm32/libraries/HAL_Drivers/drv_gpio.c) 的 `pins[]` 数组中,能清楚地看到 pinmap 关系。* +*在 [bsp/stm32/libraries/HAL_Drivers/drv_gpio.c](https://github.com/RT-Thread/rt-thread/blob/master/bsp/stm32/libraries/HAL_Drivers/drv_gpio.c) 的 `pins[]` 数组中,能清除看到 pinmap 关系。* ## STM32 bsp 配置(Menuconfig) -### 步骤一:下载 RT-Thread SDK +### 步骤一:下载 RT-Thread SDK * Github 链接:[RT-Thread/rt-thread: RT-Thread is an open source IoT operating system from China.](https://github.com/RT-Thread/rt-thread) * Gitee 链接:[RT-Thread/rt-thread: RT-Thread is an open source IoT operating system from China.](https://gitee.com/rtthread/rt-thread) @@ -138,13 +142,13 @@ pin 序号与引脚名对应关系如下表: ![cubemx 配置](figures/cubemx_setting.png) + - - + ![CubeMX 配置 SPI ](figures/stm32_f401_cubeMX_Setting.gif) - + ### 步骤三 :通过`menuconfig`配置 RW007 软件包 @@ -196,7 +200,7 @@ RT-Thread 通过软件包的形式,对 RW007 模块提供配套驱动支持, ![配置 SPI 引脚](figures/007-pkg-config.png) -最高 SPI 速率配置:**从 v1.1.0 版本起**,用户可以根据实际使用情况提高或降低总线速率(默认为 30MHz),为满足对通讯稳定性和传输速度的需求,建议更新至最新版本,对应的 Menuconfig 配置项如下: +最高 SPI 速率配置:**从 v2.0.1 版本起**,用户可以根据实际使用情况提高或降低总线速率(默认为 30MHz),为满足对通讯稳定性和传输速度的需求,建议更新至最新版本,对应的 Menuconfig 配置项如下: ![SPI 最高速率配置](figures/spi_max_hz_config.png) @@ -237,16 +241,18 @@ RW007 驱动使用了 WLAN 相关的接口,按以下选项路径打开 WiFi ``` \ | / - RT - Thread Operating System - / | \ 4.0.1 build Mar 7 2019 - 2006 - 2019 Copyright by rt-thread team + / | \ 4.0.3 build Mar 5 2021 + 2006 - 2020 Copyright by rt-thread team lwIP-2.0.2 initialized! +msh > [I/WLAN.dev] wlan init success [I/WLAN.lwip] eth device init ok name:w0 [I/WLAN.dev] wlan init success [I/WLAN.lwip] eth device init ok name:w1 -rw007 sn: [rw0072795b24400ac48] -rw007 ver: [1.2.3] +rw007 sn: [rw0078c47c8000000] +rw007 ver: [2.0.5-c30c4e84-77821] + msh > ``` @@ -273,3 +279,143 @@ msh > * **运行出现 `wspi` device not found** 确认 RW007 软件包中总线的设备名为 `spi1`,否则会导致设备挂载失败。 + + + +# 使用 `RT-Thread Studio IDE` 体验 `RW007` 开发 + +## 准备工作 + +在使用 RT-Thread Studio IDE 体验 RW007 开发前需要准备以下软件和板子: + +1. STM32 Nucleo-64 开发板,这里使用 STM32F411-ST-Nucleo 开发板进行演示(可以使用其他支持 RTT 的板子) + +2. RW007 WiFi 模块 + +3. Mini-USB 连接线(连接开发板和电脑) + +4. RT-Thread Studio IDE 软件 + +## 开始操作 + +使用 RT-Thread Studio IDE 进行开发,用户只需要简单配置相关功能,就能实现对应的效果,接下来将介绍如何使用 RT-Thread Studio IDE 进行 STM32F411-ST-NUCLEO 开发板上驱动 RW007 模块,并完成 AP 扫描、WiFi 联网测试等功能。 + +### 创建 RT-Thread 工程 + +使用 RT-Thread Studio IDE 创建 RT-Thread 项目工程,先点击菜单栏上的文件选项,然后选择新建,再选择 RT-Thread 项目,就会提示需要基于芯片还是基于开发板,进行创建项目。 + +![新建RT-Thread项目](figures/Create_RT-Thread_Project.png) + +这里需要选择基于开发板进行创建项目工程,由于没有 STM32F411 NUCLEO 开发板资源包,需要点击添加更多,添加 STM32F411 NUCLEO 开发板的资源包,详细步骤入下图。 + +### 添加 STM32F411-ST-NUCLEO 开发板资源包 + +![添加`STM32F411-ST-NUCLEO`开发板资源包](figures/Add_STM32F411NUCLEO_Board_resource.png) + +![Select_Board_resource_install](figures/Select_Board_resource_install.png) + +![资源包安装完成](figures/STM32F411-ST-NUCLEO_finsh_installed.png) + +### 创建 Test_RW007 项目工程 + +通过上面的步骤,已经正确添加了 STM32F411 NUCLEO 开发板的资源包,下面进行创 Test_RW007 的项目工程。也是重复前面的步骤,先点击菜单栏上的文件选项,然后选择新建,再选择 RT-Thread 项目,就会提示需要基于芯片还是基于开发板,进行创建项目,需要选择基于开发板进行创建项目工程,并选择 STM32F411-ST-NUCLEO 的型号,输入创建的工程名,最后点击完成,就完成了创建工程。 + +![Create_Test_RW007_Project.png](figures/Create_Test_RW007_Project.png) + +然后,等待软件执行创建工程的操作,创建工程完成后,再项目资源管理器可以看到创建的工程,并且会在控制台输出工程创建完成的信息。 + +![Test_RW007项目创建完成](figures/Test_RW007_Project_finish.png) + +### Test_RW007 项目工程软件配置 + +根据前面的步骤,创建了基本的 STM32F411-ST-NUCLEO 的工程,下面将为如何把 RW007 EVB 和 STM32F411-NUCLEO 开发板进行硬件连接和软件工程配置进行详细描述。 + +#### 硬件连接 + +说明:由于 STM32F411-ST-NUCLEO 开发板的 Arduino 接口和 STM32F401-ST-NUCLEO 的 Arduino 接口是相同的,故可参考前文的引脚配置说明。 + +![引脚配置](figures/IO_Setting1.png) + +整理 IO 引脚 对应表 + +各 IO 接口与功能之间的对应关系表: + +| STM32 引脚名 | Arduino 接口序号 | 功能 | +| ------------ | ---------------- | --------- | +| PA5 | D13 | BOOT0/CLK | +| PA6 | D12 | MISO | +| PA7 | D11 | MOSI | +| PB6 | D10 | BOOT1/CS | +| PC7 | D9 | INT/BUSY | +| PA9 | D8 | RESET | + +#### CubeMX 配置工程 + +需要使用 CubeMX 进行软件配置对应的 IO 引脚功能,由于默认 `PA6` 和 `PA7` 引脚没有被配置为 `SPI1` 的功能引脚,所以需要分别把 `PA6` 配置为 `SPI1_MISO`、`PA7` 配置为`SPI1_MOSI`功能引脚,然后重新生成配置代码。具体操作如下图。 + +![打开CubeMX工程配置](figures/Setting_CubeMX_Project.png) + +![CubeMX配置 SPI1](figures/CubeMX_Set_SPI1.png) + +![CubeMX配置SPI1效果并生成代码](figures/CubeMX_Set_SPI1_2.png) + +#### 查看 RW007 对应引脚编号 + +在使用 RW007 模块,除了需要配置 SPI 功能引脚,还需要配置对应的 `CS`、`INT/BUSY`、`RESET` 引脚,根据前面的电路图和 `IO` 引脚对应表,需要在 `drv_gpio.c` 中找到对应的引脚编号,具体操作如下图。 + +![RW007引脚对应编号](figures/RW007_IO_MAP.png) + +各 IO 接口与功能之间的对应关系表: + +| STM32 引脚名 | 封装管脚序号 | Arduino 接口序号 | 功能 | +| ------------ | ------------ | ---------------- | --------- | +| PA5 | 5 | D13 | BOOT0/CLK | +| PA6 | 6 | D12 | MISO | +| PA7 | 7 | D11 | MOSI | +| PB6 | 22 | D10 | BOOT1/CS | +| PC7 | 39 | D9 | INT/BUSY | +| PA9 | 9 | D8 | RESET | + +#### 工程配置开启 SPI1 功能 + +使用 RT-Thread Studio IDE 配置对应的驱动和软件包,可以通过图形化进行配置,方便用户操作,具体的驱动配置操作步骤如下图。 + +![进入工程配置界面](figures/RT-Thread Setting_SPI.png) + +![开启SPI1 BUS](figures/RT-Thread Settings_SPI1_select_SPI1_BUS.png) + +#### RW007 软件包配置和下载软件包 + +在使用 RW007 模块的网络功能,需要配置 RW007 软件包和使能 `Wi-Fi` 框架。 + +注意: RW007 软件包需要选择 2.0.1 以上的版本,模块才能正常工作,并且配置 RW007 BUS NAME 为 `spi1` + +![RW007软件包配置和下载](figures/RW007_packages_install.png) + +#### 配置开启 Wi-Fi 框架 + +***注意:如果不开启 `Wi-Fi`框架会编译报错*** + +![配置使能Wi-Fi框架](figures/enable_wifi_frame.png) + +#### 屏蔽 `main.c` 文件中关于 `LED0_PIN` 操作 + +由于默认工程中的 `LED` 的 `IO` 引脚 `PA5` 刚好是 `SPI1` 的功能引脚,两者冲突了,需要屏蔽关于 `LED0_PIN` 的操作语句。 + +![屏蔽main.c文件中关于LED0_PIN的操作](figures/disable_LED0_PIN_function.png) + +### 构建工程和烧录程序 + +按照上面的步骤操作后,可以构建工程和烧录程序。 + +![构建工程和烧录程序](figures/building_programing.png) + +### 打开串口终端测试 WiFi 功能 + +烧录程序后,可以使用 RT-Thread Studio IDE 配套的终端工具可以方便地调试。 + +![连接串口终端](figures/uart_connect.png) + +#### WiFi 功能测试 + +![测试模块功能](figures/RW007_Test.gif) diff --git a/rt-thread-version/rt-thread-standard/application-note/packages/rw007_module_using/figures/Add_STM32F411NUCLEO_Board_resource.png b/rt-thread-version/rt-thread-standard/application-note/packages/rw007_module_using/figures/Add_STM32F411NUCLEO_Board_resource.png new file mode 100644 index 0000000000000000000000000000000000000000..6dff42b288f54845637b4bd09b1506e66b7f64e0 Binary files /dev/null and b/rt-thread-version/rt-thread-standard/application-note/packages/rw007_module_using/figures/Add_STM32F411NUCLEO_Board_resource.png differ diff --git a/rt-thread-version/rt-thread-standard/application-note/packages/rw007_module_using/figures/Create_RT-Thread_Project.png b/rt-thread-version/rt-thread-standard/application-note/packages/rw007_module_using/figures/Create_RT-Thread_Project.png new file mode 100644 index 0000000000000000000000000000000000000000..595c8f82f2a403e876d52a2722c71accee1b73df Binary files /dev/null and b/rt-thread-version/rt-thread-standard/application-note/packages/rw007_module_using/figures/Create_RT-Thread_Project.png differ diff --git a/rt-thread-version/rt-thread-standard/application-note/packages/rw007_module_using/figures/Create_Test_RW007_Project.png b/rt-thread-version/rt-thread-standard/application-note/packages/rw007_module_using/figures/Create_Test_RW007_Project.png new file mode 100644 index 0000000000000000000000000000000000000000..a3f5ce59b417605a6ca28cc4b42df640242b47a3 Binary files /dev/null and b/rt-thread-version/rt-thread-standard/application-note/packages/rw007_module_using/figures/Create_Test_RW007_Project.png differ diff --git a/rt-thread-version/rt-thread-standard/application-note/packages/rw007_module_using/figures/CubeMX_Set_SPI1.png b/rt-thread-version/rt-thread-standard/application-note/packages/rw007_module_using/figures/CubeMX_Set_SPI1.png new file mode 100644 index 0000000000000000000000000000000000000000..8919fee5d4c2ba2831259f991dc5bf699352a41f Binary files /dev/null and b/rt-thread-version/rt-thread-standard/application-note/packages/rw007_module_using/figures/CubeMX_Set_SPI1.png differ diff --git a/rt-thread-version/rt-thread-standard/application-note/packages/rw007_module_using/figures/CubeMX_Set_SPI1_2.png b/rt-thread-version/rt-thread-standard/application-note/packages/rw007_module_using/figures/CubeMX_Set_SPI1_2.png new file mode 100644 index 0000000000000000000000000000000000000000..1921f8ba79c09733437754ed768745c6e3b442af Binary files /dev/null and b/rt-thread-version/rt-thread-standard/application-note/packages/rw007_module_using/figures/CubeMX_Set_SPI1_2.png differ diff --git a/rt-thread-version/rt-thread-standard/application-note/packages/rw007_module_using/figures/IO_Setting1.png b/rt-thread-version/rt-thread-standard/application-note/packages/rw007_module_using/figures/IO_Setting1.png new file mode 100644 index 0000000000000000000000000000000000000000..8a25f32ec73d78e2cb81fac3bff924f59eacb3e5 Binary files /dev/null and b/rt-thread-version/rt-thread-standard/application-note/packages/rw007_module_using/figures/IO_Setting1.png differ diff --git a/rt-thread-version/rt-thread-standard/application-note/packages/rw007_module_using/figures/RT-Thread Setting_SPI.png b/rt-thread-version/rt-thread-standard/application-note/packages/rw007_module_using/figures/RT-Thread Setting_SPI.png new file mode 100644 index 0000000000000000000000000000000000000000..2ed6bd37519be03c36c6f5c18c602ae462d68ed5 Binary files /dev/null and b/rt-thread-version/rt-thread-standard/application-note/packages/rw007_module_using/figures/RT-Thread Setting_SPI.png differ diff --git a/rt-thread-version/rt-thread-standard/application-note/packages/rw007_module_using/figures/RT-Thread Settings_SPI1_select_SPI1_BUS.png b/rt-thread-version/rt-thread-standard/application-note/packages/rw007_module_using/figures/RT-Thread Settings_SPI1_select_SPI1_BUS.png new file mode 100644 index 0000000000000000000000000000000000000000..a22b0a91e7c9520b340d700383f20cbc6c421c83 Binary files /dev/null and b/rt-thread-version/rt-thread-standard/application-note/packages/rw007_module_using/figures/RT-Thread Settings_SPI1_select_SPI1_BUS.png differ diff --git a/rt-thread-version/rt-thread-standard/application-note/packages/rw007_module_using/figures/RW007_IO_MAP.png b/rt-thread-version/rt-thread-standard/application-note/packages/rw007_module_using/figures/RW007_IO_MAP.png new file mode 100644 index 0000000000000000000000000000000000000000..e9f5c942d2997430f89e0ab7dd822bcffc45db24 Binary files /dev/null and b/rt-thread-version/rt-thread-standard/application-note/packages/rw007_module_using/figures/RW007_IO_MAP.png differ diff --git a/rt-thread-version/rt-thread-standard/application-note/packages/rw007_module_using/figures/RW007_Test.gif b/rt-thread-version/rt-thread-standard/application-note/packages/rw007_module_using/figures/RW007_Test.gif new file mode 100644 index 0000000000000000000000000000000000000000..a6a00e02acb76ce417a30465507fff67f409793b Binary files /dev/null and b/rt-thread-version/rt-thread-standard/application-note/packages/rw007_module_using/figures/RW007_Test.gif differ diff --git a/rt-thread-version/rt-thread-standard/application-note/packages/rw007_module_using/figures/RW007_packages_install.png b/rt-thread-version/rt-thread-standard/application-note/packages/rw007_module_using/figures/RW007_packages_install.png new file mode 100644 index 0000000000000000000000000000000000000000..3ff3bb5bac55b5866e582043005cf35d7aac9001 Binary files /dev/null and b/rt-thread-version/rt-thread-standard/application-note/packages/rw007_module_using/figures/RW007_packages_install.png differ diff --git a/rt-thread-version/rt-thread-standard/application-note/packages/rw007_module_using/figures/STM32F411-ST-NUCLEO_finsh_installed.png b/rt-thread-version/rt-thread-standard/application-note/packages/rw007_module_using/figures/STM32F411-ST-NUCLEO_finsh_installed.png new file mode 100644 index 0000000000000000000000000000000000000000..524dc972ca911f3d4f45c34fd1d42333513e4102 Binary files /dev/null and b/rt-thread-version/rt-thread-standard/application-note/packages/rw007_module_using/figures/STM32F411-ST-NUCLEO_finsh_installed.png differ diff --git a/rt-thread-version/rt-thread-standard/application-note/packages/rw007_module_using/figures/Select_Board_resource_install.png b/rt-thread-version/rt-thread-standard/application-note/packages/rw007_module_using/figures/Select_Board_resource_install.png new file mode 100644 index 0000000000000000000000000000000000000000..06dfe1be3aa1e8590620a2c917e1bcf548a6f33b Binary files /dev/null and b/rt-thread-version/rt-thread-standard/application-note/packages/rw007_module_using/figures/Select_Board_resource_install.png differ diff --git a/rt-thread-version/rt-thread-standard/application-note/packages/rw007_module_using/figures/Setting_CubeMX_Project.png b/rt-thread-version/rt-thread-standard/application-note/packages/rw007_module_using/figures/Setting_CubeMX_Project.png new file mode 100644 index 0000000000000000000000000000000000000000..ca564cc0fd12f9b57d4346094d81b958f3bb8c51 Binary files /dev/null and b/rt-thread-version/rt-thread-standard/application-note/packages/rw007_module_using/figures/Setting_CubeMX_Project.png differ diff --git a/rt-thread-version/rt-thread-standard/application-note/packages/rw007_module_using/figures/Test_RW007_Project_finish.png b/rt-thread-version/rt-thread-standard/application-note/packages/rw007_module_using/figures/Test_RW007_Project_finish.png new file mode 100644 index 0000000000000000000000000000000000000000..43803a849aaa69d223c4c65fcec23d4696c257a5 Binary files /dev/null and b/rt-thread-version/rt-thread-standard/application-note/packages/rw007_module_using/figures/Test_RW007_Project_finish.png differ diff --git a/rt-thread-version/rt-thread-standard/application-note/packages/rw007_module_using/figures/building_programing.png b/rt-thread-version/rt-thread-standard/application-note/packages/rw007_module_using/figures/building_programing.png new file mode 100644 index 0000000000000000000000000000000000000000..8593a92eabe2ee489b5f6f4a4118bda20daa6673 Binary files /dev/null and b/rt-thread-version/rt-thread-standard/application-note/packages/rw007_module_using/figures/building_programing.png differ diff --git a/rt-thread-version/rt-thread-standard/application-note/packages/rw007_module_using/figures/disable_LED0_PIN_function.png b/rt-thread-version/rt-thread-standard/application-note/packages/rw007_module_using/figures/disable_LED0_PIN_function.png new file mode 100644 index 0000000000000000000000000000000000000000..4e024baea3f04384a2e49eb8e15c2467ef30757e Binary files /dev/null and b/rt-thread-version/rt-thread-standard/application-note/packages/rw007_module_using/figures/disable_LED0_PIN_function.png differ diff --git a/rt-thread-version/rt-thread-standard/application-note/packages/rw007_module_using/figures/enable_wifi_frame.png b/rt-thread-version/rt-thread-standard/application-note/packages/rw007_module_using/figures/enable_wifi_frame.png new file mode 100644 index 0000000000000000000000000000000000000000..7a2590cf63d04b6a880fe1f60717e848dc220998 Binary files /dev/null and b/rt-thread-version/rt-thread-standard/application-note/packages/rw007_module_using/figures/enable_wifi_frame.png differ diff --git a/rt-thread-version/rt-thread-standard/application-note/packages/rw007_module_using/figures/spi_max_hz_config.png b/rt-thread-version/rt-thread-standard/application-note/packages/rw007_module_using/figures/spi_max_hz_config.png index ac7f0ee2c917f07d831d3f08e4f6cf7c91b45255..0655ad869bf7136289918c70af62259e135cc0d9 100644 Binary files a/rt-thread-version/rt-thread-standard/application-note/packages/rw007_module_using/figures/spi_max_hz_config.png and b/rt-thread-version/rt-thread-standard/application-note/packages/rw007_module_using/figures/spi_max_hz_config.png differ diff --git a/rt-thread-version/rt-thread-standard/application-note/packages/rw007_module_using/figures/uart_connect.png b/rt-thread-version/rt-thread-standard/application-note/packages/rw007_module_using/figures/uart_connect.png new file mode 100644 index 0000000000000000000000000000000000000000..808b3e0d45ed2cda8cb4d39f8d9964418506469a Binary files /dev/null and b/rt-thread-version/rt-thread-standard/application-note/packages/rw007_module_using/figures/uart_connect.png differ