Contiki-NG
CC1350_LAUNCHXL.h
Go to the documentation of this file.
1 /*
2  * Copyright (c) 2015-2018, Texas Instruments Incorporated
3  * All rights reserved.
4  *
5  * Redistribution and use in source and binary forms, with or without
6  * modification, are permitted provided that the following conditions
7  * are met:
8  *
9  * * Redistributions of source code must retain the above copyright
10  * notice, this list of conditions and the following disclaimer.
11  *
12  * * Redistributions in binary form must reproduce the above copyright
13  * notice, this list of conditions and the following disclaimer in the
14  * documentation and/or other materials provided with the distribution.
15  *
16  * * Neither the name of Texas Instruments Incorporated nor the names of
17  * its contributors may be used to endorse or promote products derived
18  * from this software without specific prior written permission.
19  *
20  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
21  * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
22  * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
23  * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
24  * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
25  * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
26  * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
27  * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
28  * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
29  * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
30  * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
31  */
32 /** ============================================================================
33  * @file CC1350_LAUNCHXL.h
34  *
35  * @brief CC1350 LaunchPad Board Specific header file.
36  *
37  * The CC1350_LAUNCHXL header file should be included in an application as
38  * follows:
39  * @code
40  * #include "CC1350_LAUNCHXL.h"
41  * @endcode
42  *
43  * ============================================================================
44  */
45 #ifndef __CC1350_LAUNCHXL_BOARD_H__
46 #define __CC1350_LAUNCHXL_BOARD_H__
47 
48 #ifdef __cplusplus
49 extern "C" {
50 #endif
51 
52 #include "contiki-conf.h"
53 
54 /* Includes */
55 #include <ti/drivers/PIN.h>
56 #include <ti/devices/DeviceFamily.h>
57 #include DeviceFamily_constructPath(driverlib/ioc.h)
58 
59 /* Externs */
60 extern const PIN_Config BoardGpioInitTable[];
61 
62 /* Defines */
63 #define CC1350_LAUNCHXL
64 
65 /* Mapping of pins to board signals using general board aliases
66  * <board signal alias> <pin mapping> <comments>
67  */
68 
69 /* Analog Capable DIOs */
70 #define CC1350_LAUNCHXL_DIO23_ANALOG IOID_23
71 #define CC1350_LAUNCHXL_DIO24_ANALOG IOID_24
72 #define CC1350_LAUNCHXL_DIO25_ANALOG IOID_25
73 #define CC1350_LAUNCHXL_DIO26_ANALOG IOID_26
74 #define CC1350_LAUNCHXL_DIO27_ANALOG IOID_27
75 #define CC1350_LAUNCHXL_DIO28_ANALOG IOID_28
76 #define CC1350_LAUNCHXL_DIO29_ANALOG IOID_29
77 #define CC1350_LAUNCHXL_DIO30_ANALOG IOID_30
78 
79 /* Digital IOs */
80 #define CC1350_LAUNCHXL_DIO0 IOID_0
81 #define CC1350_LAUNCHXL_DIO1_RF_SUB1GHZ IOID_1
82 #define CC1350_LAUNCHXL_DIO12 IOID_12
83 #define CC1350_LAUNCHXL_DIO15 IOID_15
84 #define CC1350_LAUNCHXL_DIO16_TDO IOID_16
85 #define CC1350_LAUNCHXL_DIO17_TDI IOID_17
86 #define CC1350_LAUNCHXL_DIO21 IOID_21
87 #define CC1350_LAUNCHXL_DIO22 IOID_22
88 #define CC1350_LAUNCHXL_DIO30_RF_POWER IOID_30
89 
90 /* Discrete Inputs */
91 #define CC1350_LAUNCHXL_PIN_BTN1 IOID_13
92 #define CC1350_LAUNCHXL_PIN_BTN2 IOID_14
93 
94 
95 /* GPIO */
96 #define CC1350_LAUNCHXL_GPIO_LED_ON 1
97 #define CC1350_LAUNCHXL_GPIO_LED_OFF 0
98 
99 /* I2C */
100 #define CC1350_LAUNCHXL_I2C0_SCL0 IOID_4
101 #define CC1350_LAUNCHXL_I2C0_SDA0 IOID_5
102 
103 
104 /* LEDs */
105 #define CC1350_LAUNCHXL_PIN_LED_ON 1
106 #define CC1350_LAUNCHXL_PIN_LED_OFF 0
107 #define CC1350_LAUNCHXL_PIN_RLED IOID_6
108 #define CC1350_LAUNCHXL_PIN_GLED IOID_7
109 
110 /* PWM Outputs */
111 #define CC1350_LAUNCHXL_PWMPIN0 CC1350_LAUNCHXL_PIN_RLED
112 #define CC1350_LAUNCHXL_PWMPIN1 CC1350_LAUNCHXL_PIN_GLED
113 #define CC1350_LAUNCHXL_PWMPIN2 PIN_UNASSIGNED
114 #define CC1350_LAUNCHXL_PWMPIN3 PIN_UNASSIGNED
115 #define CC1350_LAUNCHXL_PWMPIN4 PIN_UNASSIGNED
116 #define CC1350_LAUNCHXL_PWMPIN5 PIN_UNASSIGNED
117 #define CC1350_LAUNCHXL_PWMPIN6 PIN_UNASSIGNED
118 #define CC1350_LAUNCHXL_PWMPIN7 PIN_UNASSIGNED
119 
120 /* SPI */
121 #define CC1350_LAUNCHXL_SPI_FLASH_CS IOID_20
122 #define CC1350_LAUNCHXL_FLASH_CS_ON 0
123 #define CC1350_LAUNCHXL_FLASH_CS_OFF 1
124 
125 /* SPI Board */
126 #define CC1350_LAUNCHXL_SPI0_MISO IOID_8 /* RF1.20 */
127 #define CC1350_LAUNCHXL_SPI0_MOSI IOID_9 /* RF1.18 */
128 #define CC1350_LAUNCHXL_SPI0_CLK IOID_10 /* RF1.16 */
129 #define CC1350_LAUNCHXL_SPI0_CSN PIN_UNASSIGNED
130 #define CC1350_LAUNCHXL_SPI1_MISO PIN_UNASSIGNED
131 #define CC1350_LAUNCHXL_SPI1_MOSI PIN_UNASSIGNED
132 #define CC1350_LAUNCHXL_SPI1_CLK PIN_UNASSIGNED
133 #define CC1350_LAUNCHXL_SPI1_CSN PIN_UNASSIGNED
134 
135 /* UART Board */
136 #define CC1350_LAUNCHXL_UART_RX IOID_2 /* RXD */
137 #define CC1350_LAUNCHXL_UART_TX IOID_3 /* TXD */
138 #define CC1350_LAUNCHXL_UART_CTS IOID_19 /* CTS */
139 #define CC1350_LAUNCHXL_UART_RTS IOID_18 /* RTS */
140 
141 /*!
142  * @brief Initialize the general board specific settings
143  *
144  * This function initializes the general board specific settings.
145  */
146 void CC1350_LAUNCHXL_initGeneral(void);
147 
148 /*!
149  * @brief Turn off the external flash on LaunchPads
150  *
151  */
153 
154 /*!
155  * @brief Wake up the external flash present on the board files
156  *
157  * This function toggles the chip select for the amount of time needed
158  * to wake the chip up.
159  */
161 
162 /*!
163  * @def CC1350_LAUNCHXL_ADCBufName
164  * @brief Enum of ADCBufs
165  */
166 typedef enum CC1350_LAUNCHXL_ADCBufName {
167  CC1350_LAUNCHXL_ADCBUF0 = 0,
168 
169  CC1350_LAUNCHXL_ADCBUFCOUNT
170 } CC1350_LAUNCHXL_ADCBufName;
171 
172 /*!
173  * @def CC1350_LAUNCHXL_ADCBuf0ChannelName
174  * @brief Enum of ADCBuf channels
175  */
176 typedef enum CC1350_LAUNCHXL_ADCBuf0ChannelName {
177  CC1350_LAUNCHXL_ADCBUF0CHANNEL0 = 0,
178  CC1350_LAUNCHXL_ADCBUF0CHANNEL1,
179  CC1350_LAUNCHXL_ADCBUF0CHANNEL2,
180  CC1350_LAUNCHXL_ADCBUF0CHANNEL3,
181  CC1350_LAUNCHXL_ADCBUF0CHANNEL4,
182  CC1350_LAUNCHXL_ADCBUF0CHANNEL5,
183  CC1350_LAUNCHXL_ADCBUF0CHANNEL6,
184  CC1350_LAUNCHXL_ADCBUF0CHANNEL7,
185  CC1350_LAUNCHXL_ADCBUF0CHANNELVDDS,
186  CC1350_LAUNCHXL_ADCBUF0CHANNELDCOUPL,
187  CC1350_LAUNCHXL_ADCBUF0CHANNELVSS,
188 
189  CC1350_LAUNCHXL_ADCBUF0CHANNELCOUNT
190 } CC1350_LAUNCHXL_ADCBuf0ChannelName;
191 
192 /*!
193  * @def CC1350_LAUNCHXL_ADCName
194  * @brief Enum of ADCs
195  */
196 typedef enum CC1350_LAUNCHXL_ADCName {
197  CC1350_LAUNCHXL_ADC0 = 0,
198  CC1350_LAUNCHXL_ADC1,
199  CC1350_LAUNCHXL_ADC2,
200  CC1350_LAUNCHXL_ADC3,
201  CC1350_LAUNCHXL_ADC4,
202  CC1350_LAUNCHXL_ADC5,
203  CC1350_LAUNCHXL_ADC6,
204  CC1350_LAUNCHXL_ADC7,
205  CC1350_LAUNCHXL_ADCDCOUPL,
206  CC1350_LAUNCHXL_ADCVSS,
207  CC1350_LAUNCHXL_ADCVDDS,
208 
209  CC1350_LAUNCHXL_ADCCOUNT
210 } CC1350_LAUNCHXL_ADCName;
211 
212 /*!
213  * @def CC1350_LAUNCHXL_CryptoName
214  * @brief Enum of Crypto names
215  */
216 typedef enum CC1350_LAUNCHXL_CryptoName {
217  CC1350_LAUNCHXL_CRYPTO0 = 0,
218 
219  CC1350_LAUNCHXL_CRYPTOCOUNT
220 } CC1350_LAUNCHXL_CryptoName;
221 
222 /*!
223  * @def CC1350_LAUNCHXL_GPIOName
224  * @brief Enum of GPIO names
225  */
226 typedef enum CC1350_LAUNCHXL_GPIOName {
227  CC1350_LAUNCHXL_GPIO_S1 = 0,
228  CC1350_LAUNCHXL_GPIO_S2,
229  CC1350_LAUNCHXL_SPI_MASTER_READY,
230  CC1350_LAUNCHXL_SPI_SLAVE_READY,
231  CC1350_LAUNCHXL_GPIO_LED_GREEN,
232  CC1350_LAUNCHXL_GPIO_LED_RED,
233  CC1350_LAUNCHXL_GPIO_SPI_FLASH_CS,
234  CC1350_LAUNCHXL_SDSPI_CS,
235  CC1350_LAUNCHXL_GPIOCOUNT
236 } CC1350_LAUNCHXL_GPIOName;
237 
238 /*!
239  * @def CC1350_LAUNCHXL_GPTimerName
240  * @brief Enum of GPTimer parts
241  */
242 typedef enum CC1350_LAUNCHXL_GPTimerName {
243  CC1350_LAUNCHXL_GPTIMER0A = 0,
244  CC1350_LAUNCHXL_GPTIMER0B,
245  CC1350_LAUNCHXL_GPTIMER1A,
246  CC1350_LAUNCHXL_GPTIMER1B,
247  CC1350_LAUNCHXL_GPTIMER2A,
248  CC1350_LAUNCHXL_GPTIMER2B,
249  CC1350_LAUNCHXL_GPTIMER3A,
250  CC1350_LAUNCHXL_GPTIMER3B,
251 
252  CC1350_LAUNCHXL_GPTIMERPARTSCOUNT
253 } CC1350_LAUNCHXL_GPTimerName;
254 
255 /*!
256  * @def CC1350_LAUNCHXL_GPTimers
257  * @brief Enum of GPTimers
258  */
259 typedef enum CC1350_LAUNCHXL_GPTimers {
260  CC1350_LAUNCHXL_GPTIMER0 = 0,
261  CC1350_LAUNCHXL_GPTIMER1,
262  CC1350_LAUNCHXL_GPTIMER2,
263  CC1350_LAUNCHXL_GPTIMER3,
264 
265  CC1350_LAUNCHXL_GPTIMERCOUNT
266 } CC1350_LAUNCHXL_GPTimers;
267 
268 /*!
269  * @def CC1350_LAUNCHXL_I2CName
270  * @brief Enum of I2C names
271  */
272 typedef enum CC1350_LAUNCHXL_I2CName {
273 #if TI_I2C_CONF_I2C0_ENABLE
274  CC1350_LAUNCHXL_I2C0 = 0,
275 #endif
276 
277  CC1350_LAUNCHXL_I2CCOUNT
278 } CC1350_LAUNCHXL_I2CName;
279 
280 /*!
281  * @def CC1350_LAUNCHXL_NVSName
282  * @brief Enum of NVS names
283  */
284 typedef enum CC1350_LAUNCHXL_NVSName {
285 #if TI_NVS_CONF_NVS_INTERNAL_ENABLE
286  CC1350_LAUNCHXL_NVSCC26XX0 = 0,
287 #endif
288 #if TI_NVS_CONF_NVS_EXTERNAL_ENABLE
289  CC1350_LAUNCHXL_NVSSPI25X0,
290 #endif
291 
292  CC1350_LAUNCHXL_NVSCOUNT
293 } CC1350_LAUNCHXL_NVSName;
294 
295 /*!
296  * @def CC1350_LAUNCHXL_PWMName
297  * @brief Enum of PWM outputs
298  */
299 typedef enum CC1350_LAUNCHXL_PWMName {
300  CC1350_LAUNCHXL_PWM0 = 0,
301  CC1350_LAUNCHXL_PWM1,
302  CC1350_LAUNCHXL_PWM2,
303  CC1350_LAUNCHXL_PWM3,
304  CC1350_LAUNCHXL_PWM4,
305  CC1350_LAUNCHXL_PWM5,
306  CC1350_LAUNCHXL_PWM6,
307  CC1350_LAUNCHXL_PWM7,
308 
309  CC1350_LAUNCHXL_PWMCOUNT
310 } CC1350_LAUNCHXL_PWMName;
311 
312 /*!
313  * @def CC1350_LAUNCHXL_SDName
314  * @brief Enum of SD names
315  */
316 typedef enum CC1350_LAUNCHXL_SDName {
317  CC1350_LAUNCHXL_SDSPI0 = 0,
318 
319  CC1350_LAUNCHXL_SDCOUNT
320 } CC1350_LAUNCHXL_SDName;
321 
322 /*!
323  * @def CC1350_LAUNCHXL_SPIName
324  * @brief Enum of SPI names
325  */
326 typedef enum CC1350_LAUNCHXL_SPIName {
327 #if TI_SPI_CONF_SPI0_ENABLE
328  CC1350_LAUNCHXL_SPI0 = 0,
329 #endif
330 #if TI_SPI_CONF_SPI1_ENABLE
331  CC1350_LAUNCHXL_SPI1,
332 #endif
333 
334  CC1350_LAUNCHXL_SPICOUNT
335 } CC1350_LAUNCHXL_SPIName;
336 
337 /*!
338  * @def CC1350_LAUNCHXL_TRNGName
339  * @brief Enum of TRNGs
340  */
341 typedef enum CC1350_LAUNCHXL_TRNGName {
342  CC1350_LAUNCHXL_TRNG0 = 0,
343 
344  CC1350_LAUNCHXL_TRNGCOUNT
345 } CC1350_LAUNCHXL_TRNGName;
346 
347 /*!
348  * @def CC1350_LAUNCHXL_UARTName
349  * @brief Enum of UARTs
350  */
351 typedef enum CC1350_LAUNCHXL_UARTName {
352 #if TI_UART_CONF_UART0_ENABLE
353  CC1350_LAUNCHXL_UART0 = 0,
354 #endif
355 
356  CC1350_LAUNCHXL_UARTCOUNT
357 } CC1350_LAUNCHXL_UARTName;
358 
359 /*!
360  * @def CC1350_LAUNCHXL_UDMAName
361  * @brief Enum of DMA buffers
362  */
363 typedef enum CC1350_LAUNCHXL_UDMAName {
364  CC1350_LAUNCHXL_UDMA0 = 0,
365 
366  CC1350_LAUNCHXL_UDMACOUNT
367 } CC1350_LAUNCHXL_UDMAName;
368 
369 /*!
370  * @def CC1350_LAUNCHXL_WatchdogName
371  * @brief Enum of Watchdogs
372  */
373 typedef enum CC1350_LAUNCHXL_WatchdogName {
374  CC1350_LAUNCHXL_WATCHDOG0 = 0,
375 
376  CC1350_LAUNCHXL_WATCHDOGCOUNT
377 } CC1350_LAUNCHXL_WatchdogName;
378 
379 #ifdef __cplusplus
380 }
381 #endif
382 
383 #endif /* __CC1350_LAUNCHXL_BOARD_H__ */
void CC1350_LAUNCHXL_shutDownExtFlash(void)
Turn off the external flash on LaunchPads.
void CC1350_LAUNCHXL_initGeneral(void)
Initialize the general board specific settings.
void CC1350_LAUNCHXL_wakeUpExtFlash(void)
Wake up the external flash present on the board files.