Go to the documentation of this file.
38 #include "mikrosdk_version.h"
41 #if mikroSDK_GET_VERSION < 20800ul
42 #include "rcu_delays.h"
48 #include "drv_digital_out.h"
49 #include "drv_digital_in.h"
62 #define LR5_MAP_MIKROBUS( cfg, mikrobus ) \
63 cfg.tx_pin = MIKROBUS( mikrobus, MIKROBUS_TX ); \
64 cfg.rx_pin = MIKROBUS( mikrobus, MIKROBUS_RX ); \
65 cfg.rst = MIKROBUS( mikrobus, MIKROBUS_RST ); \
66 cfg.wk = MIKROBUS( mikrobus, MIKROBUS_CS ); \
67 cfg.int_pin = MIKROBUS( mikrobus, MIKROBUS_INT )
74 #define LR5_RETVAL uint8_t
77 #define LR5_INIT_ERROR 0xFF
84 #define RESPONSE_BIT 0x80
85 #define FRAME_HEADER 0xAA
92 #define RESET_CMD 0x30
93 #define FACTORY_RESET_CMD 0x31
94 #define EEPROM_WRITE_CMD 0x32
95 #define EEPROM_READ_CMD 0x33
96 #define GET_FW_VERSION_CMD 0x34
97 #define GET_SERIALNO_CMD 0x35
98 #define GET_DEV_EUI_CMD 0x36
100 #define JOIN_IND 0x41
101 #define GET_ACT_STATUS_CMD 0x42
102 #define SET_APP_KEY_CMD 0x43
103 #define SET_APP_SESSION_KEY_CMD 0x44
104 #define SET_NWK_SESSION_KEY_CMD 0x45
105 #define TX_MSG_CMD 0x46
106 #define TX_MSG_CONFIRMED_IND 0x47
107 #define TX_MSG_UNCONFIRMED_IND 0x48
108 #define RX_MSG_IND 0x49
109 #define GET_SESSION_STATUS_CMD 0x4A
110 #define SET_NEXT_DR_CMD 0x4B
111 #define SET_BATTERY_LVL_CMD 0x50
112 #define GET_BATTERY_LVL_CMD 0x51
113 #define SET_UPLINK_CNT_CMD 0x52
114 #define GET_UPLINK_CNT_CMD 0x53
115 #define SET_DOWNLINK_CNT_CMD 0x54
116 #define GET_DOWNLINK_CNT_CMD 0x55
117 #define SET_CH_MASK_CMD 0x57
118 #define GET_CH_PARAM_CMD 0x58
126 #define LR5_OTAA 0x01
127 #define LR5_UNRELIABLE_DATA_TX 0x00
128 #define LR5_RELIABLE_DATA_TX 0x01
129 #define LR5_SF10_125KHZ 0x00
130 #define LR5_SF9_125KHZ 0x01
131 #define LR5_SF8_125KHZ 0x02
132 #define LR5_SF7_125KHZ 0x03
133 #define LR5_SF8_500KHZ 0x04
134 #define LR5_CH_IDX_0 0x00
135 #define LR5_CH_IDX_1 0x01
136 #define LR5_CH_IDX_2 0x02
137 #define LR5_CH_IDX_3 0x03
138 #define LR5_CH_IDX_4 0x04
139 #define LR5_CH_IDX_5 0x05
140 #define LR5_CH_IDX_6 0x06
141 #define LR5_CH_IDX_7 0x07
142 #define LR5_CH_IDX_8 0x08
143 #define LR5_CH_IDX_9 0x09
144 #define LR5_CH_IDX_10 0x0A
145 #define LR5_CH_IDX_11 0x0B
146 #define LR5_CH_IDX_12 0x0C
147 #define LR5_CH_IDX_13 0x0D
148 #define LR5_CH_IDX_14 0x0E
149 #define LR5_CH_IDX_15 0x0F
156 #define LR5_FRAME_HEADER_ERR 0xFF
157 #define LR5_CMD_RESPONSE_ERR 0xFE
158 #define LR5_CHKSUM_ERR 0xFD
159 #define LR5_NBYTES_INVALID 0xFC
160 #define LR5_CH_IDX_INVALID 0xFB
162 #define LR5_RESPONSE_NOT_RECEIVED 0x00
163 #define LR5_RESPONSE_RECEIVED 0x01
164 #define LR5_CMD_RESPONSE_READY 0x01
165 #define LR5_IND_RESPONSE_READY 0x02
166 #define LR5_DATA_READY 0x00
167 #define LR5_DATA_NOT_READY 0x01
174 #define DRV_RX_BUFFER_SIZE 500
187 typedef void ( *
lr5_hdl_t )( uint8_t*, uint8_t*, uint8_t* );
212 uint8_t rx_dat[ 260 ];
225 uint8_t cmd_data[ 256 ];
#define DRV_RX_BUFFER_SIZE
Definition: lr5.h:174
digital_out_t rst
Definition: lr5.h:196
void(* lr5_hdl_t)(uint8_t *, uint8_t *, uint8_t *)
Handler definition for data logging.
Definition: lr5.h:187
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:211
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:213
lr5_hdl_t driver_hdl
Definition: lr5.h:214
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:201
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:197
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:223
pin_name_t rst
Definition: lr5.h:254
uart_t uart
Definition: lr5.h:205
uart_parity_t parity_bit
Definition: lr5.h:263
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:193
uint8_t port
Definition: lr5.h:235
uart_stop_bits_t stop_bit
Definition: lr5.h:264
uint8_t command_code
Definition: lr5.h:210
pin_name_t rx_pin
Definition: lr5.h:249
Click configuration structure definition.
Definition: lr5.h:246
uint32_t baud_rate
Definition: lr5.h:260
void lr5_get_serial_no_cmd(lr5_t *ctx)
Get Mipot Serial Number Command.
bool uart_blocking
Definition: lr5.h:261
void lr5_set_ch_mask_cmd(lr5_t *ctx, uint8_t *ch_mask)
Set Channels Mask Command.
pin_name_t wk
Definition: lr5.h:255
uart_data_bits_t data_bit
Definition: lr5.h:262
LR5_RETVAL lr5_task(lr5_t *ctx)
Parser Task function.
#define LR5_RETVAL
Definition: lr5.h:74
uint8_t msg_length
Definition: lr5.h:237
void lr5_get_fw_version_cmd(lr5_t *ctx)
Get FW Version Command.
uint8_t * msg_data
Definition: lr5.h:236
void lr5_hw_reset(lr5_t *ctx)
HW Reset function.
uint8_t options
Definition: lr5.h:234
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:222
LR5_RETVAL lr5_data_indication(lr5_t *ctx)
Data Indication function.
Message command definition.
Definition: lr5.h:233
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:224
pin_name_t int_pin
Definition: lr5.h:256
pin_name_t tx_pin
Definition: lr5.h:250
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.