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
49extern "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 */
60extern 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 */
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 */
170typedef 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 */
180typedef 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 */
200typedef 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 */
220typedef 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 */
230typedef 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 */
240typedef 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 */
250typedef 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 */
260typedef 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 */
270typedef 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 */
280typedef 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 */
290typedef 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 */
300typedef 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 */
316typedef 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 */
333typedef 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 */
346typedef 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 */
358typedef 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 */
368typedef 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 */
383typedef 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 */
400typedef 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 */
410typedef 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 */
425typedef 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 */
437typedef 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 */
447typedef 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.