version 0.0 15/02/2016
rev 26/02/2016

Ready for PIC 18F45K22 .. Application RFID RC522

Presentation de la carte de developpement Ready For PIC18F45K22
Le LCD 2119 2x16cars , relié via Bus I2C


ATTENTION Alimentation PIC,LCD et carte RFID-RC522 en 3,3V
=> commutateur carte Ready for PIC sur 3,3V
Afficheur piloté en I2C via I2C1 Hardware

Modification Hardware sur Afficheur LCD 2119 I2C:
Rajout de 2 R de 4,7K sur la face arriere du LCD pour R pull up BUS I2C
Modif hardware pour Backlite minimum permanent ::
pont entre 1 et 7 et R=750 entre 2 et 6 sur le connecteur haut (libre opposé)
et suppresion de la liaison pin 5 et 6 du connecteur bas pour R=220

Docu sur LCD :
PCF2119X_rev12.pdf


Carte RFID RC522

RFID-RC522 RF IC Card Module capteur #01392735 4.89€

 

Interconnections avec carte Ready For PIC

images/t_18F45K22_MSSP2_SPI_diagram.gif
Hardware Schematic

HARDWARE Prototype

images/RFID_RC522_Testing_160208.jpg

L'I2C1 bus est utilisé pour piloter le LCD 2119 2x16 car
L'UART1 est connecté par défaut au circuit FTDI de la carte => COM23 via liaison USB
Le
MSSP2 SPI est utilisé via le PORTD ( MSSP1 non dispo because I2C1)

au Scope :
Avec une boucle de Herz constituee de 7 spires jointives de fil dia 1mm bobiné sur bouchon diam 40mm (voir photo)
on peut obervé le signal emis par la carte RC522 13,6Mhz ~1V cr cr sinus

images/t_RD1_MOSI_signal.gif images/t_RD4_MISO_signal.gif images/t_Boucle_hertz_sur_RC522_signal.gif
signal SPI MOSI signal SPI MISO boucle 7 tours dia 40mm fil 1mm diam 13,6Mhz


LIAISONS :

18F45K22 pins RC522
RD3 -> out Select Board SS
RD0 -> out SCK
RD4 -> Master Output Slave Input
RD1 <- Master Input Slave Output
RB0 <- Interrupt from RC522
Gnd ---------
RD2 output Reset
Power Supply 3,3V

1
2
3
4
5
6
7
8

RA3 output Buzzer
RA4 output LED
RC3 I2C1 SCL 3 LCD2119
RC4 I2C1 SDA 4 LCD2119
   

La bibliotheque MFR5C522 issue de ce lien
Auteur du Blog

Cette bibliotheque donne entiere satisfaction..
attention à l'inversion MOSI , MISO
Les fonction de cette librairie :
voir l'original en cas de doute sur la traduction .. car faite surtout par déduction
Principales fonctions :
MFRC522_Init() - Initialisation du module RC522
MFRC522_Reset() - Reset du module MFRC522.
MFRC522_Halt() - Desactivation du module = Hibernation.
MFRC522_SelectTag( char *serNum ) - Selection type de carte, param servant à l'authentification. serNum = Numero de série. 5 bytes.
MFRC522_Auth ( char authMode, char BlockAddr, char *Sectorkey, char *serNum )
- Authentification et determination du bloc actif en Lecture et Ecriture
authMode: type d'autentification A ( PICC_AUTHENT1A ) ou B ( PICC_AUTHENT1B ).
BlockAddr - Numéro du block. 4 blocs de secteur.
SectorKey - Senha d'autentification 6 bytes. Generalement definit comme 0xFFFFFFFFFFFF.
serNum - Numero de série de la carte sur 5 bytes.
MFRC522_Write( char blockAddr, char *writeData ) Ecriture 16 bytes dans le numero de bloc destinataire, sert de logo d'autentification.
blockAddr - Numero do bloco. Exceto o quarto bloco do setor, que é usado para autenticar.
writeData - 16 bytes en ecriture.
MFRC522_Read( char blockAddr, char *recvData ) Lecture des 16 bytes du numéro de bloc passé, logo d' authentification.
blockAddr - Numero do bloc.
recvData - Retourne les 16 bytes lus dans le tabelau recvData.
MFRC522_isCard( char *TagType ) - Verification presence d'une carte devant le lecteur.
TagType - Retourne un type de carte.
MFRC522_ReadCardSerial( char *str ) Lecture du numero de serie de la carte
str - Retourne un pointeur sur le numero de serie : 5 bytes ( 4 bytes + checksum ).

