打印
[嵌入式Linux]

基于I.MX6UL平台的WIFI模块AP6214A驱动移植

[复制链接]
1913|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
szembed|  楼主 | 2021-5-21 15:36 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
IoT-6ULX简要介绍:   IoT-6ULX,主要面向Internet Of Things应用,该产品集成了 ARM Cortex-A7 900Hz(MAX) NXP I.MX6UL/L 处理器,并板载AP6214 WIFI模块+BT4.2,稳定运行Linux 4.14和YACTO。IoT-6ULX提供了3.3V I/O接口,可提供宽温的工业组件,运行于条件恶劣的工业现场!
产品特性
l 采用NXP公司Cortex-A7 I.MX6UL/L处理器,运行最高速度为900MHZ,低功耗;
l 支持128M-1G BYTES DDR3 SDRAM;
l 支持SLC NAND(256M-1G BYTES)或QSPI NOR FLASH可启动;
l 最多可支持一路百兆以太网+AP6214 WIFI+BT 4.2;
l 支持两路高速USB OTG,可接口4G/WIFI模块;
l 支持最多4路串口,双路CAN BUS;
l 支持DS1338高精度时钟,带电池备份
l 支持分辨率最高的1366*768显示接口;
l 邮票孔式核心模块,性价比高,low Price,稳定性好;
l 稳定的操作系统的支持,可预装LINUX 4.14.78/Yacto,欢迎客户定制
超小体积,尺寸为:39X39X1.0MM
主控CPU功能框图:
i.MX6UL/L核心模块产品:

i.MX6UL/L核心模块尺寸:

i.MX6UL/L核心模块引脚定义:

产品参数:
FUNCTION
IoT-6ULX
主要参数
主控制器
NXP[size=10.5000pt] I.MX6UL/L[size=10.5000pt],Cortex-A7[size=10.5000pt],528MHZ/800MHZ (900MHZ Max)
内存
256MB DDR[size=10.5000pt]3[size=10.5000pt](Up to 1GB [size=10.5000pt])
闪存
SLC NAND [size=10.5000pt](Up to 1GB)  /QSPI NOR FLASH(Up to 64MB)
图形显示
内置24位 LCD控制器[size=10.5000pt]
时钟
内置
看门狗
[size=10.5000pt]有
电源管理
MP2112/RT9013
复位
支持软件和硬件复位 (直接写寄存器[size=10.5000pt])
I/O
串口
串口8个,LVTTL电平(双网络复用其中3个串口)
以太网
1 MAC
USB 2.0 OTG
2个,高速
SD/MMC卡
2个,MMC 4.5/SD 3.0/SDIO标准
WIFI
AP6214,SD/MMC接口扩展
触摸屏
CPU内置,支持4线,
系统总线
[size=10.5000pt]无
IIC接口
[size=10.5000pt]2





评估板(工控板)实物图:

前言
由于linux内核中使用brcmfmac驱动针对于AP6214稳定性不佳,经常无法连接NETGEAR R6220路由,且通信速度未能接近WiFi模块的标称值,故移植bcmdhd驱动。
下文简要介绍基于盈鹏飞嵌入式的IoT-6ULX/EVB-6ULx平台、i.MX Linux-4.14.98内核,如何集成bcmdhd驱动、并测试无线网络通信的过程。
1 IoT-6ULX中CPU与AP6214的硬件连接


2 驱动移植
        bcmdhd驱动是Dongle Host Driver (DHD) 是一个可执行的模块,它基于SDIO总线之上提供了通信主机与Ampak (WiFi)模块之间的协议栈封装。DHD架构如图1-1所示:
驱动移植除了处理驱动代码,还要设定固件与NVRAM文件的存储路径。驱动加载时从指定的路径读取固件与NVRAM,当不能正常读取时,会导致WiFi模块不正常通信。
2.1 内核驱动
与集成其他的Linux驱动类似,bcmdhd驱动添加到Linux内核中,需要修改KconfigMakefile文件。步骤如下:
1、使能CFG80211以及移除BRCMFMAC驱动配置项
CONFIG_CFG80211=y
# CONFIG_BRCMFMACis not set
2、驱动配置
        解压bcmdhd驱动代码bcmdhd.1.579.77.41.x.7z到drivers/net/wireless/目录,并重命名为bcmdhd(删除版本信息,为了缩短路径)。作如下修改:
