页次: 1
要不试一试这个固件: https://whycan.cn/t_3206.html
好,马上试一试!
之前调试i2c总线时,总是发现sys/class/i2c_adapter或i2c_dev文件夹里没有任何东西,空的。ic2-0,i2c-1这些始终没有。
后面发现是因为mv64xxx_i2c_probe没注册成功,因为里面的drv_data->clk = devm_clk_get(&pd->dev,null);
IS_ERR(drv_data->clk) = -19,读取失败了.
所以在下面的配置也失败了:rc = mv64xxx_of_config(drv_data, &pd->dev);所以直接跳到exit_clk了。
看获取时钟函数上面注释:/* Not all platforms have a clk */似乎不是所有的平台都有这个时钟,
但是没有获取成功,下面的配置和驱动又不成立,无法创建i2C-x。
请路过的大佬、大神们帮指点一二!谢谢!
在家没设备,我试下固件看看,谢谢!
设备树定义两个i2c:
反复查看compatible是跟mv64xxx.c文件上能对应用上的:
配置里启用了mv64xxx IIC(还有哪些需要启用的吗?):
编译烧写启动后似乎没看到有i2c0和i2c2启动成功(是否还有哪里缺少配置?):
进入sys/class/i2c-dev和i2c-adapter都是空的:
进入sys/bus/i2c/devices里也是空的:
进入sys/devices/platform里也没看到i2c:
进入soc里可以看到是有定义的i2c0和i2c2:
这里是否需要添加什么信息?
初学者对linux架构和驱动流程都没熟悉,弄了两天都没解决。是否除了以上配置,是否还需要在其它文件上做修改?在此先感谢各位留言指点的大佬!
楼主,write(fd, strBuf, strlen(strBuf));执行这个可以发送成功,PC端也收到正确数据了。但是执行到这里i = read(fd, buf, 1000);好像读不到数据,读到的回值是-1。PC端串口助手发12345,返回12345。路过的大神们帮忙指点一二,谢谢!
个人感觉是驱动问题,因为在执行echo "12345" > /dev/ttyS2,PC端这边能收到12345。执行cat /dev/ttyS2后,PC端串口助手发12345,返回也是12345。自发自收了。cat /dev/ttyS2执行后如果正常是不是可以显示12345的?现在是不会显示,反而是PC串口助手那边自发自收了。实在是新手不懂,知道的大佬们帮解答一下。谢谢!
继上次USB识别问题,把AVCC等电源全部接上,再次打样测试。
接上USB线后,装上驱动发现识别出USB了,但是SVREF为0.04V左右,用了迪卡大神的烧定软件识别不出芯片和Flash。
重新给USB装驱动,打开zadig-2.3.exe软件,按下图重装下驱动:
在设备管理器上看到有些许不同,也有可能本来就是WIN10本事的问题吧!(但是重点是正确驱动装完,SVREF经测试为:1.25V,所以有遇到这里电压不正确的朋友,关注一下是不是USB驱动没装好???)
打开迪卡大神做的烧写软件,芯片和Flash都识别出来了。
烧写编译好的BIN文件,复位:
看到U-BOOT跑起来了
明显Linux还有问题,卡在这里了,继续学习,重新编译再来试过。。。
USB不识别我能想到的有几个可能:
1. 走线不好,不过连枚举都没有,恐怕不是这个原因。 USB2.0 full speed以内,可以说随便拉线的
2. 电脑端问题,不知道有没有换台电脑试,我的电脑反正出现过。
3. 低级问题,比如D+D-画反了,这个可能性是有的,总之检查下没坏处。
4. 垃圾数据线,我也遇到过
5. 电阻不用管, 不过你说的也不对, 上下拉电阻是USB规范决定的, 不管是USB1.1 2.0 3.0都需要电阻的,不过大部分芯片是内置。因为不知道楼主的具体情况,所以把所有问题都罗列出来吧,排除法。
然后就用大招吧:
1. 串口看信息
2. usb分析软件看枚举,比如 bushound
感谢提醒。查了D+和D-了,也换了线,还是有问题。至于上拉电阻确实是USB1.1 2.0 3.0不一样,排除这个问题了。我想也是芯片内置了,看了官方电路USB也不需要上拉匹配电阻的。我试下用软件看下枚举。
电路图:
https://whycan.cn/files/members/2850/none.pdf
电脑USB识别出错:
供电测量结果:
电源用的是EA3036,几组供电电压:VCC-IO:3.20V VCC-CORE: 1.12V DRAM: 2.54V SVREF:1.25V (之前出现过只有0.04V是因为芯片没贴好,重新热风枪吹过就好了)
其中ACC、VAR1、VAR2都没接。
显波器查看芯片是否工作:
用显波器看到上电后SD卡和SPI接口都有脉冲信号输出,晶振也测试到有24M波形。短接SPI脚的CS(W25Q128的1脚与4脚短接),
发现USB的D+出现了一个几十ms高电平脉冲信号,后面还跟一串数据信号(比较多没去看是多宽,反正是很多高低电平脉冲,应该是数据了)。
电脑并没有识别出USB,再次偿试插拨USB接口,也没有一点反应。
USB接口D+强制加上拉测试:
接好USB线,短接SPI芯片1和4脚,进入USB BOOT状态;从3.3V接了一个1.5K电阻,给无法识别的USB口D+端强加上拉,偿试了几次插拨USB线,用显波器看到D+和D-两个脚有一大串脉冲数据,但是依然无法识别。
按自己的理解,USB应该不用加上拉做匹配识别的。USB BOOT肯定是个从机,插上USB后,芯片会给D+送一个识配的高电平脉冲,让电脑识别到有一个从机存在,然后再去识别查询该USB从机的ID等,F1C200S进入USB BOOT后从显波器上看也确实是输出了一个高电平,不知道是不是几十ms不足以识别还是什么原因。
对USB理解不多,还请论坛里各位大神帮忙分析分析,看下可能是什么问题,什么因原导致USB识别不了。感谢万分!
页次: 1