Contiki-NG
CC1350_LAUNCHXL_433.h
Go to the documentation of this file.
1 /*
2  * Copyright (c) 2017-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_433.h
34  *
35  * @brief CC1350 LaunchPad Board Specific header file.
36  *
37  * The CC1350_LAUNCHXL_433 header file should be included in an application as
38  * follows:
39  * @code
40  * #include "CC1350_LAUNCHXL_433.h"
41  * @endcode
42  *
43  * ============================================================================
44  */
45 #ifndef __CC1350_LAUNCHXL_433_BOARD_H__
46 #define __CC1350_LAUNCHXL_433_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_433
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_433_DIO23_ANALOG IOID_23
71 #define CC1350_LAUNCHXL_433_DIO24_ANALOG IOID_24
72 #define CC1350_LAUNCHXL_433_DIO25_ANALOG IOID_25
73 #define CC1350_LAUNCHXL_433_DIO26_ANALOG IOID_26
74 #define CC1350_LAUNCHXL_433_DIO27_ANALOG IOID_27
75 #define CC1350_LAUNCHXL_433_DIO28_ANALOG IOID_28
76 #define CC1350_LAUNCHXL_433_DIO29_ANALOG IOID_29
77 #define CC1350_LAUNCHXL_433_DIO30_ANALOG IOID_30
78 
79 /* Digital IOs */
80 #define CC1350_LAUNCHXL_433_DIO0 IOID_0
81 #define CC1350_LAUNCHXL_433_DIO1_RF_SUB1GHZ IOID_1
82 #define CC1350_LAUNCHXL_433_DIO12 IOID_12
83 #define CC1350_LAUNCHXL_433_DIO15 IOID_15
84 #define CC1350_LAUNCHXL_433_DIO16_TDO IOID_16
85 #define CC1350_LAUNCHXL_433_DIO17_TDI IOID_17
86 #define CC1350_LAUNCHXL_433_DIO21 IOID_21
87 #define CC1350_LAUNCHXL_433_DIO22 IOID_22
88 #define CC1350_LAUNCHXL_433_DIO30_RF_POWER IOID_30
89 
90 /* Discrete Inputs */
91 #define CC1350_LAUNCHXL_433_PIN_BTN1 IOID_13
92 #define CC1350_LAUNCHXL_433_PIN_BTN2 IOID_14
93 
94 
95 /* GPIO */
96 #define CC1350_LAUNCHXL_433_GPIO_LED_ON 1
97 #define CC1350_LAUNCHXL_433_GPIO_LED_OFF 0
98 
99 /* I2C */
100 #define CC1350_LAUNCHXL_433_I2C0_SCL0 IOID_4
101 #define CC1350_LAUNCHXL_433_I2C0_SDA0 IOID_5
102 
103 /* I2S */
104 #define CC1350_LAUNCHXL_433_I2S_ADO IOID_25
105 #define CC1350_LAUNCHXL_433_I2S_ADI IOID_26
106 #define CC1350_LAUNCHXL_433_I2S_BCLK IOID_27
107 #define CC1350_LAUNCHXL_433_I2S_MCLK PIN_UNASSIGNED
108 #define CC1350_LAUNCHXL_433_I2S_WCLK IOID_28
109 
110 /* LEDs */
111 #define CC1350_LAUNCHXL_433_PIN_LED_ON 1
112 #define CC1350_LAUNCHXL_433_PIN_LED_OFF 0
113 #define CC1350_LAUNCHXL_433_PIN_RLED IOID_6
114 #define CC1350_LAUNCHXL_433_PIN_GLED IOID_7
115 
116 /* PWM Outputs */
117 #define CC1350_LAUNCHXL_433_PWMPIN0 CC1350_LAUNCHXL_433_PIN_RLED
118 #define CC1350_LAUNCHXL_433_PWMPIN1 CC1350_LAUNCHXL_433_PIN_GLED
119 #define CC1350_LAUNCHXL_433_PWMPIN2 PIN_UNASSIGNED
120 #define CC1350_LAUNCHXL_433_PWMPIN3 PIN_UNASSIGNED
121 #define CC1350_LAUNCHXL_433_PWMPIN4 PIN_UNASSIGNED
122 #define CC1350_LAUNCHXL_433_PWMPIN5 PIN_UNASSIGNED
123 #define CC1350_LAUNCHXL_433_PWMPIN6 PIN_UNASSIGNED
124 #define CC1350_LAUNCHXL_433_PWMPIN7 PIN_UNASSIGNED
125 
126 /* SPI */
127 #define CC1350_LAUNCHXL_433_SPI_FLASH_CS IOID_20
128 #define CC1350_LAUNCHXL_433_FLASH_CS_ON 0
129 #define CC1350_LAUNCHXL_433_FLASH_CS_OFF 1
130 
131 /* SPI Board */
132 #define CC1350_LAUNCHXL_433_SPI0_MISO IOID_8 /* RF1.20 */
133 #define CC1350_LAUNCHXL_433_SPI0_MOSI IOID_9 /* RF1.18 */
134 #define CC1350_LAUNCHXL_433_SPI0_CLK IOID_10 /* RF1.16 */
135 #define CC1350_LAUNCHXL_433_SPI0_CSN IOID_11
136 #define CC1350_LAUNCHXL_433_SPI1_MISO PIN_UNASSIGNED
137 #define CC1350_LAUNCHXL_433_SPI1_MOSI PIN_UNASSIGNED
138 #define CC1350_LAUNCHXL_433_SPI1_CLK PIN_UNASSIGNED
139 #define CC1350_LAUNCHXL_433_SPI1_CSN PIN_UNASSIGNED
140 
141 /* UART Board */
142 #define CC1350_LAUNCHXL_433_UART_RX IOID_2 /* RXD */
143 #define CC1350_LAUNCHXL_433_UART_TX IOID_3 /* TXD */
144 #define CC1350_LAUNCHXL_433_UART_CTS IOID_19 /* CTS */
145 #define CC1350_LAUNCHXL_433_UART_RTS IOID_18 /* RTS */
146 
147 /*!
148  * @brief Initialize the general board specific settings
149  *
150  * This function initializes the general board specific settings.
151  */
153 
154 /*!
155  * @brief Turn off the external flash on LaunchPads
156  *
157  */
159 
160 /*!
161  * @brief Wake up the external flash present on the board files
162  *
163  * This function toggles the chip select for the amount of time needed
164  * to wake the chip up.
165  */
167 
168 /*!
169  * @def CC1350_LAUNCHXL_433_ADCBufName
170  * @brief Enum of ADCBufs
171  */
172 typedef enum CC1350_LAUNCHXL_433_ADCBufName {
173  CC1350_LAUNCHXL_433_ADCBUF0 = 0,
174 
175  CC1350_LAUNCHXL_433_ADCBUFCOUNT
176 } CC1350_LAUNCHXL_433_ADCBufName;
177 
178 /*!
179  * @def CC1350_LAUNCHXL_433_ADCBuf0ChannelName
180  * @brief Enum of ADCBuf channels
181  */
182 typedef enum CC1350_LAUNCHXL_433_ADCBuf0ChannelName {
183  CC1350_LAUNCHXL_433_ADCBUF0CHANNEL0 = 0,
184  CC1350_LAUNCHXL_433_ADCBUF0CHANNEL1,
185  CC1350_LAUNCHXL_433_ADCBUF0CHANNEL2,
186  CC1350_LAUNCHXL_433_ADCBUF0CHANNEL3,
187  CC1350_LAUNCHXL_433_ADCBUF0CHANNEL4,
188  CC1350_LAUNCHXL_433_ADCBUF0CHANNEL5,
189  CC1350_LAUNCHXL_433_ADCBUF0CHANNEL6,
190  CC1350_LAUNCHXL_433_ADCBUF0CHANNEL7,
191  CC1350_LAUNCHXL_433_ADCBUF0CHANNELVDDS,
192  CC1350_LAUNCHXL_433_ADCBUF0CHANNELDCOUPL,
193  CC1350_LAUNCHXL_433_ADCBUF0CHANNELVSS,
194 
195  CC1350_LAUNCHXL_433_ADCBUF0CHANNELCOUNT
196 } CC1350_LAUNCHXL_433_ADCBuf0ChannelName;
197 
198 /*!
199  * @def CC1350_LAUNCHXL_433_ADCName
200  * @brief Enum of ADCs
201  */
202 typedef enum CC1350_LAUNCHXL_433_ADCName {
203  CC1350_LAUNCHXL_433_ADC0 = 0,
204  CC1350_LAUNCHXL_433_ADC1,
205  CC1350_LAUNCHXL_433_ADC2,
206  CC1350_LAUNCHXL_433_ADC3,
207  CC1350_LAUNCHXL_433_ADC4,
208  CC1350_LAUNCHXL_433_ADC5,
209  CC1350_LAUNCHXL_433_ADC6,
210  CC1350_LAUNCHXL_433_ADC7,
211  CC1350_LAUNCHXL_433_ADCDCOUPL,
212  CC1350_LAUNCHXL_433_ADCVSS,
213  CC1350_LAUNCHXL_433_ADCVDDS,
214 
215  CC1350_LAUNCHXL_433_ADCCOUNT
216 } CC1350_LAUNCHXL_433_ADCName;
217 
218 /*!
219  * @def CC1350_LAUNCHXL_433_CryptoName
220  * @brief Enum of Crypto names
221  */
222 typedef enum CC1350_LAUNCHXL_433_CryptoName {
223  CC1350_LAUNCHXL_433_CRYPTO0 = 0,
224 
225  CC1350_LAUNCHXL_433_CRYPTOCOUNT
226 } CC1350_LAUNCHXL_433_CryptoName;
227 
228 /*!
229  * @def CC1350_LAUNCHXL_433_AESCCMName
230  * @brief Enum of AESCCM names
231  */
232 typedef enum CC1350_LAUNCHXL_433_AESCCMName {
233  CC1350_LAUNCHXL_433_AESCCM0 = 0,
234 
235  CC1350_LAUNCHXL_433_AESCCMCOUNT
236 } CC1350_LAUNCHXL_433_AESCCMName;
237 
238 /*!
239  * @def CC1350_LAUNCHXL_433_AESGCMName
240  * @brief Enum of AESGCM names
241  */
242 typedef enum CC1350_LAUNCHXL_433_AESGCMName {
243  CC1350_LAUNCHXL_433_AESGCM0 = 0,
244 
245  CC1350_LAUNCHXL_433_AESGCMCOUNT
246 } CC1350_LAUNCHXL_433_AESGCMName;
247 
248 /*!
249  * @def CC1350_LAUNCHXL_433_AESCBCName
250  * @brief Enum of AESCBC names
251  */
252 typedef enum CC1350_LAUNCHXL_433_AESCBCName {
253  CC1350_LAUNCHXL_433_AESCBC0 = 0,
254 
255  CC1350_LAUNCHXL_433_AESCBCCOUNT
256 } CC1350_LAUNCHXL_433_AESCBCName;
257 
258 /*!
259  * @def CC1350_LAUNCHXL_433_AESCTRName
260  * @brief Enum of AESCTR names
261  */
262 typedef enum CC1350_LAUNCHXL_433_AESCTRName {
263  CC1350_LAUNCHXL_433_AESCTR0 = 0,
264 
265  CC1350_LAUNCHXL_433_AESCTRCOUNT
266 } CC1350_LAUNCHXL_433_AESCTRName;
267 
268 /*!
269  * @def CC1350_LAUNCHXL_433_AESECBName
270  * @brief Enum of AESECB names
271  */
272 typedef enum CC1350_LAUNCHXL_433_AESECBName {
273  CC1350_LAUNCHXL_433_AESECB0 = 0,
274 
275  CC1350_LAUNCHXL_433_AESECBCOUNT
276 } CC1350_LAUNCHXL_433_AESECBName;
277 
278 /*!
279  * @def CC1350_LAUNCHXL_433_AESCTRDRBGName
280  * @brief Enum of AESCTRDRBG names
281  */
282 typedef enum CC1350_LAUNCHXL_433_AESCTRDRBGName {
283  CC1350_LAUNCHXL_433_AESCTRDRBG0 = 0,
284 
285  CC1350_LAUNCHXL_433_AESCTRDRBGCOUNT
286 } CC1350_LAUNCHXL_433_AESCTRDRBGName;
287 
288 /*!
289  * @def CC1350_LAUNCHXL_433_TRNGName
290  * @brief Enum of TRNG names
291  */
292 typedef enum CC1350_LAUNCHXL_433_TRNGName {
293  CC1350_LAUNCHXL_433_TRNG0 = 0,
294 
295  CC1350_LAUNCHXL_433_TRNGCOUNT
296 } CC1350_LAUNCHXL_433_TRNGName;
297 
298 /*!
299  * @def CC1350_LAUNCHXL_433_GPIOName
300  * @brief Enum of GPIO names
301  */
302 typedef enum CC1350_LAUNCHXL_433_GPIOName {
303  CC1350_LAUNCHXL_433_GPIO_S1 = 0,
304  CC1350_LAUNCHXL_433_GPIO_S2,
305  CC1350_LAUNCHXL_433_SPI_MASTER_READY,
306  CC1350_LAUNCHXL_433_SPI_SLAVE_READY,
307  CC1350_LAUNCHXL_433_GPIO_LED_GREEN,
308  CC1350_LAUNCHXL_433_GPIO_LED_RED,
309  CC1350_LAUNCHXL_433_GPIO_SPI_FLASH_CS,
310  CC1350_LAUNCHXL_433_SDSPI_CS,
311  CC1350_LAUNCHXL_433_GPIOCOUNT
312 } CC1350_LAUNCHXL_433_GPIOName;
313 
314 /*!
315  * @def CC1350_LAUNCHXL_433_GPTimerName
316  * @brief Enum of GPTimer parts
317  */
318 typedef enum CC1350_LAUNCHXL_433_GPTimerName {
319  CC1350_LAUNCHXL_433_GPTIMER0A = 0,
320  CC1350_LAUNCHXL_433_GPTIMER0B,
321  CC1350_LAUNCHXL_433_GPTIMER1A,
322  CC1350_LAUNCHXL_433_GPTIMER1B,
323  CC1350_LAUNCHXL_433_GPTIMER2A,
324  CC1350_LAUNCHXL_433_GPTIMER2B,
325  CC1350_LAUNCHXL_433_GPTIMER3A,
326  CC1350_LAUNCHXL_433_GPTIMER3B,
327 
328  CC1350_LAUNCHXL_433_GPTIMERPARTSCOUNT
329 } CC1350_LAUNCHXL_433_GPTimerName;
330 
331 /*!
332  * @def CC1350_LAUNCHXL_433_GPTimers
333  * @brief Enum of GPTimers
334  */
335 typedef enum CC1350_LAUNCHXL_433_GPTimers {
336  CC1350_LAUNCHXL_433_GPTIMER0 = 0,
337  CC1350_LAUNCHXL_433_GPTIMER1,
338  CC1350_LAUNCHXL_433_GPTIMER2,
339  CC1350_LAUNCHXL_433_GPTIMER3,
340 
341  CC1350_LAUNCHXL_433_GPTIMERCOUNT
342 } CC1350_LAUNCHXL_433_GPTimers;
343 
344 /*!
345  * @def CC1350_LAUNCHXL_433_I2CName
346  * @brief Enum of I2C names
347  */
348 typedef enum CC1350_LAUNCHXL_433_I2CName {
349  CC1350_LAUNCHXL_433_I2C0 = 0,
350 
351  CC1350_LAUNCHXL_433_I2CCOUNT
352 } CC1350_LAUNCHXL_433_I2CName;
353 
354 /*!
355  * @def CC1350_LAUNCHXL_433_I2SName
356  * @brief Enum of I2S names
357  */
358 typedef enum CC1350_LAUNCHXL_433_I2SName {
359  CC1350_LAUNCHXL_433_I2S0 = 0,
360 
361  CC1350_LAUNCHXL_433_I2SCOUNT
362 } CC1350_LAUNCHXL_433_I2SName;
363 
364 /*!
365  * @def CC1350_LAUNCHXL_433_NVSName
366  * @brief Enum of NVS names
367  */
368 typedef enum CC1350_LAUNCHXL_433_NVSName {
369 #ifndef Board_EXCLUDE_NVS_INTERNAL_FLASH
370  CC1350_LAUNCHXL_433_NVSCC26XX0 = 0,
371 #endif
372 #ifndef Board_EXCLUDE_NVS_EXTERNAL_FLASH
373  CC1350_LAUNCHXL_433_NVSSPI25X0,
374 #endif
375 
376  CC1350_LAUNCHXL_433_NVSCOUNT
377 } CC1350_LAUNCHXL_433_NVSName;
378 
379 /*!
380  * @def CC1350_LAUNCHXL_433_PWMName
381  * @brief Enum of PWM outputs
382  */
383 typedef enum CC1350_LAUNCHXL_433_PWMName {
384  CC1350_LAUNCHXL_433_PWM0 = 0,
385  CC1350_LAUNCHXL_433_PWM1,
386  CC1350_LAUNCHXL_433_PWM2,
387  CC1350_LAUNCHXL_433_PWM3,
388  CC1350_LAUNCHXL_433_PWM4,
389  CC1350_LAUNCHXL_433_PWM5,
390  CC1350_LAUNCHXL_433_PWM6,
391  CC1350_LAUNCHXL_433_PWM7,
392 
393  CC1350_LAUNCHXL_433_PWMCOUNT
394 } CC1350_LAUNCHXL_433_PWMName;
395 
396 /*!
397  * @def CC1350_LAUNCHXL_433_SDName
398  * @brief Enum of SD names
399  */
400 typedef enum CC1350_LAUNCHXL_433_SDName {
401  CC1350_LAUNCHXL_433_SDSPI0 = 0,
402 
403  CC1350_LAUNCHXL_433_SDCOUNT
404 } CC1350_LAUNCHXL_433_SDName;
405 
406 /*!
407  * @def CC1350_LAUNCHXL_433_SPIName
408  * @brief Enum of SPI names
409  */
410 typedef enum CC1350_LAUNCHXL_433_SPIName {
411  CC1350_LAUNCHXL_433_SPI0 = 0,
412  CC1350_LAUNCHXL_433_SPI1,
413 
414  CC1350_LAUNCHXL_433_SPICOUNT
415 } CC1350_LAUNCHXL_433_SPIName;
416 
417 /*!
418  * @def CC1350_LAUNCHXL_433_UARTName
419  * @brief Enum of UARTs
420  */
421 typedef enum CC1350_LAUNCHXL_433_UARTName {
422  CC1350_LAUNCHXL_433_UART0 = 0,
423 
424  CC1350_LAUNCHXL_433_UARTCOUNT
425 } CC1350_LAUNCHXL_433_UARTName;
426 
427 /*!
428  * @def CC1350_LAUNCHXL_433_UDMAName
429  * @brief Enum of DMA buffers
430  */
431 typedef enum CC1350_LAUNCHXL_433_UDMAName {
432  CC1350_LAUNCHXL_433_UDMA0 = 0,
433 
434  CC1350_LAUNCHXL_433_UDMACOUNT
435 } CC1350_LAUNCHXL_433_UDMAName;
436 
437 /*!
438  * @def CC1350_LAUNCHXL_433_WatchdogName
439  * @brief Enum of Watchdogs
440  */
441 typedef enum CC1350_LAUNCHXL_433_WatchdogName {
442  CC1350_LAUNCHXL_433_WATCHDOG0 = 0,
443 
444  CC1350_LAUNCHXL_433_WATCHDOGCOUNT
445 } CC1350_LAUNCHXL_433_WatchdogName;
446 
447 #ifdef __cplusplus
448 }
449 #endif
450 
451 #endif /* __CC1350_LAUNCHXL_433_BOARD_H__ */
void CC1350_LAUNCHXL_433_shutDownExtFlash(void)
Turn off the external flash on LaunchPads.
void CC1350_LAUNCHXL_433_wakeUpExtFlash(void)
Wake up the external flash present on the board files.
void CC1350_LAUNCHXL_433_initGeneral(void)
Initialize the general board specific settings.