Interfejs SPI – moduł RFID

 

Wstęp

Skonfigurować projekt z płytką Nucleo L432 jak na poprzednich zajęciach i dodatkowo:

  1. obsługa komunikacji po UART (USART2)
  2. dioda LED na pinie PB3
  3. uruchomić interfejs komunikacyjny SPI1 – zakładka “Connectivity”, ustawić SPI1 na Mode Full-Duplex Master, ustawić w Parameter Settings Data Size na 8 Bits
  4. ustawić pin PA5 jako wyjście z pull-UP, nadać nazwę SPI1_CS
  5. zapoznać się z modułem czytnika kart RFID MFRC522: link do dokumentacji
  6. podłączyć czytnik RFID do Nucleo według tabeli:
Opis
Płytka NUCLEO

Moduł RFID-MFRC522

Zasilanie +3.3V

3V3

3.3V

Zasilanie GND

GND

GND
MISO

A5

MISO

MOSI

A6

MOSI

SCK

A1

SCK

CS

A4

SDA

Zadanie 1
  1. narysować schemat połączeń pomiędzy mikrokontrolerm i modułem RFID
  2. opisać funkcje poszczególnych połączeń
Zadanie 2
  1. wgrać biblioteki do obsługi moduły RFID do projektu (plik “MFRC522.h” do folderu Inc a plik “MFRC522.c” do folderu Src) – biblioteka
  2. dodać do pliku “main.c” zamiast pętli “While” poniższy  kod programu, przetestować działanie przez przykładanie różnych kart RFID
  3. co robi przykładowy kod? jakie informacje są odczytywane z kart RFID?

 

Zadanie 3
  1. na bazie poprzedniego czytnika kart RFID utworzyć system alarmowy
  2. zapisać w pamięci numery dwóch kart, które pozwalają uzbroić/rozbroić alarm.
  3. alarm po uzbrojeniu jest aktywny i sygnalizuje to mrugając diodę LED
  4. alarm po rozbrojeniu nie jest aktywny i dioda LED jest wyłączona
  5. każde przyłożenie karty powoduje jej odczyt, jeśli karta jest zapisana to następuje uzbrojenie/rozbrojenie alarmu (przeciwny stan niż był)
  6. wszystkie informacje jak rozbrojenie, uzbrojenie, błędny kod karty, prawidłowy kod karty itd. powinny być wyświetlane na terminalu komputerowym
Zadanie 4
  1. rozbudować alarm o możliwość dodawania/usuwania kolejnych kart RFID
  2. maksymalnie obsługujemy 3 karty
  3. wywoływanie funkcji dodawania/odejmowania karty należy wykonać za pomocą komend z terminala (program powinien mieć menu z opis dostępnych opcji)
  4. przykład działania: przyciskamy “g”, jeśli jakiś slot pamięci jest wolny to program prosi o przyłożenie nowej karty i zapisuje numery w wolnym slocie. Jeśli brak wolnego slotu to program wyświetla odpowiedni komunikat. Po przyciśnięciu “d” program prosi o podanie numeru slotu do skasowania, wpisujemy “1”, program kasuje kartę z pierwszego slotu itd.