搜索

1

主题

8

帖子

56

积分

注册会员

Rank: 2

积分
56
发表于 2016-2-22 16:22:28 26379 浏览 13 回复

4412开发板rfid(spi)模块问题

在使用SCP精英版大内存开发板时出现问题:
      我用  4412开发板资料\iTOP4412开发板资料汇总(不含光盘内容)\iTOP-4412开发板系统源码及镜像(其他)\小模块的测试程序\RFID\rfidtest.rar 这个程序操作spi时发现管脚波形跟我想象的不一样。我直接运行rfidtest那个程序(为了方便观察波形,把cardreader.ReadCardNum()这个函数循环多次连续调用,不然按一次recv只出现很短时间的话示波器观察不到)。然后得到这张示波器波形图。问题主要是在调用read函数时,会多出一组不应该出现的clk。
       这个现象在我的开发板上一直出现,包括我通过ioctl函数修改了通信频率、通信数据的长度等等参数后都存在,而且在一些情况下多出来的那一组clk会延伸到cs置为高电平之后,造成整个通讯的错误。

       第二张是使用2Mhz,32位数据长度时跟FPGA通讯,在fpga端读到的,左边那个是read函数,可一看到多出来的一组clk已经延伸到cs置成高电平之后了[img]file:///C:\Users\鸣威\Documents\Tencent Files\1436895767\Image\C2C\3NB[A}W4REMQG~MH4SA~4A9.png[/img](多出来的这组clk在我把数据长度设成32位后也变成了32位)。


       我是想拿jni里调用的read、write函数直接当做spi对外读写,就像串口那样,我试过基本是对的,就是读的过程结束之后最后会多出图片里那种clk.
       比如我在我的程序里连续读了32*n个数据(此期间cs是低电平),读完之后,在cs跳变到高电平之前会出现一组32个clk的波形,不论n多长或者多短(哪怕=1)都会出现一组32个clk。而我的数据如果选择八位的通讯模式则会出现一组8位的clk
。上面的两个图就是这个现象(当然这两个图里读的长度分别是8*1和32*1)
       而write函数直接用就是对的。
       这组多出的clk可以复现,关键是多的这组信号虽然长度是固定的,但是会有一部分在cs低电平里,一部分在cs高电平里,多的这个东西和cs上升沿的相对位置会变化,就带来很多麻烦,而且按照spi协议来说不应该有这个。
      而且数据和时钟是对的,这个多出来的东西纯粹是多余的。
      麻烦大家看看这个是不是个例,或者有没有其它版本的固件可以使用spi或者rfid模块




[img]file:///C:\Users\鸣威\Documents\Tencent Files\1436895767\Image\C2C\@0PV4OAYKG[`2~_R1B0O92X.jpg[/img]

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复

使用道具 举报

1

主题

8

帖子

56

积分

注册会员

Rank: 2

积分
56
 楼主| 发表于 2016-2-22 16:39:09
没人解答一下吗
回复 点赞

使用道具 举报

48

主题

604

帖子

1923

积分

版主

Rank: 7Rank: 7Rank: 7

积分
1923
发表于 2016-2-23 09:08:50
luomw 发表于 2016-2-22 16:39
没人解答一下吗

先不要太急,看到帖子之后就在研究,这个问题设计的面比较多
回复 点赞

使用道具 举报

1

主题

8

帖子

56

积分

注册会员

Rank: 2

积分
56
 楼主| 发表于 2016-2-23 11:25:42
谢谢啦,这个是比较底层,搞清楚还是很有必要的
回复 点赞

使用道具 举报

1

主题

8

帖子

56

积分

注册会员

Rank: 2

积分
56
 楼主| 发表于 2016-2-23 15:50:48
TOPEET_moon 发表于 2016-2-23 09:08
先不要太急,看到帖子之后就在研究,这个问题设计的面比较多

对了,请问怎么在4.4的系统里启用rfid或者spi啊
回复 点赞

使用道具 举报

48

主题

604

帖子

1923

积分

版主

Rank: 7Rank: 7Rank: 7

积分
1923
发表于 2016-2-23 16:29:50
luomw 发表于 2016-2-23 15:50
对了,请问怎么在4.4的系统里启用rfid或者spi啊

4.4也是一样的~
不过你的APK需要重新基于Android4.4版本编译一下
回复 点赞

使用道具 举报

1

主题

8

帖子

56

积分

注册会员

Rank: 2

积分
56
 楼主| 发表于 2016-2-24 08:42:45
我的4.4系统里没有rc522或者spidev的设备号啊,我之前按照“iTop4412驱动实验手册”里讲的,对照着4.0.3的系统修改menuconfig、makefile、mach-itop4412.c等,注册上了设备可是运行的时候还是打不开设备,不能运行,请问迅为有把rc522注册进系统的4.4版本镜像吗?
回复 点赞

使用道具 举报

48

主题

604

帖子

1923

积分

版主

Rank: 7Rank: 7Rank: 7

积分
1923
发表于 2016-2-24 09:33:35
luomw 发表于 2016-2-24 08:42
我的4.4系统里没有rc522或者spidev的设备号啊,我之前按照“iTop4412驱动实验手册”里讲的,对照着4.0.3的 ...

你检查可以对比一下那部分的源码~
spi总线应该都支持的
回复 点赞

使用道具 举报

1

主题

8

帖子

56

积分

注册会员

Rank: 2

积分
56
 楼主| 发表于 2016-2-24 09:44:29
应该是都支持的,不过由于我水平不够,可能有些地方改了有些地方没改,所以看起来好像设备已经注册好了,但是其实用不起来......所以希望你们能给个注册好的版本或者给个教程,都需要修改哪些地方。。因为spi是总线可能和普通的字符设备不一样?
回复 点赞

使用道具 举报

48

主题

604

帖子

1923

积分

版主

Rank: 7Rank: 7Rank: 7

积分
1923
发表于 2016-2-24 15:39:47
luomw 发表于 2016-2-24 09:44
应该是都支持的,不过由于我水平不够,可能有些地方改了有些地方没改,所以看起来好像设备已经注册好了,但 ...

嵌入式中常用的四大总线i2c,can,spi,usb,底层的驱动协议都是linux系统自带做好的
即使作为驱动工程师,最多就是学习它们的调用~
大多数工程师都不用花费太多时间去专研底层的。
回复 点赞

使用道具 举报

下一页 »
12下一页
返回列表
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

登录或注册

官方客服

QQ:2551456065

官方QQ群

195631883

扫一扫关注迅为公众号

群号652692981

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