Contiki-NG
CC1350STK.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 CC1350STK.h
34  *
35  * @brief CC1350 SensorTag Board Specific header file.
36  *
37  * The CC1350STK header file should be included in an application as
38  * follows:
39  * @code
40  * #include "CC1350STK.h"
41  * @endcode
42  * ============================================================================
43  */
44 #ifndef __CC1350STK_BOARD_H__
45 #define __CC1350STK_BOARD_H__
46 
47 #ifdef __cplusplus
48 extern "C" {
49 #endif
50 
51 #include "contiki-conf.h"
52 
53 /* Includes */
54 #include <ti/drivers/PIN.h>
55 #include <ti/devices/DeviceFamily.h>
56 #include DeviceFamily_constructPath(driverlib/ioc.h)
57 
58 /* Externs */
59 extern const PIN_Config BoardGpioInitTable[];
60 
61 /* Defines */
62 #define CC1350STK
63 
64 /* Mapping of pins to board signals using general board aliases
65  * <board signal alias> <pin mapping> <comments>
66  */
67 
68 /* Analog Capable DIOs */
69 #define CC1350STK_DIO23_ANALOG IOID_23
70 #define CC1350STK_DIO24_ANALOG IOID_24
71 #define CC1350STK_DIO25_ANALOG IOID_25
72 #define CC1350STK_DIO26_ANALOG IOID_26
73 #define CC1350STK_DIO27_ANALOG IOID_27
74 #define CC1350STK_DIO28_ANALOG IOID_28
75 #define CC1350STK_DIO29_ANALOG IOID_29
76 #define CC1350STK_DIO30_ANALOG IOID_30
77 
78 /* Audio */
79 #define CC1350STK_MIC_POWER IOID_13
80 #define CC1350STK_MIC_POWER_ON 1
81 #define CC1350STK_MIC_POWER_OFF 0
82 
83 /* Buzzer */
84 #define CC1350STK_BUZZER IOID_21
85 #define CC1350STK_BUZZER_ON 1
86 #define CC1350STK_BUZZER_OFF 0
87 
88 /* DevPack */
89 #define CC1350STK_DP0 IOID_25
90 #define CC1350STK_DP1 IOID_24
91 #define CC1350STK_DP2 IOID_23
92 #define CC1350STK_DP3 IOID_27
93 #define CC1350STK_DP4_UARTRX IOID_28
94 #define CC1350STK_DP5_UARTTX IOID_29
95 #define CC1350STK_DP6_ADO IOID_22
96 #define CC1350STK_DP7_BCLK IOID_3
97 #define CC1350STK_DP8_TDI IOID_17
98 #define CC1350STK_DP9_MISO IOID_18
99 #define CC1350STK_DP10_MOSI IOID_19
100 #define CC1350STK_DP11_CSN IOID_20
101 #define CC1350STK_DP12_WCLK IOID_16
102 #define CC1350STK_DP_ID IOID_30
103 
104 /* Discrete Inputs */
105 #define CC1350STK_PIN_BTN1 IOID_4
106 #define CC1350STK_PIN_BTN2 IOID_15
107 #define CC1350STK_KEY_LEFT CC1350STK_PIN_BTN2
108 #define CC1350STK_KEY_RIGHT CC1350STK_PIN_BTN1
109 #define CC1350STK_RELAY IOID_1
110 
111 /* GPIO */
112 #define CC1350STK_GPIO_LED_ON 1
113 #define CC1350STK_GPIO_LED_OFF 0
114 
115 /* I2C */
116 #define CC1350STK_I2C0_SCL0 IOID_6
117 #define CC1350STK_I2C0_SDA0 IOID_5
118 #define CC1350STK_I2C0_SCL1 IOID_9
119 #define CC1350STK_I2C0_SDA1 IOID_8
120 
121 /* I2S */
122 #define CC1350STK_I2S_ADO IOID_22
123 #define CC1350STK_I2S_ADI IOID_2
124 #define CC1350STK_I2S_BCLK IOID_3
125 #define CC1350STK_I2S_MCLK PIN_UNASSIGNED
126 #define CC1350STK_I2S_WCLK IOID_16
127 
128 /* LEDs */
129 #define CC1350STK_PIN_LED_ON 1
130 #define CC1350STK_PIN_LED_OFF 0
131 #define CC1350STK_PIN_RLED IOID_10
132 
133 /* LED-Audio DevPack */
134 #define CC1350STK_DEVPK_LIGHT_BLUE IOID_23
135 #define CC1350STK_DEVPK_LIGHT_GREEN IOID_24
136 #define CC1350STK_DEVPK_LIGHT_WHITE IOID_25
137 #define CC1350STK_DEVPK_LIGHT_RED IOID_27
138 
139 /* Power */
140 #define CC1350STK_MPU_POWER IOID_12
141 #define CC1350STK_MPU_POWER_ON 1
142 #define CC1350STK_MPU_POWER_OFF 0
143 
144 /* PWM Outputs */
145 #define CC1350STK_PWMPIN0 CC1350STK_PIN_RLED
146 #define CC1350STK_PWMPIN1 PIN_UNASSIGNED
147 #define CC1350STK_PWMPIN2 PIN_UNASSIGNED
148 #define CC1350STK_PWMPIN3 PIN_UNASSIGNED
149 #define CC1350STK_PWMPIN4 PIN_UNASSIGNED
150 #define CC1350STK_PWMPIN5 PIN_UNASSIGNED
151 #define CC1350STK_PWMPIN6 PIN_UNASSIGNED
152 #define CC1350STK_PWMPIN7 PIN_UNASSIGNED
153 
154 /* Sensors */
155 #define CC1350STK_MPU_INT IOID_7
156 #define CC1350STK_TMP_RDY IOID_11
157 
158 /* SPI */
159 #define CC1350STK_SPI_FLASH_CS IOID_14
160 #define CC1350STK_FLASH_CS_ON 0
161 #define CC1350STK_FLASH_CS_OFF 1
162 
163 /* SPI Board */
164 #define CC1350STK_SPI0_MISO IOID_18
165 #define CC1350STK_SPI0_MOSI IOID_19
166 #define CC1350STK_SPI0_CLK IOID_17
167 #define CC1350STK_SPI0_CSN IOID_20
168 #define CC1350STK_SPI1_MISO PIN_UNASSIGNED
169 #define CC1350STK_SPI1_MOSI PIN_UNASSIGNED
170 #define CC1350STK_SPI1_CLK PIN_UNASSIGNED
171 #define CC1350STK_SPI1_CSN PIN_UNASSIGNED
172 
173 /* UART */
174 #define CC1350STK_UART_TX CC1350STK_DP5_UARTTX
175 #define CC1350STK_UART_RX CC1350STK_DP4_UARTRX
176 
177 /*!
178  * @brief Initialize the general board specific settings
179  *
180  * This function initializes the general board specific settings.
181  */
182 void CC1350STK_initGeneral(void);
183 
184 /*!
185  * @brief Turn off the external flash on LaunchPads
186  *
187  */
188 void CC1350STK_shutDownExtFlash(void);
189 
190 /*!
191  * @brief Wake up the external flash present on the board files
192  *
193  * This function toggles the chip select for the amount of time needed
194  * to wake the chip up.
195  */
196 void CC1350STK_wakeUpExtFlash(void);
197 
198 /*!
199  * @def CC1350STK_ADCBufName
200  * @brief Enum of ADCBufs
201  */
202 typedef enum CC1350STK_ADCBufName {
203  CC1350STK_ADCBUF0 = 0,
204 
205  CC1350STK_ADCBUFCOUNT
206 } CC1350STK_ADCBufName;
207 
208 /*!
209  * @def CC1350STK_ADCBuf0ChannelName
210  * @brief Enum of ADCBuf channels
211  */
212 typedef enum CC1350STK_ADCBuf0ChannelName {
213  CC1350STK_ADCBUF0CHANNEL0 = 0,
214  CC1350STK_ADCBUF0CHANNEL1,
215  CC1350STK_ADCBUF0CHANNEL2,
216  CC1350STK_ADCBUF0CHANNEL3,
217  CC1350STK_ADCBUF0CHANNEL4,
218  CC1350STK_ADCBUF0CHANNEL5,
219  CC1350STK_ADCBUF0CHANNEL6,
220  CC1350STK_ADCBUF0CHANNEL7,
221  CC1350STK_ADCBUF0CHANNELVDDS,
222  CC1350STK_ADCBUF0CHANNELDCOUPL,
223  CC1350STK_ADCBUF0CHANNELVSS,
224 
225  CC1350STK_ADCBUF0CHANNELCOUNT
226 } CC1350STK_ADCBuf0ChannelName;
227 
228 /*!
229  * @def CC1350STK_ADCName
230  * @brief Enum of ADCs
231  */
232 typedef enum CC1350STK_ADCName {
233  CC1350STK_ADC0 = 0,
234  CC1350STK_ADC1,
235  CC1350STK_ADC2,
236  CC1350STK_ADC3,
237  CC1350STK_ADC4,
238  CC1350STK_ADC5,
239  CC1350STK_ADC6,
240  CC1350STK_ADC7,
241  CC1350STK_ADCDCOUPL,
242  CC1350STK_ADCVSS,
243  CC1350STK_ADCVDDS,
244 
245  CC1350STK_ADCCOUNT
246 } CC1350STK_ADCName;
247 
248 /*!
249  * @def CC1350STK_CryptoName
250  * @brief Enum of Crypto names
251  */
252 typedef enum CC1350STK_CryptoName {
253  CC1350STK_CRYPTO0 = 0,
254 
255  CC1350STK_CRYPTOCOUNT
256 } CC1350STK_CryptoName;
257 
258 /*!
259  * @def CC1350STK_AESCCMName
260  * @brief Enum of AESCCM names
261  */
262 typedef enum CC1350STK_AESCCMName {
263  CC1350STK_AESCCM0 = 0,
264 
265  CC1350STK_AESCCMCOUNT
266 } CC1350STK_AESCCMName;
267 
268 /*!
269  * @def CC1350STK_AESGCMName
270  * @brief Enum of AESGCM names
271  */
272 typedef enum CC1350STK_AESGCMName {
273  CC1350STK_AESGCM0 = 0,
274 
275  CC1350STK_AESGCMCOUNT
276 } CC1350STK_AESGCMName;
277 
278 /*!
279  * @def CC1350STK_AESCBCName
280  * @brief Enum of AESCBC names
281  */
282 typedef enum CC1350STK_AESCBCName {
283  CC1350STK_AESCBC0 = 0,
284 
285  CC1350STK_AESCBCCOUNT
286 } CC1350STK_AESCBCName;
287 
288 /*!
289  * @def CC1350STK_AESCTRName
290  * @brief Enum of AESCTR names
291  */
292 typedef enum CC1350STK_AESCTRName {
293  CC1350STK_AESCTR0 = 0,
294 
295  CC1350STK_AESCTRCOUNT
296 } CC1350STK_AESCTRName;
297 
298 /*!
299  * @def CC1350STK_AESECBName
300  * @brief Enum of AESECB names
301  */
302 typedef enum CC1350STK_AESECBName {
303  CC1350STK_AESECB0 = 0,
304 
305  CC1350STK_AESECBCOUNT
306 } CC1350STK_AESECBName;
307 
308 /*!
309  * @def CC1350STK_AESCTRDRBGName
310  * @brief Enum of AESCTRDRBG names
311  */
312 typedef enum CC1350STK_AESCTRDRBGName {
313  CC1350STK_AESCTRDRBG0 = 0,
314 
315  CC1350STK_AESCTRDRBGCOUNT
316 } CC1350STK_AESCTRDRBGName;
317 
318 /*!
319  * @def CC1350STK_TRNGName
320  * @brief Enum of TRNG names
321  */
322 typedef enum CC1350STK_TRNGName {
323  CC1350STK_TRNG0 = 0,
324 
325  CC1350STK_TRNGCOUNT
326 } CC1350STK_TRNGName;
327 
328 /*!
329  * @def CC1350STK_GPIOName
330  * @brief Enum of GPIO names
331  */
332 typedef enum CC1350STK_GPIOName {
333  CC1350STK_GPIO_S1 = 0,
334  CC1350STK_GPIO_S2,
335  CC1350STK_GPIO_LED0,
336  CC1350STK_GPIO_SPI_FLASH_CS,
337 
338  CC1350STK_GPIOCOUNT
339 } CC1350STK_GPIOName;
340 
341 /*!
342  * @def CC1350STK_GPTimerName
343  * @brief Enum of GPTimer parts
344  */
345 typedef enum CC1350STK_GPTimerName {
346  CC1350STK_GPTIMER0A = 0,
347  CC1350STK_GPTIMER0B,
348  CC1350STK_GPTIMER1A,
349  CC1350STK_GPTIMER1B,
350  CC1350STK_GPTIMER2A,
351  CC1350STK_GPTIMER2B,
352  CC1350STK_GPTIMER3A,
353  CC1350STK_GPTIMER3B,
354 
355  CC1350STK_GPTIMERPARTSCOUNT
356 } CC1350STK_GPTimerName;
357 
358 /*!
359  * @def CC1350STK_GPTimers
360  * @brief Enum of GPTimers
361  */
362 typedef enum CC1350STK_GPTimers {
363  CC1350STK_GPTIMER0 = 0,
364  CC1350STK_GPTIMER1,
365  CC1350STK_GPTIMER2,
366  CC1350STK_GPTIMER3,
367 
368  CC1350STK_GPTIMERCOUNT
369 } CC1350STK_GPTimers;
370 
371 /*!
372  * @def CC1350STK_I2CName
373  * @brief Enum of I2C names
374  */
375 typedef enum CC1350STK_I2CName {
376 #if TI_I2C_CONF_I2C0_ENABLE
377  CC1350STK_I2C0 = 0,
378 #endif
379 
380  CC1350STK_I2CCOUNT
381 } CC1350STK_I2CName;
382 
383 /*!
384  * @def CC1350STK_I2SName
385  * @brief Enum of I2S names
386  */
387 typedef enum CC1350STK_I2SName {
388  CC1350STK_I2S0 = 0,
389 
390  CC1350STK_I2SCOUNT
391 } CC1350STK_I2SName;
392 
393 /*!
394  * @def CC1350STK_NVSName
395  * @brief Enum of NVS names
396  */
397 typedef enum CC1350STK_NVSName {
398 #if TI_NVS_CONF_NVS_INTERNAL_ENABLE
399  CC1350STK_NVSCC26XX0 = 0,
400 #endif
401 #if TI_NVS_CONF_NVS_EXTERNAL_ENABLE
402  CC1350STK_NVSSPI25X0,
403 #endif
404 
405  CC1350STK_NVSCOUNT
406 } CC1350STK_NVSName;
407 
408 /*!
409  * @def CC1350STK_PWMName
410  * @brief Enum of PWM outputs
411  */
412 typedef enum CC1350STK_PWMName {
413  CC1350STK_PWM0 = 0,
414  CC1350STK_PWM1,
415  CC1350STK_PWM2,
416  CC1350STK_PWM3,
417  CC1350STK_PWM4,
418  CC1350STK_PWM5,
419  CC1350STK_PWM6,
420  CC1350STK_PWM7,
421 
422  CC1350STK_PWMCOUNT
423 } CC1350STK_PWMName;
424 
425 /*!
426  * @def CC1350STK_SPIName
427  * @brief Enum of SPI names
428  */
429 typedef enum CC1350STK_SPIName {
430 #if TI_SPI_CONF_SPI0_ENABLE
431  CC1350STK_SPI0 = 0,
432 #endif
433 #if TI_SPI_CONF_SPI1_ENABLE
434  CC1350STK_SPI1,
435 #endif
436 
437  CC1350STK_SPICOUNT
438 } CC1350STK_SPIName;
439 
440 /*!
441  * @def CC1350STK_UARTName
442  * @brief Enum of UARTs
443  */
444 typedef enum CC1350STK_UARTName {
445 #if TI_UART_CONF_UART0_ENABLE
446  CC1350STK_UART0 = 0,
447 #endif
448 
449  CC1350STK_UARTCOUNT
450 } CC1350STK_UARTName;
451 
452 /*!
453  * @def CC1350STK_UDMAName
454  * @brief Enum of DMA buffers
455  */
456 typedef enum CC1350STK_UDMAName {
457  CC1350STK_UDMA0 = 0,
458 
459  CC1350STK_UDMACOUNT
460 } CC1350STK_UDMAName;
461 
462 /*!
463  * @def CC1350STK_WatchdogName
464  * @brief Enum of Watchdogs
465  */
466 typedef enum CC1350STK_WatchdogName {
467  CC1350STK_WATCHDOG0 = 0,
468 
469  CC1350STK_WATCHDOGCOUNT
470 } CC1350STK_WatchdogName;
471 
472 #ifdef __cplusplus
473 }
474 #endif
475 
476 #endif /* __CC1350STK_BOARD_H__ */
void CC1350STK_shutDownExtFlash(void)
Turn off the external flash on LaunchPads.
void CC1350STK_wakeUpExtFlash(void)
Wake up the external flash present on the board files.
void CC1350STK_initGeneral(void)
Initialize the general board specific settings.
Definition: CC1350STK.c:942