OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 9357|回复: 9

潘多拉IoT Board WiFi驱动编写----WiFi模块初始化(完成)

[复制链接]

3

主题

9

帖子

0

精华

初级会员

Rank: 2

积分
61
金钱
61
注册时间
2017-5-22
在线时间
11 小时
发表于 2019-4-28 17:35:07 | 显示全部楼层 |阅读模式
本帖最后由 huohua1991 于 2019-5-5 12:57 编辑

由于正点原子所提供的潘多拉IoT Board的WiFi模块驱动已经编译成库来方便开发者使用,
但要想深究SDIO WiFi模块的原理,没有源码是一难题。
潘多拉IoT Board的WiFi模块是AP6181,其核心芯片是CYW43362,经过多方查证,终于
了解到其驱动是WICED,而赛普拉斯官网免费提供WICED Studio来让开发者进行二次开发。
本人经过一个多星期的研究,终于完成了潘多拉IoT Board的WiFi模块驱动的第一阶段,
即能读写WiFi模块内部寄存器、WiFi模块SDIO枚举成功和WiFi模块成功开启WiFi功能。
至于进一步WiFi的AP,STA和网络传输功能仍在攻克中。
现分享我完成的成果,有兴趣的工程师可到赛普拉斯官网下载WICED Studio一起研究。
工程在Porject下的hal_wifi文件夹,只提供IAR工程。
链接:https://pan.baidu.com/s/1-VoUR01YvrnQAiyWQWcX6g
提取码:fr08
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

6

主题

123

帖子

1

精华

金牌会员

Rank: 6Rank: 6

积分
1279
金钱
1279
注册时间
2012-5-27
在线时间
200 小时
发表于 2019-4-28 19:16:38 来自手机 | 显示全部楼层
楼主牛逼呀!希望楼主能够成功,关注了。
回复 支持 反对

使用道具 举报

3

主题

9

帖子

0

精华

初级会员

Rank: 2

积分
61
金钱
61
注册时间
2017-5-22
在线时间
11 小时
 楼主| 发表于 2019-4-29 11:50:24 | 显示全部楼层
关于AP6181的驱动仍有bug没更改,具体在wwd_sdio.c中的wwd_bus_init函数,即671行
[mw_shl_code=c,true]
-- }while(((data_byte & SDIO_FUNC_READY_2) == 0) && (loop_cnt < 200));
++ }while(((data_byte & SDIO_FUNC_READY_2) == 0) && (loop_cnt < 1000));
[/mw_shl_code]
加上696行
[mw_shl_code=c,true]
-- }while(((data_byte & SBSDIO_HT_AVAIL) == 0) && (loop_cnt < 200));
++}while(((data_byte & SBSDIO_HT_AVAIL) == 0) && (loop_cnt < 1000));
[/mw_shl_code]
修改后WiFi模块的Function 2启动不了,具体是初始化WiFi模块时要更新固件,我起初
以为没必要,现在这是必须步骤
回复 支持 反对

使用道具 举报

3

主题

9

帖子

0

精华

初级会员

Rank: 2

积分
61
金钱
61
注册时间
2017-5-22
在线时间
11 小时
 楼主| 发表于 2019-5-5 12:55:58 | 显示全部楼层
经过一番的研究,发现潘多拉IoT Board WiFi模块的WLAN功能不能启动的原因是在初始化时没有下载固件到WiFi模块的RAM中,
WiFi模块存储固件的介质是RAM,掉电后固件就没了(真是一个坑)。
为了把坑填上,需要把WiFi模块的固件存储到开发板的W25Q128中,由于下载固件到WiFi模块中时需要得知固件的大小(即占多少Bytes),
因此我利用串口的YMODEM模式将固件下载到开发板的W25Q128中,固件的大小存储在W25Q128的起始地址为0位置,整个固件存储
在W25Q128的起始地址为4096位置,将W25Q128的开始的512KB定为存放WiFi模块的固件(固件的大小就占一个块空间,我只能自嘲道:
有空间就任性)。以下是将WiFi固件下载到开发板的W25Q128中的步骤:
1、烧录下载WiFi固件的程序到单片机,程序位置在...\Projests\wifi_firmware_update\EWARM\Debug\Exe中的wifi_firmware_update.bin
2、利用HyperTerminal或SecureCRT等串口工具下载(这里我用HyperTerminal),烧录完步骤1的程序后在HyperTerminal中可以看到:
    Snipaste_2019-05-05_11-43-30.png     Snipaste_2019-05-05_11-44-05.png
