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
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 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 */
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 */
171typedef 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 */
181typedef 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 */
201typedef 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 */
221typedef 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 */
231typedef 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 */
241typedef 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 */
251typedef 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 */
261typedef 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 */
271typedef 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 */
281typedef 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 */
291typedef 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 */
301typedef 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 */
317typedef 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 */
334typedef 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 */
347typedef 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 */
359typedef 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 */
369typedef 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 */
384typedef 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 */
401typedef 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 */
411typedef 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 */
426typedef 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 */
438typedef 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 */
448typedef 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_wakeUpExtFlash(void)
Wake up the external flash present on the board files.
void CC1350_LAUNCHXL_shutDownExtFlash(void)
Turn off the external flash on LaunchPads.
void CC1350_LAUNCHXL_initGeneral(void)
Initialize the general board specific settings.