Contiki-NG
CC1350_LAUNCHXL.h
Go to the documentation of this file.
1 /*
2  * Copyright (c) 2015-2019, 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 /* GPIO */
95 #define CC1350_LAUNCHXL_GPIO_LED_ON 1
96 #define CC1350_LAUNCHXL_GPIO_LED_OFF 0
97 
98 /* I2C */
99 #define CC1350_LAUNCHXL_I2C0_SCL0 IOID_4
100 #define CC1350_LAUNCHXL_I2C0_SDA0 IOID_5
101 
102 /* I2S */
103 #define CC1350_LAUNCHXL_I2S_ADO IOID_25
104 #define CC1350_LAUNCHXL_I2S_ADI IOID_26
105 #define CC1350_LAUNCHXL_I2S_BCLK IOID_27
106 #define CC1350_LAUNCHXL_I2S_MCLK PIN_UNASSIGNED
107 #define CC1350_LAUNCHXL_I2S_WCLK IOID_28
108 
109 /* LEDs */
110 #define CC1350_LAUNCHXL_PIN_LED_ON 1
111 #define CC1350_LAUNCHXL_PIN_LED_OFF 0
112 #define CC1350_LAUNCHXL_PIN_RLED IOID_6
113 #define CC1350_LAUNCHXL_PIN_GLED IOID_7
114 
115 /* PWM Outputs */
116 #define CC1350_LAUNCHXL_PWMPIN0 CC1350_LAUNCHXL_PIN_RLED
117 #define CC1350_LAUNCHXL_PWMPIN1 CC1350_LAUNCHXL_PIN_GLED
118 #define CC1350_LAUNCHXL_PWMPIN2 PIN_UNASSIGNED
119 #define CC1350_LAUNCHXL_PWMPIN3 PIN_UNASSIGNED
120 #define CC1350_LAUNCHXL_PWMPIN4 PIN_UNASSIGNED
121 #define CC1350_LAUNCHXL_PWMPIN5 PIN_UNASSIGNED
122 #define CC1350_LAUNCHXL_PWMPIN6 PIN_UNASSIGNED
123 #define CC1350_LAUNCHXL_PWMPIN7 PIN_UNASSIGNED
124 
125 /* SPI */
126 #define CC1350_LAUNCHXL_SPI_FLASH_CS IOID_20
127 #define CC1350_LAUNCHXL_FLASH_CS_ON 0
128 #define CC1350_LAUNCHXL_FLASH_CS_OFF 1
129 
130 /* SPI Board */
131 #define CC1350_LAUNCHXL_SPI0_MISO IOID_8 /* RF1.20 */
132 #define CC1350_LAUNCHXL_SPI0_MOSI IOID_9 /* RF1.18 */
133 #define CC1350_LAUNCHXL_SPI0_CLK IOID_10 /* RF1.16 */
134 #define CC1350_LAUNCHXL_SPI0_CSN IOID_11
135 #define CC1350_LAUNCHXL_SPI1_MISO PIN_UNASSIGNED
136 #define CC1350_LAUNCHXL_SPI1_MOSI PIN_UNASSIGNED
137 #define CC1350_LAUNCHXL_SPI1_CLK PIN_UNASSIGNED
138 #define CC1350_LAUNCHXL_SPI1_CSN PIN_UNASSIGNED
139 
140 /* UART Board */
141 #define CC1350_LAUNCHXL_UART_RX IOID_2 /* RXD */
142 #define CC1350_LAUNCHXL_UART_TX IOID_3 /* TXD */
143 #define CC1350_LAUNCHXL_UART_CTS IOID_19 /* CTS */
144 #define CC1350_LAUNCHXL_UART_RTS IOID_18 /* RTS */
145 
146 /*!
147  * @brief Initialize the general board specific settings
148  *
149  * This function initializes the general board specific settings.
150  */
151 void CC1350_LAUNCHXL_initGeneral(void);
152 
153 /*!
154  * @brief Turn off the external flash on LaunchPads
155  *
156  */
158 
159 /*!
160  * @brief Wake up the external flash present on the board files
161  *
162  * This function toggles the chip select for the amount of time needed
163  * to wake the chip up.
164  */
166 
167 /*!
168  * @def CC1350_LAUNCHXL_ADCBufName
169  * @brief Enum of ADCBufs
170  */
171 typedef enum CC1350_LAUNCHXL_ADCBufName {
172  CC1350_LAUNCHXL_ADCBUF0 = 0,
173 
174  CC1350_LAUNCHXL_ADCBUFCOUNT
175 } CC1350_LAUNCHXL_ADCBufName;
176 
177 /*!
178  * @def CC1350_LAUNCHXL_ADCBuf0ChannelName
179  * @brief Enum of ADCBuf channels
180  */
181 typedef enum CC1350_LAUNCHXL_ADCBuf0ChannelName {
182  CC1350_LAUNCHXL_ADCBUF0CHANNEL0 = 0,
183  CC1350_LAUNCHXL_ADCBUF0CHANNEL1,
184  CC1350_LAUNCHXL_ADCBUF0CHANNEL2,
185  CC1350_LAUNCHXL_ADCBUF0CHANNEL3,
186  CC1350_LAUNCHXL_ADCBUF0CHANNEL4,
187  CC1350_LAUNCHXL_ADCBUF0CHANNEL5,
188  CC1350_LAUNCHXL_ADCBUF0CHANNEL6,
189  CC1350_LAUNCHXL_ADCBUF0CHANNEL7,
190  CC1350_LAUNCHXL_ADCBUF0CHANNELVDDS,
191  CC1350_LAUNCHXL_ADCBUF0CHANNELDCOUPL,
192  CC1350_LAUNCHXL_ADCBUF0CHANNELVSS,
193 
194  CC1350_LAUNCHXL_ADCBUF0CHANNELCOUNT
195 } CC1350_LAUNCHXL_ADCBuf0ChannelName;
196 
197 /*!
198  * @def CC1350_LAUNCHXL_ADCName
199  * @brief Enum of ADCs
200  */
201 typedef enum CC1350_LAUNCHXL_ADCName {
202  CC1350_LAUNCHXL_ADC0 = 0,
203  CC1350_LAUNCHXL_ADC1,
204  CC1350_LAUNCHXL_ADC2,
205  CC1350_LAUNCHXL_ADC3,
206  CC1350_LAUNCHXL_ADC4,
207  CC1350_LAUNCHXL_ADC5,
208  CC1350_LAUNCHXL_ADC6,
209  CC1350_LAUNCHXL_ADC7,
210  CC1350_LAUNCHXL_ADCDCOUPL,
211  CC1350_LAUNCHXL_ADCVSS,
212  CC1350_LAUNCHXL_ADCVDDS,
213 
214  CC1350_LAUNCHXL_ADCCOUNT
215 } CC1350_LAUNCHXL_ADCName;
216 
217 /*!
218  * @def CC1350_LAUNCHXL_CryptoName
219  * @brief Enum of Crypto names
220  */
221 typedef enum CC1350_LAUNCHXL_CryptoName {
222  CC1350_LAUNCHXL_CRYPTO0 = 0,
223 
224  CC1350_LAUNCHXL_CRYPTOCOUNT
225 } CC1350_LAUNCHXL_CryptoName;
226 
227 /*!
228  * @def CC1350_LAUNCHXL_AESCCMName
229  * @brief Enum of AESCCM names
230  */
231 typedef enum CC1350_LAUNCHXL_AESCCMName {
232  CC1350_LAUNCHXL_AESCCM0 = 0,
233 
234  CC1350_LAUNCHXL_AESCCMCOUNT
235 } CC1350_LAUNCHXL_AESCCMName;
236 
237 /*!
238  * @def CC1350_LAUNCHXL_AESGCMName
239  * @brief Enum of AESGCM names
240  */
241 typedef enum CC1350_LAUNCHXL_AESGCMName {
242  CC1350_LAUNCHXL_AESGCM0 = 0,
243 
244  CC1350_LAUNCHXL_AESGCMCOUNT
245 } CC1350_LAUNCHXL_AESGCMName;
246 
247 /*!
248  * @def CC1350_LAUNCHXL_AESCBCName
249  * @brief Enum of AESCBC names
250  */
251 typedef enum CC1350_LAUNCHXL_AESCBCName {
252  CC1350_LAUNCHXL_AESCBC0 = 0,
253 
254  CC1350_LAUNCHXL_AESCBCCOUNT
255 } CC1350_LAUNCHXL_AESCBCName;
256 
257 /*!
258  * @def CC1350_LAUNCHXL_AESCTRName
259  * @brief Enum of AESCTR names
260  */
261 typedef enum CC1350_LAUNCHXL_AESCTRName {
262  CC1350_LAUNCHXL_AESCTR0 = 0,
263 
264  CC1350_LAUNCHXL_AESCTRCOUNT
265 } CC1350_LAUNCHXL_AESCTRName;
266 
267 /*!
268  * @def CC1350_LAUNCHXL_AESECBName
269  * @brief Enum of AESECB names
270  */
271 typedef enum CC1350_LAUNCHXL_AESECBName {
272  CC1350_LAUNCHXL_AESECB0 = 0,
273 
274  CC1350_LAUNCHXL_AESECBCOUNT
275 } CC1350_LAUNCHXL_AESECBName;
276 
277 /*!
278  * @def CC1350_LAUNCHXL_AESCTRDRBGName
279  * @brief Enum of AESCTRDRBG names
280  */
281 typedef enum CC1350_LAUNCHXL_AESCTRDRBGName {
282  CC1350_LAUNCHXL_AESCTRDRBG0 = 0,
283 
284  CC1350_LAUNCHXL_AESCTRDRBGCOUNT
285 } CC1350_LAUNCHXL_AESCTRDRBGName;
286 
287 /*!
288  * @def CC1350_LAUNCHXL_TRNGName
289  * @brief Enum of TRNG names
290  */
291 typedef enum CC1350_LAUNCHXL_TRNGName {
292  CC1350_LAUNCHXL_TRNG0 = 0,
293 
294  CC1350_LAUNCHXL_TRNGCOUNT
295 } CC1350_LAUNCHXL_TRNGName;
296 
297 /*!
298  * @def CC1350_LAUNCHXL_GPIOName
299  * @brief Enum of GPIO names
300  */
301 typedef enum CC1350_LAUNCHXL_GPIOName {
302  CC1350_LAUNCHXL_GPIO_S1 = 0,
303  CC1350_LAUNCHXL_GPIO_S2,
304  CC1350_LAUNCHXL_SPI_MASTER_READY,
305  CC1350_LAUNCHXL_SPI_SLAVE_READY,
306  CC1350_LAUNCHXL_GPIO_LED_GREEN,
307  CC1350_LAUNCHXL_GPIO_LED_RED,
308  CC1350_LAUNCHXL_GPIO_SPI_FLASH_CS,
309  CC1350_LAUNCHXL_SDSPI_CS,
310  CC1350_LAUNCHXL_GPIOCOUNT
311 } CC1350_LAUNCHXL_GPIOName;
312 
313 /*!
314  * @def CC1350_LAUNCHXL_GPTimerName
315  * @brief Enum of GPTimer parts
316  */
317 typedef enum CC1350_LAUNCHXL_GPTimerName {
318  CC1350_LAUNCHXL_GPTIMER0A = 0,
319  CC1350_LAUNCHXL_GPTIMER0B,
320  CC1350_LAUNCHXL_GPTIMER1A,
321  CC1350_LAUNCHXL_GPTIMER1B,
322  CC1350_LAUNCHXL_GPTIMER2A,
323  CC1350_LAUNCHXL_GPTIMER2B,
324  CC1350_LAUNCHXL_GPTIMER3A,
325  CC1350_LAUNCHXL_GPTIMER3B,
326 
327  CC1350_LAUNCHXL_GPTIMERPARTSCOUNT
328 } CC1350_LAUNCHXL_GPTimerName;
329 
330 /*!
331  * @def CC1350_LAUNCHXL_GPTimers
332  * @brief Enum of GPTimers
333  */
334 typedef enum CC1350_LAUNCHXL_GPTimers {
335  CC1350_LAUNCHXL_GPTIMER0 = 0,
336  CC1350_LAUNCHXL_GPTIMER1,
337  CC1350_LAUNCHXL_GPTIMER2,
338  CC1350_LAUNCHXL_GPTIMER3,
339 
340  CC1350_LAUNCHXL_GPTIMERCOUNT
341 } CC1350_LAUNCHXL_GPTimers;
342 
343 /*!
344  * @def CC1350_LAUNCHXL_I2CName
345  * @brief Enum of I2C names
346  */
347 typedef enum CC1350_LAUNCHXL_I2CName {
348 #if TI_I2C_CONF_I2C0_ENABLE
349  CC1350_LAUNCHXL_I2C0 = 0,
350 #endif
351 
352  CC1350_LAUNCHXL_I2CCOUNT
353 } CC1350_LAUNCHXL_I2CName;
354 
355 /*!
356  * @def CC1350_LAUNCHXL_I2SName
357  * @brief Enum of I2S names
358  */
359 typedef enum CC1350_LAUNCHXL_I2SName {
360  CC1350_LAUNCHXL_I2S0 = 0,
361 
362  CC1350_LAUNCHXL_I2SCOUNT
363 } CC1350_LAUNCHXL_I2SName;
364 
365 /*!
366  * @def CC1350_LAUNCHXL_NVSName
367  * @brief Enum of NVS names
368  */
369 typedef enum CC1350_LAUNCHXL_NVSName {
370 #if TI_NVS_CONF_NVS_INTERNAL_ENABLE
371  CC1350_LAUNCHXL_NVSCC26XX0 = 0,
372 #endif
373 #if TI_NVS_CONF_NVS_EXTERNAL_ENABLE
374  CC1350_LAUNCHXL_NVSSPI25X0,
375 #endif
376 
377  CC1350_LAUNCHXL_NVSCOUNT
378 } CC1350_LAUNCHXL_NVSName;
379 
380 /*!
381  * @def CC1350_LAUNCHXL_PWMName
382  * @brief Enum of PWM outputs
383  */
384 typedef enum CC1350_LAUNCHXL_PWMName {
385  CC1350_LAUNCHXL_PWM0 = 0,
386  CC1350_LAUNCHXL_PWM1,
387  CC1350_LAUNCHXL_PWM2,
388  CC1350_LAUNCHXL_PWM3,
389  CC1350_LAUNCHXL_PWM4,
390  CC1350_LAUNCHXL_PWM5,
391  CC1350_LAUNCHXL_PWM6,
392  CC1350_LAUNCHXL_PWM7,
393 
394  CC1350_LAUNCHXL_PWMCOUNT
395 } CC1350_LAUNCHXL_PWMName;
396 
397 /*!
398  * @def CC1350_LAUNCHXL_SDName
399  * @brief Enum of SD names
400  */
401 typedef enum CC1350_LAUNCHXL_SDName {
402  CC1350_LAUNCHXL_SDSPI0 = 0,
403 
404  CC1350_LAUNCHXL_SDCOUNT
405 } CC1350_LAUNCHXL_SDName;
406 
407 /*!
408  * @def CC1350_LAUNCHXL_SPIName
409  * @brief Enum of SPI names
410  */
411 typedef enum CC1350_LAUNCHXL_SPIName {
412 #if TI_SPI_CONF_SPI0_ENABLE
413  CC1350_LAUNCHXL_SPI0 = 0,
414 #endif
415 #if TI_SPI_CONF_SPI1_ENABLE
416  CC1350_LAUNCHXL_SPI1,
417 #endif
418 
419  CC1350_LAUNCHXL_SPICOUNT
420 } CC1350_LAUNCHXL_SPIName;
421 
422 /*!
423  * @def CC1350_LAUNCHXL_UARTName
424  * @brief Enum of UARTs
425  */
426 typedef enum CC1350_LAUNCHXL_UARTName {
427 #if TI_UART_CONF_UART0_ENABLE
428  CC1350_LAUNCHXL_UART0 = 0,
429 #endif
430 
431  CC1350_LAUNCHXL_UARTCOUNT
432 } CC1350_LAUNCHXL_UARTName;
433 
434 /*!
435  * @def CC1350_LAUNCHXL_UDMAName
436  * @brief Enum of DMA buffers
437  */
438 typedef enum CC1350_LAUNCHXL_UDMAName {
439  CC1350_LAUNCHXL_UDMA0 = 0,
440 
441  CC1350_LAUNCHXL_UDMACOUNT
442 } CC1350_LAUNCHXL_UDMAName;
443 
444 /*!
445  * @def CC1350_LAUNCHXL_WatchdogName
446  * @brief Enum of Watchdogs
447  */
448 typedef enum CC1350_LAUNCHXL_WatchdogName {
449  CC1350_LAUNCHXL_WATCHDOG0 = 0,
450 
451  CC1350_LAUNCHXL_WATCHDOGCOUNT
452 } CC1350_LAUNCHXL_WatchdogName;
453 
454 #ifdef __cplusplus
455 }
456 #endif
457 
458 #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.