微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > ARM技术讨论 > 4412开发板rfid(spi)模块问题

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

时间:10-02 整理:3721RD 点击:

在使用嵌入式SCP4412精英版大内存开发板时出现问题:

      我用  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]

示波器波形


第二张,2Mhz,32位




已退回5积分

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top