找回密码
 立即注册
查看: 710|回复: 9

Ai8H2K17U驱动MFRC522射频卡

[复制链接]
  • 打卡等级:常住居民III
  • 打卡总天数:176
  • 最近打卡:2025-02-19 17:24:49

15

主题

265

回帖

1387

积分

金牌会员

积分
1387
发表于 2024-10-23 21:05:11 | 显示全部楼层 |阅读模式
各位老朋友,我看了一下午MFRC522的数据手册。109页英文版的。总算入了点门,有谁要问的抓紧问。趁着我还有热度。

先发点h内容,我自己标注的。
这是命令控制字。

#define PCD_IDLE                        0x00               //无操作,或者取消当前命令的执行。
#define PCD_MEM                        0x01               //从fifo将25个字节存储到内部缓冲区中
#define PCD_RAID                          0x02               //生成一个10字节的随机id号
#define PCD_CALCCRC                 0x03               //激活crc协处理器或执行自检
#define PCD_TRANSMIT               0x04               //从FIFO缓冲区发送数据
#define PCD_NOCMDCHAN           0x07               //没有命令更改。此命令可用于修改命令寄存器中的不同位,
                                                                       //而不结束该命令。
#define PCD_RECEIVE                 0x08                     //激活接收器电路
#define PCD_TRANSCEIVE           0x0C                  //将数据从fifo缓冲区传输到天线,并在传输后自动激活接收机
#define PCD_AUTHENT               0x0E                    //Performs the MIFARE® standard authentication as a reader
#define PCD_RESETPHASE          0x0F                  //Resets the MFRC522
//这些说明在数据手册73页


/////////////////////////////////////////////////////////////////////
//RC522寄存器定义
/////////////////////////////////////////////////////////////////////
// PAGE 0
#define     RFU00                 0x00  //保留供将来使用  
#define     CommandReg            0x01  //启动和停止命令执行  
#define     ComIEnReg             0x02  //控制位以启用和禁用中断请求的传递  
#define     DivlEnReg             0x03  //控制位以启用和禁用中断请求的传递  
#define     ComIrqReg             0x04  //包含中断请求位
#define     DivIrqReg             0x05  //包含中断请求位
#define     ErrorReg              0x06  //显示最后执行的命令的错误状态的错误位  
#define     Status1Reg            0x07  //包含用于通信的状态位
#define     Status2Reg            0x08  //包含接收器和发射器的状态位  
#define     FIFODataReg           0x09  //64字节FIFO缓冲器的输入和输出
#define     FIFOLevelReg          0x0A  //表示FIFO中存储的字节数
#define     WaterLevelReg         0x0B  //定义FIFO不足和溢出警告的级别
#define     ControlReg            0x0C  //包含各种控制寄存器
#define     BitFramingReg         0x0D  //面向位帧的调整
#define     CollReg               0x0E  //RF接口上检测到的第一个比特冲突的比特位置
#define     RFU0F                 0x0F  //保留供将来使用
// PAGE 1     
#define     RFU10                 0x10//保留供将来使用
#define     ModeReg               0x11//定义传输和接收的一般模式
#define     TxModeReg             0x12//定义传输数据速率和帧
#define     RxModeReg             0x13//定义接收数据速率和帧
#define     TxControlReg          0x14//控制天线驱动器引脚TX1和TX2的逻辑行为
#define     TxAutoReg             0x15//控制TX调制的设置
#define     TxSelReg              0x16//为天线驱动器选择内部电源
#define     RxSelReg              0x17//选择内部接收器设置
#define     RxThresholdReg        0x18//为位解码器选择阈值
#define     DemodReg              0x19//定义解调器设置
#define     RFU1A                 0x1A//保留供将来使用
#define     RFU1B                 0x1B//保留供将来使用
#define     MifareReg             0x1C//控制某些MIFARE®通信传输参数
#define     RFU1D                 0x1D//控制某些MIFARE®通信传输参数
#define     RFU1E                 0x1E//保留供将来使用
#define     SerialSpeedReg        0x1F//选择串行UART接口的速度
// PAGE 2   
#define     RFU20                 0x20 //保留供将来使用
#define     CRCResultRegM         0x21 //显示CRC计算的实际MSB
#define     CRCResultRegL         0x22 //显示CRC计算的实际LSB值
#define     RFU23                 0x23 //保留供将来使用
#define     ModWidthReg           0x24 //控制ModWidth的设置
#define     RFU25                 0x25 //保留供将来使用
#define     RFCfgReg              0x26 //配置接收器增益
#define     GsNReg                0x27//选择天线驱动器引脚TX1和TX2的电导
#define     CWGsCfgReg            0x28//调制
#define     ModGsCfgReg           0x29//调制
#define     TModeReg              0x2A//定义内部计时器的设置16bit高8位
#define     TPrescalerReg         0x2B//定义内部计时器的设置低8位
#define     TReloadRegH           0x2C//描述16位定时器重新加载值高8位
#define     TReloadRegL           0x2D//描述16位定时器重新加载值低8位
#define     TCounterValueRegH     0x2E//显示16位实际计时器值高8位
#define     TCounterValueRegL     0x2F//显示16位实际计时器值低8位
// PAGE 3      
#define     RFU30                 0x30//保留供将来使用
#define     TestSel1Reg           0x31//通用测试信号配置
#define     TestSel2Reg           0x32//通用测试信号配置和PRBS控制
#define     TestPinEnReg          0x33//启用D1-D7上的引脚输出驱动器
#define     TestPinValueReg       0x34//定义D1-D7用作I/O总线时的值
#define     TestBusReg            0x35//显示内部测试总线的状态
#define     AutoTestReg           0x36//控制数字自检
#define     VersionReg            0x37//显示版本
#define     AnalogTestReg         0x38//控制引脚AUX1和AUX2
#define     TestDAC1Reg           0x39 //定义TestDAC1的测试值
#define     TestDAC2Reg           0x3A  //定义TestDAC2的测试值
#define     TestADCReg            0x3B   //显示ADC I和Q的实际值
#define     RFU3C                 0x3C //保留供将来使用  
#define     RFU3D                 0x3D //保留供将来使用  
#define     RFU3E                 0x3E  //保留供将来使用
#define     RFU3F                          0x3F//保留供将来使用





