Contiki-NG
CC1312R1_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 CC1312R1_LAUNCHXL.h
34 *
35 * @brief CC1312R1 LaunchPad Board Specific header file.
36 *
37 * The CC1312R1_LAUNCHXL header file should be included in an application as
38 * follows:
39 * @code
40 * #include "CC1312R1_LAUNCHXL.h"
41 * @endcode
42 *
43 * ============================================================================
44 */
45#ifndef __CC1312R1_LAUNCHXL_BOARD_H__
46#define __CC1312R1_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 CC1312R1_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 CC1312R1_LAUNCHXL_DIO23_ANALOG IOID_23
71#define CC1312R1_LAUNCHXL_DIO24_ANALOG IOID_24
72#define CC1312R1_LAUNCHXL_DIO25_ANALOG IOID_25
73#define CC1312R1_LAUNCHXL_DIO26_ANALOG IOID_26
74#define CC1312R1_LAUNCHXL_DIO27_ANALOG IOID_27
75#define CC1312R1_LAUNCHXL_DIO28_ANALOG IOID_28
76#define CC1312R1_LAUNCHXL_DIO29_ANALOG IOID_29
77#define CC1312R1_LAUNCHXL_DIO30_ANALOG IOID_30
78
79/* Digital IOs */
80#define CC1312R1_LAUNCHXL_DIO0 IOID_0
81#define CC1312R1_LAUNCHXL_DIO1 IOID_1
82#define CC1312R1_LAUNCHXL_DIO12 IOID_12
83#define CC1312R1_LAUNCHXL_DIO15 IOID_15
84#define CC1312R1_LAUNCHXL_DIO16_TDO IOID_16
85#define CC1312R1_LAUNCHXL_DIO17_TDI IOID_17
86#define CC1312R1_LAUNCHXL_DIO21 IOID_21
87#define CC1312R1_LAUNCHXL_DIO22 IOID_22
88
89/* Discrete Inputs */
90#define CC1312R1_LAUNCHXL_PIN_BTN1 IOID_13
91#define CC1312R1_LAUNCHXL_PIN_BTN2 IOID_14
92
93/* GPIO */
94#define CC1312R1_LAUNCHXL_GPIO_LED_ON 1
95#define CC1312R1_LAUNCHXL_GPIO_LED_OFF 0
96
97/* I2C */
98#define CC1312R1_LAUNCHXL_I2C0_SCL0 IOID_4
99#define CC1312R1_LAUNCHXL_I2C0_SDA0 IOID_5
100
101/* I2S */
102#define CC1312R1_LAUNCHXL_I2S_ADO IOID_25
103#define CC1312R1_LAUNCHXL_I2S_ADI IOID_26
104#define CC1312R1_LAUNCHXL_I2S_BCLK IOID_27
105#define CC1312R1_LAUNCHXL_I2S_MCLK PIN_UNASSIGNED
106#define CC1312R1_LAUNCHXL_I2S_WCLK IOID_28
107
108/* LEDs */
109#define CC1312R1_LAUNCHXL_PIN_LED_ON 1
110#define CC1312R1_LAUNCHXL_PIN_LED_OFF 0
111#define CC1312R1_LAUNCHXL_PIN_RLED IOID_6
112#define CC1312R1_LAUNCHXL_PIN_GLED IOID_7
113
114/* PWM Outputs */
115#define CC1312R1_LAUNCHXL_PWMPIN0 CC1312R1_LAUNCHXL_PIN_RLED
116#define CC1312R1_LAUNCHXL_PWMPIN1 CC1312R1_LAUNCHXL_PIN_GLED
117#define CC1312R1_LAUNCHXL_PWMPIN2 PIN_UNASSIGNED
118#define CC1312R1_LAUNCHXL_PWMPIN3 PIN_UNASSIGNED
119#define CC1312R1_LAUNCHXL_PWMPIN4 PIN_UNASSIGNED
120#define CC1312R1_LAUNCHXL_PWMPIN5 PIN_UNASSIGNED
121#define CC1312R1_LAUNCHXL_PWMPIN6 PIN_UNASSIGNED
122#define CC1312R1_LAUNCHXL_PWMPIN7 PIN_UNASSIGNED
123
124/* SPI */
125#define CC1312R1_LAUNCHXL_SPI_FLASH_CS IOID_20
126#define CC1312R1_LAUNCHXL_FLASH_CS_ON 0
127#define CC1312R1_LAUNCHXL_FLASH_CS_OFF 1
128
129/* SPI Board */
130#define CC1312R1_LAUNCHXL_SPI0_MISO IOID_8 /* RF1.20 */
131#define CC1312R1_LAUNCHXL_SPI0_MOSI IOID_9 /* RF1.18 */
132#define CC1312R1_LAUNCHXL_SPI0_CLK IOID_10 /* RF1.16 */
133#define CC1312R1_LAUNCHXL_SPI0_CSN IOID_11
134#define CC1312R1_LAUNCHXL_SPI1_MISO PIN_UNASSIGNED
135#define CC1312R1_LAUNCHXL_SPI1_MOSI PIN_UNASSIGNED
136#define CC1312R1_LAUNCHXL_SPI1_CLK PIN_UNASSIGNED
137#define CC1312R1_LAUNCHXL_SPI1_CSN PIN_UNASSIGNED
138
139/* UART Board */
140#define CC1312R1_LAUNCHXL_UART0_RX IOID_2 /* RXD */
141#define CC1312R1_LAUNCHXL_UART0_TX IOID_3 /* TXD */
142#define CC1312R1_LAUNCHXL_UART0_CTS IOID_19 /* CTS */
143#define CC1312R1_LAUNCHXL_UART0_RTS IOID_18 /* RTS */
144#define CC1312R1_LAUNCHXL_UART1_RX PIN_UNASSIGNED
145#define CC1312R1_LAUNCHXL_UART1_TX PIN_UNASSIGNED
146#define CC1312R1_LAUNCHXL_UART1_CTS PIN_UNASSIGNED
147#define CC1312R1_LAUNCHXL_UART1_RTS PIN_UNASSIGNED
148/* For backward compatibility */
149#define CC1312R1_LAUNCHXL_UART_RX CC1312R1_LAUNCHXL_UART0_RX
150#define CC1312R1_LAUNCHXL_UART_TX CC1312R1_LAUNCHXL_UART0_TX
151#define CC1312R1_LAUNCHXL_UART_CTS CC1312R1_LAUNCHXL_UART0_CTS
152#define CC1312R1_LAUNCHXL_UART_RTS CC1312R1_LAUNCHXL_UART0_RTS
153
154/*!
155 * @brief Initialize the general board specific settings
156 *
157 * This function initializes the general board specific settings.
158 */
160
161/*!
162 * @brief Turn off the external flash on LaunchPads
163 *
164 */
166
167/*!
168 * @brief Wake up the external flash present on the board files
169 *
170 * This function toggles the chip select for the amount of time needed
171 * to wake the chip up.
172 */
174
175/*!
176 * @def CC1312R1_LAUNCHXL_ADCBufName
177 * @brief Enum of ADCBufs
178 */
179typedef enum CC1312R1_LAUNCHXL_ADCBufName {
180 CC1312R1_LAUNCHXL_ADCBUF0 = 0,
181
182 CC1312R1_LAUNCHXL_ADCBUFCOUNT
183} CC1312R1_LAUNCHXL_ADCBufName;
184
185/*!
186 * @def CC1312R1_LAUNCHXL_ADCBuf0ChannelName
187 * @brief Enum of ADCBuf channels
188 */
189typedef enum CC1312R1_LAUNCHXL_ADCBuf0ChannelName {
190 CC1312R1_LAUNCHXL_ADCBUF0CHANNEL0 = 0,
191 CC1312R1_LAUNCHXL_ADCBUF0CHANNEL1,
192 CC1312R1_LAUNCHXL_ADCBUF0CHANNEL2,
193 CC1312R1_LAUNCHXL_ADCBUF0CHANNEL3,
194 CC1312R1_LAUNCHXL_ADCBUF0CHANNEL4,
195 CC1312R1_LAUNCHXL_ADCBUF0CHANNEL5,
196 CC1312R1_LAUNCHXL_ADCBUF0CHANNEL6,
197 CC1312R1_LAUNCHXL_ADCBUF0CHANNEL7,
198 CC1312R1_LAUNCHXL_ADCBUF0CHANNELVDDS,
199 CC1312R1_LAUNCHXL_ADCBUF0CHANNELDCOUPL,
200 CC1312R1_LAUNCHXL_ADCBUF0CHANNELVSS,
201
202 CC1312R1_LAUNCHXL_ADCBUF0CHANNELCOUNT
203} CC1312R1_LAUNCHXL_ADCBuf0ChannelName;
204
205/*!
206 * @def CC1312R1_LAUNCHXL_ADCName
207 * @brief Enum of ADCs
208 */
209typedef enum CC1312R1_LAUNCHXL_ADCName {
210 CC1312R1_LAUNCHXL_ADC0 = 0,
211 CC1312R1_LAUNCHXL_ADC1,
212 CC1312R1_LAUNCHXL_ADC2,
213 CC1312R1_LAUNCHXL_ADC3,
214 CC1312R1_LAUNCHXL_ADC4,
215 CC1312R1_LAUNCHXL_ADC5,
216 CC1312R1_LAUNCHXL_ADC6,
217 CC1312R1_LAUNCHXL_ADC7,
218 CC1312R1_LAUNCHXL_ADCDCOUPL,
219 CC1312R1_LAUNCHXL_ADCVSS,
220 CC1312R1_LAUNCHXL_ADCVDDS,
221
222 CC1312R1_LAUNCHXL_ADCCOUNT
223} CC1312R1_LAUNCHXL_ADCName;
224
225/*!
226 * @def CC1312R1_LAUNCHXL_ECDHName
227 * @brief Enum of ECDH names
228 */
229typedef enum CC1312R1_LAUNCHXL_ECDHName {
230 CC1312R1_LAUNCHXL_ECDH0 = 0,
231
232 CC1312R1_LAUNCHXL_ECDHCOUNT
233} CC1312R1_LAUNCHXL_ECDHName;
234
235/*!
236 * @def CC1312R1_LAUNCHXL_ECDSAName
237 * @brief Enum of ECDSA names
238 */
239typedef enum CC1312R1_LAUNCHXL_ECDSAName {
240 CC1312R1_LAUNCHXL_ECDSA0 = 0,
241
242 CC1312R1_LAUNCHXL_ECDSACOUNT
243} CC1312R1_LAUNCHXL_ECDSAName;
244
245/*!
246 * @def CC1312R1_LAUNCHXL_ECJPAKEName
247 * @brief Enum of ECJPAKE names
248 */
249typedef enum CC1312R1_LAUNCHXL_ECJPAKEName {
250 CC1312R1_LAUNCHXL_ECJPAKE0 = 0,
251
252 CC1312R1_LAUNCHXL_ECJPAKECOUNT
253} CC1312R1_LAUNCHXL_ECJPAKEName;
254
255/*!
256 * @def CC1312R1_LAUNCHXL_AESCCMName
257 * @brief Enum of AESCCM names
258 */
259typedef enum CC1312R1_LAUNCHXL_AESCCMName {
260 CC1312R1_LAUNCHXL_AESCCM0 = 0,
261
262 CC1312R1_LAUNCHXL_AESCCMCOUNT
263} CC1312R1_LAUNCHXL_AESCCMName;
264
265/*!
266 * @def CC1312R1_LAUNCHXL_AESGCMName
267 * @brief Enum of AESGCM names
268 */
269typedef enum CC1312R1_LAUNCHXL_AESGCMName {
270 CC1312R1_LAUNCHXL_AESGCM0 = 0,
271
272 CC1312R1_LAUNCHXL_AESGCMCOUNT
273} CC1312R1_LAUNCHXL_AESGCMName;
274
275/*!
276 * @def CC1312R1_LAUNCHXL_AESCBCName
277 * @brief Enum of AESCBC names
278 */
279typedef enum CC1312R1_LAUNCHXL_AESCBCName {
280 CC1312R1_LAUNCHXL_AESCBC0 = 0,
281
282 CC1312R1_LAUNCHXL_AESCBCCOUNT
283} CC1312R1_LAUNCHXL_AESCBCName;
284
285/*!
286 * @def CC1312R1_LAUNCHXL_AESCTRName
287 * @brief Enum of AESCTR names
288 */
289typedef enum CC1312R1_LAUNCHXL_AESCTRName {
290 CC1312R1_LAUNCHXL_AESCTR0 = 0,
291
292 CC1312R1_LAUNCHXL_AESCTRCOUNT
293} CC1312R1_LAUNCHXL_AESCTRName;
294
295/*!
296 * @def CC1312R1_LAUNCHXL_AESECBName
297 * @brief Enum of AESECB names
298 */
299typedef enum CC1312R1_LAUNCHXL_AESECBName {
300 CC1312R1_LAUNCHXL_AESECB0 = 0,
301
302 CC1312R1_LAUNCHXL_AESECBCOUNT
303} CC1312R1_LAUNCHXL_AESECBName;
304
305/*!
306 * @def CC1312R1_LAUNCHXL_AESCTRDRBGName
307 * @brief Enum of AESCTRDRBG names
308 */
309typedef enum CC1312R1_LAUNCHXL_AESCTRDRBGName {
310 CC1312R1_LAUNCHXL_AESCTRDRBG0 = 0,
311
312 CC1312R1_LAUNCHXL_AESCTRDRBGCOUNT
313} CC1312R1_LAUNCHXL_AESCTRDRBGName;
314
315/*!
316 * @def CC1312R1_LAUNCHXL_SHA2Name
317 * @brief Enum of SHA2 names
318 */
319typedef enum CC1312R1_LAUNCHXL_SHA2Name {
320 CC1312R1_LAUNCHXL_SHA20 = 0,
321
322 CC1312R1_LAUNCHXL_SHA2COUNT
323} CC1312R1_LAUNCHXL_SHA2Name;
324
325/*!
326 * @def CC1312R1_LAUNCHXL_TRNGName
327 * @brief Enum of TRNG names
328 */
329typedef enum CC1312R1_LAUNCHXL_TRNGName {
330 CC1312R1_LAUNCHXL_TRNG0 = 0,
331
332 CC1312R1_LAUNCHXL_TRNGCOUNT
333} CC1312R1_LAUNCHXL_TRNGName;
334
335/*!
336 * @def CC1312R1_LAUNCHXL_GPIOName
337 * @brief Enum of GPIO names
338 */
339typedef enum CC1312R1_LAUNCHXL_GPIOName {
340 CC1312R1_LAUNCHXL_GPIO_S1 = 0,
341 CC1312R1_LAUNCHXL_GPIO_S2,
342 CC1312R1_LAUNCHXL_SPI_MASTER_READY,
343 CC1312R1_LAUNCHXL_SPI_SLAVE_READY,
344 CC1312R1_LAUNCHXL_GPIO_LED_GREEN,
345 CC1312R1_LAUNCHXL_GPIO_LED_RED,
346 CC1312R1_LAUNCHXL_GPIO_SPI_FLASH_CS,
347 CC1312R1_LAUNCHXL_SDSPI_CS,
348 CC1312R1_LAUNCHXL_GPIOCOUNT
349} CC1312R1_LAUNCHXL_GPIOName;
350
351/*!
352 * @def CC1312R1_LAUNCHXL_GPTimerName
353 * @brief Enum of GPTimer parts
354 */
355typedef enum CC1312R1_LAUNCHXL_GPTimerName {
356 CC1312R1_LAUNCHXL_GPTIMER0A = 0,
357 CC1312R1_LAUNCHXL_GPTIMER0B,
358 CC1312R1_LAUNCHXL_GPTIMER1A,
359 CC1312R1_LAUNCHXL_GPTIMER1B,
360 CC1312R1_LAUNCHXL_GPTIMER2A,
361 CC1312R1_LAUNCHXL_GPTIMER2B,
362 CC1312R1_LAUNCHXL_GPTIMER3A,
363 CC1312R1_LAUNCHXL_GPTIMER3B,
364
365 CC1312R1_LAUNCHXL_GPTIMERPARTSCOUNT
366} CC1312R1_LAUNCHXL_GPTimerName;
367
368/*!
369 * @def CC1312R1_LAUNCHXL_GPTimers
370 * @brief Enum of GPTimers
371 */
372typedef enum CC1312R1_LAUNCHXL_GPTimers {
373 CC1312R1_LAUNCHXL_GPTIMER0 = 0,
374 CC1312R1_LAUNCHXL_GPTIMER1,
375 CC1312R1_LAUNCHXL_GPTIMER2,
376 CC1312R1_LAUNCHXL_GPTIMER3,
377
378 CC1312R1_LAUNCHXL_GPTIMERCOUNT
379} CC1312R1_LAUNCHXL_GPTimers;
380
381/*!
382 * @def CC1312R1_LAUNCHXL_I2CName
383 * @brief Enum of I2C names
384 */
385typedef enum CC1312R1_LAUNCHXL_I2CName {
386#if TI_I2C_CONF_I2C0_ENABLE
387 CC1312R1_LAUNCHXL_I2C0 = 0,
388#endif
389
390 CC1312R1_LAUNCHXL_I2CCOUNT
391} CC1312R1_LAUNCHXL_I2CName;
392
393/*!
394 * @def CC1312R1_LAUNCHXL_I2SName
395 * @brief Enum of I2S names
396 */
397typedef enum CC1312R1_LAUNCHXL_I2SName {
398 CC1312R1_LAUNCHXL_I2S0 = 0,
399
400 CC1312R1_LAUNCHXL_I2SCOUNT
401} CC1312R1_LAUNCHXL_I2SName;
402
403/*!
404 * @def CC1312R1_LAUNCHXL_NVSName
405 * @brief Enum of NVS names
406 */
407typedef enum CC1312R1_LAUNCHXL_NVSName {
408#if TI_NVS_CONF_NVS_INTERNAL_ENABLE
409 CC1312R1_LAUNCHXL_NVSCC26XX0 = 0,
410#endif
411#if TI_NVS_CONF_NVS_EXTERNAL_ENABLE
412 CC1312R1_LAUNCHXL_NVSSPI25X0,
413#endif
414
415 CC1312R1_LAUNCHXL_NVSCOUNT
416} CC1312R1_LAUNCHXL_NVSName;
417
418/*!
419 * @def CC1312R1_LAUNCHXL_PWMName
420 * @brief Enum of PWM outputs
421 */
422typedef enum CC1312R1_LAUNCHXL_PWMName {
423 CC1312R1_LAUNCHXL_PWM0 = 0,
424 CC1312R1_LAUNCHXL_PWM1,
425 CC1312R1_LAUNCHXL_PWM2,
426 CC1312R1_LAUNCHXL_PWM3,
427 CC1312R1_LAUNCHXL_PWM4,
428 CC1312R1_LAUNCHXL_PWM5,
429 CC1312R1_LAUNCHXL_PWM6,
430 CC1312R1_LAUNCHXL_PWM7,
431
432 CC1312R1_LAUNCHXL_PWMCOUNT
433} CC1312R1_LAUNCHXL_PWMName;
434
435/*!
436 * @def CC1312R1_LAUNCHXL_SDName
437 * @brief Enum of SD names
438 */
439typedef enum CC1312R1_LAUNCHXL_SDName {
440 CC1312R1_LAUNCHXL_SDSPI0 = 0,
441
442 CC1312R1_LAUNCHXL_SDCOUNT
443} CC1312R1_LAUNCHXL_SDName;
444
445/*!
446 * @def CC1312R1_LAUNCHXL_SPIName
447 * @brief Enum of SPI names
448 */
449typedef enum CC1312R1_LAUNCHXL_SPIName {
450#if TI_SPI_CONF_SPI0_ENABLE
451 CC1312R1_LAUNCHXL_SPI0 = 0,
452#endif
453#if TI_SPI_CONF_SPI1_ENABLE
454 CC1312R1_LAUNCHXL_SPI1,
455#endif
456
457 CC1312R1_LAUNCHXL_SPICOUNT
458} CC1312R1_LAUNCHXL_SPIName;
459
460/*!
461 * @def CC1312R1_LAUNCHXL_UARTName
462 * @brief Enum of UARTs
463 */
464typedef enum CC1312R1_LAUNCHXL_UARTName {
465#if TI_UART_CONF_UART0_ENABLE
466 CC1312R1_LAUNCHXL_UART0 = 0,
467#endif
468#if TI_UART_CONF_UART1_ENABLE
469 CC1312R1_LAUNCHXL_UART1,
470#endif
471
472 CC1312R1_LAUNCHXL_UARTCOUNT
473} CC1312R1_LAUNCHXL_UARTName;
474
475/*!
476 * @def CC1312R1_LAUNCHXL_UDMAName
477 * @brief Enum of DMA buffers
478 */
479typedef enum CC1312R1_LAUNCHXL_UDMAName {
480 CC1312R1_LAUNCHXL_UDMA0 = 0,
481
482 CC1312R1_LAUNCHXL_UDMACOUNT
483} CC1312R1_LAUNCHXL_UDMAName;
484
485/*!
486 * @def CC1312R1_LAUNCHXL_WatchdogName
487 * @brief Enum of Watchdogs
488 */
489typedef enum CC1312R1_LAUNCHXL_WatchdogName {
490 CC1312R1_LAUNCHXL_WATCHDOG0 = 0,
491
492 CC1312R1_LAUNCHXL_WATCHDOGCOUNT
493} CC1312R1_LAUNCHXL_WatchdogName;
494
495
496#ifdef __cplusplus
497}
498#endif
499
500#endif /* __CC1312R1_LAUNCHXL_BOARD_H__ */
void CC1312R1_LAUNCHXL_shutDownExtFlash(void)
Turn off the external flash on LaunchPads.
void CC1312R1_LAUNCHXL_wakeUpExtFlash(void)
Wake up the external flash present on the board files.
void CC1312R1_LAUNCHXL_initGeneral(void)
Initialize the general board specific settings.