Go to the documentation of this file.
28 #ifndef FINGERPRINT4_H
29 #define FINGERPRINT4_H
35 #include "drv_digital_out.h"
36 #include "drv_digital_in.h"
37 #include "drv_spi_master.h"
61 #define FINGERPRINT4_CMD_NONE 0x0000
62 #define FINGERPRINT4_CMD_CAPTURE 0x0001
63 #define FINGERPRINT4_CMD_ENROLL 0x0002
64 #define FINGERPRINT4_CMD_IDENTIFY 0x0003
65 #define FINGERPRINT4_CMD_MATCH 0x0004
66 #define FINGERPRINT4_CMD_IMAGE 0x0005
67 #define FINGERPRINT4_CMD_TEMPLATE 0x0006
68 #define FINGERPRINT4_CMD_WAIT 0x0007
69 #define FINGERPRINT4_CMD_SETTINGS 0x0008
70 #define FINGERPRINT4_CMD_NAVIGATE 0x1001
71 #define FINGERPRINT4_CMD_SENSOR 0x1002
72 #define FINGERPRINT4_CMD_DEADPIXELS 0x1003
73 #define FINGERPRINT4_CMD_CONNECT 0x2001
74 #define FINGERPRINT4_CMD_RECONNECT 0x2002
75 #define FINGERPRINT4_CMD_RESET 0x3002
76 #define FINGERPRINT4_CMD_CANCEL 0x3003
77 #define FINGERPRINT4_CMD_INFO 0x3004
78 #define FINGERPRINT4_CMD_STORAGE_TEMPLATE 0x4002
79 #define FINGERPRINT4_CMD_STORAGE_CALIBRATION 0x4003
80 #define FINGERPRINT4_CMD_STORAGE_LOG 0x4004
81 #define FINGERPRINT4_CMD_STORAGE_SETTINGS 0x4005
82 #define FINGERPRINT4_CMD_TEST 0x5001
83 #define FINGERPRINT4_CMD_MCU 0x5002
84 #define FINGERPRINT4_CMD_GPIO 0x5003
85 #define FINGERPRINT4_CMD_COMMUNICATION 0x6001
86 #define FINGERPRINT4_CMD_APP_BASE 0xE000
87 #define FINGERPRINT4_CMD_DIAG 0xF003
88 #define FINGERPRINT4_CMD_FFFF 0xFFFF
94 #define FINGERPRINT4_ARG_NONE 0x0000
95 #define FINGERPRINT4_ARG_FINGER_DOWN 0x0001
96 #define FINGERPRINT4_ARG_FINGER_UP 0x0002
97 #define FINGERPRINT4_ARG_START 0x0003
98 #define FINGERPRINT4_ARG_ADD 0x0004
99 #define FINGERPRINT4_ARG_FINISH 0x0005
100 #define FINGERPRINT4_ARG_ID 0x0006
101 #define FINGERPRINT4_ARG_ALL 0x0007
102 #define FINGERPRINT4_ARG_EXTRACT 0x0008
103 #define FINGERPRINT4_ARG_MATCH_IMAGE 0x0009
104 #define FINGERPRINT4_ARG_MATCH 0x000A
105 #define FINGERPRINT4_ARG_ACQUIRE 0x1001
106 #define FINGERPRINT4_ARG_RELEASE 0x1002
107 #define FINGERPRINT4_ARG_SET 0x1003
108 #define FINGERPRINT4_ARG_GET 0x1004
109 #define FINGERPRINT4_ARG_UPLOAD 0x1005
110 #define FINGERPRINT4_ARG_DOWNLOAD 0x1006
111 #define FINGERPRINT4_ARG_CREATE 0x1007
112 #define FINGERPRINT4_ARG_SAVE 0x1008
113 #define FINGERPRINT4_ARG_DELETE 0x1009
114 #define FINGERPRINT4_ARG_DATA 0x100A
115 #define FINGERPRINT4_ARG_UPDATE 0x100B
116 #define FINGERPRINT4_ARG_SEQ_NR 0x100C
117 #define FINGERPRINT4_ARG_SEQ_LEN 0x100D
118 #define FINGERPRINT4_ARG_RESULT 0x2001
119 #define FINGERPRINT4_ARG_COUNT 0x2002
120 #define FINGERPRINT4_ARG_SIZE 0x2003
121 #define FINGERPRINT4_ARG_LEVEL 0x2004
122 #define FINGERPRINT4_ARG_FORMAT 0x2005
123 #define FINGERPRINT4_ARG_FLAG 0x2006
124 #define FINGERPRINT4_ARG_PROPERTIES 0x2007
125 #define FINGERPRINT4_ARG_SPEED 0x2008
126 #define FINGERPRINT4_ARG_PROD_TEST 0x2009
127 #define FINGERPRINT4_ARG_SENSOR_TYPE 0x3001
128 #define FINGERPRINT4_ARG_WIDTH 0x3002
129 #define FINGERPRINT4_ARG_HEIGHT 0x3003
130 #define FINGERPRINT4_ARG_RESET 0x3004
131 #define FINGERPRINT4_ARG_DPI 0x3005
132 #define FINGERPRINT4_ARG_MAX_SPI_CLOCK 0x3006
133 #define FINGERPRINT4_ARG_NUM_SUB_AREAS_WIDTH 0x3007
134 #define FINGERPRINT4_ARG_NUM_SUB_AREAS_HEIGHT 0x3008
135 #define FINGERPRINT4_ARG_IRQ_STATUS 0x3009
136 #define FINGERPRINT4_ARG_RESET_HARD 0x300A
137 #define FINGERPRINT4_ARG_IDLE 0x4001
138 #define FINGERPRINT4_ARG_SLEEP 0x4002
139 #define FINGERPRINT4_ARG_DEEP_SLEEP 0x4003
140 #define FINGERPRINT4_ARG_POWER_MODE 0x4004
141 #define FINGERPRINT4_ARG_BUSY_WAIT 0x4005
142 #define FINGERPRINT4_ARG_TIMEOUT 0x5001
143 #define FINGERPRINT4_ARG_DONE 0x5002
144 #define FINGERPRINT4_ARG_BOOT 0x6001
145 #define FINGERPRINT4_ARG_STATUS 0x6002
146 #define FINGERPRINT4_ARG_VERSION 0x6003
147 #define FINGERPRINT4_ARG_UNIQUE_ID 0x6004
148 #define FINGERPRINT4_ARG_APP_BASE 0x7000
149 #define FINGERPRINT4_ARG_NONCE 0x8001
150 #define FINGERPRINT4_ARG_MAC 0x8002
151 #define FINGERPRINT4_ARG_RANDOM 0x8003
152 #define FINGERPRINT4_ARG_CLAIM 0x8004
153 #define FINGERPRINT4_ARG_PUBLIC_KEY 0x8005
154 #define FINGERPRINT4_ARG_CIPHERTEXT 0x8006
155 #define FINGERPRINT4_ARG_MTU 0x9001
156 #define FINGERPRINT4_ARG_STACK 0xE001
157 #define FINGERPRINT4_ARG_FILL 0xE002
158 #define FINGERPRINT4_ARG_HEAP 0xE003
159 #define FINGERPRINT4_ARG_MODE 0xF001
160 #define FINGERPRINT4_ARG_DEBUG 0xF002
161 #define FINGERPRINT4_ARG_FFFF 0xFFFF
179 #define FINGERPRINT4_ARG_PAYLOAD_MAX_SIZE 234
180 #define FINGERPRINT4_PHY_MTU_SIZE 256
181 #define FINGERPRINT4_TRANSPORT_LAYER_PLD_SIZE 242
187 #define FINGERPRINT4_ACK_BYTES 0x7F01FF7Ful
193 #define FINGERPRINT4_NUM_IMAGES 3
199 #define FINGERPRINT4_DEFAULT_PHY_RX_TIMEOUT_MS 3000
200 #define FINGERPRINT4_INFINITE_TIMEOUT 0
206 #define FINGERPRINT4_DRV_INTERFACE_UART 0
207 #define FINGERPRINT4_DRV_INTERFACE_SPI 1
208 #define FINGERPRINT4_DRV_INTERFACE FINGERPRINT4_DRV_INTERFACE_SPI
218 #define FINGERPRINT4_SET_DATA_SAMPLE_EDGE SET_SPI_DATA_SAMPLE_EDGE
219 #define FINGERPRINT4_SET_DATA_SAMPLE_MIDDLE SET_SPI_DATA_SAMPLE_MIDDLE
237 #if ( FINGERPRINT4_DRV_INTERFACE == FINGERPRINT4_DRV_INTERFACE_SPI )
238 #define FINGERPRINT4_MAP_MIKROBUS( cfg, mikrobus ) \
239 cfg.miso = MIKROBUS( mikrobus, MIKROBUS_MISO ); \
240 cfg.mosi = MIKROBUS( mikrobus, MIKROBUS_MOSI ); \
241 cfg.sck = MIKROBUS( mikrobus, MIKROBUS_SCK ); \
242 cfg.cs = MIKROBUS( mikrobus, MIKROBUS_CS ); \
243 cfg.rst = MIKROBUS( mikrobus, MIKROBUS_RST ); \
244 cfg.irq = MIKROBUS( mikrobus, MIKROBUS_INT )
245 #elif ( FINGERPRINT4_DRV_INTERFACE == FINGERPRINT4_DRV_INTERFACE_UART )
246 #define FINGERPRINT4_MAP_MIKROBUS( cfg, mikrobus ) \
247 cfg.tx_pin = MIKROBUS( mikrobus, MIKROBUS_TX ); \
248 cfg.rx_pin = MIKROBUS( mikrobus, MIKROBUS_RX ); \
249 cfg.rst = MIKROBUS( mikrobus, MIKROBUS_RST );
303 #if ( FINGERPRINT4_DRV_INTERFACE == FINGERPRINT4_DRV_INTERFACE_SPI )
310 #elif ( FINGERPRINT4_DRV_INTERFACE == FINGERPRINT4_DRV_INTERFACE_UART )
332 #if ( FINGERPRINT4_DRV_INTERFACE == FINGERPRINT4_DRV_INTERFACE_SPI )
347 #elif ( FINGERPRINT4_DRV_INTERFACE == FINGERPRINT4_DRV_INTERFACE_UART )
355 uart_data_bits_t data_bit;
356 uart_parity_t parity_bit;
357 uart_stop_bits_t stop_bit;
472 #if ( FINGERPRINT4_DRV_INTERFACE == FINGERPRINT4_DRV_INTERFACE_SPI )
626 uint16_t arg2_key,
void *arg2_data, uint16_t arg2_length );
987 #endif // FINGERPRINT4_H
Fingerprint 4 Click configuration object.
Definition: fingerprint4.h:331
uint16_t lnk_size
Definition: fingerprint4.h:286
@ FINGERPRINT4_RES_IMAGE_CAPTURE_ERROR
Definition: fingerprint4.h:386
Fingerprint 4 Click HCP packet object.
Definition: fingerprint4.h:272
@ FINGERPRINT4_RES_ID_NOT_UNIQUE
Definition: fingerprint4.h:383
err_t fingerprint4_template_get_count(fingerprint4_t *ctx, uint16_t *count)
Fingerprint 4 template get count function.
uint32_t crc
Definition: fingerprint4.h:291
pin_name_t miso
Definition: fingerprint4.h:334
@ FINGERPRINT4_RES_WRONG_STATE
Definition: fingerprint4.h:381
@ FINGERPRINT4_RES_NOT_INITIALIZED
Definition: fingerprint4.h:397
err_t fingerprint4_version(fingerprint4_t *ctx, char *version, uint8_t len)
Fingerprint 4 version function.
@ FINGERPRINT4_RES_INTERNAL_ERROR
Definition: fingerprint4.h:373
err_t fingerprint4_template_save(fingerprint4_t *ctx, uint16_t template_id)
Fingerprint 4 template save function.
uint16_t num_args
Definition: fingerprint4.h:274
err_t fingerprint4_image_put(fingerprint4_t *ctx, uint8_t *data_in, uint32_t size)
Fingerprint 4 image put function.
err_t fingerprint4_add_arg(fingerprint4_t *ctx, uint16_t arg_key, void *arg_data, uint16_t arg_size)
Fingerprint 4 add arg function.
fingerprint4_hcp_packet_t hcp_packet
Definition: fingerprint4.h:290
This file contains SPI specific macros, functions, etc.
err_t fingerprint4_template_put(fingerprint4_t *ctx, uint8_t *data_in, uint16_t length)
Fingerprint 4 template put function.
@ FINGERPRINT4_RES_MISSING_TEMPLATE
Definition: fingerprint4.h:389
@ FINGERPRINT4_RES_IO_ERROR
Definition: fingerprint4.h:379
err_t fingerprint4_template_remove_all(fingerprint4_t *ctx)
Fingerprint 4 template remove all function.
err_t fingerprint4_image_delete(fingerprint4_t *ctx)
Fingerprint 4 image delete function.
err_t fingerprint4_wait_finger_not_present(fingerprint4_t *ctx, uint32_t timeout)
Fingerprint 4 wait finger not present function.
Fingerprint 4 Click HCP argument data object.
Definition: fingerprint4.h:260
uint16_t t_seq_nr
Definition: fingerprint4.h:288
err_t fingerprint4_image_create(fingerprint4_t *ctx)
Fingerprint 4 image create function.
void fingerprint4_reset_device(fingerprint4_t *ctx)
Fingerprint 4 reset device function.
@ FINGERPRINT4_RES_INVALID_FORMAT
Definition: fingerprint4.h:385
@ FINGERPRINT4_RES_ERROR
Definition: fingerprint4.h:372
uint16_t size
Definition: fingerprint4.h:262
@ FINGERPRINT4_RES_SENSOR_NOT_INITIALIZED
Definition: fingerprint4.h:392
@ FINGERPRINT4_RES_INVALID_PARAMETER
Definition: fingerprint4.h:388
err_t fingerprint4_init_cmd(fingerprint4_t *ctx, uint16_t cmd, uint16_t arg_key)
Fingerprint 4 init cmd function.
@ FINGERPRINT4_RES_ID_NOT_FOUND
Definition: fingerprint4.h:384
fingerprint4_hcp_arg_data_t arg
Definition: fingerprint4.h:320
err_t fingerprint4_identify_finger(fingerprint4_t *ctx, uint32_t timeout, uint16_t *template_id, bool *match)
Fingerprint 4 identify finger function.
err_t fingerprint4_transceive(fingerprint4_t *ctx)
Fingerprint 4 transceive function.
spi_master_t spi
Definition: fingerprint4.h:307
err_t fingerprint4_unique_id_get(fingerprint4_t *ctx, uint8_t *unique_id)
Fingerprint 4 version function.
#define FINGERPRINT4_PHY_MTU_SIZE
Definition: fingerprint4.h:180
fingerprint4_return_value_t
Fingerprint 4 Click return value data.
Definition: fingerprint4.h:370
@ FINGERPRINT4_RES_SENSOR_MISMATCH
Definition: fingerprint4.h:387
#define FINGERPRINT4_ARG_PAYLOAD_MAX_SIZE
Fingerprint 4 buffers size setting.
Definition: fingerprint4.h:179
err_t fingerprint4_image_get_size(fingerprint4_t *ctx, uint32_t *size)
Fingerprint 4 image get size function.
err_t fingerprint4_init(fingerprint4_t *ctx, fingerprint4_cfg_t *cfg)
Fingerprint 4 initialization function.
Fingerprint 4 Click context object.
Definition: fingerprint4.h:300
err_t fingerprint4_wait_finger_present(fingerprint4_t *ctx, uint32_t timeout)
Fingerprint 4 wait finger present function.
pin_name_t chip_select
Definition: fingerprint4.h:309
err_t fingerprint4_template_remove(fingerprint4_t *ctx, uint16_t template_id)
Fingerprint 4 template remove function.
err_t fingerprint4_receive(fingerprint4_t *ctx)
Fingerprint 4 receive function.
spi_master_chip_select_polarity_t cs_polarity
Definition: fingerprint4.h:342
uint32_t phy_rx_timeout
Definition: fingerprint4.h:318
@ FINGERPRINT4_RES_CANCELLED
Definition: fingerprint4.h:376
uint16_t cmd_id
Definition: fingerprint4.h:273
err_t fingerprint4_template_get_ids(fingerprint4_t *ctx)
Fingerprint 4 template get ids function.
uint32_t spi_speed
Definition: fingerprint4.h:340
uint16_t arg
Definition: fingerprint4.h:261
err_t fingerprint4_template_load_storage(fingerprint4_t *ctx, uint16_t template_id)
Fingerprint 4 template load storage function.
err_t fingerprint4_uart_speed_set(fingerprint4_t *ctx, uint32_t speed)
Fingerprint 4 uart speed set function.
@ FINGERPRINT4_RES_OK
Definition: fingerprint4.h:371
uint16_t t_seq_len
Definition: fingerprint4.h:289
err_t fingerprint4_get_arg(fingerprint4_t *ctx, uint16_t arg_key)
Fingerprint 4 get arg function.
err_t fingerprint4_sensor_reset(fingerprint4_t *ctx)
Fingerprint 4 sensor reset function.
pin_name_t mosi
Definition: fingerprint4.h:335
@ FINGERPRINT4_RES_FINGER_NOT_STABLE
Definition: fingerprint4.h:396
err_t fingerprint4_sensor_calibrate_remove(fingerprint4_t *ctx)
Fingerprint 4 sensor calibrate remove function.
@ FINGERPRINT4_RES_INVALID_CALIBRATION
Definition: fingerprint4.h:390
@ FINGERPRINT4_RES_NOT_SUPPORTED
Definition: fingerprint4.h:395
err_t fingerprint4_send_cmd_arg(fingerprint4_t *ctx, uint16_t cmd, uint16_t arg1_key, uint16_t arg2_key, void *arg2_data, uint16_t arg2_length)
Fingerprint 4 send cmd arg function.
err_t fingerprint4_generic_read(fingerprint4_t *ctx, uint8_t *data_out, uint16_t len)
Fingerprint 4 data reading function.
err_t fingerprint4_sw_reset(fingerprint4_t *ctx)
Fingerprint 4 sw reset function.
uint16_t lnk_chn
Definition: fingerprint4.h:285
err_t fingerprint4_copy_arg(fingerprint4_t *ctx, uint16_t arg_key, void *arg_data, uint16_t arg_size)
Fingerprint 4 copy arg function.
err_t fingerprint4_uart_speed_get(fingerprint4_t *ctx, uint32_t *speed)
Fingerprint 4 uart speed get function.
Fingerprint 4 Click PHY packet object.
Definition: fingerprint4.h:284
digital_out_t rst
Definition: fingerprint4.h:302
pin_name_t rst
Definition: fingerprint4.h:345
@ FINGERPRINT4_RES_NO_MEMORY
Definition: fingerprint4.h:377
err_t fingerprint4_image_extract(fingerprint4_t *ctx)
Fingerprint 4 image extract function.
@ FINGERPRINT4_RES_TIMEOUT
Definition: fingerprint4.h:382
@ FINGERPRINT4_RES_STORAGE_NOT_FORMATTED
Definition: fingerprint4.h:391
digital_in_t irq
Definition: fingerprint4.h:305
err_t fingerprint4_generic_write(fingerprint4_t *ctx, uint8_t *data_in, uint16_t len)
Fingerprint 4 data writing function.
err_t fingerprint4_template_remove_ram(fingerprint4_t *ctx)
Fingerprint 4 template remove ram function.
pin_name_t cs
Definition: fingerprint4.h:337
@ FINGERPRINT4_RES_NOT_IMPLEMENTED
Definition: fingerprint4.h:375
err_t fingerprint4_sensor_calibrate(fingerprint4_t *ctx)
Fingerprint 4 sensor calibrate function.
pin_name_t irq
Definition: fingerprint4.h:346
spi_master_mode_t spi_mode
Definition: fingerprint4.h:341
uint8_t fingerprint4_get_irq_pin(fingerprint4_t *ctx)
Fingerprint 4 get irq pin function.
uint16_t t_size
Definition: fingerprint4.h:287
pin_name_t sck
Definition: fingerprint4.h:336
err_t fingerprint4_identify(fingerprint4_t *ctx)
Fingerprint 4 identify function.
@ FINGERPRINT4_RES_TOO_MANY_BAD_IMAGES
Definition: fingerprint4.h:393
fingerprint4_packet_t phy_pkt
Definition: fingerprint4.h:322
void fingerprint4_set_rst_pin(fingerprint4_t *ctx, uint8_t state)
Fingerprint 4 set rst pin function.
@ FINGERPRINT4_RES_INVALID_ARGUMENT
Definition: fingerprint4.h:374
@ FINGERPRINT4_RES_CRYPTO_ERROR
Definition: fingerprint4.h:394
err_t fingerprint4_template_get(fingerprint4_t *ctx, uint8_t *data_out, uint32_t size)
Fingerprint 4 template get function.
err_t fingerprint4_send_cmd(fingerprint4_t *ctx, uint16_t cmd, uint16_t arg_key)
Fingerprint 4 send cmd function.
err_t fingerprint4_image_get(fingerprint4_t *ctx, uint8_t *data_out, uint32_t size)
Fingerprint 4 image get function.
@ FINGERPRINT4_RES_NO_RESOURCE
Definition: fingerprint4.h:378
err_t fingerprint4_send(fingerprint4_t *ctx)
Fingerprint 4 send function.
void fingerprint4_cfg_setup(fingerprint4_cfg_t *cfg)
Fingerprint 4 configuration object setup function.
@ FINGERPRINT4_RES_BROKEN_SENSOR
Definition: fingerprint4.h:380