//***********************************************************************
//与mfrc522在两条线路(MOSI、MISO)上,每个数据字节首先由MSB发送。MOSI线上的数据在时钟线的上升沿应是稳定的,在下降沿可以改变。该名称对MISO线路有效。数据由MFRC522在下降沿提供,在上升沿稳定。
//要使用SPI兼容接口读取数据,必须使用以下字节顺序。最多可以读出n个数据字节。

//       BUTE0     BYTE1   BYTE2           TO   byteN    byteN+1
//MOSI   adr 0     adr1    adr2                 adr n       00
//MISO    X        data0   data1 ..............data n-1    data n

//要使用SPI接口将数据写入MFRC522,只需发送一个地址字节,就可以写出多达n个数据字节。必须首先发送最高有效位(MSB)。地址字节必须满足以下格式:


//第一个地址字节的第7位定义了使用的模式。要从MFRC522读取数据,第7位设置为逻辑1。要将数据写入MFRC522,第7位必须设置为逻辑0。位6到1定义了地址,第0位应设置为逻辑0。
//************************************************************************/

回复

使用道具 举报 送花

  • 打卡等级:常住居民III
  • 打卡总天数:177
  • 最近打卡:2025-04-30 13:52:43

10

主题

134

回帖

993

积分

高级会员

积分
993
发表于 2024-10-25 15:50:04 | 显示全部楼层
最近也在研究这个芯片,请教一下这个芯片功耗可以做到多低。看到另一款SI522在检测卡时只要几uA。
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:常住居民III
  • 打卡总天数:176
  • 最近打卡:2025-02-19 17:24:49

15

主题

265

回帖

1387

积分

金牌会员

积分
1387
发表于 2024-10-26 21:09:30 | 显示全部楼层
本帖最后由 liuzonggong 于 2024-10-26 21:16 编辑
远行*** 发表于 2024-10-25 15:50
最近也在研究这个芯片,请教一下这个芯片功耗可以做到多低。看到另一款SI522在检测卡时只要几uA。 ...
微安粘贴不上


回复 支持 反对

使用道具 举报 送花

  • 打卡等级:常住居民III
  • 打卡总天数:176
  • 最近打卡:2025-02-19 17:24:49

15

主题

265

回帖

1387

积分

金牌会员

积分
1387
发表于 2024-10-26 21:15:35 | 显示全部楼层
本帖最后由 liuzonggong 于 2024-10-26 21:18 编辑
远行*** 发表于 2024-10-25 15:50
最近也在研究这个芯片,请教一下这个芯片功耗可以做到多低。看到另一款SI522在检测卡时只要几uA。 ...

IHPD状态下TVDD= PVDD =3 V   5   mA

