Go to the documentation of this file.
28 #ifndef FINGERPRINT4_H
29 #define FINGERPRINT4_H
35 #include "mikrosdk_version.h"
38 #if mikroSDK_GET_VERSION < 20800ul
39 #include "rcu_delays.h"
45 #include "drv_digital_out.h"
46 #include "drv_digital_in.h"
47 #include "drv_spi_master.h"
71 #define FINGERPRINT4_CMD_NONE 0x0000
72 #define FINGERPRINT4_CMD_CAPTURE 0x0001
73 #define FINGERPRINT4_CMD_ENROLL 0x0002
74 #define FINGERPRINT4_CMD_IDENTIFY 0x0003
75 #define FINGERPRINT4_CMD_MATCH 0x0004
76 #define FINGERPRINT4_CMD_IMAGE 0x0005
77 #define FINGERPRINT4_CMD_TEMPLATE 0x0006
78 #define FINGERPRINT4_CMD_WAIT 0x0007
79 #define FINGERPRINT4_CMD_SETTINGS 0x0008
80 #define FINGERPRINT4_CMD_NAVIGATE 0x1001
81 #define FINGERPRINT4_CMD_SENSOR 0x1002
82 #define FINGERPRINT4_CMD_DEADPIXELS 0x1003
83 #define FINGERPRINT4_CMD_CONNECT 0x2001
84 #define FINGERPRINT4_CMD_RECONNECT 0x2002
85 #define FINGERPRINT4_CMD_RESET 0x3002
86 #define FINGERPRINT4_CMD_CANCEL 0x3003
87 #define FINGERPRINT4_CMD_INFO 0x3004
88 #define FINGERPRINT4_CMD_STORAGE_TEMPLATE 0x4002
89 #define FINGERPRINT4_CMD_STORAGE_CALIBRATION 0x4003
90 #define FINGERPRINT4_CMD_STORAGE_LOG 0x4004
91 #define FINGERPRINT4_CMD_STORAGE_SETTINGS 0x4005
92 #define FINGERPRINT4_CMD_TEST 0x5001
93 #define FINGERPRINT4_CMD_MCU 0x5002
94 #define FINGERPRINT4_CMD_GPIO 0x5003
95 #define FINGERPRINT4_CMD_COMMUNICATION 0x6001
96 #define FINGERPRINT4_CMD_APP_BASE 0xE000
97 #define FINGERPRINT4_CMD_DIAG 0xF003
98 #define FINGERPRINT4_CMD_FFFF 0xFFFF
104 #define FINGERPRINT4_ARG_NONE 0x0000
105 #define FINGERPRINT4_ARG_FINGER_DOWN 0x0001
106 #define FINGERPRINT4_ARG_FINGER_UP 0x0002
107 #define FINGERPRINT4_ARG_START 0x0003
108 #define FINGERPRINT4_ARG_ADD 0x0004
109 #define FINGERPRINT4_ARG_FINISH 0x0005
110 #define FINGERPRINT4_ARG_ID 0x0006
111 #define FINGERPRINT4_ARG_ALL 0x0007
112 #define FINGERPRINT4_ARG_EXTRACT 0x0008
113 #define FINGERPRINT4_ARG_MATCH_IMAGE 0x0009
114 #define FINGERPRINT4_ARG_MATCH 0x000A
115 #define FINGERPRINT4_ARG_ACQUIRE 0x1001
116 #define FINGERPRINT4_ARG_RELEASE 0x1002
117 #define FINGERPRINT4_ARG_SET 0x1003
118 #define FINGERPRINT4_ARG_GET 0x1004
119 #define FINGERPRINT4_ARG_UPLOAD 0x1005
120 #define FINGERPRINT4_ARG_DOWNLOAD 0x1006
121 #define FINGERPRINT4_ARG_CREATE 0x1007
122 #define FINGERPRINT4_ARG_SAVE 0x1008
123 #define FINGERPRINT4_ARG_DELETE 0x1009
124 #define FINGERPRINT4_ARG_DATA 0x100A
125 #define FINGERPRINT4_ARG_UPDATE 0x100B
126 #define FINGERPRINT4_ARG_SEQ_NR 0x100C
127 #define FINGERPRINT4_ARG_SEQ_LEN 0x100D
128 #define FINGERPRINT4_ARG_RESULT 0x2001
129 #define FINGERPRINT4_ARG_COUNT 0x2002
130 #define FINGERPRINT4_ARG_SIZE 0x2003
131 #define FINGERPRINT4_ARG_LEVEL 0x2004
132 #define FINGERPRINT4_ARG_FORMAT 0x2005
133 #define FINGERPRINT4_ARG_FLAG 0x2006
134 #define FINGERPRINT4_ARG_PROPERTIES 0x2007
135 #define FINGERPRINT4_ARG_SPEED 0x2008
136 #define FINGERPRINT4_ARG_PROD_TEST 0x2009
137 #define FINGERPRINT4_ARG_SENSOR_TYPE 0x3001
138 #define FINGERPRINT4_ARG_WIDTH 0x3002
139 #define FINGERPRINT4_ARG_HEIGHT 0x3003
140 #define FINGERPRINT4_ARG_RESET 0x3004
141 #define FINGERPRINT4_ARG_DPI 0x3005
142 #define FINGERPRINT4_ARG_MAX_SPI_CLOCK 0x3006
143 #define FINGERPRINT4_ARG_NUM_SUB_AREAS_WIDTH 0x3007
144 #define FINGERPRINT4_ARG_NUM_SUB_AREAS_HEIGHT 0x3008
145 #define FINGERPRINT4_ARG_IRQ_STATUS 0x3009
146 #define FINGERPRINT4_ARG_RESET_HARD 0x300A
147 #define FINGERPRINT4_ARG_IDLE 0x4001
148 #define FINGERPRINT4_ARG_SLEEP 0x4002
149 #define FINGERPRINT4_ARG_DEEP_SLEEP 0x4003
150 #define FINGERPRINT4_ARG_POWER_MODE 0x4004
151 #define FINGERPRINT4_ARG_BUSY_WAIT 0x4005
152 #define FINGERPRINT4_ARG_TIMEOUT 0x5001
153 #define FINGERPRINT4_ARG_DONE 0x5002
154 #define FINGERPRINT4_ARG_BOOT 0x6001
155 #define FINGERPRINT4_ARG_STATUS 0x6002
156 #define FINGERPRINT4_ARG_VERSION 0x6003
157 #define FINGERPRINT4_ARG_UNIQUE_ID 0x6004
158 #define FINGERPRINT4_ARG_APP_BASE 0x7000
159 #define FINGERPRINT4_ARG_NONCE 0x8001
160 #define FINGERPRINT4_ARG_MAC 0x8002
161 #define FINGERPRINT4_ARG_RANDOM 0x8003
162 #define FINGERPRINT4_ARG_CLAIM 0x8004
163 #define FINGERPRINT4_ARG_PUBLIC_KEY 0x8005
164 #define FINGERPRINT4_ARG_CIPHERTEXT 0x8006
165 #define FINGERPRINT4_ARG_MTU 0x9001
166 #define FINGERPRINT4_ARG_STACK 0xE001
167 #define FINGERPRINT4_ARG_FILL 0xE002
168 #define FINGERPRINT4_ARG_HEAP 0xE003
169 #define FINGERPRINT4_ARG_MODE 0xF001
170 #define FINGERPRINT4_ARG_DEBUG 0xF002
171 #define FINGERPRINT4_ARG_FFFF 0xFFFF
189 #define FINGERPRINT4_ARG_PAYLOAD_MAX_SIZE 234
190 #define FINGERPRINT4_PHY_MTU_SIZE 256
191 #define FINGERPRINT4_TRANSPORT_LAYER_PLD_SIZE 242
197 #define FINGERPRINT4_ACK_BYTES 0x7F01FF7Ful
203 #define FINGERPRINT4_NUM_IMAGES 3
209 #define FINGERPRINT4_DEFAULT_PHY_RX_TIMEOUT_MS 3000
210 #define FINGERPRINT4_INFINITE_TIMEOUT 0
216 #define FINGERPRINT4_DRV_INTERFACE_UART 0
217 #define FINGERPRINT4_DRV_INTERFACE_SPI 1
218 #define FINGERPRINT4_DRV_INTERFACE FINGERPRINT4_DRV_INTERFACE_SPI
228 #define FINGERPRINT4_SET_DATA_SAMPLE_EDGE SET_SPI_DATA_SAMPLE_EDGE
229 #define FINGERPRINT4_SET_DATA_SAMPLE_MIDDLE SET_SPI_DATA_SAMPLE_MIDDLE
247 #if ( FINGERPRINT4_DRV_INTERFACE == FINGERPRINT4_DRV_INTERFACE_SPI )
248 #define FINGERPRINT4_MAP_MIKROBUS( cfg, mikrobus ) \
249 cfg.miso = MIKROBUS( mikrobus, MIKROBUS_MISO ); \
250 cfg.mosi = MIKROBUS( mikrobus, MIKROBUS_MOSI ); \
251 cfg.sck = MIKROBUS( mikrobus, MIKROBUS_SCK ); \
252 cfg.cs = MIKROBUS( mikrobus, MIKROBUS_CS ); \
253 cfg.rst = MIKROBUS( mikrobus, MIKROBUS_RST ); \
254 cfg.irq = MIKROBUS( mikrobus, MIKROBUS_INT )
255 #elif ( FINGERPRINT4_DRV_INTERFACE == FINGERPRINT4_DRV_INTERFACE_UART )
256 #define FINGERPRINT4_MAP_MIKROBUS( cfg, mikrobus ) \
257 cfg.tx_pin = MIKROBUS( mikrobus, MIKROBUS_TX ); \
258 cfg.rx_pin = MIKROBUS( mikrobus, MIKROBUS_RX ); \
259 cfg.rst = MIKROBUS( mikrobus, MIKROBUS_RST );
313 #if ( FINGERPRINT4_DRV_INTERFACE == FINGERPRINT4_DRV_INTERFACE_SPI )
320 #elif ( FINGERPRINT4_DRV_INTERFACE == FINGERPRINT4_DRV_INTERFACE_UART )
342 #if ( FINGERPRINT4_DRV_INTERFACE == FINGERPRINT4_DRV_INTERFACE_SPI )
357 #elif ( FINGERPRINT4_DRV_INTERFACE == FINGERPRINT4_DRV_INTERFACE_UART )
365 uart_data_bits_t data_bit;
366 uart_parity_t parity_bit;
367 uart_stop_bits_t stop_bit;
482 #if ( FINGERPRINT4_DRV_INTERFACE == FINGERPRINT4_DRV_INTERFACE_SPI )
636 uint16_t arg2_key,
void *arg2_data, uint16_t arg2_length );
997 #endif // FINGERPRINT4_H
Fingerprint 4 Click configuration object.
Definition: fingerprint4.h:341
uint16_t lnk_size
Definition: fingerprint4.h:296
@ FINGERPRINT4_RES_IMAGE_CAPTURE_ERROR
Definition: fingerprint4.h:396
Fingerprint 4 Click HCP packet object.
Definition: fingerprint4.h:282
@ FINGERPRINT4_RES_ID_NOT_UNIQUE
Definition: fingerprint4.h:393
err_t fingerprint4_template_get_count(fingerprint4_t *ctx, uint16_t *count)
Fingerprint 4 template get count function.
uint32_t crc
Definition: fingerprint4.h:301
err_t fingerprint4_template_put(fingerprint4_t *ctx, uint8_t *data_in, uint16_t size)
Fingerprint 4 template put function.
pin_name_t miso
Definition: fingerprint4.h:344
@ FINGERPRINT4_RES_WRONG_STATE
Definition: fingerprint4.h:391
@ FINGERPRINT4_RES_NOT_INITIALIZED
Definition: fingerprint4.h:407
err_t fingerprint4_version(fingerprint4_t *ctx, char *version, uint8_t len)
Fingerprint 4 version function.
@ FINGERPRINT4_RES_INTERNAL_ERROR
Definition: fingerprint4.h:383
err_t fingerprint4_template_save(fingerprint4_t *ctx, uint16_t template_id)
Fingerprint 4 template save function.
uint16_t num_args
Definition: fingerprint4.h:284
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:300
This file contains SPI specific macros, functions, etc.
@ FINGERPRINT4_RES_MISSING_TEMPLATE
Definition: fingerprint4.h:399
@ FINGERPRINT4_RES_IO_ERROR
Definition: fingerprint4.h:389
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:270
uint16_t t_seq_nr
Definition: fingerprint4.h:298
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:395
@ FINGERPRINT4_RES_ERROR
Definition: fingerprint4.h:382
uint16_t size
Definition: fingerprint4.h:272
@ FINGERPRINT4_RES_SENSOR_NOT_INITIALIZED
Definition: fingerprint4.h:402
@ FINGERPRINT4_RES_INVALID_PARAMETER
Definition: fingerprint4.h:398
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:394
fingerprint4_hcp_arg_data_t arg
Definition: fingerprint4.h:330
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:317
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:190
fingerprint4_return_value_t
Fingerprint 4 Click return value data.
Definition: fingerprint4.h:380
@ FINGERPRINT4_RES_SENSOR_MISMATCH
Definition: fingerprint4.h:397
#define FINGERPRINT4_ARG_PAYLOAD_MAX_SIZE
Fingerprint 4 buffers size setting.
Definition: fingerprint4.h:189
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:310
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:319
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:352
uint32_t phy_rx_timeout
Definition: fingerprint4.h:328
@ FINGERPRINT4_RES_CANCELLED
Definition: fingerprint4.h:386
uint16_t cmd_id
Definition: fingerprint4.h:283
err_t fingerprint4_template_get_ids(fingerprint4_t *ctx)
Fingerprint 4 template get ids function.
uint32_t spi_speed
Definition: fingerprint4.h:350
uint16_t arg
Definition: fingerprint4.h:271
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:381
uint16_t t_seq_len
Definition: fingerprint4.h:299
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:345
@ FINGERPRINT4_RES_FINGER_NOT_STABLE
Definition: fingerprint4.h:406
err_t fingerprint4_sensor_calibrate_remove(fingerprint4_t *ctx)
Fingerprint 4 sensor calibrate remove function.
@ FINGERPRINT4_RES_INVALID_CALIBRATION
Definition: fingerprint4.h:400
@ FINGERPRINT4_RES_NOT_SUPPORTED
Definition: fingerprint4.h:405
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:295
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:294
digital_out_t rst
Definition: fingerprint4.h:312
pin_name_t rst
Definition: fingerprint4.h:355
@ FINGERPRINT4_RES_NO_MEMORY
Definition: fingerprint4.h:387
err_t fingerprint4_image_extract(fingerprint4_t *ctx)
Fingerprint 4 image extract function.
@ FINGERPRINT4_RES_TIMEOUT
Definition: fingerprint4.h:392
@ FINGERPRINT4_RES_STORAGE_NOT_FORMATTED
Definition: fingerprint4.h:401
digital_in_t irq
Definition: fingerprint4.h:315
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:347
@ FINGERPRINT4_RES_NOT_IMPLEMENTED
Definition: fingerprint4.h:385
err_t fingerprint4_sensor_calibrate(fingerprint4_t *ctx)
Fingerprint 4 sensor calibrate function.
pin_name_t irq
Definition: fingerprint4.h:356
spi_master_mode_t spi_mode
Definition: fingerprint4.h:351
uint8_t fingerprint4_get_irq_pin(fingerprint4_t *ctx)
Fingerprint 4 get irq pin function.
uint16_t t_size
Definition: fingerprint4.h:297
pin_name_t sck
Definition: fingerprint4.h:346
err_t fingerprint4_identify(fingerprint4_t *ctx)
Fingerprint 4 identify function.
@ FINGERPRINT4_RES_TOO_MANY_BAD_IMAGES
Definition: fingerprint4.h:403
fingerprint4_packet_t phy_pkt
Definition: fingerprint4.h:332
void fingerprint4_set_rst_pin(fingerprint4_t *ctx, uint8_t state)
Fingerprint 4 set rst pin function.
@ FINGERPRINT4_RES_INVALID_ARGUMENT
Definition: fingerprint4.h:384
@ FINGERPRINT4_RES_CRYPTO_ERROR
Definition: fingerprint4.h:404
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:388
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:390