Contiki-NG
CC2650STK.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 CC2650STK.h
34  *
35  * @brief CC2650 SensorTag Board Specific header file.
36  *
37  * The CC2650STK header file should be included in an application as
38  * follows:
39  * @code
40  * #include "CC2650STK.h"
41  * @endcode
42  * ============================================================================
43  */
44 #ifndef __CC2650STK_BOARD_H__
45 #define __CC2650STK_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 CC2650STK
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 CC2650STK_DIO23_ANALOG IOID_23
70 #define CC2650STK_DIO24_ANALOG IOID_24
71 #define CC2650STK_DIO25_ANALOG IOID_25
72 #define CC2650STK_DIO26_ANALOG IOID_26
73 #define CC2650STK_DIO27_ANALOG IOID_27
74 #define CC2650STK_DIO28_ANALOG IOID_28
75 #define CC2650STK_DIO29_ANALOG IOID_29
76 #define CC2650STK_DIO30_ANALOG IOID_30
77 
78 /* Audio */
79 #define CC2650STK_MIC_POWER IOID_13
80 #define CC2650STK_MIC_POWER_ON 1
81 #define CC2650STK_MIC_POWER_OFF 0
82 
83 /* Buzzer */
84 #define CC2650STK_BUZZER IOID_21
85 #define CC2650STK_BUZZER_ON 1
86 #define CC2650STK_BUZZER_OFF 0
87 
88 /* DevPack */
89 #define CC2650STK_DP0 IOID_25
90 #define CC2650STK_DP1 IOID_24
91 #define CC2650STK_DP2 IOID_23
92 #define CC2650STK_DP3 IOID_27
93 #define CC2650STK_DP4_UARTRX IOID_28
94 #define CC2650STK_DP5_UARTTX IOID_29
95 #define CC2650STK_DP6_ADO IOID_22
96 #define CC2650STK_DP7_BCLK IOID_3
97 #define CC2650STK_DP8_TDI IOID_17
98 #define CC2650STK_DP9_MISO IOID_18
99 #define CC2650STK_DP10_MOSI IOID_19
100 #define CC2650STK_DP11_CSN IOID_20
101 #define CC2650STK_DP12_WCLK IOID_16
102 #define CC2650STK_DP_ID IOID_30
103 
104 /* Discrete Inputs */
105 #define CC2650STK_PIN_BTN1 IOID_4
106 #define CC2650STK_PIN_BTN2 IOID_0
107 #define CC2650STK_KEY_LEFT CC2650STK_PIN_BTN2
108 #define CC2650STK_KEY_RIGHT CC2650STK_PIN_BTN1
109 #define CC2650STK_RELAY IOID_3
110 
111 /* GPIO */
112 #define CC2650STK_GPIO_LED_ON 1
113 #define CC2650STK_GPIO_LED_OFF 0
114 
115 /* I2C */
116 #define CC2650STK_I2C0_SCL0 IOID_6
117 #define CC2650STK_I2C0_SDA0 IOID_5
118 #define CC2650STK_I2C0_SCL1 IOID_9
119 #define CC2650STK_I2C0_SDA1 IOID_8
120 
121 /* I2S */
122 #define CC2650STK_I2S_ADO IOID_22
123 #define CC2650STK_I2S_ADI IOID_2
124 #define CC2650STK_I2S_BCLK IOID_3
125 #define CC2650STK_I2S_MCLK PIN_UNASSIGNED
126 #define CC2650STK_I2S_WCLK IOID_16
127 
128 /* LEDs */
129 #define CC2650STK_PIN_LED_ON 1
130 #define CC2650STK_PIN_LED_OFF 0
131 #define CC2650STK_PIN_RLED IOID_10
132 #define CC2650STK_PIN_GLED IOID_15
133 
134 /* LED-Audio DevPack */
135 #define CC2650STK_DEVPK_LIGHT_BLUE IOID_23
136 #define CC2650STK_DEVPK_LIGHT_GREEN IOID_24
137 #define CC2650STK_DEVPK_LIGHT_WHITE IOID_25
138 #define CC2650STK_DEVPK_LIGHT_RED IOID_27
139 
140 /* Power */
141 #define CC2650STK_MPU_POWER IOID_12
142 #define CC2650STK_MPU_POWER_ON 1
143 #define CC2650STK_MPU_POWER_OFF 0
144 
145 /* PWM */
146 #define CC2650STK_PWMPIN0 CC2650STK_PIN_RLED
147 #define CC2650STK_PWMPIN1 CC2650STK_PIN_GLED
148 #define CC2650STK_PWMPIN2 PIN_UNASSIGNED
149 #define CC2650STK_PWMPIN3 PIN_UNASSIGNED
150 #define CC2650STK_PWMPIN4 PIN_UNASSIGNED
151 #define CC2650STK_PWMPIN5 PIN_UNASSIGNED
152 #define CC2650STK_PWMPIN6 PIN_UNASSIGNED
153 #define CC2650STK_PWMPIN7 PIN_UNASSIGNED
154 
155 /* Sensors */
156 #define CC2650STK_MPU_INT IOID_7
157 #define CC2650STK_TMP_RDY IOID_1
158 
159 /* SPI */
160 #define CC2650STK_SPI_FLASH_CS IOID_14
161 #define CC2650STK_FLASH_CS_ON 0
162 #define CC2650STK_FLASH_CS_OFF 1
163 
164 /* SPI Board */
165 #define CC2650STK_SPI0_MISO IOID_18
166 #define CC2650STK_SPI0_MOSI IOID_19
167 #define CC2650STK_SPI0_CLK IOID_17
168 #define CC2650STK_SPI0_CSN IOID_20
169 #define CC2650STK_SPI1_MISO PIN_UNASSIGNED
170 #define CC2650STK_SPI1_MOSI PIN_UNASSIGNED
171 #define CC2650STK_SPI1_CLK PIN_UNASSIGNED
172 #define CC2650STK_SPI1_CSN PIN_UNASSIGNED
173 
174 /* UART */
175 #define CC2650STK_UART_TX CC2650STK_DP5_UARTTX
176 #define CC2650STK_UART_RX CC2650STK_DP4_UARTRX
177 
178 /*!
179  * @brief Initialize the general board specific settings
180  *
181  * This function initializes the general board specific settings.
182  */
183 void CC2650STK_initGeneral(void);
184 
185 /*!
186  * @brief Turn off the external flash on LaunchPads
187  *
188  */
189 void CC2650STK_shutDownExtFlash(void);
190 
191 /*!
192  * @brief Wake up the external flash present on the board files
193  *
194  * This function toggles the chip select for the amount of time needed
195  * to wake the chip up.
196  */
197 void CC2650STK_wakeUpExtFlash(void);
198 
199 /*!
200  * @def CC2650STK_ADCBufName
201  * @brief Enum of ADCBufs
202  */
203 typedef enum CC2650STK_ADCBufName {
204  CC2650STK_ADCBUF0 = 0,
205 
206  CC2650STK_ADCBUFCOUNT
207 } CC2650STK_ADCBufName;
208 
209 /*!
210  * @def CC2650STK_ADCBuf0ChannelName
211  * @brief Enum of ADCBuf channels
212  */
213 typedef enum CC2650STK_ADCBuf0ChannelName {
214  CC2650STK_ADCBUF0CHANNEL0 = 0,
215  CC2650STK_ADCBUF0CHANNEL1,
216  CC2650STK_ADCBUF0CHANNEL2,
217  CC2650STK_ADCBUF0CHANNEL3,
218  CC2650STK_ADCBUF0CHANNEL4,
219  CC2650STK_ADCBUF0CHANNEL5,
220  CC2650STK_ADCBUF0CHANNEL6,
221  CC2650STK_ADCBUF0CHANNEL7,
222  CC2650STK_ADCBUF0CHANNELVDDS,
223  CC2650STK_ADCBUF0CHANNELDCOUPL,
224  CC2650STK_ADCBUF0CHANNELVSS,
225 
226  CC2650STK_ADCBUF0CHANNELCOUNT
227 } CC2650STK_ADCBuf0ChannelName;
228 
229 /*!
230  * @def CC2650STK_ADCName
231  * @brief Enum of ADCs
232  */
233 typedef enum CC2650STK_ADCName {
234  CC2650STK_ADC0 = 0,
235  CC2650STK_ADC1,
236  CC2650STK_ADC2,
237  CC2650STK_ADC3,
238  CC2650STK_ADC4,
239  CC2650STK_ADC5,
240  CC2650STK_ADC6,
241  CC2650STK_ADC7,
242  CC2650STK_ADCDCOUPL,
243  CC2650STK_ADCVSS,
244  CC2650STK_ADCVDDS,
245 
246  CC2650STK_ADCCOUNT
247 } CC2650STK_ADCName;
248 
249 /*!
250  * @def CC2650STK_CryptoName
251  * @brief Enum of Crypto names
252  */
253 typedef enum CC2650STK_CryptoName {
254  CC2650STK_CRYPTO0 = 0,
255 
256  CC2650STK_CRYPTOCOUNT
257 } CC2650STK_CryptoName;
258 
259 /*!
260  * @def CC2650STK_AESCCMName
261  * @brief Enum of AESCCM names
262  */
263 typedef enum CC2650STK_AESCCMName {
264  CC2650STK_AESCCM0 = 0,
265 
266  CC2650STK_AESCCMCOUNT
267 } CC2650STK_AESCCMName;
268 
269 /*!
270  * @def CC2650STK_AESGCMName
271  * @brief Enum of AESGCM names
272  */
273 typedef enum CC2650STK_AESGCMName {
274  CC2650STK_AESGCM0 = 0,
275 
276  CC2650STK_AESGCMCOUNT
277 } CC2650STK_AESGCMName;
278 
279 /*!
280  * @def CC2650STK_AESCBCName
281  * @brief Enum of AESCBC names
282  */
283 typedef enum CC2650STK_AESCBCName {
284  CC2650STK_AESCBC0 = 0,
285 
286  CC2650STK_AESCBCCOUNT
287 } CC2650STK_AESCBCName;
288 
289 /*!
290  * @def CC2650STK_AESCTRName
291  * @brief Enum of AESCTR names
292  */
293 typedef enum CC2650STK_AESCTRName {
294  CC2650STK_AESCTR0 = 0,
295 
296  CC2650STK_AESCTRCOUNT
297 } CC2650STK_AESCTRName;
298 
299 /*!
300  * @def CC2650STK_AESECBName
301  * @brief Enum of AESECB names
302  */
303 typedef enum CC2650STK_AESECBName {
304  CC2650STK_AESECB0 = 0,
305 
306  CC2650STK_AESECBCOUNT
307 } CC2650STK_AESECBName;
308 
309 /*!
310  * @def CC2650STK_AESCTRDRBGName
311  * @brief Enum of AESCTRDRBG names
312  */
313 typedef enum CC2650STK_AESCTRDRBGName {
314  CC2650STK_AESCTRDRBG0 = 0,
315 
316  CC2650STK_AESCTRDRBGCOUNT
317 } CC2650STK_AESCTRDRBGName;
318 
319 /*!
320  * @def CC2650STK_TRNGName
321  * @brief Enum of TRNG names
322  */
323 typedef enum CC2650STK_TRNGName {
324  CC2650STK_TRNG0 = 0,
325 
326  CC2650STK_TRNGCOUNT
327 } CC2650STK_TRNGName;
328 
329 /*!
330  * @def CC2650STK_GPIOName
331  * @brief Enum of GPIO names
332  */
333 typedef enum CC2650STK_GPIOName {
334  CC2650STK_GPIO_S1 = 0,
335  CC2650STK_GPIO_S2,
336  CC2650STK_GPIO_LED0,
337  CC2650STK_GPIO_SPI_FLASH_CS,
338 
339  CC2650STK_GPIOCOUNT
340 } CC2650STK_GPIOName;
341 
342 /*!
343  * @def CC2650STK_GPTimerName
344  * @brief Enum of GPTimer parts
345  */
346 typedef enum CC2650STK_GPTimerName {
347  CC2650STK_GPTIMER0A = 0,
348  CC2650STK_GPTIMER0B,
349  CC2650STK_GPTIMER1A,
350  CC2650STK_GPTIMER1B,
351  CC2650STK_GPTIMER2A,
352  CC2650STK_GPTIMER2B,
353  CC2650STK_GPTIMER3A,
354  CC2650STK_GPTIMER3B,
355 
356  CC2650STK_GPTIMERPARTSCOUNT
357 } CC2650STK_GPTimerName;
358 
359 /*!
360  * @def CC2650STK_GPTimers
361  * @brief Enum of GPTimers
362  */
363 typedef enum CC2650STK_GPTimers {
364  CC2650STK_GPTIMER0 = 0,
365  CC2650STK_GPTIMER1,
366  CC2650STK_GPTIMER2,
367  CC2650STK_GPTIMER3,
368 
369  CC2650STK_GPTIMERCOUNT
370 } CC2650STK_GPTimers;
371 
372 /*!
373  * @def CC2650STK_I2CName
374  * @brief Enum of I2C names
375  */
376 typedef enum CC2650STK_I2CName {
377 #if TI_I2C_CONF_I2C0_ENABLE
378  CC2650STK_I2C0 = 0,
379 #endif
380 
381  CC2650STK_I2CCOUNT
382 } CC2650STK_I2CName;
383 
384 /*!
385  * @def CC2650STK_I2SName
386  * @brief Enum of I2S names
387  */
388 typedef enum CC2650STK_I2SName {
389  CC2650STK_I2S0 = 0,
390 
391  CC2650STK_I2SCOUNT
392 } CC2650STK_I2SName;
393 
394 /*!
395  * @def CC2650STK_NVSName
396  * @brief Enum of NVS names
397  */
398 typedef enum CC2650STK_NVSName {
399 #if TI_NVS_CONF_NVS_INTERNAL_ENABLE
400  CC2650STK_NVSCC26XX0 = 0,
401 #endif
402 #if TI_NVS_CONF_NVS_EXTERNAL_ENABLE
403  CC2650STK_NVSSPI25X0,
404 #endif
405 
406  CC2650STK_NVSCOUNT
407 } CC2650STK_NVSName;
408 
409 /*!
410  * @def CC2650STK_PWMName
411  * @brief Enum of PWM outputs
412  */
413 typedef enum CC2650STK_PWMName {
414  CC2650STK_PWM0 = 0,
415  CC2650STK_PWM1,
416  CC2650STK_PWM2,
417  CC2650STK_PWM3,
418  CC2650STK_PWM4,
419  CC2650STK_PWM5,
420  CC2650STK_PWM6,
421  CC2650STK_PWM7,
422 
423  CC2650STK_PWMCOUNT
424 } CC2650STK_PWMName;
425 
426 /*!
427  * @def CC2650STK_SPIName
428  * @brief Enum of SPI names
429  */
430 typedef enum CC2650STK_SPIName {
431 #if TI_SPI_CONF_SPI0_ENABLE
432  CC2650STK_SPI0 = 0,
433 #endif
434 #if TI_SPI_CONF_SPI1_ENABLE
435  CC2650STK_SPI1,
436 #endif
437 
438  CC2650STK_SPICOUNT
439 } CC2650STK_SPIName;
440 
441 /*!
442  * @def CC2650STK_UARTName
443  * @brief Enum of UARTs
444  */
445 typedef enum CC2650STK_UARTName {
446 #if TI_UART_CONF_UART0_ENABLE
447  CC2650STK_UART0 = 0,
448 #endif
449 
450 
451  CC2650STK_UARTCOUNT
452 } CC2650STK_UARTName;
453 
454 /*!
455  * @def CC2650STK_UDMAName
456  * @brief Enum of DMA buffers
457  */
458 typedef enum CC2650STK_UDMAName {
459  CC2650STK_UDMA0 = 0,
460 
461  CC2650STK_UDMACOUNT
462 } CC2650STK_UDMAName;
463 
464 /*!
465  * @def CC2650STK_WatchdogName
466  * @brief Enum of Watchdogs
467  */
468 typedef enum CC2650STK_WatchdogName {
469  CC2650STK_WATCHDOG0 = 0,
470 
471  CC2650STK_WATCHDOGCOUNT
472 } CC2650STK_WatchdogName;
473 
474 #ifdef __cplusplus
475 }
476 #endif
477 
478 #endif /* __CC2650STK_BOARD_H__ */
void CC2650STK_wakeUpExtFlash(void)
Wake up the external flash present on the board files.
void CC2650STK_shutDownExtFlash(void)
Turn off the external flash on LaunchPads.
void CC2650STK_initGeneral(void)
Initialize the general board specific settings.
Definition: CC2650STK.c:943