E2PRO2 / Mbed 2 deprecated RFID-demo-team2

Dependencies:   mbed

Committer:
janusboandersen
Date:
Thu May 02 11:48:49 2019 +0000
Revision:
6:11cf998faa50
Parent:
5:b1ac24b6f25d
Remove pc. for printf - creates error on KL25Z

Who changed what in which revision?

UserRevisionLine numberNew contents of line
janusboandersen 3:2507fc42675c 1 /*
janusboandersen 3:2507fc42675c 2 * File : main.cpp
janusboandersen 3:2507fc42675c 3 * License : MIT License
janusboandersen 5:b1ac24b6f25d 4 * Version : 0.91
janusboandersen 3:2507fc42675c 5 * Author : Janus Bo Andersen (JA67494)
janusboandersen 3:2507fc42675c 6 * Last edit : Janus
janusboandersen 3:2507fc42675c 7 * Created on : 27 Apr 2019
janusboandersen 5:b1ac24b6f25d 8 * Last change: 2 May 2019
janusboandersen 3:2507fc42675c 9 * Description: Demo program for Mifare RC-522 RFID reader/writer chip.
janusboandersen 3:2507fc42675c 10 * : Communicates with RFID reader, transmits card numbers to terminal
janusboandersen 3:2507fc42675c 11 * : and toggles a digital pin upon reading a card.
janusboandersen 3:2507fc42675c 12 * Structure : Uses SPI protocol to communicate with the RFID
janusboandersen 3:2507fc42675c 13 * : Uses U(S)ART to communicate with connected computer/terminal.
janusboandersen 3:2507fc42675c 14 * Adapted for: STM32 Nucleo L432KC, but can be adapted for NXP KL25Z.
janusboandersen 5:b1ac24b6f25d 15 * Changelog : 27 Apr 2019: Created demo program
janusboandersen 5:b1ac24b6f25d 16 : 02 May 2019: Update pin mappings for FRDM-KL25Z Board
janusboandersen 5:b1ac24b6f25d 17 : 02 May 2019: Added set and reset for a latched circuit
janusboandersen 3:2507fc42675c 18 */
kirchnet 2:a0c7513fb634 19
janusboandersen 3:2507fc42675c 20 /*Connect as follows:
janusboandersen 3:2507fc42675c 21 (should be connected to board standard pins)
janusboandersen 5:b1ac24b6f25d 22 RFID pins -> Board pinName L432KC FRDM-KL25Z
janusboandersen 5:b1ac24b6f25d 23 ---------------------------------------------------------------------
janusboandersen 3:2507fc42675c 24 RFID IRQ = pin5 -> Not used. Leave open
janusboandersen 5:b1ac24b6f25d 25 RFID MISO = pin4 -> SPI_MISO PA_6=D12 PTD3
janusboandersen 5:b1ac24b6f25d 26 RFID MOSI = pin3 -> SPI_MOSI PA_7=D11 PTD2
janusboandersen 5:b1ac24b6f25d 27 RFID SCK = pin2 -> SPI_SCK PA_5=D13 PTD1
janusboandersen 5:b1ac24b6f25d 28 RFID SDA = pin1 -> SPI_CS PB_6=D10 PTD0
janusboandersen 5:b1ac24b6f25d 29 RFID RST = pin7 -> PA_9=D8 PTA13 (or map sth. else)
janusboandersen 3:2507fc42675c 30
janusboandersen 3:2507fc42675c 31 Power supply MUST BE 3.3V and GND to the respective pins.
janusboandersen 3:2507fc42675c 32 */
kirchnet 2:a0c7513fb634 33 #include "mbed.h"
kirchnet 2:a0c7513fb634 34 #include "MFRC522.h"
kirchnet 2:a0c7513fb634 35
janusboandersen 5:b1ac24b6f25d 36 // FRDM KL25Z Pins
janusboandersen 5:b1ac24b6f25d 37 #define MF_RESET PTA13 //D8 //Or anything else
janusboandersen 5:b1ac24b6f25d 38 #define SERIAL_TX PTE0 //UART0
janusboandersen 5:b1ac24b6f25d 39 #define SERIAL_RX PTE1 //UART0
janusboandersen 5:b1ac24b6f25d 40 #define SPI_MOSI PTD2 //PTC17
janusboandersen 5:b1ac24b6f25d 41 #define SPI_MISO PTD3 //PTA16
janusboandersen 5:b1ac24b6f25d 42 #define SPI_SCK PTD1 //PTA17
janusboandersen 5:b1ac24b6f25d 43 #define SPI_CS PTD0 //Chip select can be any digital pin
kirchnet 2:a0c7513fb634 44
janusboandersen 3:2507fc42675c 45 DigitalOut LedGreen(LED1); //for showing active signal on dev board
janusboandersen 5:b1ac24b6f25d 46 DigitalOut LedPower(A1); //for toggling MOSFET ON
janusboandersen 5:b1ac24b6f25d 47 DigitalOut LedPowerOff(A2); //for toggling MOSFET OFF
kirchnet 2:a0c7513fb634 48
kirchnet 2:a0c7513fb634 49 //Serial connection to PC for output
kirchnet 2:a0c7513fb634 50 Serial pc(SERIAL_TX, SERIAL_RX);
kirchnet 2:a0c7513fb634 51
janusboandersen 3:2507fc42675c 52 //RFID object instantiated using board standard pins (find in your library)
janusboandersen 3:2507fc42675c 53 MFRC522 RfChip (SPI_MOSI, SPI_MISO, SPI_SCK, SPI_CS, MF_RESET);
kirchnet 2:a0c7513fb634 54
kirchnet 2:a0c7513fb634 55 int main(void) {
janusboandersen 5:b1ac24b6f25d 56 printf("starting...\n");
janusboandersen 3:2507fc42675c 57 LedPower = 0;
kirchnet 2:a0c7513fb634 58
kirchnet 2:a0c7513fb634 59 // Init. RC522 Chip
kirchnet 2:a0c7513fb634 60 RfChip.PCD_Init();
kirchnet 2:a0c7513fb634 61
kirchnet 2:a0c7513fb634 62 while (true) {
kirchnet 2:a0c7513fb634 63 LedGreen = 1;
kirchnet 2:a0c7513fb634 64
kirchnet 2:a0c7513fb634 65 // Look for new cards
kirchnet 2:a0c7513fb634 66 if ( ! RfChip.PICC_IsNewCardPresent())
kirchnet 2:a0c7513fb634 67 {
kirchnet 2:a0c7513fb634 68 wait_ms(500);
kirchnet 2:a0c7513fb634 69 continue;
kirchnet 2:a0c7513fb634 70 }
kirchnet 2:a0c7513fb634 71
janusboandersen 3:2507fc42675c 72 // Select one of the cards (avoiding collisions of multiple cards)
kirchnet 2:a0c7513fb634 73 if ( ! RfChip.PICC_ReadCardSerial())
kirchnet 2:a0c7513fb634 74 {
kirchnet 2:a0c7513fb634 75 wait_ms(500);
kirchnet 2:a0c7513fb634 76 continue;
kirchnet 2:a0c7513fb634 77 }
kirchnet 2:a0c7513fb634 78
janusboandersen 3:2507fc42675c 79 LedGreen = 0; //blink off
kirchnet 2:a0c7513fb634 80
janusboandersen 3:2507fc42675c 81 //Toggle signal to the MOSFET
janusboandersen 3:2507fc42675c 82
janusboandersen 3:2507fc42675c 83 LedPower = !LedPower;
janusboandersen 3:2507fc42675c 84 // Print Card UID to serial interface
janusboandersen 6:11cf998faa50 85 printf("Card UID: ");
kirchnet 2:a0c7513fb634 86 for (uint8_t i = 0; i < RfChip.uid.size; i++)
kirchnet 2:a0c7513fb634 87 {
janusboandersen 6:11cf998faa50 88 printf(" %X02", RfChip.uid.uidByte[i]);
kirchnet 2:a0c7513fb634 89 }
janusboandersen 6:11cf998faa50 90 printf("\n\r");
kirchnet 2:a0c7513fb634 91
kirchnet 2:a0c7513fb634 92 // Print Card type
kirchnet 2:a0c7513fb634 93 uint8_t piccType = RfChip.PICC_GetType(RfChip.uid.sak);
janusboandersen 6:11cf998faa50 94 printf("PICC Type: %s \n\r", RfChip.PICC_GetTypeName(piccType));
kirchnet 2:a0c7513fb634 95 wait_ms(1000);
janusboandersen 5:b1ac24b6f25d 96
janusboandersen 5:b1ac24b6f25d 97 //Turn off latch (Jan's addition)
janusboandersen 5:b1ac24b6f25d 98 wait_ms(500);
janusboandersen 5:b1ac24b6f25d 99 LedPowerOff = !LedPower;
kirchnet 2:a0c7513fb634 100 }
kirchnet 2:a0c7513fb634 101 }