21247|14

1234

帖子

4

TA的资源

纯净的硅(高级)

楼主
 

基于stm32对无线RC522的SPI控制小小研究 [复制链接]

 
本帖最后由 ywlzh 于 2016-5-21 00:30 编辑

   
  买的RFID模块,就是想试试无线控制的感觉,测试距离也就5到6CM就是极限了,再远点就扫描不到卡了,没有蓝牙用着爽快,也算是打开了RFID的一扇窗吧!原理图:
  
当中RST接的普通IO口,SDA(CS)也是接的普通IO口,SPI我个人用的SPI3,配置如下:
  1. GPIO_PinAFConfig(GPIOC,GPIO_PinSource12,GPIO_AF_SPI3);
  2. GPIO_PinAFConfig(GPIOC,GPIO_PinSource11,GPIO_AF_SPI3);
  3. GPIO_PinAFConfig(GPIOC,GPIO_PinSource10,GPIO_AF_SPI3);

  4. //这里只针对SPI口初始化
  5. RCC_APB1PeriphResetCmd(RCC_APB1Periph_SPI3,ENABLE);//复位SPI3
  6. RCC_APB1PeriphResetCmd(RCC_APB1Periph_SPI3,DISABLE);//停止复位SPI3
  7. MYRC522_CS = 1;
  8. SPI_InitStructure.SPI_Direction = SPI_Direction_2Lines_FullDuplex; //设置SPI单向或者双向的数据模式:SPI设置为双线双向全双工
  9. SPI_InitStructure.SPI_Mode = SPI_Mode_Master; //设置SPI工作模式:设置为主SPI
  10. SPI_InitStructure.SPI_DataSize = SPI_DataSize_8b; //设置SPI的数据大小:SPI发送接收8位帧结构
  11. SPI_InitStructure.SPI_CPOL = SPI_CPOL_Low; //串行同步时钟的空闲状态为低电平
  12. SPI_InitStructure.SPI_CPHA = SPI_CPHA_1Edge; //串行同步时钟的第一个跳变沿(上升或下降)数据被采样
  13. SPI_InitStructure.SPI_NSS = SPI_NSS_Soft; //NSS信号由硬件(NSS管脚)还是软件(使用SSI位)管理:内部NSS信号有SSI位控制
  14. SPI_InitStructure.SPI_BaudRatePrescaler = SPI_BaudRatePrescaler_32; //定义波特率预分频的值:波特率预分频值为32
  15. SPI_InitStructure.SPI_FirstBit = SPI_FirstBit_MSB; //指定数据传输从MSB位还是LSB位开始:数据传输从MSB位开始
  16. SPI_InitStructure.SPI_CRCPolynomial = 7; //CRC值计算的多项式
  17. SPI_Init(SPI3, &SPI_InitStructure); //根据SPI_InitStruct中指定的参数初始化外设SPIx寄存器

  18. SPI_Cmd(SPI3, ENABLE); //使能SPI外设

  19. SPIWriteByte(0xff);//启动传输
复制代码
开发板是stm32f407。

RC522初始化需要将天线关闭,打开一次,然后就是将模式配置为ISO14443_A,其他模式还没有试过。
然后是对RC522的一套流程!
寻卡------> 防冲撞------> 选卡-----> 验证密码(四个扇区的初始密码是6个0xff)
这四步中的每一步会返回一个值,如果是0就操作正确,不是就需要好好看看,硬仿真试试。这四步做完了就是读对应扇区的内容或者写对应扇区的内容或者重新写对应扇区的验证密码等等。
这之后有数据了,你想干嘛干嘛。
我将这个RCC模块的程序(亲自移植测试没有问题)分享出来,再加一个中文手册
RC_522.rar (5.13 KB, 下载次数: 1611) MF_RC522中文资料.pdf (11.88 MB, 下载次数: 6078)

在移植之前,需要做个准备工作,自己要定义两个数组,一个有两个元素的数组,一个有四个元素的数组,uin8_t型就可以了,这两个数组一个是存放卡类型的数据,一个存放卡号的数据不是扇区数据,然后还要定义一个有6个元素的数组,存放验证密码(初始的值都为0xff),再定义些数组可以将读出的扇区数据存起来。





此帖出自单片机论坛

最新回复

距离与天线有关。8cm是可以做到的。记得好像。   详情 回复 发表于 2021-6-24 14:28
点赞 关注(5)
个人签名天地庄周马;江湖范蠡船。
个性签名还是放QQ号吧,2060347305,添加说明EEworld好友
 

回复
举报

1297

帖子

2

TA的资源

纯净的硅(中级)

沙发
 
13.56M的rfid的距离就是很近的,相远用900M或者有源的。rfid本来就不是做无线控制的啊
此帖出自单片机论坛

点评

哈哈 这个知道,RFID,有兴趣玩玩而已。  详情 回复 发表于 2016-5-21 09:28
 
 