ISPD状态下TVDD= PVDD =3 V   5   m
ISPD and IHPD are the total currents over all supplies.


回复 支持 反对

使用道具 举报 送花

  • 打卡等级:常住居民III
  • 打卡总天数:177
  • 最近打卡:2025-04-30 13:52:43

10

主题

134

回帖

993

积分

高级会员

积分
993
发表于 2024-10-27 09:38:55 | 显示全部楼层
liuzon*** 发表于 2024-10-26 21:15
IHPD状态下TVDD= PVDD =3 V   5   mA

ISPD状态下TVDD= PVDD =3 V   5   m

谢谢,这个看样子不高。这个RC522可以相互通讯吗,比如做数据传输、刷机之类的
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:常住居民III
  • 打卡总天数:176
  • 最近打卡:2025-02-19 17:24:49

15

主题

265

回帖

1387

积分

金牌会员

积分
1387
发表于 2024-10-28 08:21:13 | 显示全部楼层
本帖最后由 liuzonggong 于 2024-10-28 08:28 编辑
远行*** 发表于 2024-10-27 09:38
谢谢,这个看样子不高。这个RC522可以相互通讯吗,比如做数据传输、刷机之类的 ...

你不是顾惠中吧?RC522是专用芯片,只用来与满足iso14443规程的卡片通讯用,不能相互通讯用来做数据传输。
因为它设计死了只能做主机,俩主机没法通讯。
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:常住居民III
  • 打卡总天数:177
  • 最近打卡:2025-04-30 13:52:43

10

主题

134

回帖

993

积分

高级会员

积分
993
发表于 2024-10-28 09:41:41 | 显示全部楼层
liuzon*** 发表于 2024-10-28 08:21
你不是顾惠中吧?RC522是专用芯片,只用来与满足iso14443规程的卡片通讯用,不能相互通讯用来做数据传输。 ...

不是哦,如果想相互通信有什么方案可以实现
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:常住居民III
  • 打卡总天数:176
  • 最近打卡:2025-02-19 17:24:49

15

主题

265

回帖

1387

积分

金牌会员

积分
1387
发表于 2024-10-28 12:44:46 | 显示全部楼层
远行*** 发表于 2024-10-28 09:41
不是哦,如果想相互通信有什么方案可以实现

模拟自己是一个卡片。让读卡器发出读卡操作,然后互通数据。
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:常住居民III
  • 打卡总天数:176
  • 最近打卡:2025-02-19 17:24:49

15

主题

265

回帖

1387

积分

金牌会员

积分
1387
发表于 2024-10-28 12:50:43 | 显示全部楼层
本帖最后由 liuzonggong 于 2024-10-28 12:55 编辑
远行*** 发表于 2024-10-28 09:41
不是哦,如果想相互通信有什么方案可以实现

The MFRC522is a highly integrated reader/writer for contactless communication at 13.56 MHz. TheMFRC522 reader supports ISO 14443A / MIFARE® mode.
The MFRC522’sinternal transmitter part is able to drive a reader/writer antenna designed tocommunicate with ISO/IEC 14443A/MIFARE® cards and transponders without additional active circuitry. The receiver part provides a robust and efficient implementation of a demodulation anddecoding circuitry for signals from ISO/IEC 14443A/MIFARE® compatible cards and transponders. The digital part handles the complete
ISO/IEC 14443Aframing and error detection (Parity & CRC).The MFRC522 supports MIFARE®Classic (e.g. MIFARE® Standard) products. The MFRC522 supports  contactless communication using MIFARE® higher transfer speedsup to 848 kbit/s in both directions. 从介绍看能做转发器transponders.是转发器的意思。高速公路的卡就是cpu卡,里面有单片机和电池。

回复 支持 反对

使用道具 举报 送花

  • 打卡等级:常住居民III
  • 打卡总天数:177
  • 最近打卡:2025-04-30 13:52:43

10

主题

134

回帖

993

积分

高级会员

积分
993
发表于 2024-10-29 09:54:37 | 显示全部楼层
liuzon*** 发表于 2024-10-28 12:50
The MFRC522is a highly integrated reader/writer for contactless communication at 13.56 MHz. TheMFRC ...

感谢你的回复。这么说还是有希望通过si522做数据传输的了{:5_305:}
回复 支持 反对

使用道具 举报 送花

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

本版积分规则

QQ|手机版|小黑屋|深圳国芯人工智能有限公司 ( 粤ICP备2022108929号-2 )

GMT+8, 2025-5-2 20:45 , Processed in 0.132230 second(s), 110 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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