RFID#
Algemene informatie#
Deze functies werken voor de RC522 chip. Je kunt simpelweg een blok opvragen a.d.h.v. het bloknummer.
Te doen
De interrupt kan wel worden aangezet, maar deze werkt momenteel maar 1-malig. Het clearen van de interrupt werkt ook maar de wake functie werkt niet in combinatie met rfidGetBlok(). De RC522 heeft intern ook een timer die je kunt gebruiken om zichzelf wakker te maken. Dit moet nog worden geïmplementeerd.
Voorbeelden#
Om bijvoorbeeld het 20e blok binnen te halen kun je het volgende doen.
//eenmalig initaliseren
spiInitialize(0); //USCA gebruiken
rfidInitialize(BIT3,BIT0); //Chipselect op P1.3 en reset op P1.0
//dan uitlezen...
uint8_t data[16];
uint8_t fout = rfidGetBlok(20, data);
if(fout<0>)
{
//gaat iets niet goed.
}else{
//blokje doorlezen.
}
Functies#
Defines
-
GEEN_KAART_GEZIEN#
waarde -1 foutmelding volgt als de rfidGetBlok-functie geen kaart ziet
-
GEEN_COMMUNICATIE#
waarde -2 foutmelding volgt als de rfidGetBlok-functie wel een kaart ziet maar niet kan communiceren
-
VERKEERDE_KEY#
waarde -3 er is een verkeerde sleutel gebruikt voor de sector
-
VERKEERD_BLOK#
waarde -4 er is een blok opgevraagd wat niet bestaat
Functions
-
void rfidEnableInterrupt()#
Hiermee wordt het Communicatie Interrupt Enable register beschreven en de RX interrupt aangezet. Ook wordt het inverteer bitje daarbij aangezet zodat de IRQ pin standaard hoog is en laag wordt bij een interrupt.
-
void rfidClearInterrupt()#
Dit reset de interrupt binnen de RC522
-
void rfidWake()#
Deze functie zou de tranceiver wakker moeten maken wat nodig is om interrupts te houden. Dit werkt vooralsnog niet goed.
-
void rfidInitialize(uint8_t chipselect, uint8_t reset)#
Deze functie initialiseert de RC522 RFID reader. Chipselect en Reset zijn voor nu gelimiteerd tot poort 1.
- Todo:
Nu standaard poort 1, nog uitbreiden met poortnummer
- Parameters:
chipselect – De bitpositie van de chipselect pin. Bijv. (1<<5) of BIT5
reset – De bitpositie van de RST pin. Bijv. BIT4
-
int8_t rfidGetBlok(uint8_t blokNummer, uint8_t bytes[16])#
Deze functie geeft het blok terug bij een opgegeven nummer.
- Parameters:
blokNummer – Het nummer van het blok van 0 t/m 63
bytes – Een pointer naar een 16 bytes brede array om het gelezen blok in te plaatsen.
- Returns:
Error-code. Alles onder 0 betekend dat het niet goed gaat. 0 is wel goed.