当在RT-Thread操作系统上做WiFi模块的开发工作,又是什么样一种体验呢?下面一步一步详细描述一下这个过程。
说明
W600 芯片是北京联盛德微电子有限责任公司一款支持多接口、多协议的无线局域网IEEE802.11n(1T1R)的SoC芯片。适用于智能家电、智能家居、无线音视频、智能玩具、医疗监护、工业控制等物联网应用领域。该SoC芯片集成Cortex-M3内核,内置Flash,集成射频收发前端RF Transceiver,CMOS PA功率放大器,基带处理器/媒体访问控制,支持SDIO、SPI、UART、GPIO、I²C、PWM、I²S、7816等接口, 支持多种加解密PRNG/SHA1/MD5/RC4/DES/3DES/AES/CRC/RSA等。
特性
- 内置 288KB SRAM,用户可用RAM超过160KB;
- 内置 1MB Flash,用户固件大小可达450KB;
- 支持SWD调试;
- 支持HT40,WiFi速率最高150Mbps;
- 集成1个高速SPI设备控制器,工作时钟范围0~50MHz;
- 集成1个I2C控制器,支持100/400Kbps速率;
- 2个完整UART接口,波特率范围1200bps~2Mbps;
- 集成双工I²S控制器,支持32KHz~192KHz 编解码;
- 集成PWM控制器,支持5路PWM输出或2路PWM输入;
- 集成7816接口,支持EVM2000规范,并兼容串口功能。
- 集成通用加密硬件加速器,支持PRNG/ SHA1/ MD5/ RC4/ DES/ 3DES/ AES/ CRC等多种加解密协议;
- 除 wlan.lib 外,其它资源完全开放;
- 使用 keil 开发环境;
- 支持 gcc 开发。
当拿到了W600的开发板,就感觉让人非常的舒服,5个LED让其非常有特点。
首先上一张图片,这个开发板设计的很漂亮。
芯片放大后的图片
上手体验
话不多说,直接上手体验一下这块开发板的魅力。先从最熟悉的RT-Thread开始入手。
相关的指导过程
http://docs.thingsturn.com/development/rt-thread/start/
已经讲得很明确了,下面实际操作一下。
第一步:下载SDK
首先下载RT-Thread_W60X_SDK_0.1.0
下载完成后,解压如图所示
打开example目录
第二步:配置env工具
作为学习rtthread的必备辅助工具,相关的介绍在rtthread的官网上已经介绍的很详细了。这里就不赘述了。
https://www.rt-thread.org/document/site/programming-manual/env/env/
第三步:配置工程
打开env工具后,实际上也不需要配置什么
不过可以输入menuconfig看一下
直接退出就好,这里我们采用的mdk5,直接配置成mdk5的工程就行
输入后打印如下的结果
打开工程模板进入keil
第四步:工程验证与编译
生成完成工程后,就可以在keil中进行编译了。
编译完成后,输出的结果如下:
第五步:下载与验证
编译完成后的固件在
下载工具可以用如下的串口调试助手
打开工具开始下载
串口调试助手可以看到最下面的灯不断的闪烁,并且串口打印如下信息
程序烧写成功。
3 程序分析
该程序是单纯的点灯程序,调用的是RT_Thread的通用驱动模型。
如果要知道引脚标号对应的引脚,可以查看driver/pin_map.c文件
对应PB18,然后查看原理图及硬件的布板
这个图实际上是和硬件对应的
到此,我们分析这个程序的执行过程。
4 扩展练习
如果我们需要调用该模块的wifi部分,比如扫描网络信息等等。
其实我们只需要设置wifi的工作模式即可
代码语言:javascript复制/* set wifi work mode */
rt_wlan_set_mode(RT_WLAN_DEVICE_STA_NAME, RT_WLAN_STATION);
rt_wlan_set_mode(RT_WLAN_DEVICE_AP_NAME, RT_WLAN_AP);
代码如下
编译后直接烧写进去,启动信息如下
输入wifi scan
可以扫描到附近的wifi
当然我们也可以wifi join
加入网络等等。这样开发板就连上网络了,借助rtt的扩展包,后续可以做很多事情。
5 总结
通过很快的摸索,w600与rtthread的体验还是比较好的。因为rtthread有丰富的组件,并且w600也有比较强大的性能。综合来看,这次的体验非常让我满意。作为rtt忠实的爱好者,在该操作系统上进行wifi程序的开发与扩展确实是一件让人值得高兴的事情。虽然目前只是上手体验,经过一段时间的熟悉之后,相信可以得心应手的掌握并在此基础上开发产品。