1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
|
/*""FILE COMMENT""*******************************************************
* System Name : Serial Communication Interface API for RX62Nxx
* File Name : r_pdl_sci.h
* Version : 1.02
* Contents : Serial Interface API header
* Customer :
* Model :
* Order :
* CPU : RX
* Compiler : RXC
* OS : Nothing
* Programmer :
* Note :
************************************************************************
* Copyright, 2011. Renesas Electronics Corporation
* and Renesas Solutions Corporation
************************************************************************
* History : 2011.04.08
* : Ver 1.02
* : CS-5 release.
*""FILE COMMENT END""**************************************************/
#ifndef R_PDL_SCI_H
#define R_PDL_SCI_H
#include "r_pdl_common_defs_RX62Nxx.h"
/* Function prototypes */
bool R_SCI_Set(
uint8_t
);
bool R_SCI_Create(
uint8_t,
uint32_t,
uint32_t,
uint8_t
);
bool R_SCI_Destroy(
uint8_t
);
bool R_SCI_Send(
uint8_t,
uint16_t,
uint8_t *,
uint16_t,
void *
);
bool R_SCI_Receive(
uint8_t,
uint16_t,
uint8_t *,
uint16_t,
void *,
void *
);
bool R_SCI_Control(
uint8_t,
uint8_t
);
bool R_SCI_GetStatus(
uint8_t,
uint8_t *,
uint8_t *,
uint16_t *,
uint16_t *
);
/* ------------------------ */
/* R_SCI_Set, Configuration */
/* ------------------------ */
/* Pin selection */
#define PDL_SCI_PIN_SCI1_A 0x01u
#define PDL_SCI_PIN_SCI1_B 0x02u
#define PDL_SCI_PIN_SCI2_A 0x04u
#define PDL_SCI_PIN_SCI2_B 0x08u
#define PDL_SCI_PIN_SCI3_A 0x10u
#define PDL_SCI_PIN_SCI3_B 0x20u
#define PDL_SCI_PIN_SCI6_A 0x40u
#define PDL_SCI_PIN_SCI6_B 0x80u
/* ----------------------------------------- */
/* R_SCI_Create, data2 Channel configuration */
/* ----------------------------------------- */
/* Operation mode */
#define PDL_SCI_ASYNC 0x00000001ul
#define PDL_SCI_SYNC 0x00000002ul
#define PDL_SCI_SMART 0x00000004ul
#define PDL_SCI_ASYNC_MP 0x00000008ul
/* Common selections */
/* Transmit / Receive connections */
#define PDL_SCI_TX_CONNECTED 0x00000010ul
#define PDL_SCI_TX_DISCONNECTED 0x00000020ul
#define PDL_SCI_RX_CONNECTED 0x00000040ul
#define PDL_SCI_RX_DISCONNECTED 0x00000080ul
/* Data clock source */
#define PDL_SCI_CLK_INT_OUT 0x00000100ul
#define PDL_SCI_CLK_EXT 0x00000200ul
/* Parity selection */
#define PDL_SCI_PARITY_EVEN 0x00000400ul
#define PDL_SCI_PARITY_ODD 0x00000800ul
/* Asynchronous-only selections */
/* Data clock source */
#define PDL_SCI_CLK_INT_IO 0x00001000ul
#define PDL_SCI_CLK_TMR 0x00002000ul
/* Data length */
#define PDL_SCI_8_BIT_LENGTH 0x00004000ul
#define PDL_SCI_7_BIT_LENGTH 0x00008000ul
/* Parity selection */
#define PDL_SCI_PARITY_NONE 0x00010000ul
/* Stop bit length */
#define PDL_SCI_STOP_1 0x00020000ul
#define PDL_SCI_STOP_2 0x00040000ul
#define PDL_SCI_8N1 (PDL_SCI_8_BIT_LENGTH | PDL_SCI_PARITY_NONE | PDL_SCI_STOP_1)
/* Smart card-only selections */
/* Data transfer format */
#define PDL_SCI_LSB_FIRST 0x00001000ul
#define PDL_SCI_MSB_FIRST 0x00002000ul
/* Data inversion */
#define PDL_SCI_INVERSION_OFF 0x00004000ul
#define PDL_SCI_INVERSION_ON 0x00008000ul
/* Base clock pulse cycle count */
#define PDL_SCI_BCP_32 0x00010000ul
#define PDL_SCI_BCP_64 0x00020000ul
#define PDL_SCI_BCP_93 0x00040000ul
#define PDL_SCI_BCP_128 0x00080000ul
#define PDL_SCI_BCP_186 0x00100000ul
#define PDL_SCI_BCP_256 0x00200000ul
#define PDL_SCI_BCP_372 0x00400000ul
#define PDL_SCI_BCP_512 0x00800000ul
/* Block transfer mode */
#define PDL_SCI_BLOCK_MODE_OFF 0x01000000ul
#define PDL_SCI_BLOCK_MODE_ON 0x02000000ul
/* GSM mode */
#define PDL_SCI_GSM_MODE_OFF 0x04000000ul
#define PDL_SCI_GSM_MODE_ON 0x08000000ul
/* Clock output control */
#define PDL_SCI_SCK_OUTPUT_OFF 0x10000000ul
#define PDL_SCI_SCK_OUTPUT_LOW 0x20000000ul
#define PDL_SCI_SCK_OUTPUT_ON 0x40000000ul
#define PDL_SCI_SCK_OUTPUT_HIGH 0x80000000ul
/* ----------------------------------- */
/* R_SCI_Create, data3 register value */
/* ----------------------------------- */
/* Transfer clock control */
/* CKS selection (optional) */
#define PDL_SCI_PCLK_DIV_1 0x01000000ul
#define PDL_SCI_PCLK_DIV_4 0x02000000ul
#define PDL_SCI_PCLK_DIV_16 0x03000000ul
#define PDL_SCI_PCLK_DIV_64 0x04000000ul
/* ABCS selection (optional) */
#define PDL_SCI_CYCLE_BIT_16 0x10000000ul
#define PDL_SCI_CYCLE_BIT_8 0x20000000ul
/* ----------------------------------------------- */
/* R_SCI_Send/R_SCI_Receive, Channel configuration */
/* ----------------------------------------------- */
/* DMAC / DTC trigger control */
#define PDL_SCI_DMAC_DTC_TRIGGER_DISABLE 0x0001u
#define PDL_SCI_DMAC_TRIGGER_ENABLE 0x0002u
#define PDL_SCI_DTC_TRIGGER_ENABLE 0x0004u
#define PDL_SCI_MP_ID_CYCLE 0x0008u
/* ------------------------------ */
/* R_SCI_Control, Channel control */
/* ------------------------------ */
/* Stop control */
#define PDL_SCI_STOP_TX 0x01u
#define PDL_SCI_STOP_RX 0x02u
#define PDL_SCI_STOP_TX_AND_RX (PDL_SCI_STOP_TX | PDL_SCI_STOP_RX)
/* Break output control */
#define PDL_SCI_OUTPUT_MARK 0x04u
#define PDL_SCI_OUTPUT_SPACE 0x08u
/* Error flag control */
#define PDL_SCI_CLEAR_RECEIVE_ERROR_FLAGS 0x10u
/* Manual SCK control */
#define PDL_SCI_GSM_SCK_STOP 0x20u
#define PDL_SCI_GSM_SCK_START 0x40u
#endif
/* End of file */
|