SRD Standelone programmation box: CR95UartMapper.c Source File

| SRD Standelone programmation box 2.0 (16/11/15 10:00:00) Documentation of the SRD standelone programmation box

- Main Page
- Data Structures
- Files

- File List
- Globals

All Data Structures Files Functions Variables Enumerations Enumerator Macros Pages
CR95UartMapper.c
Go to the documentation of this file.
1 /*############################################################################################*/
2 /*############################################################################################*/
3 /**
4 * \file CR95UartMapper.c
5 * \author Thibaut LALUQUE 3D-Ouest
6 * \date 20/11/2014
7 * \version 1.0
8 * \brief Source file Uart mapping for CR95.
9 * \details All Right Reserved.
10 */
11 /*############################################################################################*/
12 /*############################################################################################*/
13
14
15 /*############################################################################################*/
16 /*## INCLUDES ################################################################################*/
17 /*############################################################################################*/
18 #include "CR95UartMapper.h"
19 /*############################################################################################*/
20 /*## END INCLUDES ############################################################################*/
21 /*############################################################################################*/
22
23 /*############################################################################################*/
24 /*## CONFIGURATION BITS ######################################################################*/
25 /*############################################################################################*/
26
27 /*############################################################################################*/
28 /*## END CONFIGURATION BITS ##################################################################*/
29 /*############################################################################################*/
30
31 /*############################################################################################*/
32 /*## LOCAL DEFINES ###########################################################################*/
33 /*############################################################################################*/
34
35 /*############################################################################################*/
36 /*## END LOCAL DEFINES ######################################################################*/
37 /*############################################################################################*/
38
39
40 /*############################################################################################*/
41 /*## LOCAL FONCTIONS DECLARATION #############################################################*/
42 /*############################################################################################*/
43
44 /*############################################################################################*/
45 /*## END LOCAL FONCTIONS DECLARATION #########################################################*/
46 /*############################################################################################*/
47
48
49 /*############################################################################################*/
50 /*## LOCAL VARIABLES #########################################################################*/
51 /*############################################################################################*/
52 tCR95UartSelect CR95DeviceSelected = CR95_SELECT_INTERNAL;
53 /*############################################################################################*/
54 /*## END LOCAL VARIABLES #####################################################################*/
55 /*############################################################################################*/
56
57 /*############################################################################################*/
58 /*## GLOBAL VARIABLES ########################################################################*/
59 /*############################################################################################*/
60
61 /*############################################################################################*/
62 /*## END GLOBAL VARIABLES ####################################################################*/
63 /*############################################################################################*/
64
65
66 /*############################################################################################*/
67 /*## LOCAL FONCTIONS #########################################################################*/
68 /*############################################################################################*/
69
70 /*############################################################################################*/
71 /*## END LOCAL FONCTIONS #####################################################################*/
72 /*############################################################################################*/
73
74
75 /*############################################################################################*/
76 /*## EXTERNAL FONCTIONS ######################################################################*/
77 /*############################################################################################*/
78
79 void CR95SelectDevice (tCR95UartSelect device) {
80 CR95DeviceSelected = device;
81 }
82
83
84 void CR95UartInit (unsigned long baudrate) {
85 Uart0Init(baudrate);
86 WatchdogKick();
87 Uart2Init(baudrate);
88 WatchdogKick();
89
90 /*=== set IO for external CR95 detection ===*/
91 SIM->SCGC5 |= SIM_SCGC5_PORTE_MASK;
92 PTA->PDDR &= ~GPIO_PDDR_PDD(CR95UARTMAPPER_EXTERNAL_CO_MASK); //As input
93 PORTA->PCR[CR95UARTMAPPER_EXTERNAL_CO_SHIFT] = PORT_PCR_MUX(0x01); //IO config
94 }
95
96 void CR95UartEnableTransmitter(void) {
97 if(CR95DeviceSelected == CR95_SELECT_INTERNAL) {
98 UART2EnableTransmitter();
99 } else {
100 UART0EnableTransmitter();
101 UART0EnableTransmitterInterrupt();
102 }
103 }
104
105 void CR95UartDisableTransmitter(void) {
106 UART2DisableTransmitter();
107 UART0DisableTransmitter();
108 UART0DisableTransmitterInterrupt();
109 }
110
111 void CR95UartEnableReceiver(void) {
112 if(CR95DeviceSelected == CR95_SELECT_INTERNAL) {
113 UART2EnableReceiver();
114 } else {
115 UART0EnableReceiver();
116 }
117 }
118
119 void CR95UartDisableReceiver (void) {
120 UART2DisableReceiver();
121 UART0DisableReceiver();
122 }
123
124 void CR95UartClearAllErrorFlag (void) {
125 UART2ClearAllErrorFlag();
126 UART0ClearAllErrorFlag();
127 }
128
129 void CR95UartSendData(char* data, unsigned short dataLength) {
130 if(CR95DeviceSelected == CR95_SELECT_INTERNAL) {
131 Uart2SendData(data, dataLength);
132 } else {
133 Uart0SendData(data, dataLength);
134 }
135 }
136
137 void CR95UartSendString(char* string) {
138 if(CR95DeviceSelected == CR95_SELECT_INTERNAL) {
139 Uart2SendString(string);
140 } else {
141 Uart0SendString(string);
142 }
143 }
144
145 char CR95UartReadChar (void) {
146 if(CR95DeviceSelected == CR95_SELECT_INTERNAL) {
147 return Uart2ReadChar();
148 } else {
149 return Uart0ReadChar();
150 }
151 }
152
153 void CR95UartResetReceiver (void) {
154 Uart0Ctrl.rx.lastIn = 0;
155 Uart0Ctrl.rx.lastOut = 0;
156 Uart0Ctrl.rx.nbrChar = 0;
157 Uart0Ctrl.flags.bits.charReceived = 0;
158 Uart0Ctrl.flags.bits.stringReceived = 0;
159 Uart2Ctrl.rx.lastIn = 0;
160 Uart2Ctrl.rx.lastOut = 0;
161 Uart2Ctrl.rx.nbrChar = 0;
162 Uart2Ctrl.flags.bits.charReceived = 0;
163 Uart2Ctrl.flags.bits.stringReceived = 0;
164 }
165
166 tUartCtrl* CR95UartGetUartStructCtrl (void) {
167 if(CR95DeviceSelected == CR95_SELECT_INTERNAL) {
168 return &Uart2Ctrl;
169 } else {
170 return &Uart0Ctrl;
171 }
172 }
173
174 tCR95ExternalConnexion CR95ExtGetConnectionState(void) {
175 /*=== set IO for external CR95 detection ===*/
176 SIM->SCGC5 |= SIM_SCGC5_PORTD_MASK;
177 PTD->PDDR &= ~GPIO_PDDR_PDD(1<<6); //As input
178 PORTD->PCR[6] = PORT_PCR_MUX(0x01); //Switch on IO mode
179 unsigned char countDown = 10;
180 while(countDown--);
181 tCR95ExternalConnexion state = (PTD->PDIR >> 6) & 0x00000001;
182
183 PORTD->PCR[6] &= ~PORT_PCR_MUX_MASK; //Switchback on Uart TX mode
184 PORTD->PCR[6] |= PORT_PCR_MUX(3);
185 return state;
186 }
187 /*############################################################################################*/
188 /*## END EXTERNAL FONCTIONS ##################################################################*/
189 /*############################################################################################*/
Uart2SendData
void Uart2SendData(char *data, unsigned short dataLength)
send data other uart.
Definition: uart2.c:194
CR95ExtGetConnectionState
tCR95ExternalConnexion CR95ExtGetConnectionState(void)
Return the connection state of the CR95HF module.
Definition: CR95UartMapper.c:174
Uart2Init
void Uart2Init(unsigned long baudrate)
Initialize this uart.
Definition: uart2.c:149
tUartCtrl::rx
tUartFifo rx
Definition: uart_common.h:77
CR95UartEnableTransmitter
void CR95UartEnableTransmitter(void)
Definition: CR95UartMapper.c:96
Uart0SendString
void Uart0SendString(char *string)
send ASCII string other uart.
Definition: uart0.c:224
UART0DisableTransmitterInterrupt
#define UART0DisableTransmitterInterrupt()
Enable / Disable transmitter and its interrupt.
Definition: uart0.h:203
CR95DeviceSelected
tCR95UartSelect CR95DeviceSelected
Definition: CR95UartMapper.c:52
Uart0SendData
void Uart0SendData(char *data, unsigned short dataLength)
send data other uart.
Definition: uart0.c:196
WatchdogKick
void WatchdogKick(void)
Kick the watchdog to avoid reset after the watchdog have started.
Definition: watchdog.c:86
Uart2ReadChar
char Uart2ReadChar(void)
Definition: uart2.c:246
Uart2SendString
void Uart2SendString(char *string)
send ASCII string other uart.
Definition: uart2.c:221
tUartFifo::lastOut
unsigned short lastOut
Definition: uart_common.h:48
CR95_SELECT_INTERNAL
Definition: CR95UartMapper.h:55
tUartFlags::bits
struct tUartFlags::@21 bits
CR95UartClearAllErrorFlag
void CR95UartClearAllErrorFlag(void)
Definition: CR95UartMapper.c:124
UART0DisableReceiver
#define UART0DisableReceiver()
Enable / Disable receiver and its interrupt.
Definition: uart0.h:212
CR95UartDisableReceiver
void CR95UartDisableReceiver(void)
Definition: CR95UartMapper.c:119
UART0EnableTransmitter
#define UART0EnableTransmitter()
Enable / Disable transmitter and its interrupt.
Definition: uart0.h:200
CR95UartEnableReceiver
void CR95UartEnableReceiver(void)
Definition: CR95UartMapper.c:111
CR95UARTMAPPER_EXTERNAL_CO_MASK
#define CR95UARTMAPPER_EXTERNAL_CO_MASK
Define the IO mask and shift used the CR95HF Uart Mapper.
Definition: CR95UartMapper.h:37
UART2DisableTransmitter
#define UART2DisableTransmitter()
Enable / Disable transmitter and its interrupt.
Definition: uart2.h:201
CR95UartSendData
void CR95UartSendData(char *data, unsigned short dataLength)
Definition: CR95UartMapper.c:129
tCR95UartSelect
tCR95UartSelect
Define the antenna ID.
Definition: CR95UartMapper.h:54
CR95UartMapper.h
Headerfile for Uart mapping on external/internal CR95.
Uart0Ctrl
tUartCtrl Uart0Ctrl
Definition: uart0.c:69
UART2ClearAllErrorFlag
#define UART2ClearAllErrorFlag()
Clear all error flag.
Definition: uart2.h:219
CR95UartInit
void CR95UartInit(unsigned long baudrate)
CR95HF Uart interface.
Definition: CR95UartMapper.c:84
CR95UartReadChar
char CR95UartReadChar(void)
Definition: CR95UartMapper.c:145
CR95UartGetUartStructCtrl
tUartCtrl * CR95UartGetUartStructCtrl(void)
Return the structure control of the CR95HF uart.
Definition: CR95UartMapper.c:166
tUartCtrl
Define the Uart control structure.
Definition: uart_common.h:76
UART2EnableTransmitter
#define UART2EnableTransmitter()
Enable / Disable transmitter and its interrupt.
Definition: uart2.h:200
UART2DisableReceiver
#define UART2DisableReceiver()
Enable / Disable receiver and its interrupt.
Definition: uart2.h:210
CR95UartDisableTransmitter
void CR95UartDisableTransmitter(void)
Definition: CR95UartMapper.c:105
Uart0ReadChar
char Uart0ReadChar(void)
Definition: uart0.c:249
tUartFlags::stringReceived
unsigned char stringReceived
Definition: uart_common.h:61
UART0ClearAllErrorFlag
#define UART0ClearAllErrorFlag()
Clear all error flag.
Definition: uart0.h:221
tUartCtrl::flags
tUartFlags flags
Definition: uart_common.h:79
Uart0Init
void Uart0Init(unsigned long baudrate)
Initialize this uart.
Definition: uart0.c:150
CR95UartSendString
void CR95UartSendString(char *string)
Definition: CR95UartMapper.c:137
UART0EnableTransmitterInterrupt
#define UART0EnableTransmitterInterrupt()
Enable / Disable transmitter and its interrupt.
Definition: uart0.h:202
CR95UARTMAPPER_EXTERNAL_CO_SHIFT
#define CR95UARTMAPPER_EXTERNAL_CO_SHIFT
Define the IO mask and shift used the CR95HF Uart Mapper.
Definition: CR95UartMapper.h:36
CR95SelectDevice
void CR95SelectDevice(tCR95UartSelect device)
Select the antenna used to communicate with the SRD.
Definition: CR95UartMapper.c:79
Uart2Ctrl
tUartCtrl Uart2Ctrl
Definition: uart2.c:69
CR95UartResetReceiver
void CR95UartResetReceiver(void)
Reset the CR95HF Uart interface.
Definition: CR95UartMapper.c:153
UART0DisableTransmitter
#define UART0DisableTransmitter()
Enable / Disable transmitter and its interrupt.
Definition: uart0.h:201
tUartFifo::lastIn
unsigned short lastIn
Definition: uart_common.h:47
tUartFifo::nbrChar
unsigned short nbrChar
Definition: uart_common.h:49
UART2EnableReceiver
#define UART2EnableReceiver()
Enable / Disable receiver and its interrupt.
Definition: uart2.h:209
tCR95ExternalConnexion
tCR95ExternalConnexion
Define constant used to detect the connection/deconneciton of the external antenna.
Definition: CR95UartMapper.h:65
UART0EnableReceiver
#define UART0EnableReceiver()
Enable / Disable receiver and its interrupt.
Definition: uart0.h:211
tUartFlags::charReceived
unsigned char charReceived
Definition: uart_common.h:60