Contiki-NG
CC1310_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 CC1310_LAUNCHXL.h
34  *
35  * @brief CC1310 LaunchPad Board Specific header file.
36  *
37  * The CC1310_LAUNCHXL header file should be included in an application as
38  * follows:
39  * @code
40  * #include "CC1310_LAUNCHXL.h"
41  * @endcode
42  *
43  * ============================================================================
44  */
45 #ifndef __CC1310_LAUNCHXL_BOARD_H__
46 #define __CC1310_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 CC1310_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 CC1310_LAUNCHXL_DIO23_ANALOG IOID_23
71 #define CC1310_LAUNCHXL_DIO24_ANALOG IOID_24
72 #define CC1310_LAUNCHXL_DIO25_ANALOG IOID_25
73 #define CC1310_LAUNCHXL_DIO26_ANALOG IOID_26
74 #define CC1310_LAUNCHXL_DIO27_ANALOG IOID_27
75 #define CC1310_LAUNCHXL_DIO28_ANALOG IOID_28
76 #define CC1310_LAUNCHXL_DIO29_ANALOG IOID_29
77 #define CC1310_LAUNCHXL_DIO30_ANALOG IOID_30
78 
79 /* Digital IOs */
80 #define CC1310_LAUNCHXL_DIO0 IOID_0
81 #define CC1310_LAUNCHXL_DIO1 IOID_1
82 #define CC1310_LAUNCHXL_DIO12 IOID_12
83 #define CC1310_LAUNCHXL_DIO15 IOID_15
84 #define CC1310_LAUNCHXL_DIO16_TDO IOID_16
85 #define CC1310_LAUNCHXL_DIO17_TDI IOID_17
86 #define CC1310_LAUNCHXL_DIO21 IOID_21
87 #define CC1310_LAUNCHXL_DIO22 IOID_22
88 
89 /* Discrete Inputs */
90 #define CC1310_LAUNCHXL_PIN_BTN1 IOID_13
91 #define CC1310_LAUNCHXL_PIN_BTN2 IOID_14
92 
93 /* GPIO */
94 #define CC1310_LAUNCHXL_GPIO_LED_ON 1
95 #define CC1310_LAUNCHXL_GPIO_LED_OFF 0
96 
97 /* I2C */
98 #define CC1310_LAUNCHXL_I2C0_SCL0 IOID_4
99 #define CC1310_LAUNCHXL_I2C0_SDA0 IOID_5
100 
101 /* I2S */
102 #define CC1310_LAUNCHXL_I2S_ADO IOID_25
103 #define CC1310_LAUNCHXL_I2S_ADI IOID_26
104 #define CC1310_LAUNCHXL_I2S_BCLK IOID_27
105 #define CC1310_LAUNCHXL_I2S_MCLK PIN_UNASSIGNED
106 #define CC1310_LAUNCHXL_I2S_WCLK IOID_28
107 
108 /* LEDs */
109 #define CC1310_LAUNCHXL_PIN_LED_ON 1
110 #define CC1310_LAUNCHXL_PIN_LED_OFF 0
111 #define CC1310_LAUNCHXL_PIN_RLED IOID_6
112 #define CC1310_LAUNCHXL_PIN_GLED IOID_7
113 
114 /* PWM Outputs */
115 #define CC1310_LAUNCHXL_PWMPIN0 CC1310_LAUNCHXL_PIN_RLED
116 #define CC1310_LAUNCHXL_PWMPIN1 CC1310_LAUNCHXL_PIN_GLED
117 #define CC1310_LAUNCHXL_PWMPIN2 PIN_UNASSIGNED
118 #define CC1310_LAUNCHXL_PWMPIN3 PIN_UNASSIGNED
119 #define CC1310_LAUNCHXL_PWMPIN4 PIN_UNASSIGNED
120 #define CC1310_LAUNCHXL_PWMPIN5 PIN_UNASSIGNED
121 #define CC1310_LAUNCHXL_PWMPIN6 PIN_UNASSIGNED
122 #define CC1310_LAUNCHXL_PWMPIN7 PIN_UNASSIGNED
123 
124 /* SPI */
125 #define CC1310_LAUNCHXL_SPI_FLASH_CS IOID_20
126 #define CC1310_LAUNCHXL_FLASH_CS_ON 0
127 #define CC1310_LAUNCHXL_FLASH_CS_OFF 1
128 
129 /* SPI Board */
130 #define CC1310_LAUNCHXL_SPI0_MISO IOID_8 /* RF1.20 */
131 #define CC1310_LAUNCHXL_SPI0_MOSI IOID_9 /* RF1.18 */
132 #define CC1310_LAUNCHXL_SPI0_CLK IOID_10 /* RF1.16 */
133 #define CC1310_LAUNCHXL_SPI0_CSN IOID_11
134 #define CC1310_LAUNCHXL_SPI1_MISO PIN_UNASSIGNED
135 #define CC1310_LAUNCHXL_SPI1_MOSI PIN_UNASSIGNED
136 #define CC1310_LAUNCHXL_SPI1_CLK PIN_UNASSIGNED
137 #define CC1310_LAUNCHXL_SPI1_CSN PIN_UNASSIGNED
138 
139 /* UART Board */
140 #define CC1310_LAUNCHXL_UART_RX IOID_2 /* RXD */
141 #define CC1310_LAUNCHXL_UART_TX IOID_3 /* TXD */
142 #define CC1310_LAUNCHXL_UART_CTS IOID_19 /* CTS */
143 #define CC1310_LAUNCHXL_UART_RTS IOID_18 /* RTS */
144 
145 /*!
146  * @brief Initialize the general board specific settings
147  *
148  * This function initializes the general board specific settings.
149  */
150 void CC1310_LAUNCHXL_initGeneral(void);
151 
152 /*!
153  * @brief Turn off the external flash on LaunchPads
154  *
155  */
157 
158 /*!
159  * @brief Wake up the external flash present on the board files
160  *
161  * This function toggles the chip select for the amount of time needed
162  * to wake the chip up.
163  */
165 
166 /*!
167  * @def CC1310_LAUNCHXL_ADCBufName
168  * @brief Enum of ADCBufs
169  */
170 typedef enum CC1310_LAUNCHXL_ADCBufName {
171  CC1310_LAUNCHXL_ADCBUF0 = 0,
172 
173  CC1310_LAUNCHXL_ADCBUFCOUNT
174 } CC1310_LAUNCHXL_ADCBufName;
175 
176 /*!
177  * @def CC1310_LAUNCHXL_ADCBuf0ChannelName
178  * @brief Enum of ADCBuf channels
179  */
180 typedef enum CC1310_LAUNCHXL_ADCBuf0ChannelName {
181  CC1310_LAUNCHXL_ADCBUF0CHANNEL0 = 0,
182  CC1310_LAUNCHXL_ADCBUF0CHANNEL1,
183  CC1310_LAUNCHXL_ADCBUF0CHANNEL2,
184  CC1310_LAUNCHXL_ADCBUF0CHANNEL3,
185  CC1310_LAUNCHXL_ADCBUF0CHANNEL4,
186  CC1310_LAUNCHXL_ADCBUF0CHANNEL5,
187  CC1310_LAUNCHXL_ADCBUF0CHANNEL6,
188  CC1310_LAUNCHXL_ADCBUF0CHANNEL7,
189  CC1310_LAUNCHXL_ADCBUF0CHANNELVDDS,
190  CC1310_LAUNCHXL_ADCBUF0CHANNELDCOUPL,
191  CC1310_LAUNCHXL_ADCBUF0CHANNELVSS,
192 
193  CC1310_LAUNCHXL_ADCBUF0CHANNELCOUNT
194 } CC1310_LAUNCHXL_ADCBuf0ChannelName;
195 
196 /*!
197  * @def CC1310_LAUNCHXL_ADCName
198  * @brief Enum of ADCs
199  */
200 typedef enum CC1310_LAUNCHXL_ADCName {
201  CC1310_LAUNCHXL_ADC0 = 0,
202  CC1310_LAUNCHXL_ADC1,
203  CC1310_LAUNCHXL_ADC2,
204  CC1310_LAUNCHXL_ADC3,
205  CC1310_LAUNCHXL_ADC4,
206  CC1310_LAUNCHXL_ADC5,
207  CC1310_LAUNCHXL_ADC6,
208  CC1310_LAUNCHXL_ADC7,
209  CC1310_LAUNCHXL_ADCDCOUPL,
210  CC1310_LAUNCHXL_ADCVSS,
211  CC1310_LAUNCHXL_ADCVDDS,
212 
213  CC1310_LAUNCHXL_ADCCOUNT
214 } CC1310_LAUNCHXL_ADCName;
215 
216 /*!
217  * @def CC1310_LAUNCHXL_CryptoName
218  * @brief Enum of Crypto names
219  */
220 typedef enum CC1310_LAUNCHXL_CryptoName {
221  CC1310_LAUNCHXL_CRYPTO0 = 0,
222 
223  CC1310_LAUNCHXL_CRYPTOCOUNT
224 } CC1310_LAUNCHXL_CryptoName;
225 
226 /*!
227  * @def CC1310_LAUNCHXL_AESCCMName
228  * @brief Enum of AESCCM names
229  */
230 typedef enum CC1310_LAUNCHXL_AESCCMName {
231  CC1310_LAUNCHXL_AESCCM0 = 0,
232 
233  CC1310_LAUNCHXL_AESCCMCOUNT
234 } CC1310_LAUNCHXL_AESCCMName;
235 
236 /*!
237  * @def CC1310_LAUNCHXL_AESGCMName
238  * @brief Enum of AESGCM names
239  */
240 typedef enum CC1310_LAUNCHXL_AESGCMName {
241  CC1310_LAUNCHXL_AESGCM0 = 0,
242 
243  CC1310_LAUNCHXL_AESGCMCOUNT
244 } CC1310_LAUNCHXL_AESGCMName;
245 
246 /*!
247  * @def CC1310_LAUNCHXL_AESCBCName
248  * @brief Enum of AESCBC names
249  */
250 typedef enum CC1310_LAUNCHXL_AESCBCName {
251  CC1310_LAUNCHXL_AESCBC0 = 0,
252 
253  CC1310_LAUNCHXL_AESCBCCOUNT
254 } CC1310_LAUNCHXL_AESCBCName;
255 
256 /*!
257  * @def CC1310_LAUNCHXL_AESCTRName
258  * @brief Enum of AESCTR names
259  */
260 typedef enum CC1310_LAUNCHXL_AESCTRName {
261  CC1310_LAUNCHXL_AESCTR0 = 0,
262 
263  CC1310_LAUNCHXL_AESCTRCOUNT
264 } CC1310_LAUNCHXL_AESCTRName;
265 
266 /*!
267  * @def CC1310_LAUNCHXL_AESECBName
268  * @brief Enum of AESECB names
269  */
270 typedef enum CC1310_LAUNCHXL_AESECBName {
271  CC1310_LAUNCHXL_AESECB0 = 0,
272 
273  CC1310_LAUNCHXL_AESECBCOUNT
274 } CC1310_LAUNCHXL_AESECBName;
275 
276 /*!
277  * @def CC1310_LAUNCHXL_AESCTRDRBGName
278  * @brief Enum of AESCTRDRBG names
279  */
280 typedef enum CC1310_LAUNCHXL_AESCTRDRBGName {
281  CC1310_LAUNCHXL_AESCTRDRBG0 = 0,
282 
283  CC1310_LAUNCHXL_AESCTRDRBGCOUNT
284 } CC1310_LAUNCHXL_AESCTRDRBGName;
285 
286 /*!
287  * @def CC1310_LAUNCHXL_TRNGName
288  * @brief Enum of TRNG names
289  */
290 typedef enum CC1310_LAUNCHXL_TRNGName {
291  CC1310_LAUNCHXL_TRNG0 = 0,
292 
293  CC1310_LAUNCHXL_TRNGCOUNT
294 } CC1310_LAUNCHXL_TRNGName;
295 
296 /*!
297  * @def CC1310_LAUNCHXL_GPIOName
298  * @brief Enum of GPIO names
299  */
300 typedef enum CC1310_LAUNCHXL_GPIOName {
301  CC1310_LAUNCHXL_GPIO_S1 = 0,
302  CC1310_LAUNCHXL_GPIO_S2,
303  CC1310_LAUNCHXL_SPI_MASTER_READY,
304  CC1310_LAUNCHXL_SPI_SLAVE_READY,
305  CC1310_LAUNCHXL_GPIO_LED_GREEN,
306  CC1310_LAUNCHXL_GPIO_LED_RED,
307  CC1310_LAUNCHXL_GPIO_SPI_FLASH_CS,
308  CC1310_LAUNCHXL_SDSPI_CS,
309  CC1310_LAUNCHXL_GPIOCOUNT
310 } CC1310_LAUNCHXL_GPIOName;
311 
312 /*!
313  * @def CC1310_LAUNCHXL_GPTimerName
314  * @brief Enum of GPTimer parts
315  */
316 typedef enum CC1310_LAUNCHXL_GPTimerName {
317  CC1310_LAUNCHXL_GPTIMER0A = 0,
318  CC1310_LAUNCHXL_GPTIMER0B,
319  CC1310_LAUNCHXL_GPTIMER1A,
320  CC1310_LAUNCHXL_GPTIMER1B,
321  CC1310_LAUNCHXL_GPTIMER2A,
322  CC1310_LAUNCHXL_GPTIMER2B,
323  CC1310_LAUNCHXL_GPTIMER3A,
324  CC1310_LAUNCHXL_GPTIMER3B,
325 
326  CC1310_LAUNCHXL_GPTIMERPARTSCOUNT
327 } CC1310_LAUNCHXL_GPTimerName;
328 
329 /*!
330  * @def CC1310_LAUNCHXL_GPTimers
331  * @brief Enum of GPTimers
332  */
333 typedef enum CC1310_LAUNCHXL_GPTimers {
334  CC1310_LAUNCHXL_GPTIMER0 = 0,
335  CC1310_LAUNCHXL_GPTIMER1,
336  CC1310_LAUNCHXL_GPTIMER2,
337  CC1310_LAUNCHXL_GPTIMER3,
338 
339  CC1310_LAUNCHXL_GPTIMERCOUNT
340 } CC1310_LAUNCHXL_GPTimers;
341 
342 /*!
343  * @def CC1310_LAUNCHXL_I2CName
344  * @brief Enum of I2C names
345  */
346 typedef enum CC1310_LAUNCHXL_I2CName {
347 #if TI_I2C_CONF_I2C0_ENABLE
348  CC1310_LAUNCHXL_I2C0 = 0,
349 #endif
350 
351  CC1310_LAUNCHXL_I2CCOUNT
352 } CC1310_LAUNCHXL_I2CName;
353 
354 /*!
355  * @def CC1310_LAUNCHXL_I2SName
356  * @brief Enum of I2S names
357  */
358 typedef enum CC1310_LAUNCHXL_I2SName {
359  CC1310_LAUNCHXL_I2S0 = 0,
360 
361  CC1310_LAUNCHXL_I2SCOUNT
362 } CC1310_LAUNCHXL_I2SName;
363 
364 /*!
365  * @def CC1310_LAUNCHXL_NVSName
366  * @brief Enum of NVS names
367  */
368 typedef enum CC1310_LAUNCHXL_NVSName {
369 #if TI_NVS_CONF_NVS_INTERNAL_ENABLE
370  CC1310_LAUNCHXL_NVSCC26XX0 = 0,
371 #endif
372 #if TI_NVS_CONF_NVS_EXTERNAL_ENABLE
373  CC1310_LAUNCHXL_NVSSPI25X0,
374 #endif
375 
376  CC1310_LAUNCHXL_NVSCOUNT
377 } CC1310_LAUNCHXL_NVSName;
378 
379 /*!
380  * @def CC1310_LAUNCHXL_PWMName
381  * @brief Enum of PWM outputs
382  */
383 typedef enum CC1310_LAUNCHXL_PWMName {
384  CC1310_LAUNCHXL_PWM0 = 0,
385  CC1310_LAUNCHXL_PWM1,
386  CC1310_LAUNCHXL_PWM2,
387  CC1310_LAUNCHXL_PWM3,
388  CC1310_LAUNCHXL_PWM4,
389  CC1310_LAUNCHXL_PWM5,
390  CC1310_LAUNCHXL_PWM6,
391  CC1310_LAUNCHXL_PWM7,
392 
393  CC1310_LAUNCHXL_PWMCOUNT
394 } CC1310_LAUNCHXL_PWMName;
395 
396 /*!
397  * @def CC1310_LAUNCHXL_SDName
398  * @brief Enum of SD names
399  */
400 typedef enum CC1310_LAUNCHXL_SDName {
401  CC1310_LAUNCHXL_SDSPI0 = 0,
402 
403  CC1310_LAUNCHXL_SDCOUNT
404 } CC1310_LAUNCHXL_SDName;
405 
406 /*!
407  * @def CC1310_LAUNCHXL_SPIName
408  * @brief Enum of SPI names
409  */
410 typedef enum CC1310_LAUNCHXL_SPIName {
411 #if TI_SPI_CONF_SPI0_ENABLE
412  CC1310_LAUNCHXL_SPI0 = 0,
413 #endif
414 #if TI_SPI_CONF_SPI1_ENABLE
415  CC1310_LAUNCHXL_SPI1,
416 #endif
417 
418  CC1310_LAUNCHXL_SPICOUNT
419 } CC1310_LAUNCHXL_SPIName;
420 
421 /*!
422  * @def CC1310_LAUNCHXL_UARTName
423  * @brief Enum of UARTs
424  */
425 typedef enum CC1310_LAUNCHXL_UARTName {
426 #if TI_UART_CONF_UART0_ENABLE
427  CC1310_LAUNCHXL_UART0 = 0,
428 #endif
429 
430  CC1310_LAUNCHXL_UARTCOUNT
431 } CC1310_LAUNCHXL_UARTName;
432 
433 /*!
434  * @def CC1310_LAUNCHXL_UDMAName
435  * @brief Enum of DMA buffers
436  */
437 typedef enum CC1310_LAUNCHXL_UDMAName {
438  CC1310_LAUNCHXL_UDMA0 = 0,
439 
440  CC1310_LAUNCHXL_UDMACOUNT
441 } CC1310_LAUNCHXL_UDMAName;
442 
443 /*!
444  * @def CC1310_LAUNCHXL_WatchdogName
445  * @brief Enum of Watchdogs
446  */
447 typedef enum CC1310_LAUNCHXL_WatchdogName {
448  CC1310_LAUNCHXL_WATCHDOG0 = 0,
449 
450  CC1310_LAUNCHXL_WATCHDOGCOUNT
451 } CC1310_LAUNCHXL_WatchdogName;
452 
453 
454 #ifdef __cplusplus
455 }
456 #endif
457 
458 #endif /* __CC1310_LAUNCHXL_BOARD_H__ */
void CC1310_LAUNCHXL_initGeneral(void)
Initialize the general board specific settings.
void CC1310_LAUNCHXL_wakeUpExtFlash(void)
Wake up the external flash present on the board files.
void CC1310_LAUNCHXL_shutDownExtFlash(void)
Turn off the external flash on LaunchPads.