Le programme MikroC pro 6.20

Juste quelques petites modifs pour adapeter le LCD en I2C
et utilisation du MSSP2 SPI hardware du PIC 18F45K22
L'UART1 => TeraTerm COM23, 19200,8,N,1 sur PC est utilisé pour tester le tout, mais aussi apporte d'autres fonctionalites.

images/t_Teraterm_dialogue_160225.gif

L'afficheur LCD 2x16 cars renseigne sur l'avancement et le controle du lecteur RFID.
L'EEPROM du PIC est utilisee pour stoker jusqu'à 8 numeros de cartes et signatures.
La laison Terminal UART offre les possibilites suivantes, résumées par l'envoi de "Aide" via le clavier PC

Aide
Message= : assigne un msg d'authentification de 16 sur le bloc 4 de la carte
Liste_UID : liste les numéros d'identifications de cartes déja reconnues
Liste_Msg : liste des msg d'authentification asscociées aux carte
Liste_EEprom : liste contnu EEPROM PIC
Assigne_Nom= : Assigne un nom à l'étiquette lue
RAZ_EEprom : RAZ contenu EEPROM du PIC
LedA=1 ou LedA=0

A la mise sous tension,
FOSC interne initialisée à 16 Mhz
Hardware initalisé
RAZ de l''EEPROM du PIC ..
Liaison I2C1 initialisée, ainsi que le LDC2119 sur le bus I2C
Liaison UART1 initalise, de meme l'interruption reception de caractere.
Liaison MSSP SPI2 initialisée
Carte RFID RC522 initialisee
Le LCD affiche les etapes , ainsi que le terminal UART
Si tout se passe bien, on arrive à une boucle principale qui tourne sur un delai de 1 sec
"Attente Carte" affiché sur le LCD, et affiché toutes les 10 sec sur l'UART

Des que la carte RC522 detecte l'approche d'une carte RFID ,
Beep#1
Affiche le TAG (type de la carte ):; 0400

puis le numero de serie du 10 digits (5 bytes)
affichage contigu des 5 bytes sur le LCD, et separé par ":" sur le terminal

La lecture du Bloc: affiche me message d'autentification associé..(voir nota)

Puis un message "Bonjour "... sur lequelle on peut rajouter un prénom (ou 8 cars) avec la commande "Assigne_Nom="

On envoi la commande Message, on dispose alors de 4 secondes pour presenter la carte sur laquelle sera inscrite le Message.
et un message d'invite, en 1ere ligne du LCD , pour retirer la carte.. avec un Beep#2 specifique

Si on presente la carte et qu'on la retire avant la fin de sequence,
Beep#3 d'alerte et message ..bad en 2em ligne du LCD

En fin de sequence de lecture d'une carte , le numero de carte est conservé,
pour recevoir une eventuelle commande au clavier.

Nota 1: Message:
Ce message aura été prealablement installé via la commande terminal "Message = XXXXXXXXXXXXXXX"
ou les 16 X, represente le message.
Une fois installé ,il est stocké en epermancne dans la Carte RFID !

Nota 2 : apres presentation des cartes les numero de series sont stockes en EEPROM en fonction de l'ordre de presentation
L'Assignation d'un nom est associé à la carte , et il faut , sur RESET general, representer les cartes dans le meme ordre
que lors de l'initialisation de celle-ci, sinon , refaire une assignation de Nom.

Video sur le test avec 1 jeton et 1 carte

Le programme Source
La partie LCD2119
Le chargeur
dans le fichier
RC522_18F45k22_UART1_LCD2_I2C1_SPI2_Hardw_160222.zip

TeraTerm terminal Dialogue avec RFID RC522 :
Teraterm_RC522_echanges_160225.log

Modif :
Rajout entree RA2 pour RAZ ou init forcee de l'EEPROM du PIC .
RA2=1 => init Forcee
RA2=0 => RAZ Eeprom .. à utiliser au moins pour decouvrir les nouvelles cartes
source C rev 160229

A suivre :
ecriture dans tout l'espace carte RFID

paulfjujo@free.fr


common/GIF/LTC1286p.jpg



Retour à l'index general