38 #include "drv_digital_out.h" 39 #include "drv_digital_in.h" 52 #define FT_MAP_MIKROBUS( cfg, mikrobus ) \ 53 cfg.tx_pin = MIKROBUS( mikrobus, MIKROBUS_TX ); \ 54 cfg.rx_pin = MIKROBUS( mikrobus, MIKROBUS_RX ); \ 55 cfg.rst = MIKROBUS( mikrobus, MIKROBUS_RST ); \ 56 cfg.cs = MIKROBUS( mikrobus, MIKROBUS_CS ) 63 #define FT_RETVAL uint8_t 66 #define FT_INIT_ERROR 0xFF 73 #define DRV_HEADER_DATA 0x40 74 #define DRV_HEADER_LEN 0x05 75 #define DRV_DATA_CRC_LEN 0x02 82 #define DRV_NEW_DATA_AVAILABLE 1 83 #define DRV_CONFIRMED_PACKAGE 1 84 #define DRV_CHACK_HEDER_DATA_1 0 85 #define DRV_CHACK_HEDER_DATA_2 1 86 #define DRV_CHACK_LEN_DATA_LSB 2 87 #define DRV_CHACK_LEN_DATA_MSB 3 94 #define FT_NEW_DATA_AVAILABLE 1 95 #define FT_NEW_DATA_NOT_AVAILABLE 0 102 #define DRV_RX_BUFFER_SIZE 500 103 #define MAX_DATA_BUFFER 512 171 static const uint16_t CRC_TABLE[ 256 ] =
173 0X0000, 0XC0C1, 0XC181, 0X0140, 0XC301, 0X03C0, 0X0280, 0XC241,
174 0XC601, 0X06C0, 0X0780, 0XC741, 0X0500, 0XC5C1, 0XC481, 0X0440,
175 0XCC01, 0X0CC0, 0X0D80, 0XCD41, 0X0F00, 0XCFC1, 0XCE81, 0X0E40,
176 0X0A00, 0XCAC1, 0XCB81, 0X0B40, 0XC901, 0X09C0, 0X0880, 0XC841,
177 0XD801, 0X18C0, 0X1980, 0XD941, 0X1B00, 0XDBC1, 0XDA81, 0X1A40,
178 0X1E00, 0XDEC1, 0XDF81, 0X1F40, 0XDD01, 0X1DC0, 0X1C80, 0XDC41,
179 0X1400, 0XD4C1, 0XD581, 0X1540, 0XD701, 0X17C0, 0X1680, 0XD641,
180 0XD201, 0X12C0, 0X1380, 0XD341, 0X1100, 0XD1C1, 0XD081, 0X1040,
181 0XF001, 0X30C0, 0X3180, 0XF141, 0X3300, 0XF3C1, 0XF281, 0X3240,
182 0X3600, 0XF6C1, 0XF781, 0X3740, 0XF501, 0X35C0, 0X3480, 0XF441,
183 0X3C00, 0XFCC1, 0XFD81, 0X3D40, 0XFF01, 0X3FC0, 0X3E80, 0XFE41,
184 0XFA01, 0X3AC0, 0X3B80, 0XFB41, 0X3900, 0XF9C1, 0XF881, 0X3840,
185 0X2800, 0XE8C1, 0XE981, 0X2940, 0XEB01, 0X2BC0, 0X2A80, 0XEA41,
186 0XEE01, 0X2EC0, 0X2F80, 0XEF41, 0X2D00, 0XEDC1, 0XEC81, 0X2C40,
187 0XE401, 0X24C0, 0X2580, 0XE541, 0X2700, 0XE7C1, 0XE681, 0X2640,
188 0X2200, 0XE2C1, 0XE381, 0X2340, 0XE101, 0X21C0, 0X2080, 0XE041,
189 0XA001, 0X60C0, 0X6180, 0XA141, 0X6300, 0XA3C1, 0XA281, 0X6240,
190 0X6600, 0XA6C1, 0XA781, 0X6740, 0XA501, 0X65C0, 0X6480, 0XA441,
191 0X6C00, 0XACC1, 0XAD81, 0X6D40, 0XAF01, 0X6FC0, 0X6E80, 0XAE41,
192 0XAA01, 0X6AC0, 0X6B80, 0XAB41, 0X6900, 0XA9C1, 0XA881, 0X6840,
193 0X7800, 0XB8C1, 0XB981, 0X7940, 0XBB01, 0X7BC0, 0X7A80, 0XBA41,
194 0XBE01, 0X7EC0, 0X7F80, 0XBF41, 0X7D00, 0XBDC1, 0XBC81, 0X7C40,
195 0XB401, 0X74C0, 0X7580, 0XB541, 0X7700, 0XB7C1, 0XB681, 0X7640,
196 0X7200, 0XB2C1, 0XB381, 0X7340, 0XB101, 0X71C0, 0X7080, 0XB041,
197 0X5000, 0X90C1, 0X9181, 0X5140, 0X9301, 0X53C0, 0X5280, 0X9241,
198 0X9601, 0X56C0, 0X5780, 0X9741, 0X5500, 0X95C1, 0X9481, 0X5440,
199 0X9C01, 0X5CC0, 0X5D80, 0X9D41, 0X5F00, 0X9FC1, 0X9E81, 0X5E40,
200 0X5A00, 0X9AC1, 0X9B81, 0X5B40, 0X9901, 0X59C0, 0X5880, 0X9841,
201 0X8801, 0X48C0, 0X4980, 0X8941, 0X4B00, 0X8BC1, 0X8A81, 0X4A40,
202 0X4E00, 0X8EC1, 0X8F81, 0X4F40, 0X8D01, 0X4DC0, 0X4C80, 0X8C41,
203 0X4400, 0X84C1, 0X8581, 0X4540, 0X8701, 0X47C0, 0X4680, 0X8641,
204 0X8201, 0X42C0, 0X4380, 0X8341, 0X4100, 0X81C1, 0X8081, 0X4040
#define MAX_DATA_BUFFER
Definition: ft.h:103
digital_out_t rst
Definition: ft.h:119
int32_t ft_generic_read(ft_t *ctx, char *data_buf, uint16_t max_len)
Generic read function.
Click ctx object definition.
Definition: ft.h:115
digital_out_t cs
Definition: ft.h:120
FT_RETVAL ft_init(ft_t *ctx, ft_cfg_t *cfg)
Initialization function.
void ft_cfg_setup(ft_cfg_t *cfg)
Config Object Initialization function.
uart_t uart
Definition: ft.h:124
#define FT_RETVAL
Definition: ft.h:63
pin_name_t tx_pin
Definition: ft.h:147
uart_parity_t parity_bit
Definition: ft.h:159
uart_data_bits_t data_bit
Definition: ft.h:158
uint16_t drv_buff_cnt
Definition: ft.h:134
uint16_t drv_rsp_lenght
Definition: ft.h:135
pin_name_t cs
Definition: ft.h:152
void ft_default_cfg(ft_t *ctx)
Click Default Configuration function.
void ft_generic_write(ft_t *ctx, char *data_buf, uint16_t len)
Generic write function.
bool uart_blocking
Definition: ft.h:157
uint8_t drv_new_data
Definition: ft.h:130
#define DRV_RX_BUFFER_SIZE
Definition: ft.h:102
uart_stop_bits_t stop_bit
Definition: ft.h:160
uint8_t ft_get_data_status(ft_t *ctx)
Gets current status of data.
void ft_send_package(ft_t *ctx, uint8_t *data_buf, uint16_t len, uint8_t queue)
Sends full package to other module.
void ft_isr_parser(ft_t *ctx, uint8_t rsp_data)
Collecting and preserving data received via uart interrupt routine.
pin_name_t rst
Definition: ft.h:151
uint32_t baud_rate
Definition: ft.h:156
pin_name_t rx_pin
Definition: ft.h:146
void ft_set_rst_pin(ft_t *ctx, uint8_t state)
Set RST pin state.
Click configuration structure definition.
Definition: ft.h:142
uint8_t drv_rsp_flag
Definition: ft.h:133
uint8_t drv_start_package
Definition: ft.h:131
uint16_t ft_get_data(ft_t *ctx, uint8_t *data_buf)
Gets new received data.