Ai8H2K17U驱动MFRC522射频卡
各位老朋友,我看了一下午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。
//************************************************************************/
最近也在研究这个芯片,请教一下这个芯片功耗可以做到多低。看到另一款SI522在检测卡时只要几uA。 本帖最后由 liuzonggong 于 2024-10-26 21:16 编辑
远行的鹿 发表于 2024-10-25 15:50
最近也在研究这个芯片,请教一下这个芯片功耗可以做到多低。看到另一款SI522在检测卡时只要几uA。 ...微安粘贴不上
本帖最后由 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.
liuzonggong 发表于 2024-10-26 21:15
IHPD状态下TVDD= PVDD =3 V 5 mA
ISPD状态下TVDD= PVDD =3 V 5 m
谢谢,这个看样子不高。这个RC522可以相互通讯吗,比如做数据传输、刷机之类的 本帖最后由 liuzonggong 于 2024-10-28 08:28 编辑
远行的鹿 发表于 2024-10-27 09:38
谢谢,这个看样子不高。这个RC522可以相互通讯吗,比如做数据传输、刷机之类的 ...
你不是顾惠中吧?RC522是专用芯片,只用来与满足iso14443规程的卡片通讯用,不能相互通讯用来做数据传输。
因为它设计死了只能做主机,俩主机没法通讯。 liuzonggong 发表于 2024-10-28 08:21
你不是顾惠中吧?RC522是专用芯片,只用来与满足iso14443规程的卡片通讯用,不能相互通讯用来做数据传输。 ...
不是哦,如果想相互通信有什么方案可以实现 远行的鹿 发表于 2024-10-28 09:41
不是哦,如果想相互通信有什么方案可以实现
模拟自己是一个卡片。让读卡器发出读卡操作,然后互通数据。 本帖最后由 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 completeISO/IEC 14443Aframing and error detection (Parity & CRC).The MFRC522 supports MIFARE®Classic (e.g. MIFARE® Standard) products. The MFRC522 supportscontactless communication using MIFARE® higher transfer speedsup to 848 kbit/s in both directions. 从介绍看能做转发器transponders.是转发器的意思。高速公路的卡就是cpu卡,里面有单片机和电池。
liuzonggong 发表于 2024-10-28 12:50
The MFRC522is a highly integrated reader/writer for contactless communication at 13.56 MHz. TheMFRC ...
感谢你的回复。这么说还是有希望通过si522做数据传输的了{:5_305:}
页:
[1]