Files
banban/ql-application/threadx/interface/custom_app/lib/libfm17622/READER.h
T

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