97 lines
3.1 KiB
C
97 lines
3.1 KiB
C
|
|
#ifndef _READER_H
|
|
#define _READER_H
|
|
|
|
#include "fm15l0xx_ll_gpio.h"
|
|
#include "function.h"
|
|
|
|
extern unsigned char ATQA[2];
|
|
extern unsigned char UID[8];
|
|
extern unsigned char UID_SIZE;
|
|
extern unsigned char SAK[1];
|
|
|
|
#define CWN 8 //1~15
|
|
#define CWP 32 //1~63
|
|
#define RX_GAIN 4 //0~7
|
|
#define RX_MINLEVEL 8//1~15
|
|
#define RX_COLLLEVEL 4 //1~15
|
|
|
|
|
|
#define NPD_GPIO GPIOA
|
|
#define NPD_PIN LL_GPIO_Pin7//PA5
|
|
#define IRQ_GPIO GPIOA
|
|
#define IRQ_PIN LL_GPIO_Pin6//PC7
|
|
|
|
|
|
#define NPD_0 LL_GPIO_ResetOutputPin( NPD_GPIO, NPD_PIN )
|
|
#define NPD_1 LL_GPIO_SetOutputPin( NPD_GPIO, NPD_PIN )
|
|
|
|
|
|
#define I2C_ADDRESS 0x28
|
|
|
|
|
|
#define I2C_Write 0x00
|
|
#define I2C_Read 0x01
|
|
|
|
#define SDA_PIN LL_GPIO_Pin0
|
|
#define SDA_GPIO GPIOB
|
|
|
|
#define SCL_PIN LL_GPIO_Pin2
|
|
#define SCL_GPIO GPIOB
|
|
|
|
#define SCL_0 LL_GPIO_ResetOutputPin( SCL_GPIO, SCL_PIN )
|
|
#define SCL_1 LL_GPIO_SetOutputPin( SCL_GPIO, SCL_PIN )
|
|
|
|
#define SDA_0 LL_GPIO_ResetOutputPin( SDA_GPIO, SDA_PIN )
|
|
#define SDA_1 LL_GPIO_SetOutputPin( SDA_GPIO, SDA_PIN )
|
|
|
|
#define I2C_SCL( x ) (x ? SCL_1 : SCL_0)
|
|
#define I2C_SDA( x ) (x ? SDA_1 : SDA_0)
|
|
|
|
#define RD_I2C_SDA LL_GPIO_IsInputPinSet( SDA_GPIO, SDA_PIN )
|
|
|
|
#define I2C_SDA_OUT() LL_GPIO_SetPinMode( SDA_GPIO, SDA_PIN, LL_GPIO_PINxMODE_OUTPUT );
|
|
#define I2C_SDA_IN() LL_GPIO_SetPinMode( SDA_GPIO, SDA_PIN, LL_GPIO_PINxMODE_INPUT );
|
|
|
|
#define I2C_DELAY( n ) DelayUs( n );
|
|
|
|
extern void DelayMs( uint32_t xms );
|
|
extern void DelayUs( uint32_t xus );
|
|
|
|
void Reader_GPIO_Init( void );
|
|
|
|
extern unsigned int Reader_ADC(void);
|
|
|
|
extern unsigned char Reader_HardReset( void );
|
|
|
|
extern unsigned char Reader_SoftReset( void );
|
|
|
|
extern unsigned char Reader_Set_HPD( unsigned char mode ) ;
|
|
|
|
extern unsigned char GetReg( unsigned char reg_address, unsigned char* reg_data );
|
|
|
|
extern unsigned char SetReg( unsigned char reg_address, unsigned char reg_data );
|
|
|
|
extern void ModifyReg( unsigned char reg_address, unsigned char mask, unsigned char set );
|
|
|
|
extern unsigned char GetReg_Ext( unsigned char ExtRegAddr, unsigned char* ExtRegData );
|
|
|
|
extern unsigned char SetReg_Ext( unsigned char ExtRegAddr, unsigned char ExtRegData );
|
|
|
|
extern void ModifyReg_Ext( unsigned char ExtRegAddr, unsigned char mask, unsigned char set );
|
|
extern unsigned char Lpcd_Card_Event(void);
|
|
extern unsigned char Lpcd_Init_Register(void);
|
|
extern void Lpcd_IRQ_Event(void);
|
|
extern unsigned char ReaderA_CW(unsigned char mode);
|
|
extern unsigned char ReaderA_Initial(void);
|
|
extern unsigned char ReaderA_Request(unsigned char *atqa);
|
|
extern unsigned char ReaderA_Anticol(unsigned char cmd,unsigned char *uid);
|
|
extern unsigned char ReaderA_Select(unsigned char cmd,unsigned char *uid,unsigned char *sak);
|
|
extern unsigned char Read_Page(unsigned char page_num,unsigned char *page_data,unsigned char encrypt);
|
|
extern unsigned char FastRead_Page(unsigned char page_num1,unsigned char page_num2,unsigned char *page_data,unsigned char encrypt);
|
|
extern unsigned char Write_Page(unsigned char page_num,unsigned char *page_data,unsigned char encrypt);
|
|
extern unsigned char Triple_Auth(unsigned char *key,unsigned char *PCD_random);
|
|
|
|
#endif
|
|
|