3.14. 外挂WiFi模组
Overview
AC79支持以SDIO接口外挂WiFi模组,目前已支持WiFi模组型号:RTL8189E / RTL8822ES_10M / RTL8822CS。参考工程demo_ext_wifi
3.14.1. 配置说明
- (1)添加库文件
库文件说明如上。 同时,需要在编译选项中加入对应WiFi模组的全局宏:CONFIG_RTL8189E_ENABLE / CONFIG_RTL8822ES_10M_ENABLE / CONFIG_RTL8822CS_ENABLE。
(2) 板级文件配置
配置参数如下:
struct wifi_platform_data { enum WIFI_MODULE module; u32 sdio_parm; int wakeup_port; int cs_port; int power_port; };
1)WiFi模组名称配置
module配置对应的模组名称。
2)SDIO引脚配置
SDIO_GRP_x和SDIO_PORT_x用于配置SDIO引脚,引脚定义顺序(cmd/clk/data0/data1/data2/data3),引脚定义如上。
3)SDIO数据位配置 SDIO支持1Bit和4Bit,使用1Bit数据宽度配置为SDIO_1_BIT_DATA,使用4Bit数据宽度则配置为SDIO_4_BIT_DATA。
4)SDIO数据接收方式配置 SDIO支持中断方式和轮询方式接收数据,使用中断方式配置为SDIO_DATA1_IRQ,使用轮询方式配置为SDIO_POLLING。
5)SDIO时钟配置 SDIO时钟配置项:SDIO_CLOCK_80M / SDIO_CLOCK_40M / SDIO_CLOCK_26M / SDIO_CLOCK_20M / SDIO_CLOCK_16M / SDIO_CLOCK_8M / SDIO_CLOCK_4M / SDIO_CLOCK_2M,根据需要选配。
6)WiFi引脚配置 wakeup_port / cs_port / power_port与WiFi模组引脚对应,若这些引脚接固定电平,则无需配置
(3) LWIP配置
进入LWIP工程,在lwip.c文件中打开宏”HAVE_EXT_WIRELESS_NETIF”,以增加支持外挂WiFi模组,Rebuild工程。
(4) WiFi基本配置
在apps/common/net/ext_wifi_conf.c文件中,提供了AP模式下的配置hostapd_config_file,STA模式下的配置wps_hostapd_config_file,可根据需要修改相应的配置文件。
3.14.2. WiFi事件状态
在WiFi工作工程中,驱动会将WiFi当前的事件状态通过回调函数返回至应用层,用户可以在回调函数中添加事件状态的自定义处理,demo_wifi_ext/ext_wifi_app_task.c->network_user_callback(),WiFi事件状态定义如上。
3.14.3. WiFi控制
在板级文件中,已将外挂WiFi模组注册到系统设备列表中,因此可通过设备控制指令对WiFi模组进行操作,示例如下:
static void *wifi_dev = NULL;
struct cfg_info info = {0};
wifi_dev = dev_open("wifi", NULL);
info.cb = network_user_callback;
info.net_priv = NULL;
dev_ioctl(wifi_dev, DEV_SET_CB_FUNC, (u32)&info);
dev_close(wifi_dev);
WiFi模组控制指令定义如上。