This repository has been archived on 2023-07-17. You can view files and clone it, but cannot push or open issues or pull requests.
bl_mcu_sdk/examples/spi/spi_gsl61xx/GSL61xx.h
2021-06-20 12:25:46 +08:00

111 lines
2.5 KiB
C

#ifndef __GSL61XX__
#define __GSL61XX__
#include "hal_gpio.h"
#include <stdint.h>
#define BYTE uint8_t
#define FP_CS_PIN GPIO_PIN_10
#define FP_RESET_PIN GPIO_PIN_6
#define FP_CS_DISABLE() \
do { \
gpio_write(FP_CS_PIN, 1); \
} while (0)
#define FP_CS_ENABLE() \
do { \
gpio_write(FP_CS_PIN, 0); \
} while (0)
#define FP_RST_HIGH() \
do { \
gpio_write(FP_RESET_PIN, 1); \
} while (0)
#define FP_RST_LOW() \
do { \
gpio_write(FP_RESET_PIN, 0); \
} while (0)
#define SPI_DELAY 5
#define FINGER_UP 0
#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
#define DAC_TUNE_STEP_MAX 0x08
#define DAC_TUNE_CNT_MAX 5
#else
#define DAC_TUNE_OFFSET_MAX 0x20
#define DAC_TUNE_OFFSET_MIN 0x10
#define DAC_TUNE_STEP_MAX 0x08
#define DAC_TUNE_CNT_MAX 5
#endif
typedef struct Chip_Config {
uint32_t Addr;
uint32_t Data;
} Chip_Config_T;
typedef struct GSL_FP_Config {
Chip_Config_T *Config_NormalMode;
uint32_t Config_NormalMode_Len;
} GSL_FP_Config_T;
typedef struct GSL_FP_Register {
uint32_t RegGain12;
uint32_t RegGain34;
uint32_t RegDac;
} GSL_FP_Register_T;
typedef struct GSL_FP_Sensor {
uint32_t ImageW;
uint32_t ImageH;
uint32_t ImageSize;
uint8_t Gain12Ratio[8];
uint8_t Gain34Ratio[8];
} GSL_FP_Sensor_T;
typedef struct GSL_FP_Tune {
uint8_t DacShift;
uint8_t DacMax;
uint8_t DacMin;
} GSL_FP_Tune_T;
typedef struct GSL_FP_Detect {
uint32_t DownThreshold;
uint32_t UpThreshold;
uint32_t DetGain12;
uint32_t DetGain34;
uint32_t DetDac;
} GSL_FP_Detect_T;
typedef struct GSL_FP_Capture {
uint32_t CapGain12;
uint32_t CapGain34;
uint32_t CapDac;
} GSL_FP_Capture_T;
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;
} 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