硬汉嵌入式论坛

 找回密码
 立即注册
查看: 1652|回复: 5
收起左侧

[WiFi] 使用NetX及WHD驱动WiFi芯片AP6181

[复制链接]

9

主题

66

回帖

108

积分

初级会员

积分
108
发表于 2024-11-25 22:23:21 | 显示全部楼层 |阅读模式
本帖最后由 egoistaw 于 2024-11-25 22:34 编辑

我很早买了别家的H743开发板,板载了一个SDIO接口的WiFi模组AP6181。AP6181内部其实是博通的BCM43362。
随板提供的wifi驱动叫WWD,即WICED WiFi Driver。属于WICED里的一部分。
WICED是博通搞的类似于CMSIS的一套东西,将RTOS、Network、MCU外设包括中断等
组件的接口统一化了,还搞了个精简的类似于Linux的设备驱动模型。
WWD基于WICED,所以使用它之前先要将WICED那一套移植和精简一下,占资源、非常繁琐。
而且Demo还是基于lwip及FreeRTOS的。
wiced.png
就在我抽丝剥茧地尝试把WWD从WICED里剥离出来时,我发现论坛里有人提到了STM32H7的AzureRTOS包里提供了AP6212的Demo。
wifidemo.png
打开一看,真有几个后缀wifi的Demo。Demo基于WHD,驱动了 Cypress WiFi (CYW4343W)芯片。
2016年博通无线被Cypress收购,CYW4343W就是博通BCM4343W,也就是AP6212里的那颗。
那么WHD又是什么呢?去英飞凌的Github里扒一下源码,就是重写成回调方式的、剥离了WICED的WWD。(其实里面还有不少WICED字样没删干净)。
2020年Cypress又被英飞凌Infineon收购,所以WHD全名是Infineon WiFi Host Driver。
whd.png
不幸的是,WHD的芯片支持清单里没有43362...
英飞凌.png
幸运的是,源码里搜索一下就能发现该差异化的地方却也都提到了43362的。大概是没测试完成所以就没放出来吧。
那就索性把固件强制替换成WWD里的43362固件,尝试直接使用...不出意外,不能正常工作。
根据错误提示,翻找对比原WWD的代码,花了两天终于找到两处需要区分43362的代码。
第一处:43362这种模块每次上电后都需要将其300K左右的固件通过SDIO发送过去,然后等待其启动。WHD添加了额外的启动地址设置,过滤掉。
err2.png
第二处:43362不支持MFP,STA模式下此处报错,过滤掉。
err1.png
即可成功创建或连接WiFi。
result.png

Screenshot_20241125_221700_com.android.settings.jpg
注意:
STA模式下,使用了DHCP Client;
AP模式下,需要创建DHCP Server,不然设备会卡在“正在获取IP...”;
Demo里提供的scan_cmd()是不安全的,特殊情况下会数组越界,仅供测试使用。
测速基本能跑满SDIO速度,20Mbps左右,即2MB/s多
Screenshot_20241125_221723_cn.zengfs.netdebugger.jpg
最后附上测试工程。包括一个组播Echo和一个TCP Echo测试程序。
有需要的请根据自己的板子修改引脚。

PS:WHD对接NetX时,需要将NX_PHYSICAL_HEADER 由16改成44,意味着不能同时使用ETH!!比较可惜。





H743_WIFI_demo.rar

18.05 MB, 下载次数: 34

评分

参与人数 2金币 +110 收起 理由
王海靖 + 10
eric2013 + 100 很给力!

查看全部评分

回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
116197
QQ
发表于 2024-11-26 08:18:41 | 显示全部楼层
谢谢楼主分享,非常详细
回复

使用道具 举报

1

主题

35

回帖

38

积分

新手上路

积分
38
发表于 2024-11-27 18:56:12 | 显示全部楼层
厉害 我正在研究 刚好有用 谢谢楼主
回复

使用道具 举报

9

主题

66

回帖

108

积分

初级会员

积分
108
 楼主| 发表于 2024-11-29 17:34:46 | 显示全部楼层
更新一下,可以与ETH共存,NX_PHYSICAL_HEADER 似乎没有影响到ETH。可能是NX_PHYSICAL_HEADER 只表示HEADER缓存的最大长度。
回复

使用道具 举报

1

主题

35

回帖

38

积分

新手上路

积分
38
发表于 2024-12-2 20:29:19 | 显示全部楼层
厉害  我也搞好了一个例子 lwip+rtx5+CYW43012模块的例子  测试效果还可以
回复

使用道具 举报

1

主题

35

回帖

38

积分

新手上路

积分
38
发表于 2024-12-2 20:36:33 | 显示全部楼层
测试的图片

调试信息打印

调试信息打印

带宽测试

带宽测试

ping命令测试

ping命令测试

iperf测试

iperf测试
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2025-6-10 02:51 , Processed in 0.296153 second(s), 29 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表