Go to the documentation of this file.
42 #ifdef PREINIT_SUPPORTED
46 #ifdef MikroCCoreVersion
47 #if MikroCCoreVersion >= 1
52 #include "drv_digital_out.h"
53 #include "drv_digital_in.h"
66 #define LR5_MAP_MIKROBUS( cfg, mikrobus ) \
67 cfg.tx_pin = MIKROBUS( mikrobus, MIKROBUS_TX ); \
68 cfg.rx_pin = MIKROBUS( mikrobus, MIKROBUS_RX ); \
69 cfg.rst = MIKROBUS( mikrobus, MIKROBUS_RST ); \
70 cfg.wk = MIKROBUS( mikrobus, MIKROBUS_CS ); \
71 cfg.int_pin = MIKROBUS( mikrobus, MIKROBUS_INT )
78 #define LR5_RETVAL uint8_t
81 #define LR5_INIT_ERROR 0xFF
88 #define RESPONSE_BIT 0x80
89 #define FRAME_HEADER 0xAA
96 #define RESET_CMD 0x30
97 #define FACTORY_RESET_CMD 0x31
98 #define EEPROM_WRITE_CMD 0x32
99 #define EEPROM_READ_CMD 0x33
100 #define GET_FW_VERSION_CMD 0x34
101 #define GET_SERIALNO_CMD 0x35
102 #define GET_DEV_EUI_CMD 0x36
103 #define JOIN_CMD 0x40
104 #define JOIN_IND 0x41
105 #define GET_ACT_STATUS_CMD 0x42
106 #define SET_APP_KEY_CMD 0x43
107 #define SET_APP_SESSION_KEY_CMD 0x44
108 #define SET_NWK_SESSION_KEY_CMD 0x45
109 #define TX_MSG_CMD 0x46
110 #define TX_MSG_CONFIRMED_IND 0x47
111 #define TX_MSG_UNCONFIRMED_IND 0x48
112 #define RX_MSG_IND 0x49
113 #define GET_SESSION_STATUS_CMD 0x4A
114 #define SET_NEXT_DR_CMD 0x4B
115 #define SET_BATTERY_LVL_CMD 0x50
116 #define GET_BATTERY_LVL_CMD 0x51
117 #define SET_UPLINK_CNT_CMD 0x52
118 #define GET_UPLINK_CNT_CMD 0x53
119 #define SET_DOWNLINK_CNT_CMD 0x54
120 #define GET_DOWNLINK_CNT_CMD 0x55
121 #define SET_CH_MASK_CMD 0x57
122 #define GET_CH_PARAM_CMD 0x58
130 #define LR5_OTAA 0x01
131 #define LR5_UNRELIABLE_DATA_TX 0x00
132 #define LR5_RELIABLE_DATA_TX 0x01
133 #define LR5_SF10_125KHZ 0x00
134 #define LR5_SF9_125KHZ 0x01
135 #define LR5_SF8_125KHZ 0x02
136 #define LR5_SF7_125KHZ 0x03
137 #define LR5_SF8_500KHZ 0x04
138 #define LR5_CH_IDX_0 0x00
139 #define LR5_CH_IDX_1 0x01
140 #define LR5_CH_IDX_2 0x02
141 #define LR5_CH_IDX_3 0x03
142 #define LR5_CH_IDX_4 0x04
143 #define LR5_CH_IDX_5 0x05
144 #define LR5_CH_IDX_6 0x06
145 #define LR5_CH_IDX_7 0x07
146 #define LR5_CH_IDX_8 0x08
147 #define LR5_CH_IDX_9 0x09
148 #define LR5_CH_IDX_10 0x0A
149 #define LR5_CH_IDX_11 0x0B
150 #define LR5_CH_IDX_12 0x0C
151 #define LR5_CH_IDX_13 0x0D
152 #define LR5_CH_IDX_14 0x0E
153 #define LR5_CH_IDX_15 0x0F
160 #define LR5_FRAME_HEADER_ERR 0xFF
161 #define LR5_CMD_RESPONSE_ERR 0xFE
162 #define LR5_CHKSUM_ERR 0xFD
163 #define LR5_NBYTES_INVALID 0xFC
164 #define LR5_CH_IDX_INVALID 0xFB
166 #define LR5_RESPONSE_NOT_RECEIVED 0x00
167 #define LR5_RESPONSE_RECEIVED 0x01
168 #define LR5_CMD_RESPONSE_READY 0x01
169 #define LR5_IND_RESPONSE_READY 0x02
170 #define LR5_DATA_READY 0x00
171 #define LR5_DATA_NOT_READY 0x01
178 #define DRV_RX_BUFFER_SIZE 500
191 typedef void ( *
lr5_hdl_t )( uint8_t*, uint8_t*, uint8_t* );
216 uint8_t rx_dat[ 260 ];
229 uint8_t cmd_data[ 256 ];
#define DRV_RX_BUFFER_SIZE
Definition: lr5.h:178
digital_out_t rst
Definition: lr5.h:200
void(* lr5_hdl_t)(uint8_t *, uint8_t *, uint8_t *)
Handler definition for data logging.
Definition: lr5.h:191
void lr5_cfg_setup(lr5_cfg_t *cfg)
Config Object Initialization function.
int32_t lr5_generic_read(lr5_t *ctx, char *data_buf, uint16_t max_len)
Generic read function.
uint8_t received_flag
Definition: lr5.h:215
void lr5_get_downlink_cnt_cmd(lr5_t *ctx)
Get Downlink Counter Command.
LR5_RETVAL lr5_get_ch_param_cmd(lr5_t *ctx, uint8_t ch_idx)
Get Channel Parameters Command.
uint16_t rx_cnt
Definition: lr5.h:217
lr5_hdl_t driver_hdl
Definition: lr5.h:218
void lr5_set_uplink_cnt_cmd(lr5_t *ctx, uint32_t uplink_cnt)
Set Uplink Counter Command.
LR5_RETVAL lr5_tx_msg_cmd(lr5_t *ctx, lr5_msg_t *msg)
TX Message Command.
void lr5_join_cmd(lr5_t *ctx, uint8_t mode)
Join Network Command.
void lr5_factory_reset_cmd(lr5_t *ctx)
Factory Reset Command.
void lr5_set_nwk_session_key_cmd(lr5_t *ctx, uint8_t *nwk_s_key)
Set Nwk Session Key Command.
void lr5_reset_cmd(lr5_t *ctx)
SW Reset Command.
digital_in_t int_pin
Definition: lr5.h:205
LR5_RETVAL lr5_eeprom_write_cmd(lr5_t *ctx, uint8_t start_addr, uint8_t *data_in, uint8_t n_bytes)
EEPROM Write Command.
void lr5_set_downlink_cnt_cmd(lr5_t *ctx, uint32_t downlink_cnt)
Set Downlink Counter Command.
digital_out_t wk
Definition: lr5.h:201
void lr5_set_next_dr_cmd(lr5_t *ctx, uint8_t data_rate)
Set Next TX Data Rate Command.
LR5_RETVAL lr5_init(lr5_t *ctx, lr5_cfg_t *cfg)
Initialization function.
uint8_t cmd_code
Definition: lr5.h:227
pin_name_t rst
Definition: lr5.h:258
uart_t uart
Definition: lr5.h:209
uart_parity_t parity_bit
Definition: lr5.h:267
void lr5_get_battery_level_cmd(lr5_t *ctx)
Get Battery Level Command.
void lr5_get_activation_status_cmd(lr5_t *ctx)
Get Activation Status Command.
void lr5_get_dev_eui_cmd(lr5_t *ctx)
Get DevEUI Command.
LR5_RETVAL lr5_response_ready(lr5_t *ctx)
Response Ready function.
Click ctx object definition.
Definition: lr5.h:197
uint8_t port
Definition: lr5.h:239
uart_stop_bits_t stop_bit
Definition: lr5.h:268
uint8_t command_code
Definition: lr5.h:214
pin_name_t rx_pin
Definition: lr5.h:253
Click configuration structure definition.
Definition: lr5.h:250
uint32_t baud_rate
Definition: lr5.h:264
void lr5_get_serial_no_cmd(lr5_t *ctx)
Get Mipot Serial Number Command.
bool uart_blocking
Definition: lr5.h:265
void lr5_set_ch_mask_cmd(lr5_t *ctx, uint8_t *ch_mask)
Set Channels Mask Command.
pin_name_t wk
Definition: lr5.h:259
uart_data_bits_t data_bit
Definition: lr5.h:266
LR5_RETVAL lr5_task(lr5_t *ctx)
Parser Task function.
#define LR5_RETVAL
Definition: lr5.h:78
uint8_t msg_length
Definition: lr5.h:241
void lr5_get_fw_version_cmd(lr5_t *ctx)
Get FW Version Command.
uint8_t * msg_data
Definition: lr5.h:240
void lr5_hw_reset(lr5_t *ctx)
HW Reset function.
uint8_t options
Definition: lr5.h:238
void lr5_uart_isr(lr5_t *ctx)
UART ISR function.
void lr5_set_app_session_key_cmd(lr5_t *ctx, uint8_t *app_s_key)
Set App Session Key Command.
Command structure definition.
Definition: lr5.h:226
LR5_RETVAL lr5_data_indication(lr5_t *ctx)
Data Indication function.
Message command definition.
Definition: lr5.h:237
void lr5_response_handler_set(lr5_t *ctx, void(*handler)(uint8_t *, uint8_t *, uint8_t *))
Set Handler function.
void lr5_get_session_status_cmd(lr5_t *ctx)
Get Session Status Command.
void lr5_set_battery_level_cmd(lr5_t *ctx, uint8_t battery_level)
Set Battery Level Command.
LR5_RETVAL lr5_eeprom_read_cmd(lr5_t *ctx, uint8_t start_addr, uint8_t n_bytes)
EEPROM Read Command.
uint8_t cmd_length
Definition: lr5.h:228
pin_name_t int_pin
Definition: lr5.h:260
pin_name_t tx_pin
Definition: lr5.h:254
void lr5_set_app_key_cmd(lr5_t *ctx, uint8_t *app_key)
Set App Key Command.
void lr5_get_uplink_cnt_cmd(lr5_t *ctx)
Get Uplink Counter Command.