RC522 调试笔记
- 格式:pdf
- 大小:442.87 KB
- 文档页数:49
mfrc522串口读写例程MFRC522是一款经典的13.56MHz射频芯片,常用于NFC和RFID应用中。
我们可以通过它实现IC卡读写、身份验证、门禁控制等功能。
本篇文章将介绍如何使用MFRC522进行串口读写操作。
在使用MFRC522之前,需要事先准备好硬件环境。
将MFRC522模块连接到Arduino板上,其中VCC连接到Arduino的3.3V电源,GND与Arduino的GND相连,SDA接口可以连接到任意一个数字输入引脚上,由于本例中我们将使用串口进行读写操作,因此不需要连接IRQ或RST 引脚。
接下来,打开Arduino IDE,新建一个空白项目,并添加MFRC522的库文件。
从代码库的示例中选择一个基于串口读写的例程,例如"examples/ReadWrite"。
将其复制到新建的项目中,并在"setup"函数中初始化MFRC522模块和串口,代码如下:```c++void setup() {Serial.begin(9600);while (!Serial) {}SPI.begin();mfrc522.PCD_Init();}```在"loop"函数中,通过调用MFRC522库中的函数实现读写操作。
例如,如果我们要读取存储在IC卡中的数据块,可以通过调用"mfrc522.PICC_ReadCardSerial()"函数获得卡片的序列号,通过"mfrc522.MIFARE_Read()"函数读取指定块的数据,然后通过串口打印出来。
代码如下:```c++void loop() {if (mfrc522.PICC_IsNewCardPresent() &&mfrc522.PICC_ReadCardSerial()) {Serial.print(F("Card UID: "));printHex(mfrc522.uid.uidByte, mfrc522.uid.size);Serial.println();byte block = 1;byte data[16];byte len = sizeof(data);if (mfrc522.MIFARE_Read(block, data, &len) ==MFRC522::STATUS_OK) {Serial.print(F("Block ")); Serial.print(block);Serial.print(F(" Data: "));printHex(data, len);Serial.println();}}}```以上是一个基于串口的MFRC522读写例程。
rc522读卡工作原理RC522读卡器是一种基于射频识别(RFID)技术的设备,常用于无线智能卡和非接触式读卡。
RC522读卡器的核心部件是MFRC522芯片,它由射频模块、数字控制器和接口电路等组成。
射频模块用于发送和接收射频信号,数字控制器负责控制读卡器的整个工作流程,接口电路用于与外部设备进行通信。
RC522读卡器的工作原理如下:1. 射频信号传输:读卡器通过射频模块发送射频信号,一般工作在13.56MHz的频率范围内。
射频信号会被传输到读卡器附近的智能卡上。
2. 卡片回应:智能卡接收到射频信号后,会进行解调和回应。
卡片内部的天线会将射频信号转换为电能,然后供电给卡片的电路系统。
卡片的电路系统会对射频信号进行解调和处理,并返回相关的信息。
3. 信号接收:读卡器的射频模块接收到智能卡回应的射频信号后,将其经过解调和处理后传递给芯片的数字控制器。
4. 信息解码:芯片的数字控制器对接收到的射频信号进行解码和处理,将卡片回应的信息转换为可读取的格式。
5. 数据处理:读卡器将解码后的信息进行处理,并根据协议规定的方式提取出所需的数据,如卡片的唯一标识符等。
6. 数据传输:读卡器通过接口电路将提取出的数据传输给外部设备,如电脑或其他终端设备。
需要注意的是,RC522读卡器一般采用SPI接口与外部设备进行通信,SPI是一种同步的串行通信协议,通过时钟和数据传输线进行数据传输。
读卡器还可以通过修改寄存器的值,设置不同的参数和工作模式。
综上所述,RC522读卡器的工作原理是通过射频信号传输、卡片回应、信号接收、信息解码、数据处理和数据传输等过程,实现对智能卡的无线识别和数据读取。
这种技术在许多领域得到应用,如门禁系统、智能支付、物流追踪等。
1.EMC和接收电路
2.天线等效电路—Lant,Rant,Rext
Cant 可忽略,
Rnt=5R DC,
建议Q=35,需要加Rext,
若采用中间抽头,取Rext/2,见下图:
3.阻抗匹配
直接匹配天线的阻抗匹配PCB布线要求:
1.EMC电路:L0、C0必须放在非常靠近RC500的TX1和TX2管脚。
C0的接地连接线必须很短,而且对
MF RC500 TGND 管脚的阻抗,非常低地平面有多个通道可供连接这些元件要排列得尽量紧密才可以抑制载波频率的高次谐波
2.接收电路的布线相对没有这么严格而且也不需要符合特殊的要求
天线调谐
1.调谐在在能量传输上获得最优的工作距离 P30
2.如何检查天线的品质因子确保数据正确传输 P36
天线的调谐过程被划分到第一次开发测试和第二次生产测试的调谐方法我们建议用阻抗分析仪进行第一次调谐以及测量线圈的等效参数如果没有器件也可以应用生产调谐过程但需要进行复杂的迭代过程
成功调谐的一个最重要的因素是要知道天线的等效电子参数,找到调谐最好的起始值。
测量天线等效参数的最简单方法是用阻抗分析仪。
mfrc522各寄存器注释//函数原型/////////////////////////////////////////////////////////////////////char PcdReset(void);void PcdAntennaOn(void);void PcdAntennaOff(void);char PcdRequest(unsigned char req_code,unsigned char *pTagType);char PcdAnticoll(unsigned char *pSnr);char PcdSelect(unsigned char *pSnr);char PcdAuthState(unsigned char auth_mode,unsigned char addr,unsigned char*pKey,unsigned char *pSnr);char PcdRead(unsigned char addr,unsigned char *pData);char PcdWrite(unsigned char addr,unsigned char *pData);char PcdValue(unsigned char dd_mode,unsigned char addr,unsigned char *pValue);char PcdBakValue(unsigned char sourceaddr, unsigned char goaladdr); char PcdHalt(void); char PcdComMF522(unsigned char Command,unsigned char *pInData,unsigned char InLenByte,unsigned char *pOutData,unsigned int *pOutLenBit);void CalulateCRC(unsigned char *pIndata,unsigned char len,unsigned char *pOutData); void WriteRawRC(unsigned char Address,unsigned char value);unsigned char ReadRawRC(unsigned char Address);void SetBitMask(unsigned char reg,unsigned char mask);void ClearBitMask(unsigned char reg,unsigned char mask);char M500PcdConfigISOType(unsigned char type);//void delay_10ms(unsigned int _10ms);void iccardcode();char PcdBakValue(unsigned char sourceaddr, unsigned char goaladdr);char PcdValue(unsigned char dd_mode,unsigned char addr,unsigned char *pValue);///////////////////////////////////////////////////////////////////////MF522命令字/////////////////////////////////////////////////////////////////////#define PCD_IDLE 0x00 //取消当前命令#define PCD_AUTHENT 0x0E //验证密钥#define PCD_RECEIVE 0x08 //接收数据#define PCD_TRANSMIT 0x04 //发送数据#define PCD_TRANSCEIVE 0x0C //发送并接收数据#define PCD_RESETPHASE 0x0F //复位#define PCD_CALCCRC 0x03 //CRC计算///////////////////////////////////////////////////////////////////////Mifare_One卡⽚命令字#define PICC_REQIDL 0x26 //寻天线区内未进⼊休眠状态#define PICC_REQALL 0x52 //寻天线区内全部卡#define PICC_ANTICOLL1 0x93 //防冲撞#define PICC_ANTICOLL2 0x95 //防冲撞#define PICC_AUTHENT1A 0x60 //验证A密钥#define PICC_AUTHENT1B 0x61 //验证B密钥#define PICC_READ 0x30 //读块#define PICC_WRITE 0xA0 //写块#define PICC_DECREMENT 0xC0 //扣款#define PICC_INCREMENT 0xC1 //充值#define PICC_RESTORE 0xC2 //调块数据到缓冲区#define PICC_TRANSFER 0xB0 //保存缓冲区中数据#define PICC_HALT 0x50 //休眠///////////////////////////////////////////////////////////////////////MF522 FIFO长度定义/////////////////////////////////////////////////////////////////////#define DEF_FIFO_LENGTH 64 //FIFO size=64byte///////////////////////////////////////////////////////////////////////MF522寄存器定义/////////////////////////////////////////////////////////////////////// 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下溢和上溢报警的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 // 控制天线驱动器的设置#define TxSelReg 0x16 // 选择天线驱动器的内部源#define RxSelReg 0x17 // 选择内部的接收器设置#define RxThresholdReg 0x18 // 选择位译码器的阈值#define DemodReg 0x19 // 定义解调器的设置#define RFU1A 0x1A#define RFU1B 0x1B#define MifareReg 0x1C // 控制ISO 14443/MIFARE模式中106kbit/s的通信#define RFU1D 0x1D#define RFU1E 0x1E#define SerialSpeedReg 0x1F // 选择串⾏UART接⼝的速率// PAGE 2#define RFU20 0x20#define CRCResultRegM 0x21 // 显⽰CRC计算的实际MSB和LSB值#define CRCResultRegL 0x22#define RFU23 0x23#define ModWidthReg 0x24 // 控制ModWidth的设置#define RFU25 0x25#define RFCfgReg 0x26 // 配置接收器增益#define GsNReg 0x27 // 选择天线驱动器管脚TX1和TX2的调制电导#define CWGsCfgReg 0x28 // 选择天线驱动器管脚TX1和TX2的调制电导#define ModGsCfgReg 0x29 // 选择天线驱动器管脚TX1和TX2的调制电导#define TModeReg 0x2A // 定义内部定时器的设置#define TPrescalerReg 0x2B // 定义内部定时器的设置#define TReloadRegH 0x2C // 描述16位长的定时器重装值#define TReloadRegL 0x2D // 描述16位长的定时器重装值#define TCounterValueRegH 0x2E // 显⽰16位长的实际定时器值#define TCounterValueRegL 0x2F // 显⽰16位长的实际定时器值// PAGE 3#define RFU30 0x30#define TestSel1Reg 0x31 // 常⽤测试信号的配置#define TestSel2Reg 0x32 // 常⽤测试信号的配置和PRBS控制#define TestPinEnReg 0x33 // 输出驱动器的使能管脚(注:仅⽤于串⾏接⼝)#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///////////////////////////////////////////////////////////////////// //和MF522通讯时返回的错误代码///////////////////////////////////////////////////////////////////// #define MI_OK 0#define MI_NOTAGERR (-1)#define MI_ERR (-2)。
RC522 Chip IC Card Induction Module RFID Reader Model:RFID-RC522 User Manual
Wiring: The following table shows the needed connections between the RFID and the Arduino Uno.
Caution: On the Arduino many of the pins are not swappable. Because this device uses the SPI bus, who’s pins cannot be moved around, pins 11, 12, 13 must remain as shown. RST and IRQ are user specified. Arduino Code: /* *MFRC522 - Library to use ARDUINO RFID MODULE KIT 13.56 MHZ WITH TAGS
*/
#include #include
#define SS_PIN 10 #define RST_PIN 9 MFRC522 mfrc522(SS_PIN, RST_PIN); // Create MFRC522 instance.
void setup() { Serial.begin(9600); // Initialize serial communications with the PC SPI.begin(); // Init SPI bus mfrc522.PCD_Init(); // Init MFRC522 card Serial.println("Scan PICC to see UID and type..."); }
void loop() { // Look for new cards if ( ! mfrc522.PICC_IsNewCardPresent()) { return; }
MFRC522定时器的运用学习广州周立功单片机发展有限公司的MFRC522手册摘要1.与定时器相关的寄存器及相应的位寄存器1)ControlReg2)Status1Reg3)TModeReg 位描述位符号功能7TAuto 该位置位时,定时器在所有速率的发送结束时自动启动。
在接受到第一个暑假位后定时器立刻停止运行。
如果该位清零,表明定时器不受通信协议的影响6-5TGated内部定时器工作在门控模式。
注:在门控模式中,当定时器通过寄存器的位被使能时,TRunning 位置位。
状态00011011描述非门控模式SIGIN 用作门控信号AUX1用作门控信号A3用作门控信号4TAutoRestart该位置位时,定时器自动重新从TReloadValue的值开始递减计数,而不是从0开始操作。
该位清零时,定时器递减计数到0,TimerIRq位设置为1.3-0TPreScaler_Hi定义TPrescaler的高4位利用公式计算定时时长:fTimer= 6.78MHz/TPrescaler 4)TPrescalerReg5)TReloadRegH和TReloadRegL定义定时器的重新装载值6)TCounterValRegH和TCounterValL定义定时器当前值与定时器中断有关的寄存器7)CommIrqReg包含中断请求标志位8)CommIEnReg中断使能控制位2.定时器组件MFRC522含有一个定时器组件。
外部主机使用该定时器来管理与时间有关的任务。
定时器可以使用下面的一种配置:∙超时计数器∙看门狗计数器∙停止监测∙可编程一次触发(one-shot)∙周期性触发器定时器有一个6.78MHz(来自27.12MHz的石英晶体)的输入时钟。
定时器包含2个阶段:1个预分频器和1个计数器。
预分频器是一个12位的计数器。
TPrescaler的重装值在寄存器TModeReg和TPrescalerReg中定义,其值为0到4095.计数器的16位重装值在寄存器TReloadReg中定义,取值范围为0~65535.定时器当前值在寄存器TCounterValReg中显示。
rc522读写程序摘要:1.简介2.什么是rc522 读写程序3.rc522 读写程序的应用领域4.如何使用rc522 读写程序5.rc522 读写程序的优势和局限6.结论正文:rc522 读写程序是一款针对射频识别(RFID)技术的软件,主要用于读取和写入数据到RFID 标签中。
它基于MFRC522 模块进行开发,广泛应用于物联网、智能家居、工业自动化等领域。
1.简介射频识别(RFID)技术是一种无线通信技术,可以通过无线电波实现数据的读取和写入。
rc522 读写程序正是基于这一技术原理,为用户提供便捷的数据交互体验。
2.什么是rc522 读写程序rc522 读写程序是一款针对射频识别(RFID)技术的软件,主要用于读取和写入数据到RFID 标签中。
它基于MFRC522 模块进行开发,广泛应用于物联网、智能家居、工业自动化等领域。
3.rc522 读写程序的应用领域rc522 读写程序可应用于多个领域,如:- 物联网:用于智能家居、智能物流等场景,实现设备的自动识别和数据采集;- 智能交通:用于高速公路电子收费、智能停车场管理等场景,提高交通管理效率;- 工业自动化:用于生产线上物料追踪、设备监控等场景,实现自动化生产和管理。
4.如何使用rc522 读写程序rc522 读写程序的使用方法如下:- 准备硬件:需要一块MFRC522 模块(如:Arduino Leonardo)、一个RFID 标签;- 连接硬件:将MFRC522 模块与电脑连接,使电脑能够识别模块;- 安装驱动:在Arduino IDE 中安装MFRC522 库;- 编写代码:使用Arduino IDE 编写rc522 读写程序,实现数据的读取和写入;- 运行程序:将编写好的程序上传到MFRC522 模块,运行程序。
5.rc522 读写程序的优势和局限优势:- 操作简便:通过Arduino IDE 进行编程,降低了学习成本;- 兼容性强:支持多种类型的RFID 标签;- 应用广泛:可用于多个领域,满足不同场景需求。
RC522调试笔记任永2011年1月11日晴准备工作1、阅读文档,了解RC522的UART工作方式。
2、初始化RC522为UART工作方式。
3、初始化化RC5224、查看初始化结果是否成功5、示波器测试PCB发送天线参数。
寄存器位行为描述UART读数据帧结构UART写数据帧结构命令概要命令概要命令命令码行为描述空闲0000无其它多余动作,取消当前命令的执行存储0001存储25个字节到内部缓冲区产生随机数ID0010生成一个10字节的随机ID号计算CRC码0011激活CRC协处理器或执行自检发送0100发送FIFO缓冲区中数据无命令0111没有命令变化,可以用来修改,而不会影响命令CommandReg寄存器。
接收1000激活接收电路收发器1100发送FIFO缓冲区中数据传输到天线,并自动激活后传输接收机。
——1101保留,将来使用MFIFARE认证1110执行MIFARE标准认证作为阅读器软复位1111复位MFRC5222011年1月12日晴初步调试使用串口调试助手1、选择使用串口号;2、设置波特率9600,起始位1bit,数据位8bit,停止位1bit,无奇偶效验,无流控制位;3、设置发送数据格式十六进制(HEX),接收数据显示格式十六进制。
4、打开串口。
5、填写发送数据(HEX格式)。
6、发送;7、观察返回数据(HEX格式)8、示波器测试各个测试点。
8.1、天线TX1,TX2,低通滤波电路,匹配电路9、测试捕获卡片距离。
测试结果:可以在2cm内捕获卡片;缺陷:捕获卡片距离太近,需要提升捕获距离。
2011年1月13日阴调试捕获卡片距离,获取卡片数据1、示波器测试各个测试点。
8.1、天线TX1,TX2,低通滤波电路,匹配电路2、调整天线匹配电容参数3、改变天线的发磁场方向。
结果:卡片捕获距离提升到4cm以上;缺陷:对低质量卡片捕获距离还是不够高,在3cm左右;需要调整。
下一步工作计划:1、绘制RC522工作流程图2、编写RC522流程函数代码3、调试RC522阅读卡片速度能力4、与系统软件进行合成(合并)调试。
R C522工作流程R C522 初始化流程ArrayRC522工作流程图RC522初始化流程图任永RC522调试笔记R C 522读卡流程RC522读卡流程图RC522写卡流程图2011年1月14日阴2011年1月17日雨夹雪分析RC522操作数据打开串口:初始化RC5224[00000000]WRITE Data:8C【读命令,0x0C寄存器地址。
杂项控制寄存器。
复位初始值0x10(0x10)】5[00000006]READ Data:10【应答,读0x0C寄存器中数据】6[00000038]WRITE Data:01【写命令,写0x01寄存器地址。
启动和停止命令执行寄存器。
复位初始值0x20(0x20)】7[00000038]READ Data:C0【应答,写0x01寄存器命令】8[00000038]WRITE Data:0F【写数据,写0x0F数据到0x01寄存器。
复位RC522。
】9[00000045]WRITE Data:0C【写命令,写0x0C寄存器地址。
杂项控制寄存器,复位初始值0x10(0x10)】10[00000045]READ Data:86【应答,写0x0C寄存器命令】11[00000045]WRITE Data:10【写数据,写0x10数据到0x0C寄存器。
恢复复位初始值0x10】12[00000045]WRITE Data:11【写命令,写0x11寄存器地址。
定义为发送和接收的一般模式设置。
复位初始值0x20(0x20)】13[00000046]READ Data:C4【应答,写0x11寄存器命令】14[00000046]WRITE Data:3F【写数据,写0x3F数据到0x11寄存器。
恢复复位初始值0x3F】15[00000046]WRITE Data:23【写命令,写0x23寄存器地址。
保留寄存器,复位初始值0x00(0x88)】16[00000046]READ Data:E4【应答,写0xE4寄存器命令】17[00000046]WRITE Data:00【写数据,写0x00(0x88)数据到0x23寄存器。
】18[00000046]WRITE Data:25【写命令,写0x25寄存器地址。
保留寄存器,复位初始值0x80(0x87)】19[00000047]READ Data:C9【应答,写0xC9寄存器命令】20[00000047]WRITE Data:80【写数据,写0x80(0x87)数据到0x25寄存器。
】21[00000047]WRITE Data:36【写命令,写0x36寄存器地址。
自动测试寄存器,复位初始值0x40(0x40)】22[00000047]READ Data:9B【应答,写0x9B寄存器命令】23[00000047]WRITE Data:40【写数据,写0x40数据到0x25寄存器。
】24[00000047]WRITE Data:15【写命令,写0x15寄存器地址。
控制传输设置寄存器,复位初始值0x40(0x00)】25[00000048]READ Data:C5【应答,写0xC5寄存器命令】26[00000048]WRITE Data:40【写数据,写0x40数据到0x15寄存器。
】控制传输设置寄存器,复位初始值0x40(0x00)】28[00000048]READ Data:40【应答,0x15寄存器中数据】16BIT定时器重载寄存器,低8BIT。
复位初始值0x00(0x00)】30[00000048]READ Data:CB【应答,写0xCB寄存器命令】31[00000048]WRITE Data:0A【写数据,写0x0A数据到0x2D寄存器。
】32[00000048]WRITE Data:2C【写命令,写0x2C寄存器地址。
16BIT定时器重载寄存器,高8BIT。
复位初始值0x00(0x00)】33[00000049]READ Data:96【应答,写0x96寄存器命令】34[00000049]WRITE Data:00【写数据,写0x00数据到0x2C寄存器。
】35[00000049]WRITE Data:94【读命令,写0x14寄存器地址。
控制天线的驱动脚TX1和TX2的逻辑行为寄存器,复位初始值0x80(0x80)】36[00000049]READ Data:80【应答,0x14寄存器中数据】37[00000049]WRITE Data:14【写命令,写0x14寄存器地址。
控制天线的驱动脚TX1和TX2的逻辑行为寄存器,复位初始值0x80(0x80)】38[00000050]READ Data:8A【应答,写0x14寄存器命令】39[00000050]WRITE Data:83【写数据,写0x83数据到0x14寄存器】40[00000050]WRITE Data:8C【读命令,写0x0C寄存器地址。
杂项控制寄存器,复位初始值0x10(0x10)】41[00000050]READ Data:10【应答,读0x0C寄存器中数据】42[00000050]WRITE Data:0C【写命令,写0x0C寄存器地址。
杂项控制寄存器,复位初始值0x10(0x10)】43[00000051]READ Data:86【应答,写0x0C寄存器命令】44[00000051]WRITE Data:50【写数据,写0x50数据到0x0C寄存器】45[00000051]WRITE Data:84【读命令,写0x04寄存器地址。
中断标志位寄存器1。
复位初值0x04(0x14)】46[00000051]READ Data:15【应答,读0x04寄存器中数据】47[00000051]WRITE Data:04【写命令,写0x04寄存器地址。
中断标志位寄存器1。
复位初值0x04(0x14)】48[00000051]READ Data:82【应答,写0x04寄存器命令】49[00000051]WRITE Data:01【写数据,写0x01数据到0x04寄存器】50[00000051]WRITE Data:2B【写命令,写0x2B寄存器地址。
定时器预分频器设置寄存器。
复位初值0x00(0x00)】51[00000052]READ Data:E5【应答,写0x2B寄存器命令】52[00000052]WRITE Data:A5【写数据,写0xA5数据到0x2B寄存器】53[00000052]WRITE Data:2A【写命令,写0x2A寄存器地址。
定时器模式设置寄存器。
复位初值0x00(0x00)】54[00000052]READ Data:95【应答,写0x2A寄存器命令】55[00000052]WRITE Data:82【写数据,写0x82数据到0x2A寄存器】56[00000052]WRITE Data:01【写命令,写0x01寄存器地址。
启动和停止命令执行寄存器。
复位初始值0x20(0x20)】57[00000053]READ Data:C0【应答,写0x01寄存器命令】58[00000053]WRITE Data:00【写数据,写0x0F数据到0x01寄存器。
RC522准备好运行。
】激活卡片///请求1[00001840]WRITE Data:88【读命令,写0x08寄存器地址。
接收、发送和数据模式检测状态寄存器。
复位初始值0x00(0x00)】2[00001840]READ Data:00【应答,读取0x08寄存器中数据】3[00001840]WRITE Data:08【写命令,写0x08寄存器地址。
接收、发送和数据模式检测状态寄存器。
复位初始值0x00(0x00)】4[00001841]READ Data:84【应答,写0x08寄存器命令】5[00001841]WRITE Data:00【写数据,写0x00数据到0x08寄存器。
】6[00001841]WRITE Data:0E【写命令,写0x0E寄存器地址。
第一位碰撞检测到的RF接口寄存器,复位初值0x00(0b101xxxxx)】7[00001841]READ Data:87【应答,写0x0E寄存器命令】8[00001841]WRITE Data:80【写数据,写0x80数据到0x80寄存器。
】9[00001841]WRITE Data:92【读命令,写0x12寄存器地址。
发送数据波特率寄存器,复位初值0x00(0x00)】10[00001841]READ Data:00【应答,读0x12寄存器中数据】11[00001841]WRITE Data:12【写命令,写0x12寄存器地址。