3、键盘敲入1和回车,看到出现以下提示即可通过YMODEM模式传输固件:
    Snipaste_2019-05-05_11-50-54.png
4、开始通过YMODEM模式传输固件(WiFi模块固件在...\wiced\43362A2.bin):
      Snipaste_2019-05-05_11-49-29.png     Snipaste_2019-05-05_11-50-15.png     Snipaste_2019-05-05_11-51-20.png
5、 出现以下提示即固件成功烧进W25Q128中:
      Snipaste_2019-05-05_11-52-02.png
6、之后,键盘敲入3和回车可以查看W25Q128的固件数据(从W25Q128的4096地址开始,每次敲入3可查看1024Bytes并查看地址自增1024),
    这样可用UltraEdit等软件查看固件文件并进行校对。
好的,WiFi固件已经有了,只需添加下载固件到WiFi模块RAM中的函数,具体代码参考附件。
WiFi模块模块成功初始化后,开发板绿色LED会闪烁,串口1会发送以下提示:
Snipaste_2019-05-05_12-33-05.png
至此WiFi模块模块初始化完成,为以后的WLAN功能打下基础(AP、STA功能和网络传输仍在攻克中)。
还有,下载WiFi固件到W25Q128时最好用HyperTerminal,因为此工具的YMODEM传输速度比SecureCRT快。
代码链接:https://pan.baidu.com/s/1Gv3kgpv_IxTgvTCtjFYzNA
提取码:0u1j
HyperTerminal 7.0.rar (8.53 MB, 下载次数: 22)
回复 支持 反对

使用道具 举报

0

主题

20

帖子

0

精华

初级会员

Rank: 2

积分
197
金钱
197
注册时间
2018-5-7
在线时间
44 小时
发表于 2019-5-5 14:07:24 | 显示全部楼层
楼主牛逼,我也用过wiced开发东西,但是只是使用,并没有深入研究和移植,赞楼主。
回复 支持 反对

使用道具 举报

6

主题

123

帖子

1

精华

金牌会员

Rank: 6Rank: 6

积分
1279
金钱
1279
注册时间
2012-5-27
在线时间
200 小时
发表于 2019-5-5 14:24:14 来自手机 | 显示全部楼层
我去,楼主真的成功了,给楼主赞一个,学习了。
回复 支持 反对

使用道具 举报

8

主题

73

帖子

0

精华

高级会员

Rank: 4

积分
706
金钱
706
注册时间
2014-5-24
在线时间
145 小时
发表于 2020-8-26 22:42:00 | 显示全部楼层
楼主棒棒哒!!!
回复 支持 反对

使用道具 举报

0

主题

3

帖子

0

精华

新手入门

积分
19
金钱
19
注册时间
2020-1-19
在线时间
4 小时
发表于 2022-5-2 23:11:13 | 显示全部楼层
楼主,那个链接失效了,能否再发一下,谢谢你啦
回复 支持 反对

使用道具 举报

0

主题

4

帖子

0

精华

新手入门

积分
13
金钱
13
注册时间
2022-5-10
在线时间
3 小时
发表于 2022-5-10 19:54:39 | 显示全部楼层
谢谢分享!
回复 支持 反对

使用道具 举报

17

主题

465

帖子

1

精华

金牌会员

Rank: 6Rank: 6

积分
2154
金钱
2154
注册时间
2013-1-11
在线时间
509 小时
发表于 2023-4-2 22:53:42 | 显示全部楼层
STM32F103 发表于 2019-5-5 14:24
我去,楼主真的成功了,给楼主赞一个,学习了。

请问您有这个网盘的附件吗?可以分享一下吗?已经下载不了了
知识是你最好的财富
回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-2-24 17:45

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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