① 在drivers/net/wireless/Kconfig中添加:
source "drivers/net/wireless/bcmdhd/Kconfig"
② 在drivers/net/wireless/Makefile中添加:
obj-$(CONFIG_BCMDHD) += bcmdhd/
3、配置dts与修改代码
① 配置dts
添加WiFi上电regulator,GPIO为WL_REG_ON。
cd-post属性检测不可插拔主机设备以及让客户启动已经就绪的端驱动程序。调试过程中,因为少了该属性,WiFi设备不能正常枚举。此外,还需注意添加wifi-host 属性,用于BCM WiFi设备卡检测。
② 修改代码
dts中可以看出,使用了外部中断,因此需在drivers/net/wireless/bcmdhd/Makefile打开:
CONFIG_BCMDHD_OOB := y
EVB-6ULx板载的AP6214A模块为SDIO接口,因此需在drivers/net/wireless/bcmdhd/Makefile打开:
CONFIG_BCMDHD_SDIO := y
WL_REG_ON与WL_HOST_WAKE使用dts配置,而不是hardcode,因此需在drivers/net/wireless/bcmdhd/Makefile打开:
CONFIG_BCMDHD_DTS := y
在drivers/net/wireless/bcmdhd/Kconfig中修改固件与NVRAM文件的存储路径:
default "/lib/firmware/brcm/fw_bcmdhd.bin"
default "/lib/firmware/brcm/nvram.txt"
在drivers/net/wireless/bcmdhd/dhd_gpio.c中添加上电控制:
注:① 以上的打开是指,将Makefile中注释符号#删除;
② 固件与NVRAM的路径、文件名可随意指定。
4、配置WiFi驱动
选择Broadcom FullMAC wireless cards support,如图2-1所示:
注:可将CONFIG_BCMDHD=y或CONFIG_BCMDHD=m添加到内核配置文件中(EVB-6ULx 的为evb6ulx_defconfig),使之包含bcmdhd驱动。
2.2 固件
2.1节的固件与NVRAM文件的存储路径为例,说明在buildroot与yocto下打包固件到rootfs方法。
· buildroot:
在BR2_ROOTFS_OVERLAY变量所指定的目录中新建子目录:/ lib/firmware/brcm/,然后复制固件以及NVRAM文件到改目录,然后重编译buildroot,新生成的rootfs中将包含固件与NVRAM。
· yocto
在sources/meta-embfly/recipes-connectivity/中新建recipe,编译该recipe,然后重新生成rootfs即可包含固件与NVRAM。有关代码参考EVB-6ULx yocto BSP。
3 网络通信测试
        WiFi网络通信测试内容包括:连通性测试与带宽测试。前者旨在验证WiFi的功能,后者更多地关注性能。
3.1 连通性测试
1、连接AP(access point)
root@embfly ~# wpa_supplicant -i wlan0 -c /etc/wpa_supplicant.conf -B
        假设以将连接AP的配置写入/ect/wpa_supplicant.conf文件,举例如下:
连接AP的过程内核会枚举设备、加载固件等操作,调试信息中看到ssid、加密方式则表明连接成功,入图3-1:
注:亦可通过iwconfig指令查看WiFi连接信息。
2、获取IP
root@embfly ~# udhcpc -i wlan0
执行udhcpc,从路由获取一个动态IP,如图3-2:
4、连通性测试
root@embfly ~# ping 192.168.0.1 -I wlan0  -c 5
ping指令测试网络联通性,如图3-3所示:
3.2 带宽测试
        在完成连接AP与成功获取IP的基础上,测试WiFi的带宽。
1、开启iperf3服务器
[daniel@localhost ~]$ iperf3 -s -p 1472
2、带宽测试
执行iperf3测试前,为免受干扰,先将无关的网络设备关闭,只保留要测试的设备。例如,需要测试wlan0,先将eth0关闭。
root@embfly ~# ifconfig eth0 down
root@embfly ~# iperf3 -c 192.168.0.114 -p 1472 -t 10 -4
测试TCP带宽、端口为1472、时长10s、IPv4标准,如图3-4所示:



9382760a76021808e3.png (342.07 KB )

9382760a76021808e3.png

使用特权

评论回复

相关帖子

发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

个人签名:ARM工控开发板,QQ:259134942 http://artcor.taobao.com/

44

主题

267

帖子

0

粉丝