#include <stdint.h>
#include "app_workspace.h"
Go to the source code of this file.
|
void | InitRc522 (SPI *spi) |
|
char | PcdReset (void) |
|
void | SetBitMask (uint8_t reg, uint8_t mask) |
|
void | ClearBitMask (uint8_t reg, uint8_t mask) |
|
uint8_t | WriteRawRC (uint8_t Address, uint8_t value) |
|
uint8_t | ReadRawRC (uint8_t Address) |
|
void | PcdAntennaOn (void) |
|
void | PcdAntennaOff (void) |
|
void | Pcd_stopcrypto1 () |
|
int | PcdCheckAuth () |
|
char | PcdValue (uint8_t act, uint8_t addr, double value) |
|
char | PcdRequest (unsigned char req_code, unsigned char *pTagType) |
|
char | PcdComMF522 (uint8_t Command, uint8_t *pIn, uint8_t InLenByte, uint8_t *pOut, uint8_t *pOutLenBit, int CheckTimeout) |
|
void | CalulateCRC (uint8_t *pIn, uint8_t len, uint8_t *pOut) |
|
char | PcdAnticoll (uint8_t, uint8_t *) |
|
char | PcdSelect (uint8_t, uint8_t *, uint8_t *) |
|
char | PcdAuthState (unsigned char auth_mode, unsigned char addr, unsigned char *pKey, unsigned char *pSnr) |
|
char | PcdWrite (unsigned char addr, unsigned char *pData) |
|
char | PcdRead (unsigned char addr, unsigned char *pData) |
|
char | PcdHalt (void) |
|
◆ AnalogTestReg
#define AnalogTestReg 0x38 |
◆ AutoTestReg
◆ BitFramingReg
#define BitFramingReg 0x0D |
◆ CollReg
◆ ComIEnReg
◆ ComIrqReg
◆ CommandReg
MF522 registers
Definition at line 68 of file rc522.h.
◆ ControlReg
◆ CRCResultRegL
#define CRCResultRegL 0x22 |
◆ CRCResultRegM
#define CRCResultRegM 0x21 |
◆ CWGsCfgReg
◆ DEF_FIFO_LENGTH
#define DEF_FIFO_LENGTH 64 |
◆ DemodReg
◆ DivIrqReg
◆ DivlEnReg
◆ ErrorReg
◆ FIFODataReg
◆ FIFOLevelReg
#define FIFOLevelReg 0x0A |
◆ GsNReg
◆ MAXRLEN
◆ MiRXReg
◆ MiTXReg
◆ ModeReg
◆ ModGsCfgReg
◆ ModWidthReg
◆ PCD_AUTHENT
◆ PCD_CALCCRC
◆ PCD_IDLE
◆ PCD_RECEIVE
◆ PCD_RESETPHASE
#define PCD_RESETPHASE 0x0F |
◆ PCD_TRANSCEIVE
#define PCD_TRANSCEIVE 0x0C |
◆ PCD_TRANSMIT
#define PCD_TRANSMIT 0x04 |
◆ PICC_ANTICOLL1
#define PICC_ANTICOLL1 0x93 |
◆ PICC_ANTICOLL2
#define PICC_ANTICOLL2 0x95 |
◆ PICC_ANTICOLL3
#define PICC_ANTICOLL3 0x97 |
◆ PICC_AUTHENT1A
#define PICC_AUTHENT1A 0x60 |
◆ PICC_AUTHENT1B
#define PICC_AUTHENT1B 0x61 |
◆ PICC_DECREMENT
#define PICC_DECREMENT 0xC0 |
◆ PICC_HALT
◆ PICC_INCREMENT
#define PICC_INCREMENT 0xC1 |
◆ PICC_READ
◆ PICC_REQALL
◆ PICC_REQIDL
◆ PICC_RESTORE
#define PICC_RESTORE 0xC2 |
◆ PICC_TRANSFER
#define PICC_TRANSFER 0xB0 |
◆ PICC_WRITE
◆ RFCfgReg
◆ RxModeReg
◆ RxSelReg
◆ RxThresholdReg
#define RxThresholdReg 0x18 |
◆ SerialSpeedReg
#define SerialSpeedReg 0x1F |
◆ Status1Reg
◆ Status2Reg
◆ TAG_COLLISION
#define TAG_COLLISION (4) |
◆ TAG_ERR
◆ TAG_ERRCRC
◆ TAG_NOTAG
◆ TAG_OK
◆ TCounterValueRegH
#define TCounterValueRegH 0x2E |
◆ TCounterValueRegL
#define TCounterValueRegL 0x2F |
◆ TestADCReg
◆ TestBusReg
◆ TestDAC1Reg
◆ TestDAC2Reg
◆ TestPinEnReg
#define TestPinEnReg 0x33 |
◆ TestPinValueReg
#define TestPinValueReg 0x34 |
◆ TestSel1Reg
◆ TestSel2Reg
◆ TModeReg
◆ TPrescalerReg
#define TPrescalerReg 0x2B |
◆ TReloadRegH
◆ TReloadRegL
◆ TxASKReg
◆ TxControlReg
#define TxControlReg 0x14 |
◆ TxModeReg
◆ TxSelReg
◆ VersionReg
◆ WaterLevelReg
#define WaterLevelReg 0x0B |
◆ tag_stat
◆ CalulateCRC()
void CalulateCRC |
( |
uint8_t * |
pIn, |
|
|
uint8_t |
len, |
|
|
uint8_t * |
pOut |
|
) |
| |
Definition at line 461 of file rc522.cpp.
489 while ((i!=0) && !(n&0x04));
void ClearBitMask(uint8_t reg, uint8_t mask)
uint8_t WriteRawRC(uint8_t Address, uint8_t value)
void SetBitMask(uint8_t reg, uint8_t mask)
uint8_t ReadRawRC(uint8_t Address)
◆ ClearBitMask()
void ClearBitMask |
( |
uint8_t |
reg, |
|
|
uint8_t |
mask |
|
) |
| |
◆ InitRc522()
void InitRc522 |
( |
SPI * |
spi | ) |
|
Definition at line 39 of file rc522.cpp.
41 if (p_spi)
spi = p_spi;
42 else spdlog::critical(
"rc522.cpp - RC522 didn't recieve SPI");
◆ Pcd_stopcrypto1()
◆ PcdAntennaOff()
void PcdAntennaOff |
( |
void |
| ) |
|
◆ PcdAntennaOn()
void PcdAntennaOn |
( |
void |
| ) |
|
◆ PcdAnticoll()
char PcdAnticoll |
( |
uint8_t |
cascade, |
|
|
uint8_t * |
pSnr |
|
) |
| |
Definition at line 89 of file rc522.cpp.
92 uint8_t i,snr_check=0;
110 ucComMF522Buf[0] = cascade;
124 ucComMF522Buf[1] = 0x20+collbits;
137 if (collbits==0) collbits=32;
142 ucComMF522Buf[i-1]|=(1<<((collbits-1)%8));
143 ucComMF522Buf[5]=ucComMF522Buf[3];
144 ucComMF522Buf[4]=ucComMF522Buf[2];
145 ucComMF522Buf[3]=ucComMF522Buf[1];
146 ucComMF522Buf[2]=ucComMF522Buf[0];
156 for (i=0; i < 4; i++)
158 *(pSnr+i) = ucComMF522Buf[i];
159 snr_check ^= ucComMF522Buf[i];
162 if (snr_check != ucComMF522Buf[i]) status =
TAG_ERR;
char PcdComMF522(uint8_t Command, uint8_t *pIn, uint8_t InLenByte, uint8_t *pOut, uint8_t *pOutLenBit, int CheckTimeout)
◆ PcdAuthState()
char PcdAuthState |
( |
unsigned char |
auth_mode, |
|
|
unsigned char |
addr, |
|
|
unsigned char * |
pKey, |
|
|
unsigned char * |
pSnr |
|
) |
| |
◆ PcdCheckAuth()
◆ PcdComMF522()
char PcdComMF522 |
( |
uint8_t |
Command, |
|
|
uint8_t * |
pIn, |
|
|
uint8_t |
InLenByte, |
|
|
uint8_t * |
pOut, |
|
|
uint8_t * |
pOutLenBit, |
|
|
int |
CheckTimeout |
|
) |
| |
Definition at line 626 of file rc522.cpp.
635 uint8_t irqEn = 0x00;
636 uint8_t waitFor = 0x00;
653 printf(
"FATAL - RC522 unrecognized command in PcdComMF522(...)");
704 while (i!=0 && (! (n&0x01)) && (!(n&waitFor)));
715 if (!(PcdErr & 0x11))
720 if (n & irqEn & 0x01)
736 if (lastBits) *pOutLenBit = (n-1)*8 + lastBits;
737 else *pOutLenBit = n*8;
744 for (i=0; i < n; i++) {
768 printf(
"Parity or buffer overflow\n");
775 printf(
"ERROR - RC522 PcdComRF522 Collision!");
◆ PcdHalt()
Definition at line 363 of file rc522.cpp.
367 uint8_t ucComMF522Buf[
MAXRLEN];
370 ucComMF522Buf[1] = 0;
void CalulateCRC(uint8_t *pIn, uint8_t len, uint8_t *pOut)
◆ PcdRead()
char PcdRead |
( |
unsigned char |
addr, |
|
|
unsigned char * |
pData |
|
) |
| |
◆ PcdRequest()
char PcdRequest |
( |
unsigned char |
req_code, |
|
|
unsigned char * |
pTagType |
|
) |
| |
◆ PcdReset()
◆ PcdSelect()
char PcdSelect |
( |
uint8_t |
cascade, |
|
|
uint8_t * |
pSnr, |
|
|
uint8_t * |
SAK |
|
) |
| |
Definition at line 187 of file rc522.cpp.
192 uint8_t ucComMF522Buf[
MAXRLEN];
195 ucComMF522Buf[0] = cascade;
196 ucComMF522Buf[1] = 0x70;
197 ucComMF522Buf[6] = 0;
201 ucComMF522Buf[i+2] = *(pSnr+i);
202 ucComMF522Buf[6] ^= *(pSnr+i);
214 if ((status ==
TAG_OK) && (unLen == 0x18))
222 if ((CRC_buff[0]!=ucComMF522Buf[1])||(CRC_buff[1]!=ucComMF522Buf[2]))
227 *SAK = ucComMF522Buf[0];
◆ PcdValue()
char PcdValue |
( |
uint8_t |
act, |
|
|
uint8_t |
addr, |
|
|
double |
value |
|
) |
| |
Definition at line 385 of file rc522.cpp.
389 uint8_t ucComMF522Buf[
MAXRLEN];
392 ucComMF522Buf[0] = act;
393 ucComMF522Buf[1] = addr;
403 printf(
"ERROR - PcdValue(...) cannot send command!!!");
408 ucComMF522Buf[0] = ((
long long) value & (
long long) 0xff);
409 ucComMF522Buf[1] = ((
long long) value & (
long long) 0xff00) >> 8;
410 ucComMF522Buf[2] = ((
long long) value & (
long long) 0xff0000) >> 16;
411 ucComMF522Buf[3] = ((
long long) value & (
long long) 0xff000000) >> 24;
427 if (status !=
TAG_OK) printf(
"ERROR - PcdValue(...) cannot send value!!!");
◆ PcdWrite()
char PcdWrite |
( |
unsigned char |
addr, |
|
|
unsigned char * |
pData |
|
) |
| |
◆ ReadRawRC()
uint8_t ReadRawRC |
( |
uint8_t |
Address | ) |
|
Definition at line 573 of file rc522.cpp.
575 uint8_t in_buff[2] = {0};
576 uint8_t out_buff[2] = {0};
578 in_buff[0] = ((Address<<1)&0x7E)|0x80;
580 spi->xfer(in_buff, 2, out_buff, 2);
584 return (uint8_t) out_buff[1];
◆ SetBitMask()
void SetBitMask |
( |
uint8_t |
reg, |
|
|
uint8_t |
mask |
|
) |
| |
◆ WriteRawRC()
uint8_t WriteRawRC |
( |
uint8_t |
Address, |
|
|
uint8_t |
value |
|
) |
| |
Definition at line 593 of file rc522.cpp.
597 buff[0] = ((Address<<1)&0x7E);
◆ extra_delay