ATxmega Core
Loading...
Searching...
No Matches
hwbp_core_com.h
Go to the documentation of this file.
1#ifndef _HWBP_CORE_COM_H_
2#define _HWBP_CORE_COM_H_
3
4#include <string.h>
5#include "cpu.h"
6#include "hwbp_core_types.h"
7
8// com_mode
9#define COM_MODE_USB 0
10#define COM_MODE_UART 1
11
12// rx_timeout
13#define RX_TIMEOUT_MS 50
14
15
16/************************************************************************/
17/* UART definitions */
18/************************************************************************/
19#define HWBP_UART_RX_INT_LEVEL INT_LEVEL_HIGH
20#define HWBP_UART_TX_INT_LEVEL INT_LEVEL_HIGH
21#define HWBP_UART_CTS_INT_LEVEL INT_LEVEL_HIGH
22
23#define HWBP_UART_RXBUFSIZ MAX_PACKET_SIZE
24#define HWBP_UART_TEMP_RXBUFSIZ 32
25
26#if defined(__AVR_ATxmega16A4U__)
27 #define HWBP_UART_UART USARTE0
28 #define HWBP_UART_PORT PORTE
29 #define HWBP_UART_RX_pin 2
30 #define HWBP_UART_TX_pin 3
31
32 #define HWBP_UART_RX_ROUTINE_ ISR(USARTE0_RXC_vect/*, ISR_NAKED*/)
33 #define HWBP_UART_TX_ROUTINE_ ISR(USARTE0_DRE_vect/*, ISR_NAKED*/)
34
35
36 #define HWBP_UART_USE_FLOW_CONTROL // comment this line if don't use
37 #define HWBP_UART_RTS_PORT PORTE
38 #define HWBP_UART_RTS_pin 1
39 #define HWBP_UART_CTS_PORT PORTE
40 #define HWBP_UART_CTS_pin 0
41
42 #define HWBP_UART_CTS_ROUTINE_ ISR(PORTE_INT0_vect/*, ISR_NAKED*/)
43 #define HWBP_UART_CTS_INT_N 0
44
45 #define hwbp_uart_leave_interrupt return/*reti();*/
46
47 /* Use as much as possible */
48 #define HWBP_UART_TXBUFSIZ 512
49#endif
50
51#if defined(__AVR_ATxmega32A4U__)
52 #define HWBP_UART_UART USARTE0
53 #define HWBP_UART_PORT PORTE
54 #define HWBP_UART_RX_pin 2
55 #define HWBP_UART_TX_pin 3
56
57 #define HWBP_UART_RX_ROUTINE_ ISR(USARTE0_RXC_vect/*, ISR_NAKED*/)
58 #define HWBP_UART_TX_ROUTINE_ ISR(USARTE0_DRE_vect/*, ISR_NAKED*/)
59
60
61 #define HWBP_UART_USE_FLOW_CONTROL // comment this line if don't use
62 #define HWBP_UART_RTS_PORT PORTE
63 #define HWBP_UART_RTS_pin 1
64 #define HWBP_UART_CTS_PORT PORTE
65 #define HWBP_UART_CTS_pin 0
66
67 #define HWBP_UART_CTS_ROUTINE_ ISR(PORTE_INT0_vect/*, ISR_NAKED*/)
68 #define HWBP_UART_CTS_INT_N 0
69
70 #define hwbp_uart_leave_interrupt return/*reti();*/
71
72 /* Use as much as possible */
73 #define HWBP_UART_TXBUFSIZ 2048
74#endif
75
76#if defined(__AVR_ATxmega64A4U__)
77 #define HWBP_UART_UART USARTE0
78 #define HWBP_UART_PORT PORTE
79 #define HWBP_UART_RX_pin 2
80 #define HWBP_UART_TX_pin 3
81
82 #define HWBP_UART_RX_ROUTINE_ ISR(USARTE0_RXC_vect/*, ISR_NAKED*/)
83 #define HWBP_UART_TX_ROUTINE_ ISR(USARTE0_DRE_vect/*, ISR_NAKED*/)
84
85
86 #define HWBP_UART_USE_FLOW_CONTROL // comment this line if don't use
87 #define HWBP_UART_RTS_PORT PORTE
88 #define HWBP_UART_RTS_pin 1
89 #define HWBP_UART_CTS_PORT PORTE
90 #define HWBP_UART_CTS_pin 0
91
92 #define HWBP_UART_CTS_ROUTINE_ ISR(PORTE_INT0_vect/*, ISR_NAKED*/)
93 #define HWBP_UART_CTS_INT_N 0
94
95 #define hwbp_uart_leave_interrupt return/*reti();*/
96
97 /* Use as much as possible */
98 #define HWBP_UART_TXBUFSIZ 2048
99#endif
100
101#if defined(__AVR_ATxmega128A4U__)
102 #define HWBP_UART_UART USARTE0
103 #define HWBP_UART_PORT PORTE
104 #define HWBP_UART_RX_pin 2
105 #define HWBP_UART_TX_pin 3
106
107 #define HWBP_UART_RX_ROUTINE_ ISR(USARTE0_RXC_vect/*, ISR_NAKED*/)
108 #define HWBP_UART_TX_ROUTINE_ ISR(USARTE0_DRE_vect/*, ISR_NAKED*/)
109
110
111 #define HWBP_UART_USE_FLOW_CONTROL // comment this line if don't use
112 #define HWBP_UART_RTS_PORT PORTE
113 #define HWBP_UART_RTS_pin 1
114 #define HWBP_UART_CTS_PORT PORTE
115 #define HWBP_UART_CTS_pin 0
116
117 #define HWBP_UART_CTS_ROUTINE_ ISR(PORTE_INT0_vect/*, ISR_NAKED*/)
118 #define HWBP_UART_CTS_INT_N 0
119
120 #define hwbp_uart_leave_interrupt return/*reti();*/
121
122 /* Use as much as possible */
123 #define HWBP_UART_TXBUFSIZ 5120
124#endif
125
126#if defined(__AVR_ATxmega128A1U__)
127 #define HWBP_UART_UART USARTF0
128 #define HWBP_UART_PORT PORTF
129 #define HWBP_UART_RX_pin 2
130 #define HWBP_UART_TX_pin 3
131
132 #define HWBP_UART_RX_ROUTINE_ ISR(USARTF0_RXC_vect/*, ISR_NAKED*/)
133 #define HWBP_UART_TX_ROUTINE_ ISR(USARTF0_DRE_vect/*, ISR_NAKED*/)
134
135
136 #define HWBP_UART_USE_FLOW_CONTROL // comment this line if don't use
137 #define HWBP_UART_RTS_PORT PORTK
138 #define HWBP_UART_RTS_pin 0
139 #define HWBP_UART_CTS_PORT PORTJ
140 #define HWBP_UART_CTS_pin 6
141
142 #define HWBP_UART_CTS_ROUTINE_ ISR(PORTJ_INT0_vect/*, ISR_NAKED*/)
143 #define HWBP_UART_CTS_INT_N 0
144
145 #define hwbp_uart_leave_interrupt return/*reti();*/
146
147 /* Use as much as possible */
148 #define HWBP_UART_TXBUFSIZ 5120
149#endif
150
151
152/************************************************************************/
153/* Prototypes */
154/************************************************************************/
155#define disable_hwbp_uart_rx set_io(HWBP_UART_RTS_PORT, HWBP_UART_RTS_pin);
156#define enable_hwbp_uart_rx clear_io(HWBP_UART_RTS_PORT, HWBP_UART_RTS_pin);
157
158void hwbp_com_uart_init(uint16_t BSEL, int8_t BSCALE, bool use_clk2x);
159void hwbp_com_uart_enable(void);
160void hwbp_com_uart_disable(); // Not used
161
162void hwbp_uart_xmit_now(const uint8_t *dataIn0, uint8_t siz); // Not used
163void hwbp_uart_xmit_now_byte(const uint8_t byte); // Not used
164void hwbp_uart_xmit(const uint8_t *dataIn0, uint8_t siz);
165
166bool hwbp_uart_rcv_now(uint8_t * byte); // Not used
167
168
181
182
183#endif /* _HWBP_CORE_COM_H_ */
void hwbp_uart_xmit_now(const uint8_t *dataIn0, uint8_t siz)
Definition hwbp_core_com.c:131
void hwbp_com_uart_init(uint16_t BSEL, int8_t BSCALE, bool use_clk2x)
Definition hwbp_core_com.c:44
void core_callback_uart_tx_after_exec(void)
Called after execute the uart TX interrupt.
void hwbp_com_uart_disable()
Definition hwbp_core_com.c:78
void core_callback_uart_rx_after_exec(void)
Called after execute the uart RX interrupt.
void core_callback_uart_tx_before_exec(void)
Called before execute the uart Tx interrupt.
void hwbp_uart_xmit(const uint8_t *dataIn0, uint8_t siz)
Definition hwbp_core_com.c:145
void hwbp_com_uart_enable(void)
Definition hwbp_core_com.c:71
bool hwbp_uart_rcv_now(uint8_t *byte)
Definition hwbp_core_com.c:203
void core_callback_uart_cts_before_exec(void)
Called before execute the uart CTS interrupt.
void core_callback_uart_rx_before_exec(void)
Called before execute the uart rRX interrupt.
void hwbp_uart_xmit_now_byte(const uint8_t byte)
Definition hwbp_core_com.c:139
void core_callback_uart_cts_after_exec(void)
Called after execute the uart CTS interrupt.