找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1987|回复: 15
打印 上一主题 下一主题
收起左侧

求助大神,关于STM32F103驱动MFRC500的问题

[复制链接]
跳转到指定楼层
楼主
ID:260951 发表于 2020-8-17 17:43 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
最近要用MFRC500做一个类似于刷卡计费的系统,MCU用的是stm32f103rbt6; 找了几天发现网上都是用51来做的。自己看MFRC500数据手册写了一些部分代码,调试发现按程序运行来说,MFRC500已经初始化成功,但是感觉始终不太对,主要是对MFRC500不了解,没有一个系统认知。求助大神指导一下,或是分享一下demo也行,拜谢!!!
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:804115 发表于 2020-8-17 18:48 | 只看该作者
MFRC500就是一个非接触读卡芯片,说白了,由它组成的子电路,用MCU控制可以实现非接触读写卡的功能。它本身只是操作卡片的一种介质,但具体怎么驱动卡片,得看iso14443协议,一般过程就是寻卡,选卡,防冲撞,卡复位,apdu操作等,这些操作要通过自己写mcu程序操作MFRC500的寄存器来驱动其射频电路来对卡片进行收发而实现,实现这个之后就可以认为驱动开发完成。之后就是应用开发,应用开发需要知道卡片结构,所谓的卡片结构,就是描述你操作的卡片的目录和文件结构,然后你通过收发函数,来进行选目录,选文件,然后对文件进行读写等等。我没有代码可以参考,但这些我都干过,我们是ETC行业,在相应的公司调试过相关代码,我们用的是SKY1311s之类的芯片,和你这个类似,也是符合iso14443的非接触读卡芯片,希望对你有帮助。
回复

使用道具 举报

板凳
ID:260951 发表于 2020-8-18 09:30 | 只看该作者
1692483014 发表于 2020-8-17 18:48
MFRC500就是一个非接触读卡芯片,说白了,由它组成的子电路,用MCU控制可以实现非接触读写卡的功能。它本身 ...

是这样的,我按时序写了 读写寄存器的函数。然后按 网上找的51做的模板写了一个初始化程序。程序能正常跑完。但是我不知道如何判断初始化成功。激活卡的程序也是一样的(temp=MF_Active(AbsoluteBlock,cardserialno);)。。。程序都顺利跑完,但是没有效果
回复

使用道具 举报

地板
ID:260951 发表于 2020-8-18 09:41 | 只看该作者
1692483014 发表于 2020-8-17 18:48
MFRC500就是一个非接触读卡芯片,说白了,由它组成的子电路,用MCU控制可以实现非接触读写卡的功能。它本身 ...

是这样的,我按照时序写了读写函数,然后按照网上51做的例程做了一个初始化程序,程序能正常跑完,但我无法判断是否初始化正常,我在初始化结束后去读寄存器,发现读到的数据都是0x30,也模拟51的做了一个卡激活程序,还是同样的,程序跑的完,但是没有效果
回复

使用道具 举报

5#
ID:429003 发表于 2020-8-18 10:53 | 只看该作者
恩智浦的东西太贵了,不考虑一下复旦微的刷卡芯片? 最近用复旦微FM17510 刚完工一个项目!
回复

使用道具 举报

6#
ID:429003 发表于 2020-8-18 11:13 | 只看该作者
做项目不能只依靠照搬别人的东西,首先你的了解一些IC卡的相关规范标准!
不管是恩智浦的RF500、RC522,还是复旦微的MF17XXX读卡芯片,只是一个通讯器件,
卡的激活、防冲突、选卡,以及读写是有标准的。

《IEC 14443 中国金融非接触卡规范》,这个文档首先你需要读一读!
另外,你既然选用的RC500,这个芯片的数据手册,你也需要读一读!
还有,常用的M1(S50)卡,存储结构需要完全了解掌握!

相关资料已打包,个人多看看!

中国金融集成电路(IC)卡规范 JR-T0025.x-2018.rar

17.28 MB, 下载次数: 13

中国金融集成电路(IC)卡规范

回复

使用道具 举报

7#
ID:260951 发表于 2020-8-18 18:04 | 只看该作者
xstong 发表于 2020-8-18 10:53
恩智浦的东西太贵了,不考虑一下复旦微的刷卡芯片? 最近用复旦微FM17510 刚完工一个项目!

