Toggle navigation
首页
问答
文章
积分商城
专家
专区
更多专区...
文档中心
返回主站
搜索
提问
会员
中心
登录
注册
ESP8266
M2354
【NuMaker-M2354试用】WiFi Module测试分享
发布于 2021-12-05 15:44:24 浏览:1261
订阅该版
[tocm] 很荣幸能获选参与新唐NuMaker-M2354开发板外设模块的评测试用活动。 ### 功能模块的硬件介绍 收到开发板时,惊喜地发现居然还附带了一块LCD屏幕!   开发板的做工相当精致,通过PCB板右侧中间部分的镂空间隔设计,提醒用户这块开发板可能大致分为两部分组成。根据厂家的资料介绍,这两部分分别是采用 NuMicro® M2354KJFAE 微控制器的主控板,与 Nu-Link2-Me 调试编程器。 板载的Wi-Fi模块是大家常见的ESP8266模块,Ai-Thinker安信可出品的esp8266串口wifi模块,型号是ESP-12F,为了避免干扰,发挥模块收发天线的最佳效果,Wi-Fi模块的板载天线部分在开发板左侧突出了大约5-6毫米,略显美中不足。  从厂家的资料可见,开发板上还预留了Wi-Fi模块固件的升级接口。   开发板出厂时已经将Nu-Link2-Me VCOM指拨开关的1及2切换至ON,启动虚拟串口(VCOM)功能这个操作完成了。根据厂家的快速指南,在电脑上安装好Nuvoton Nu-Link Driver驱动后就能通过串口连接上开发板。  ### 功能模块的使用说明 开发板出厂默认自带的Demo固件比较简单,通过Nu-Link2-Me 调试编程器的ICE USB接口给开发板上电时,附带的LCD屏幕是没有任何显示的,从串口输出信息上看,只是简单的反馈板载wifi模块的硬件自检通过信息和Simple Blinky Demo的信息。  下载rt-thread源代码创建工程的过程就有点小波折。 本想在M2354板BSP包目录下用pkgs --dist创建项目框架后复制到其他目录下再创建第一个demo工程的,由于是第一次操作,对env的使用也不熟,没能按设想的完成,又急着体验一下开发板,就在BSP包目录下用menuconfig --generate、pkgs --list、pkgs --update、scons --target=mdk5创建了mdk5工程。 用Keil uVision5打开生成的mdk5工程,首次编译时提示有个“use of undeclared identifier 'EINVAL' ”的错误,打开相关的hw_symmetric.c源码,根据上下文的大致信息, 将return -EINVAL; 更正为return -RT_EINVAL; 就OK了。  简单编辑一下工程属性后就可以使用Nuvoton Nu-Link Debugger驱动把编译好的固件下载烧录到开发板上查看demo的效果了。 和估计是裸机的Simple Blinky Demo相比,从rt-thread源代码BSP包通过env工具menuconfig 生成的demo例程相对就丰富很多了。LCD屏幕也亮了,从上面显示的时钟信息能否在通电约30秒左右完成NTP自动校时操作,就能让人及时确认板载wifi是否顺利连通网络。  按tab键后,finsh控制台能输出一长串可执行的RT-Thread shell commands,由此可见新唐厂家技术人员对rt-thread的适配工作应该是已经做的很完善了!  其中的"at_wifi_set"命令就是能让你自行更改需要接入的wifi网络SSID和密码信息的,非常方便。 只要在finsh命令界面运行这样的命令: at_wifi_set
即可即时更改开发板的wifi连接参数。 但这样更改wifi连接参数无法保存在wifi模块的固件里,每次断电重启后就恢复默认设置了。 不过刚开始时我自己倒也不是这样调整输入wifi密码的,而是通过串口输出wifi连接失败的错误提示信息中"NT_ZY_BUFFALO"的字眼在工程中找到board_dev.c源码来修改wifi参数的。 这个源码应该是厂家适配开发板的板载Wi-Fi模块,方便用户无需重新编译工程就能通过finsh控制台在线灵活更改wifi参数设计的。 ``` /**************************************************************************//** * * @copyright (C) 2019 Nuvoton Technology Corp. All rights reserved. * * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes * 2020-1-16 Wayne First version * ******************************************************************************/ #include
#include
#if defined(BOARD_USING_ESP8266) #include
#define LOG_TAG "at.sample.esp" #undef DBG_TAG #include
static struct at_device_esp8266 esp0 = { "esp0", /* esp8266 device name */ "uart4", /* esp8266 serial device name, EX: uart1, uuart1 */ // "NT_ZY_BUFFALO", /* Wi-Fi SSID */ // "12345678", /* Wi-Fi PASSWORD */ "like-3_Wi-Fi5", /* Wi-Fi SSID */ "LIKE85333051", /* Wi-Fi PASSWORD */ 1024 /* Receive buffer length */ }; static int rt_hw_esp8266_port(void) { struct at_device_esp8266 *esp8266 = &esp0; rt_base_t esp_rst_pin = NU_GET_PININDEX(NU_PC, 13); rt_base_t esp_fwupdate_pin = NU_GET_PININDEX(NU_PD, 12); /* ESP8266 reset pin PC.13 */ rt_pin_mode(esp_rst_pin, PIN_MODE_OUTPUT); rt_pin_write(esp_rst_pin, 1); /* ESP8266 reset pin PD.12 */ rt_pin_mode(esp_fwupdate_pin, PIN_MODE_OUTPUT); rt_pin_write(esp_fwupdate_pin, 1); return at_device_register(&(esp8266->device), esp8266->device_name, esp8266->client_name, AT_DEVICE_CLASS_ESP8266, (void *) esp8266); } INIT_APP_EXPORT(rt_hw_esp8266_port); static void at_wifi_set(int argc, char **argv) { struct at_device_ssid_pwd sATDConf; struct at_device *at_dev = RT_NULL; /* If the number of arguments less than 2 */ if (argc != 3) { rt_kprintf("\n"); rt_kprintf("at_wifi_set
\n"); return ; } sATDConf.ssid = argv[1]; //ssid sATDConf.password = argv[2]; //password if ((at_dev = at_device_get_first_initialized()) != RT_NULL) at_device_control(at_dev, AT_DEVICE_CTRL_SET_WIFI_INFO, &sATDConf); else { rt_kprintf("Can't find any initialized AT device.\n"); } } #ifdef FINSH_USING_MSH MSH_CMD_EXPORT(at_wifi_set, AT device wifi set ssid / password function); #endif #endif /* BOARD_USING_ESP8266 */ ``` 通过AT指令可知开发板板载Wi-Fi模块ESP-12F的运行波特率为115200.  新唐厂家做的demo中已经将NTP自动网络授时功能适配完善了,因为NTP server参数中的"time.stdtime.gov.tw"授时服务器访问不畅,wifi联网后都会有相关的错误提示, [E/at.clnt] execute command (AT+CIPDOMAIN="time.stdtime.gov.tw") failed! 通过menuconfig配置更换为国内的cn.ntp.org.cn服务器之后就不会有类似的失败提示信息了。 一般开发板上电约30秒左右,板载wifi模块就能完成联网并通过NTP工具实现网络自动授时。 ### 外设性能指标测试 本来打算借助RT-Thread的网络工具集 (NetUtils)组件里的Iperf工具测试wifi模块联网的性能和带宽、NetIO工具测试网络的吞吐量、轻量级文件传输工具TFTP测试文件传输的。结果几个工具都无法运行服务器模式, msh />tftp -s msh />[E/at.clnt] execute command (AT+CIPCLOSE=0) failed! tftp server bind failed!! exit msh />iperf -s -p 5001 msh />[E/at.clnt] execute command (AT+CIPCLOSE=0) failed! [E/iperf] Unable to bind! msh />iperf --stop msh /> 网上搜索一番才了解到,因为wifi模块是借助at_device组件联网的,而at_device组件还不支持服务器模式,所以只能放弃,暂时先进行可在客户端模式下运行的iperf工具做个简单的网络性能和带宽测试。 Iperf 使用的是主从式架构,即一端是服务器,另一端是客户端,开发板上的iperf做客户端时,需要借助JPerf测试软件来运行为服务器。 JPerf 测试软件的windows安装文件可在开发板BSP包目录下的\numaker-m2354\packages\netutils-latest\tools文件夹中找到,这个是绿色软件,无需安装,解压到新文件夹即可使用。 不过因为JPerf需要JAVA的运行环境,所以还得先下载安装好JAVA运行环境才能运行。 设置运行在服务器模式并启动后,就可以在finsh控制台运行iperf客户端来进行网络性能测试。  iperf -c 192.168.10.12 -p 5001 iperf --stop 要停止测试时,需要先在finsh shell界面停止iperf,再到JPerf测试软件界面停止服务器。 [380] 178.0-179.0 sec 10.0 KBytes 81.9 Kbits/sec [380] 179.0-180.0 sec 10.0 KBytes 81.9 Kbits/sec [ ID] Interval Transfer Bandwidth [380] 0.0-180.4 sec 1856 KBytes 84.3 Kbits/sec Done.  wifi模块的网络吞吐量比较低,本来我以为和连接wifi模块的串口波特率有关,但和安信科售后联系过,得知串口波特率对模块的网络吞吐性能是没有影响的。 ### 测试工程文档 [码云保存备份的工程文档](https://gitee.com/zhd0305/IoT/tree/master/M2354/numaker-m2354) ### 心得体会 小结: 1、厂家对开发板在RT-Thread系统上的适配程度比较高; 2、从iperf的测试结果看,板载wifi模块的传输速度平均只有84.3 Kbits/sec!这个结果超出我的预期,不知那里出了问题。还得再研究查找原因。
0
条评论
默认排序
按发布时间排序
登录
注册新账号
关于作者
zhd0305
快进入嵌入式大门了
文章
1
回答
1
被采纳
0
关注TA
发私信
相关文章
1
关于ESP8266的配网
2
at device跑esp8266, 总是提示缓冲区不够,应该怎么解决?
3
at device跑esp8266提示连接超时
4
ESP8266 连接问题
5
AT组件配网问题 ESP8266微信配网
6
请问一下esp8266能在at指令组件下支持ap模式吗
7
esp8266用paho-mqtt出现溢出
8
ONENET+esp8266连接报错
9
ESP8266通过smartconfig配网?
10
esp8266 WiFi名设成中文后 打不开RT_Thread Settings
推荐文章
1
RT-Thread应用项目汇总
2
玩转RT-Thread系列教程
3
国产MCU移植系列教程汇总,欢迎查看!
4
机器人操作系统 (ROS2) 和 RT-Thread 通信
5
五分钟玩转RT-Thread新社区
6
【技术三千问】之《玩转ART-Pi》,看这篇就够了!干货汇总
7
关于STM32H7开发板上使用SDIO接口驱动SD卡挂载文件系统的问题总结
8
STM32的“GPU”——DMA2D实例详解
9
RT-Thread隐藏的宝藏之completion
10
【ART-PI】RT-Thread 开启RTC 与 Alarm组件
热门标签
RT-Thread Studio
串口
Env
LWIP
SPI
AT
Bootloader
Hardfault
CAN总线
FinSH
ART-Pi
DMA
USB
文件系统
RT-Thread
SCons
RT-Thread Nano
线程
MQTT
STM32
RTC
rt-smart
FAL
I2C_IIC
UART
ESP8266
cubemx
WIZnet_W5500
ota在线升级
PWM
BSP
flash
freemodbus
packages_软件包
潘多拉开发板_Pandora
定时器
GD32
ADC
flashDB
编译报错
socket
中断
Debug
rt_mq_消息队列_msg_queue
keil_MDK
ulog
SFUD
msh
C++_cpp
MicroPython
本月问答贡献
出出啊
1520
个答案
343
次被采纳
小小李sunny
1444
个答案
290
次被采纳
张世争
813
个答案
178
次被采纳
crystal266
553
个答案
162
次被采纳
whj467467222
1222
个答案
149
次被采纳
本月文章贡献
出出啊
1
篇文章
5
次点赞
小小李sunny
1
篇文章
1
次点赞
张世争
1
篇文章
3
次点赞
crystal266
2
篇文章
1
次点赞
whj467467222
2
篇文章
2
次点赞
回到
顶部
发布
问题
投诉
建议
回到
底部