RFID-RC522, SPI, FRDMk64F

Dependencies:   mbed

Committer:
dewantkatare
Date:
Wed Apr 17 20:36:49 2019 +0000
Revision:
0:35581ea6b194
RFID-RC522, K64F

Who changed what in which revision?

UserRevisionLine numberNew 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 }