回复

1234

帖子

4

TA的资源

纯净的硅(高级)

板凳
 
johnrey 发表于 2016-5-21 07:49
13.56M的rfid的距离就是很近的,相远用900M或者有源的。rfid本来就不是做无线控制的啊

哈哈 这个知道,RFID,有兴趣玩玩而已。
此帖出自单片机论坛
 
个人签名天地庄周马;江湖范蠡船。
个性签名还是放QQ号吧,2060347305,添加说明EEworld好友
 
 

回复

578

帖子

0

TA的资源

纯净的硅(初级)

4
 
这个套件有现成可移植的代码吧
此帖出自单片机论坛

点评

对,有现成的430和51的例程,我把它里面将RC522的程序模块抠出来,移植的时候还需要注意些地方,对着手册看看就能明白。  详情 回复 发表于 2016-5-21 09:55
 
个人签名刻苦学习,共同进步
 
 

回复

1234

帖子

4

TA的资源

纯净的硅(高级)

5
 
迈尔风随 发表于 2016-5-21 09:49
这个套件有现成可移植的代码吧

对,有现成的430和51的例程,我把它里面将RC522的程序模块抠出来,移植的时候还需要注意些地方,对着手册看看就能明白。
此帖出自单片机论坛
 
个人签名天地庄周马;江湖范蠡船。
个性签名还是放QQ号吧,2060347305,添加说明EEworld好友
 
 

回复

1

帖子

0

TA的资源

一粒金砂(初级)

6
 
1、跟楼主用开发板和模块一样,但只有3cm不到的检测距离,不知楼主有什么提高距离的办法?
2、还想问问spi的分频和读写有什么关系,设置到256就不行了,其他好用?
此帖出自单片机论坛

点评

距离与天线有关。8cm是可以做到的。记得好像。  详情 回复 发表于 2021-6-24 14:28
这个RC522,我也好久没有动过了,只是当时有兴趣试了试 1,你可能买到假货了 2,手册上好像有讲,读写速度不宜太慢和太快,正常读写就行  详情 回复 发表于 2016-7-25 17:26
 
 
 

回复

1234

帖子

4

TA的资源

纯净的硅(高级)

7
 
wlx945156 发表于 2016-7-25 17:08
1、跟楼主用开发板和模块一样,但只有3cm不到的检测距离,不知楼主有什么提高距离的办法?
2、还想问问spi ...

这个RC522,我也好久没有动过了,只是当时有兴趣试了试
1,你可能买到假货了
2,手册上好像有讲,读写速度不宜太慢和太快,正常读写就行
此帖出自单片机论坛
 
个人签名天地庄周马;江湖范蠡船。
个性签名还是放QQ号吧,2060347305,添加说明EEworld好友
 
 

回复

4

帖子

1

TA的资源

一粒金砂(初级)

8
 
楼主,那个RC522和S50卡片传输数据的程序怎么用啊
此帖出自单片机论坛
 
 
 

回复

1

帖子

0

TA的资源

一粒金砂(初级)

9
 
楼主  我初学RC522  现在测试寻卡没问题  但防冲撞过不去呀
我调试发现是读回来的数据校验不对
此帖出自单片机论坛
 
 
 

回复

1

帖子

0

TA的资源

一粒金砂(初级)

10
 
lxf880925 发表于 2017-12-22 08:43
楼主  我初学RC522  现在测试寻卡没问题  但防冲撞过不去呀
我调试发现是读回来的数据校验不对

我在学习fm17522的,现在连询卡都没通过,能加个qq交流下么:1447843114
此帖出自单片机论坛
 
 
 

回复

2

帖子

0

TA的资源

一粒金砂(初级)

11
 
lxf880925 发表于 2017-12-22 08:43
楼主  我初学RC522  现在测试寻卡没问题  但防冲撞过不去呀
我调试发现是读回来的数据校验不对

最近我也在用RC522,不过现在卡在了验证。
此帖出自单片机论坛
 
 
 

回复

8

帖子

0

TA的资源

一粒金砂(初级)

12
 

感谢分享,赞!

此帖出自单片机论坛
 
 
 

回复

4

帖子

0

TA的资源

一粒金砂(初级)

13
 
嗯嗯 非常好的资料
此帖出自单片机论坛
 
 
 

回复

5

帖子

0

TA的资源

一粒金砂(初级)

14
 
感谢分享  学习下
此帖出自单片机论坛
 
 
 

回复

6107

帖子

4

TA的资源

版主

15
 
wlx945156 发表于 2016-7-25 17:08 1、跟楼主用开发板和模块一样,但只有3cm不到的检测距离,不知楼主有什么提高距离的办法? 2、还想问问spi ...

距离与天线有关。8cm是可以做到的。记得好像。

此帖出自单片机论坛
 
 
 

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

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/7 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表