usbuart4 2.0.0.0
usbuart4.h
Go to the documentation of this file.
1/****************************************************************************
2** Copyright (C) 2020 MikroElektronika d.o.o.
3** Contact: https://www.mikroe.com/contact
4**
5** Permission is hereby granted, free of charge, to any person obtaining a copy
6** of this software and associated documentation files (the "Software"), to deal
7** in the Software without restriction, including without limitation the rights
8** to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9** copies of the Software, and to permit persons to whom the Software is
10** furnished to do so, subject to the following conditions:
11** The above copyright notice and this permission notice shall be
12** included in all copies or substantial portions of the Software.
13**
14** THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
15** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
16** OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
17** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
18** DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT
19** OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
20** USE OR OTHER DEALINGS IN THE SOFTWARE.
21****************************************************************************/
22
28#ifndef USBUART4_H
29#define USBUART4_H
30
31#ifdef __cplusplus
32extern "C"{
33#endif
34
39#ifdef PREINIT_SUPPORTED
40#include "preinit.h"
41#endif
42
43#ifdef MikroCCoreVersion
44 #if MikroCCoreVersion >= 1
45 #include "delays.h"
46 #endif
47#endif
48
49#include "drv_digital_out.h"
50#include "drv_digital_in.h"
51#include "drv_uart.h"
52
74#define USBUART4_MODE_SLEEP 1
75#define USBUART4_MODE_NORMAL 0
76
77#define USBUART4_CTS_ACTIVE 1
78#define USBUART4_CTS_NO_ACTIVE 0
79
80#define USBUART4_POWER_ON 1
81#define USBUART4_POWER_OFF 0
82
88#define DRV_BUFFER_SIZE 500
89
90 // usbuart4_set
91
106#define USBUART4_MAP_MIKROBUS( cfg, mikrobus ) \
107 cfg.tx_pin = MIKROBUS( mikrobus, MIKROBUS_TX ); \
108 cfg.rx_pin = MIKROBUS( mikrobus, MIKROBUS_RX ); \
109 cfg.cts = MIKROBUS( mikrobus, MIKROBUS_RST ); \
110 cfg.slp = MIKROBUS( mikrobus, MIKROBUS_CS ); \
111 cfg.pwr = MIKROBUS( mikrobus, MIKROBUS_PWM ); \
112 cfg.rts = MIKROBUS( mikrobus, MIKROBUS_INT );
113
114 // usbuart4_map
115 // usbuart4
116
121typedef struct
122{
123 // Output pins
124
125 digital_out_t cts;
126 digital_out_t slp;
127 digital_out_t pwr;
128 // Input pins
129
130 digital_in_t rts;
131
132 // Modules
133 uart_t uart;
135 // Buffers
136 char uart_rx_buffer[ DRV_BUFFER_SIZE ];
137 char uart_tx_buffer[ DRV_BUFFER_SIZE ];
139} usbuart4_t;
140
145typedef struct
146{
147 // Communication gpio pins
148 pin_name_t rx_pin;
149 pin_name_t tx_pin;
151 // Additional gpio pins
152 pin_name_t cts;
153 pin_name_t slp;
154 pin_name_t pwr;
155 pin_name_t rts;
156
157 // Static variable
158 uint32_t baud_rate;
160 uart_data_bits_t data_bit;
161 uart_parity_t parity_bit;
162 uart_stop_bits_t stop_bit;
165
170typedef enum
171{
173 USBUART4_ERROR = -1
174
176
193
209
223void usbuart4_generic_write ( usbuart4_t *ctx, char *data_buf, uint16_t len );
224
238uint32_t usbuart4_generic_read ( usbuart4_t *ctx, char *data_buf, uint16_t max_len );
239
248void usbuart4_pwr_ctrl ( usbuart4_t *ctx, uint8_t state );
249
258void usbuart4_set_cts ( usbuart4_t *ctx, uint8_t state );
259
268void usbuart4_set_mode ( usbuart4_t *ctx, uint8_t mode );
269
277
285void usbuart4_send_command ( usbuart4_t *ctx, char *command );
286#ifdef __cplusplus
287}
288#endif
289#endif // USBUART4_H
290
291 // usbuart4
292
293// ------------------------------------------------------------------------ END
#define DRV_BUFFER_SIZE
USB UART 4 driver buffer size.
Definition usbuart4.h:88
void usbuart4_set_cts(usbuart4_t *ctx, uint8_t state)
Set CTS (Clear to send)
uint32_t usbuart4_generic_read(usbuart4_t *ctx, char *data_buf, uint16_t max_len)
USB UART 4 data reading function.
err_t usbuart4_init(usbuart4_t *ctx, usbuart4_cfg_t *cfg)
USB UART 4 initialization function.
void usbuart4_generic_write(usbuart4_t *ctx, char *data_buf, uint16_t len)
USB UART 4 data writing function.
void usbuart4_pwr_ctrl(usbuart4_t *ctx, uint8_t state)
Power control.
void usbuart4_send_command(usbuart4_t *ctx, char *command)
Function for send command.
uint8_t usbuart4_get_rts(usbuart4_t *ctx)
Set device mode.
void usbuart4_cfg_setup(usbuart4_cfg_t *cfg)
USB UART 4 configuration object setup function.
void usbuart4_set_mode(usbuart4_t *ctx, uint8_t mode)
Set device mode.
USB UART 4 Click configuration object.
Definition usbuart4.h:146
pin_name_t rts
Definition usbuart4.h:155
uint32_t baud_rate
Definition usbuart4.h:158
pin_name_t cts
Definition usbuart4.h:152
pin_name_t slp
Definition usbuart4.h:153
bool uart_blocking
Definition usbuart4.h:159
uart_data_bits_t data_bit
Definition usbuart4.h:160
pin_name_t tx_pin
Definition usbuart4.h:149
pin_name_t pwr
Definition usbuart4.h:154
pin_name_t rx_pin
Definition usbuart4.h:148
uart_stop_bits_t stop_bit
Definition usbuart4.h:162
uart_parity_t parity_bit
Definition usbuart4.h:161
USB UART 4 Click context object.
Definition usbuart4.h:122
digital_out_t pwr
Definition usbuart4.h:127
digital_out_t slp
Definition usbuart4.h:126
uart_t uart
Definition usbuart4.h:133
digital_in_t rts
Definition usbuart4.h:130
digital_out_t cts
Definition usbuart4.h:125
usbuart4_return_value_t
USB UART 4 Click return value data.
Definition usbuart4.h:171
@ USBUART4_ERROR
Definition usbuart4.h:173
@ USBUART4_OK
Definition usbuart4.h:172