不考虑其他的芯片
回复

使用道具 举报

8#
ID:260951 发表于 2020-8-18 18:05 | 只看该作者
xstong 发表于 2020-8-18 11:13
做项目不能只依靠照搬别人的东西,首先你的了解一些IC卡的相关规范标准!
不管是恩智浦的RF500、RC522,还 ...

正在研究相关文档,但是实际操作起来还是有困难和疑问的地方。
回复

使用道具 举报

9#
ID:804115 发表于 2020-8-18 18:58 | 只看该作者
fkup 发表于 2020-8-18 09:41
是这样的,我按照时序写了读写函数,然后按照网上51做的例程做了一个初始化程序,程序能正常跑完,但我无 ...

xstong 说的对,你看看文档吧!你可以带着问题去看,优先看寻卡、防冲突、选卡,卡激活、卡复位相关的章节,先把这几个功能完成,交互的指令字并不多。
驱动的话,要先开场,13.56Mhz的场才会产生,然后将卡片放到场中后,辐射到卡片的线圈上,然后卡片才能上电,之后卡片内部,比如MCU卡,就会初始化,初始化好后,你就可以寻到卡了。一般卡片放到场上时,你的rc500应该给中断给到你的MCU,提示你卡片到来了,或者查询的方式读取RC500的寄存器后确认卡片到来,之后才会触发你的代码去进行寻卡的。
确认场有没有产生的方式很多,可以用示波器,频谱仪,也可以自制一个线圈,多绕几圈,然后线圈用LED灯闭合,将其放到场上,灯就亮了。
回复

使用道具 举报

10#
ID:260951 发表于 2020-8-19 10:07 | 只看该作者
1692483014 发表于 2020-8-18 18:58
xstong 说的对,你看看文档吧!你可以带着问题去看,优先看寻卡、防冲突、选卡,卡激活、卡复位相关的章 ...

我现在是卡在对 MFRC500  的操作上。在我完成所有的IO口初始化后,我按时序做了读写函数,然后读写寄存器,比如先写0x3F到地址0,然后读地址0,发现读出来的数据不一样。就是我要完成整个流程,不得先是能正确操作RC500,然后在通过RC500去操作IC卡吗
回复

使用道具 举报

11#
ID:804115 发表于 2020-8-19 12:20 | 只看该作者
fkup 发表于 2020-8-19 10:07
我现在是卡在对 MFRC500  的操作上。在我完成所有的IO口初始化后,我按时序做了读写函数,然后读写寄存器 ...

是的,基本接口都不通,那其它就别谈了,先老老实实调接口,借助逻辑分析仪看协议,例如spi,另外,RC500的硬件检查下
回复

使用道具 举报

12#
ID:260951 发表于 2020-8-21 09:18 | 只看该作者
1692483014 发表于 2020-8-19 12:20
是的,基本接口都不通,那其它就别谈了,先老老实实调接口,借助逻辑分析仪看协议,例如spi,另外,RC500 ...

研究了很久时序,还是不成功
回复

使用道具 举报

13#
ID:560778 发表于 2020-8-24 17:16 | 只看该作者
楼主,你问题解决了吗?
回复

使用道具 举报

14#
ID:560778 发表于 2020-8-24 17:19 | 只看该作者
楼主,我和你差不多的硬件方案。我写完驱动发现初始化不成功,发送地址0x01后没有读取到0x3f,后面我有单独测试了下读取寄存器内容发现能够读取出数据。
回复

使用道具 举报

15#
ID:260951 发表于 2020-8-25 11:32 | 只看该作者
炉石 发表于 2020-8-24 17:19
楼主,我和你差不多的硬件方案。我写完驱动发现初始化不成功,发送地址0x01后没有读取到0x3f,后面我有单独 ...

应该是解决了这个问题
回复

使用道具 举报

16#
ID:560778 发表于 2020-9-2 17:01 | 只看该作者
fkup 发表于 2020-8-25 11:32
应该是解决了这个问题

你有没有碰到寻卡时会出现超时的现象,我现在程序能寻到ID但是有概率会超时。
回复

使用道具 举报

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

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

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