Merge pull request #245 from surr/test

Selftest completion
This commit is contained in:
Rotzbua
2016-10-31 12:46:44 +01:00
committed by GitHub

View File

@@ -331,8 +331,15 @@ bool MFRC522::PCD_PerformSelfTest() {
word i;
byte n;
for (i = 0; i < 0xFF; i++) {
n = PCD_ReadRegister(DivIrqReg); // DivIrqReg[7..0] bits are: Set2 reserved reserved MfinActIRq reserved CRCIRq reserved reserved
if (n & 0x04) { // CRCIRq bit set - calculation done
// The datasheet does not specify exact completion condition except
// that FIFO buffer should contain 64 bytes.
// While selftest is initiated by CalcCRC command
// it behaves differently from normal CRC computation,
// so one can't reliably use DivIrqReg to check for completion.
// It is reported that some devices does not trigger CRCIRq flag
// during selftest.
n = PCD_ReadRegister(FIFOLevelReg);
if (n >= 64) {
break;
}
}