add dump firmware version to serial

This commit is contained in:
Rotzbua
2016-01-04 05:53:23 +01:00
parent 51a38a04de
commit f7f2d5d02d
5 changed files with 30 additions and 44 deletions

View File

@@ -1274,6 +1274,28 @@ const __FlashStringHelper *MFRC522::PICC_GetTypeName(PICC_Type piccType ///< One
} }
} // End PICC_GetTypeName() } // End PICC_GetTypeName()
/**
* Dumps debug info about the connected PCD to Serial.
* Shows all known firmware versions
*/
void MFRC522::PCD_DumpVersionToSerial() {
// Get the MFRC522 firmware version
byte v = PCD_ReadRegister(VersionReg);
Serial.print(F("Firmware Version: 0x"));
Serial.print(v, HEX);
// Lookup which version
switch(v) {
case 0x88: Serial.println(F(" = (clone)")); break;
case 0x90: Serial.println(F(" = v0.0")); break;
case 0x91: Serial.println(F(" = v1.0")); break;
case 0x92: Serial.println(F(" = v2.0")); break;
default: Serial.println(F(" = (unknown)"));
}
// When 0x00 or 0xFF is returned, communication probably failed
if ((v == 0x00) || (v == 0xFF))
Serial.println(F("WARNING: Communication failure, is the MFRC522 properly connected?"));
} // End PCD_DumpVersionToSerial()
/** /**
* Dumps debug info about the selected PICC to Serial. * Dumps debug info about the selected PICC to Serial.
* On success the PICC is halted after dumping the data. * On success the PICC is halted after dumping the data.

View File

@@ -387,6 +387,7 @@ public:
// old function used too much memory, now name moved to flash; if you need char, copy from flash to memory // old function used too much memory, now name moved to flash; if you need char, copy from flash to memory
//const char *PICC_GetTypeName(byte type); //const char *PICC_GetTypeName(byte type);
const __FlashStringHelper *PICC_GetTypeName(PICC_Type type); const __FlashStringHelper *PICC_GetTypeName(PICC_Type type);
void PCD_DumpVersionToSerial();
void PICC_DumpToSerial(Uid *uid); void PICC_DumpToSerial(Uid *uid);
void PICC_DumpMifareClassicToSerial(Uid *uid, PICC_Type piccType, MIFARE_Key *key); void PICC_DumpMifareClassicToSerial(Uid *uid, PICC_Type piccType, MIFARE_Key *key);
void PICC_DumpMifareClassicSectorToSerial(Uid *uid, MIFARE_Key *key, byte sector); void PICC_DumpMifareClassicSectorToSerial(Uid *uid, MIFARE_Key *key, byte sector);

View File

@@ -41,8 +41,8 @@
#include <SPI.h> #include <SPI.h>
#include <MFRC522.h> #include <MFRC522.h>
#define RST_PIN 9 // #define RST_PIN 9 // Configurable, see typical pin layout above
#define SS_PIN 10 // #define SS_PIN 10 // Configurable, see typical pin layout above
MFRC522 mfrc522(SS_PIN, RST_PIN); // Create MFRC522 instance MFRC522 mfrc522(SS_PIN, RST_PIN); // Create MFRC522 instance
@@ -51,7 +51,7 @@ void setup() {
while (!Serial); // Do nothing if no serial port is opened (added for Arduinos based on ATMEGA32U4) while (!Serial); // Do nothing if no serial port is opened (added for Arduinos based on ATMEGA32U4)
SPI.begin(); // Init SPI bus SPI.begin(); // Init SPI bus
mfrc522.PCD_Init(); // Init MFRC522 mfrc522.PCD_Init(); // Init MFRC522
ShowReaderDetails(); // Show details of PCD - MFRC522 Card Reader details mfrc522.PCD_DumpVersionToSerial(); // Show details of PCD - MFRC522 Card Reader details
Serial.println(F("Scan PICC to see UID, type, and data blocks...")); Serial.println(F("Scan PICC to see UID, type, and data blocks..."));
} }
@@ -69,21 +69,3 @@ void loop() {
// Dump debug info about the card; PICC_HaltA() is automatically called // Dump debug info about the card; PICC_HaltA() is automatically called
mfrc522.PICC_DumpToSerial(&(mfrc522.uid)); mfrc522.PICC_DumpToSerial(&(mfrc522.uid));
} }
void ShowReaderDetails() {
// Get the MFRC522 software version
byte v = mfrc522.PCD_ReadRegister(mfrc522.VersionReg);
Serial.print(F("MFRC522 Software Version: 0x"));
Serial.print(v, HEX);
if (v == 0x91)
Serial.print(F(" = v1.0"));
else if (v == 0x92)
Serial.print(F(" = v2.0"));
else
Serial.print(F(" (unknown)"));
Serial.println("");
// When 0x00 or 0xFF is returned, communication probably failed
if ((v == 0x00) || (v == 0xFF)) {
Serial.println(F("WARNING: Communication failure, is the MFRC522 properly connected?"));
}
}

View File

@@ -46,7 +46,7 @@ void setup() {
Serial.println(F("*****************************")); Serial.println(F("*****************************"));
Serial.println(F("MFRC522 Digital self test")); Serial.println(F("MFRC522 Digital self test"));
Serial.println(F("*****************************")); Serial.println(F("*****************************"));
ShowReaderVersion(); // Show version of PCD - MFRC522 Card Reader mfrc522.PCD_DumpVersionToSerial(); // Show version of PCD - MFRC522 Card Reader
Serial.println(F("-----------------------------")); Serial.println(F("-----------------------------"));
Serial.println(F("Only known versions supported")); Serial.println(F("Only known versions supported"));
Serial.println(F("-----------------------------")); Serial.println(F("-----------------------------"));
@@ -62,24 +62,3 @@ void setup() {
} }
void loop() {} // nothing to do void loop() {} // nothing to do
/**
* Helper to print MFRC522 module info
*/
void ShowReaderVersion() {
// Get the MFRC522 firmware version
byte v = mfrc522.PCD_ReadRegister(mfrc522.VersionReg);
Serial.print(F("Firmware Version: 0x"));
Serial.print(v, HEX);
// Lookup which version
switch(v) {
case 0x88: Serial.println(F(" = (clone)")); break;
case 0x90: Serial.println(F(" = v0.0")); break;
case 0x91: Serial.println(F(" = v1.0")); break;
case 0x92: Serial.println(F(" = v2.0")); break;
default: Serial.println(F(" = (unknown)"));
}
// When 0x00 or 0xFF is returned, communication probably failed
if ((v == 0x00) || (v == 0xFF))
Serial.println(F("WARNING: Communication failure, is the MFRC522 properly connected?"));
}

View File

@@ -59,12 +59,14 @@ MIFARE_Increment KEYWORD2
MIFARE_Ultralight_Write KEYWORD2 MIFARE_Ultralight_Write KEYWORD2
MIFARE_GetValue KEYWORD2 MIFARE_GetValue KEYWORD2
MIFARE_SetValue KEYWORD2 MIFARE_SetValue KEYWORD2
PCD_NTAG216_AUTH KEYWORD2
# Support functions # Support functions
PCD_MIFARE_Transceive KEYWORD2 PCD_MIFARE_Transceive KEYWORD2
GetStatusCodeName KEYWORD2 GetStatusCodeName KEYWORD2
PICC_GetType KEYWORD2 PICC_GetType KEYWORD2
PICC_GetTypeName KEYWORD2 PICC_GetTypeName KEYWORD2
PCD_DumpVersionToSerial KEYWORD2
PICC_DumpToSerial KEYWORD2 PICC_DumpToSerial KEYWORD2
PICC_DumpMifareClassicToSerial KEYWORD2 PICC_DumpMifareClassicToSerial KEYWORD2
PICC_DumpMifareClassicSectorToSerial KEYWORD2 PICC_DumpMifareClassicSectorToSerial KEYWORD2