summaryrefslogtreecommitdiff
path: root/bsp/rx/RPDL/r_pdl_sci.h
blob: 62a636c14aa46e5d3548e16788a10b3e8aad64d7 (plain)
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 */