2021-06-04 17:56:34 +08:00
|
|
|
#ifndef __GSL61XX__
|
|
|
|
#define __GSL61XX__
|
|
|
|
|
|
|
|
#include "hal_gpio.h"
|
|
|
|
#include <stdint.h>
|
|
|
|
|
|
|
|
#define BYTE uint8_t
|
|
|
|
|
2021-06-20 12:25:46 +08:00
|
|
|
#define FP_CS_PIN GPIO_PIN_10
|
2021-06-04 17:56:34 +08:00
|
|
|
#define FP_RESET_PIN GPIO_PIN_6
|
|
|
|
|
|
|
|
#define FP_CS_DISABLE() \
|
2021-06-20 12:25:46 +08:00
|
|
|
do { \
|
|
|
|
gpio_write(FP_CS_PIN, 1); \
|
|
|
|
} while (0)
|
2021-06-04 17:56:34 +08:00
|
|
|
#define FP_CS_ENABLE() \
|
2021-06-20 12:25:46 +08:00
|
|
|
do { \
|
|
|
|
gpio_write(FP_CS_PIN, 0); \
|
|
|
|
} while (0)
|
2021-06-04 17:56:34 +08:00
|
|
|
|
|
|
|
#define FP_RST_HIGH() \
|
2021-06-20 12:25:46 +08:00
|
|
|
do { \
|
|
|
|
gpio_write(FP_RESET_PIN, 1); \
|
|
|
|
} while (0)
|
2021-06-04 17:56:34 +08:00
|
|
|
#define FP_RST_LOW() \
|
2021-06-20 12:25:46 +08:00
|
|
|
do { \
|
|
|
|
gpio_write(FP_RESET_PIN, 0); \
|
|
|
|
} while (0)
|
2021-06-04 17:56:34 +08:00
|
|
|
|
|
|
|
#define SPI_DELAY 5
|
|
|
|
|
2021-06-20 12:25:46 +08:00
|
|
|
#define FINGER_UP 0
|
2021-06-04 17:56:34 +08:00
|
|
|
#define FINGER_DOWN 1
|
|
|
|
|
|
|
|
#define TUNE_IMAGE_W 32
|
|
|
|
#define TUNE_IMAGE_H 32
|
|
|
|
|
|
|
|
//#define TUNE_TEST
|
|
|
|
#ifdef TUNE_TEST
|
|
|
|
#define DAC_TUNE_OFFSET_MAX 0x80
|
|
|
|
#define DAC_TUNE_OFFSET_MIN 0x80
|
2021-06-20 12:25:46 +08:00
|
|
|
#define DAC_TUNE_STEP_MAX 0x08
|
|
|
|
#define DAC_TUNE_CNT_MAX 5
|
2021-06-04 17:56:34 +08:00
|
|
|
#else
|
|
|
|
#define DAC_TUNE_OFFSET_MAX 0x20
|
|
|
|
#define DAC_TUNE_OFFSET_MIN 0x10
|
2021-06-20 12:25:46 +08:00
|
|
|
#define DAC_TUNE_STEP_MAX 0x08
|
|
|
|
#define DAC_TUNE_CNT_MAX 5
|
2021-06-04 17:56:34 +08:00
|
|
|
#endif
|
|
|
|
|
2021-06-20 12:25:46 +08:00
|
|
|
typedef struct Chip_Config {
|
|
|
|
uint32_t Addr;
|
|
|
|
uint32_t Data;
|
2021-06-04 17:56:34 +08:00
|
|
|
} Chip_Config_T;
|
|
|
|
|
2021-06-20 12:25:46 +08:00
|
|
|
typedef struct GSL_FP_Config {
|
|
|
|
Chip_Config_T *Config_NormalMode;
|
|
|
|
uint32_t Config_NormalMode_Len;
|
2021-06-04 17:56:34 +08:00
|
|
|
} GSL_FP_Config_T;
|
|
|
|
|
2021-06-20 12:25:46 +08:00
|
|
|
typedef struct GSL_FP_Register {
|
|
|
|
uint32_t RegGain12;
|
|
|
|
uint32_t RegGain34;
|
|
|
|
uint32_t RegDac;
|
2021-06-04 17:56:34 +08:00
|
|
|
} GSL_FP_Register_T;
|
|
|
|
|
2021-06-20 12:25:46 +08:00
|
|
|
typedef struct GSL_FP_Sensor {
|
|
|
|
uint32_t ImageW;
|
|
|
|
uint32_t ImageH;
|
|
|
|
uint32_t ImageSize;
|
|
|
|
uint8_t Gain12Ratio[8];
|
|
|
|
uint8_t Gain34Ratio[8];
|
2021-06-04 17:56:34 +08:00
|
|
|
} GSL_FP_Sensor_T;
|
|
|
|
|
2021-06-20 12:25:46 +08:00
|
|
|
typedef struct GSL_FP_Tune {
|
|
|
|
uint8_t DacShift;
|
|
|
|
uint8_t DacMax;
|
|
|
|
uint8_t DacMin;
|
2021-06-04 17:56:34 +08:00
|
|
|
} GSL_FP_Tune_T;
|
|
|
|
|
2021-06-20 12:25:46 +08:00
|
|
|
typedef struct GSL_FP_Detect {
|
|
|
|
uint32_t DownThreshold;
|
|
|
|
uint32_t UpThreshold;
|
|
|
|
uint32_t DetGain12;
|
|
|
|
uint32_t DetGain34;
|
|
|
|
uint32_t DetDac;
|
2021-06-04 17:56:34 +08:00
|
|
|
} GSL_FP_Detect_T;
|
|
|
|
|
2021-06-20 12:25:46 +08:00
|
|
|
typedef struct GSL_FP_Capture {
|
|
|
|
uint32_t CapGain12;
|
|
|
|
uint32_t CapGain34;
|
|
|
|
uint32_t CapDac;
|
2021-06-04 17:56:34 +08:00
|
|
|
} GSL_FP_Capture_T;
|
|
|
|
|
2021-06-20 12:25:46 +08:00
|
|
|
typedef struct GSL_FP_Data {
|
|
|
|
GSL_FP_Config_T Config;
|
|
|
|
GSL_FP_Register_T Reg;
|
|
|
|
GSL_FP_Sensor_T Sensor;
|
|
|
|
GSL_FP_Tune_T Tune;
|
|
|
|
GSL_FP_Detect_T Detect;
|
|
|
|
GSL_FP_Capture_T Capture;
|
2021-06-04 17:56:34 +08:00
|
|
|
} GSL_FP_Data_T;
|
|
|
|
|
|
|
|
uint8_t GSL61xx_init(void);
|
|
|
|
|
|
|
|
BYTE CaptureGSL61xx(BYTE *pImageBmp);
|
|
|
|
|
|
|
|
void GSL_FP_CaptureImage(BYTE *pImageBmp);
|
|
|
|
void GSL_FP_ReadChipID(uint32_t *ChipID);
|
|
|
|
void GSL_FP_ReadImageData(uint32_t Page, uint8_t Reg, uint8_t *Buf, uint32_t Len);
|
|
|
|
#endif
|