Go to the documentation of this file.
38 #include "drv_digital_out.h"
39 #include "drv_digital_in.h"
52 #define LR5_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.wk = MIKROBUS( mikrobus, MIKROBUS_CS ); \
57 cfg.int_pin = MIKROBUS( mikrobus, MIKROBUS_INT )
64 #define LR5_RETVAL uint8_t
67 #define LR5_INIT_ERROR 0xFF
74 #define RESPONSE_BIT 0x80
75 #define FRAME_HEADER 0xAA
82 #define RESET_CMD 0x30
83 #define FACTORY_RESET_CMD 0x31
84 #define EEPROM_WRITE_CMD 0x32
85 #define EEPROM_READ_CMD 0x33
86 #define GET_FW_VERSION_CMD 0x34
87 #define GET_SERIALNO_CMD 0x35
88 #define GET_DEV_EUI_CMD 0x36
91 #define GET_ACT_STATUS_CMD 0x42
92 #define SET_APP_KEY_CMD 0x43
93 #define SET_APP_SESSION_KEY_CMD 0x44
94 #define SET_NWK_SESSION_KEY_CMD 0x45
95 #define TX_MSG_CMD 0x46
96 #define TX_MSG_CONFIRMED_IND 0x47
97 #define TX_MSG_UNCONFIRMED_IND 0x48
98 #define RX_MSG_IND 0x49
99 #define GET_SESSION_STATUS_CMD 0x4A
100 #define SET_NEXT_DR_CMD 0x4B
101 #define SET_BATTERY_LVL_CMD 0x50
102 #define GET_BATTERY_LVL_CMD 0x51
103 #define SET_UPLINK_CNT_CMD 0x52
104 #define GET_UPLINK_CNT_CMD 0x53
105 #define SET_DOWNLINK_CNT_CMD 0x54
106 #define GET_DOWNLINK_CNT_CMD 0x55
107 #define SET_CH_MASK_CMD 0x57
108 #define GET_CH_PARAM_CMD 0x58
116 #define LR5_OTAA 0x01
117 #define LR5_UNRELIABLE_DATA_TX 0x00
118 #define LR5_RELIABLE_DATA_TX 0x01
119 #define LR5_SF10_125KHZ 0x00
120 #define LR5_SF9_125KHZ 0x01
121 #define LR5_SF8_125KHZ 0x02
122 #define LR5_SF7_125KHZ 0x03
123 #define LR5_SF8_500KHZ 0x04
124 #define LR5_CH_IDX_0 0x00
125 #define LR5_CH_IDX_1 0x01
126 #define LR5_CH_IDX_2 0x02
127 #define LR5_CH_IDX_3 0x03
128 #define LR5_CH_IDX_4 0x04
129 #define LR5_CH_IDX_5 0x05
130 #define LR5_CH_IDX_6 0x06
131 #define LR5_CH_IDX_7 0x07
132 #define LR5_CH_IDX_8 0x08
133 #define LR5_CH_IDX_9 0x09
134 #define LR5_CH_IDX_10 0x0A
135 #define LR5_CH_IDX_11 0x0B
136 #define LR5_CH_IDX_12 0x0C
137 #define LR5_CH_IDX_13 0x0D
138 #define LR5_CH_IDX_14 0x0E
139 #define LR5_CH_IDX_15 0x0F
146 #define LR5_FRAME_HEADER_ERR 0xFF
147 #define LR5_CMD_RESPONSE_ERR 0xFE
148 #define LR5_CHKSUM_ERR 0xFD
149 #define LR5_NBYTES_INVALID 0xFC
150 #define LR5_CH_IDX_INVALID 0xFB
152 #define LR5_RESPONSE_NOT_RECEIVED 0x00
153 #define LR5_RESPONSE_RECEIVED 0x01
154 #define LR5_CMD_RESPONSE_READY 0x01
155 #define LR5_IND_RESPONSE_READY 0x02
156 #define LR5_DATA_READY 0x00
157 #define LR5_DATA_NOT_READY 0x01
164 #define DRV_RX_BUFFER_SIZE 500
177 typedef void ( *
lr5_hdl_t )( uint8_t*, uint8_t*, uint8_t* );
202 uint8_t rx_dat[ 260 ];
215 uint8_t cmd_data[ 256 ];
#define DRV_RX_BUFFER_SIZE
Definition: lr5.h:164
digital_out_t rst
Definition: lr5.h:186
void(* lr5_hdl_t)(uint8_t *, uint8_t *, uint8_t *)
Handler definition for data logging.
Definition: lr5.h:177
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:201
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:203
lr5_hdl_t driver_hdl
Definition: lr5.h:204
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:191
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:187
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:213
pin_name_t rst
Definition: lr5.h:244
uart_t uart
Definition: lr5.h:195
uart_parity_t parity_bit
Definition: lr5.h:253
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:183
uint8_t port
Definition: lr5.h:225
uart_stop_bits_t stop_bit
Definition: lr5.h:254
uint8_t command_code
Definition: lr5.h:200
pin_name_t rx_pin
Definition: lr5.h:239
Click configuration structure definition.
Definition: lr5.h:236
uint32_t baud_rate
Definition: lr5.h:250
void lr5_get_serial_no_cmd(lr5_t *ctx)
Get Mipot Serial Number Command.
bool uart_blocking
Definition: lr5.h:251
void lr5_set_ch_mask_cmd(lr5_t *ctx, uint8_t *ch_mask)
Set Channels Mask Command.
pin_name_t wk
Definition: lr5.h:245
uart_data_bits_t data_bit
Definition: lr5.h:252
LR5_RETVAL lr5_task(lr5_t *ctx)
Parser Task function.
#define LR5_RETVAL
Definition: lr5.h:64
uint8_t msg_length
Definition: lr5.h:227
void lr5_get_fw_version_cmd(lr5_t *ctx)
Get FW Version Command.
uint8_t * msg_data
Definition: lr5.h:226
void lr5_hw_reset(lr5_t *ctx)
HW Reset function.
uint8_t options
Definition: lr5.h:224
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:212
LR5_RETVAL lr5_data_indication(lr5_t *ctx)
Data Indication function.
Message command definition.
Definition: lr5.h:223
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:214
pin_name_t int_pin
Definition: lr5.h:246
pin_name_t tx_pin
Definition: lr5.h:240
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.