1
完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
在rk3328的Android9.0版本中采用新的wifi芯片realtek 8822cs时出现检测不到WIFI模块的问题,咨询rk之后仍未解决,经过3天的排查尝试终于找到问题的原因,现将问题原因及解决方案记录下来,以便同道中人能避免或者解决此问题。
Kernel: v4.4.179 Device: rk3328 Platform Version: Android 9.0 出现的问题 前期kernel的dts配置可以参考rockchip提供的wifi配置文档Rockchip_Introduction_Android9.0_WIFI_Configuration_CN.pdf 按照上面文档中描述,识别流程如下: 开机会对wifi模块上电,并自动进行扫描sdio操作。如果WIFI模块识别成功会在dmesg中抓到如下日志(注意前面的内容可能不同,但红框内是一样的): 问题就出在这里,始终抓不到这条日志,那也就意味着,模块并未被扫描到。 解决的过程 1)首先先排查dts和原理图能不能对应上,配置的对不对(经过详细对比,并没有错) 2)然后仔细阅读文档、网上搜索以及咨询rk都没找到原因。 3)猜测是不是供电问题, 导致这WIFI芯片根本就没起来,通过示波器测量WIFI引脚,但经过测量是有供电的,但又有一点怀疑是不是电压不够。基于这个怀疑,仔细阅读8822s的datasheet,发现一个可疑的地方。 datasheet中写的是1.8V和3.3V根据SDIO协议定,SDIO协议又有3个,参考rk的另一个文档Rockchip_android7.1_wifi_配置明V1.6.pdf。 也就是说SDIO3.0,是1.8V,SDIO是3.3V, 又看了一下8822cs的datasheet。 默认写的是1.8V, 也就是默认已经建议使用1.8V了。 回去又看了一眼我们板子的原理图,硬件把它给成了3.3V, 并且不止这一个引脚,都给的3.3V, 而且把它给定死了。。。,这怎么搞? 想通过手动写寄存器把电压改成1.8V, 但不可行,放弃。 既然都是3.3V,理论上它也应该自己就切换到SDIO2.0啊,但它就是不行,你说气人不?陷入僵局,让硬件改板子把电压调成1.8V? 更不可行(重做板子要成本啊,而且这个芯片我们第一次用,都不知道能不能驱动起来,万一改了板还是驱动不起来,那就。。。。搞得人挺崩溃) 解决的方法 又重新查资料看看到底怎么回事?找到一个rk的Android7.0的SDIO的配置文档Rockchip SDMMC SDIO eMMC 开发指南 V1.0-20160630.pdf 最要命的就是这条其实写的也是太清楚,但最终确实靠它解决了。 将dts中的这条删除掉,一切OK了,自己切换到SDIO2.0了。 我觉得他应该再加一句,**如果只使用SDIO2.0,不要加这句。**因为我很早就看到这一句了,但未意识到它才是解决问题的关键。 反思 一个问题排查了挺长时间,结果解决它的最后只有一句话。同时也提醒自己,写文档的时候,尽量写清楚一点,哪怕多一句废话都成,但如果别人看不明白,会给不知道的人造成很大的麻烦。 |
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
基于米尔瑞芯微RK3576核心板/开发板的人脸疲劳检测应用方案
498 浏览 0 评论
768 浏览 1 评论
667 浏览 1 评论
1893 浏览 1 评论
3138 浏览 1 评论
小黑屋| 手机版| Archiver| 德赢Vwin官网 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-21 15:07 , Processed in 0.418756 second(s), Total 40, Slave 32 queries .
Powered by 德赢Vwin官网 网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
德赢Vwin官网 观察
版权所有 © 湖南华秋数字科技有限公司
德赢Vwin官网 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号