Dewant Katare
/
RFID_RC522
RFID-RC522, SPI, FRDMk64F
main.cpp@0:35581ea6b194, 2019-04-17 (annotated)
- Committer:
- dewantkatare
- Date:
- Wed Apr 17 20:36:49 2019 +0000
- Revision:
- 0:35581ea6b194
RFID-RC522, K64F
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
dewantkatare | 0:35581ea6b194 | 1 | /* mbed Microcontroller Library |
dewantkatare | 0:35581ea6b194 | 2 | * Copyright (c) 2018 ARM Limited |
dewantkatare | 0:35581ea6b194 | 3 | * SPDX-License-Identifier: Apache-2.0 |
dewantkatare | 0:35581ea6b194 | 4 | */ |
dewantkatare | 0:35581ea6b194 | 5 | |
dewantkatare | 0:35581ea6b194 | 6 | #include "mbed.h" |
dewantkatare | 0:35581ea6b194 | 7 | #include "MFRC522.h" |
dewantkatare | 0:35581ea6b194 | 8 | |
dewantkatare | 0:35581ea6b194 | 9 | #define SLEEP_TIME 500 // (msec) |
dewantkatare | 0:35581ea6b194 | 10 | #define PRINT_AFTER_N_LOOPS 20 |
dewantkatare | 0:35581ea6b194 | 11 | |
dewantkatare | 0:35581ea6b194 | 12 | // K64F Pin for "MFRC522 (Chip select, Clock, MOSI, MISO, IRQ, Ground, Reset, 3.3V)" |
dewantkatare | 0:35581ea6b194 | 13 | #define MF_RESET D9 //Reset |
dewantkatare | 0:35581ea6b194 | 14 | #define SPI_MOSI D11 //MOSI |
dewantkatare | 0:35581ea6b194 | 15 | #define SPI_MISO D12 //MISO |
dewantkatare | 0:35581ea6b194 | 16 | #define SPI_SCK D13 //Clock |
dewantkatare | 0:35581ea6b194 | 17 | #define SPI_CS D10 //Chip Select |
dewantkatare | 0:35581ea6b194 | 18 | |
dewantkatare | 0:35581ea6b194 | 19 | DigitalOut LedGreen(LED1); |
dewantkatare | 0:35581ea6b194 | 20 | Serial pc(USBTX, USBRX); |
dewantkatare | 0:35581ea6b194 | 21 | MFRC522 RfChip (SPI_MOSI, SPI_MISO, SPI_SCK, SPI_CS, MF_RESET); |
dewantkatare | 0:35581ea6b194 | 22 | |
dewantkatare | 0:35581ea6b194 | 23 | |
dewantkatare | 0:35581ea6b194 | 24 | |
dewantkatare | 0:35581ea6b194 | 25 | |
dewantkatare | 0:35581ea6b194 | 26 | |
dewantkatare | 0:35581ea6b194 | 27 | // main() runs in its own thread in the OS |
dewantkatare | 0:35581ea6b194 | 28 | int main() |
dewantkatare | 0:35581ea6b194 | 29 | { |
dewantkatare | 0:35581ea6b194 | 30 | pc.baud(9600); |
dewantkatare | 0:35581ea6b194 | 31 | pc.printf("\r\n*********************Initialization**********************************"); |
dewantkatare | 0:35581ea6b194 | 32 | RfChip.PCD_Init(); /* Init. RC522 Chip*/ |
dewantkatare | 0:35581ea6b194 | 33 | pc.printf("\r\n**********************Starting Reading Tags**************************"); |
dewantkatare | 0:35581ea6b194 | 34 | |
dewantkatare | 0:35581ea6b194 | 35 | while (true) { |
dewantkatare | 0:35581ea6b194 | 36 | LedGreen = 1; |
dewantkatare | 0:35581ea6b194 | 37 | if ( ! RfChip.PICC_IsNewCardPresent()) |
dewantkatare | 0:35581ea6b194 | 38 | { |
dewantkatare | 0:35581ea6b194 | 39 | wait_ms(500); |
dewantkatare | 0:35581ea6b194 | 40 | continue; |
dewantkatare | 0:35581ea6b194 | 41 | } |
dewantkatare | 0:35581ea6b194 | 42 | |
dewantkatare | 0:35581ea6b194 | 43 | // Select one of the cards |
dewantkatare | 0:35581ea6b194 | 44 | if (!RfChip.PICC_ReadCardSerial()) |
dewantkatare | 0:35581ea6b194 | 45 | { |
dewantkatare | 0:35581ea6b194 | 46 | wait_ms(500); |
dewantkatare | 0:35581ea6b194 | 47 | pc.printf("\r\nReading a card"); |
dewantkatare | 0:35581ea6b194 | 48 | continue; |
dewantkatare | 0:35581ea6b194 | 49 | } |
dewantkatare | 0:35581ea6b194 | 50 | |
dewantkatare | 0:35581ea6b194 | 51 | LedGreen = 0; |
dewantkatare | 0:35581ea6b194 | 52 | |
dewantkatare | 0:35581ea6b194 | 53 | // Print Card UID |
dewantkatare | 0:35581ea6b194 | 54 | pc.printf("\r\nCard UID: "); |
dewantkatare | 0:35581ea6b194 | 55 | for (uint8_t i = 0; i < RfChip.uid.size; i++) |
dewantkatare | 0:35581ea6b194 | 56 | { |
dewantkatare | 0:35581ea6b194 | 57 | pc.printf(" %X02", RfChip.uid.uidByte[i]); |
dewantkatare | 0:35581ea6b194 | 58 | } |
dewantkatare | 0:35581ea6b194 | 59 | pc.printf("\r\n"); |
dewantkatare | 0:35581ea6b194 | 60 | |
dewantkatare | 0:35581ea6b194 | 61 | // Print Card type |
dewantkatare | 0:35581ea6b194 | 62 | uint8_t piccType = RfChip.PICC_GetType(RfChip.uid.sak); |
dewantkatare | 0:35581ea6b194 | 63 | pc.printf("PICC Type: %s \r\n", RfChip.PICC_GetTypeName(piccType)); |
dewantkatare | 0:35581ea6b194 | 64 | wait_ms(1000); |
dewantkatare | 0:35581ea6b194 | 65 | |
dewantkatare | 0:35581ea6b194 | 66 | } |
dewantkatare | 0:35581ea6b194 | 67 | } |