Contiki-NG
CC2650DK_7ID.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 CC2650DK_7ID.h
34  *
35  * @brief CC2650 LaunchPad Board Specific header file.
36  *
37  * The CC2650DK_7ID header file should be included in an application as
38  * follows:
39  * @code
40  * #include "CC2650DK_7ID.h"
41  * @endcode
42  *
43  * ============================================================================
44  */
45 #ifndef __CC2650DK_7ID_BOARD_H__
46 #define __CC2650DK_7ID_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 CC2650DK_7ID
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 CC2650DK_7ID_DIO23_ANALOG IOID_23
71 #define CC2650DK_7ID_DIO24_ANALOG IOID_24
72 #define CC2650DK_7ID_DIO25_ANALOG IOID_25
73 #define CC2650DK_7ID_DIO26_ANALOG IOID_26
74 #define CC2650DK_7ID_DIO27_ANALOG IOID_27
75 #define CC2650DK_7ID_DIO28_ANALOG IOID_28
76 #define CC2650DK_7ID_DIO29_ANALOG IOID_29
77 #define CC2650DK_7ID_DIO30_ANALOG IOID_30
78 
79 /* Digital IOs */
80 #define CC2650DK_7ID_DIO0 IOID_0
81 #define CC2650DK_7ID_DIO1_RFSW IOID_1
82 #define CC2650DK_7ID_DIO12 IOID_12
83 #define CC2650DK_7ID_DIO15 IOID_15
84 #define CC2650DK_7ID_DIO16_TDO IOID_16
85 #define CC2650DK_7ID_DIO17_TDI IOID_17
86 #define CC2650DK_7ID_DIO21 IOID_21
87 #define CC2650DK_7ID_DIO22 IOID_22
88 
89 /* Discrete Inputs */
90 #define CC2650DK_7ID_PIN_KEY_SELECT IOID_11
91 #define CC2650DK_7ID_PIN_KEY_UP IOID_19
92 #define CC2650DK_7ID_PIN_KEY_DOWN IOID_12
93 #define CC2650DK_7ID_PIN_KEY_LEFT IOID_15
94 #define CC2650DK_7ID_PIN_KEY_RIGHT IOID_18
95 
96 /* GPIO */
97 #define CC2650DK_7ID_GPIO_LED_ON 1
98 #define CC2650DK_7ID_GPIO_LED_OFF 0
99 
100 /* I2C */
101 #define CC2650DK_7ID_I2C0_SCL0 PIN_UNASSIGNED
102 #define CC2650DK_7ID_I2C0_SDA0 PIN_UNASSIGNED
103 
104 /* I2S */
105 #define CC2650DK_7ID_I2S_ADO PIN_UNASSIGNED
106 #define CC2650DK_7ID_I2S_ADI PIN_UNASSIGNED
107 #define CC2650DK_7ID_I2S_BCLK PIN_UNASSIGNED
108 #define CC2650DK_7ID_I2S_MCLK PIN_UNASSIGNED
109 #define CC2650DK_7ID_I2S_WCLK PIN_UNASSIGNED
110 
111 /* LEDs */
112 #define CC2650DK_7ID_PIN_LED_ON 1
113 #define CC2650DK_7ID_PIN_LED_OFF 0
114 #define CC2650DK_7ID_PIN_LED1 IOID_25
115 #define CC2650DK_7ID_PIN_LED2 IOID_27
116 #define CC2650DK_7ID_PIN_LED3 IOID_7
117 #define CC2650DK_7ID_PIN_LED4 IOID_6
118 
119 /* PWM Outputs */
120 #define CC2650DK_7ID_PWMPIN0 CC2650DK_7ID_PIN_LED1
121 #define CC2650DK_7ID_PWMPIN1 CC2650DK_7ID_PIN_LED2
122 #define CC2650DK_7ID_PWMPIN2 CC2650DK_7ID_PIN_LED3
123 #define CC2650DK_7ID_PWMPIN3 CC2650DK_7ID_PIN_LED4
124 #define CC2650DK_7ID_PWMPIN4 PIN_UNASSIGNED
125 #define CC2650DK_7ID_PWMPIN5 PIN_UNASSIGNED
126 #define CC2650DK_7ID_PWMPIN6 PIN_UNASSIGNED
127 #define CC2650DK_7ID_PWMPIN7 PIN_UNASSIGNED
128 
129 /* SPI Board */
130 #define CC2650DK_7ID_SPI0_MISO IOID_8
131 #define CC2650DK_7ID_SPI0_MOSI IOID_9
132 #define CC2650DK_7ID_SPI0_CLK IOID_10
133 #define CC2650DK_7ID_SPI0_CSN PIN_UNASSIGNED
134 #define CC2650DK_7ID_SPI1_MISO PIN_UNASSIGNED
135 #define CC2650DK_7ID_SPI1_MOSI PIN_UNASSIGNED
136 #define CC2650DK_7ID_SPI1_CLK PIN_UNASSIGNED
137 #define CC2650DK_7ID_SPI1_CSN PIN_UNASSIGNED
138 
139 /* UART Board */
140 #define CC2650DK_7ID_UART_RX IOID_2
141 #define CC2650DK_7ID_UART_TX IOID_3
142 #define CC2650DK_7ID_UART_CTS IOID_0
143 #define CC2650DK_7ID_UART_RTS IOID_21
144 
145 /* SD Card */
146 #define CC2650DK_7ID_SPI_SDCARD_CS IOID_30
147 #define CC2650DK_7ID_SDCARD_CS_ON 0
148 #define CC2650DK_7ID_SDCARD_CS_OFF 1
149 
150 /* Ambient Light Sensor */
151 #define CC2650DK_7ID_ALS_OUT IOID_23
152 #define CC2650DK_7ID_ALS_PWR IOID_26
153 
154 /* Accelerometer */
155 #define CC2650DK_7ID_ACC_PWR IOID_20
156 #define CC2650DK_7ID_ACC_CS IOID_24
157 
158 /*!
159  * @brief Initialize the general board specific settings
160  *
161  * This function initializes the general board specific settings.
162  */
163 void CC2650DK_7ID_initGeneral(void);
164 
165 /*!
166  * @brief Turn off the external flash on LaunchPads
167  *
168  */
170 
171 /*!
172  * @brief Wake up the external flash present on the board files
173  *
174  * This function toggles the chip select for the amount of time needed
175  * to wake the chip up.
176  */
177 void CC2650DK_7ID_wakeUpExtFlash(void);
178 
179 /*!
180  * @def CC2650DK_7ID_ADCBufName
181  * @brief Enum of ADCBufs
182  */
183 typedef enum CC2650DK_7ID_ADCBufName {
184  CC2650DK_7ID_ADCBUF0 = 0,
185 
186  CC2650DK_7ID_ADCBUFCOUNT
187 } CC2650DK_7ID_ADCBufName;
188 
189 /*!
190  * @def CC2650DK_7ID_ADCBuf0ChannelName
191  * @brief Enum of ADCBuf channels
192  */
193 typedef enum CC2650DK_7ID_ADCBuf0ChannelName {
194  CC2650DK_7ID_ADCBUF0CHANNELADCALS = 0,
195  CC2650DK_7ID_ADCBUF0CHANNELVDDS,
196  CC2650DK_7ID_ADCBUF0CHANNELDCOUPL,
197  CC2650DK_7ID_ADCBUF0CHANNELVSS,
198 
199  CC2650DK_7ID_ADCBUF0CHANNELCOUNT
200 } CC2650DK_7ID_ADCBuf0ChannelName;
201 
202 /*!
203  * @def CC2650DK_7ID_ADCName
204  * @brief Enum of ADCs
205  */
206 typedef enum CC2650DK_7ID_ADCName {
207  CC2650DK_7ID_ADCALS = 0,
208  CC2650DK_7ID_ADCDCOUPL,
209  CC2650DK_7ID_ADCVSS,
210  CC2650DK_7ID_ADCVDDS,
211 
212  CC2650DK_7ID_ADCCOUNT
213 } CC2650DK_7ID_ADCName;
214 
215 /*!
216  * @def CC2650DK_7ID_CryptoName
217  * @brief Enum of Crypto names
218  */
219 typedef enum CC2650DK_7ID_CryptoName {
220  CC2650DK_7ID_CRYPTO0 = 0,
221 
222  CC2650DK_7ID_CRYPTOCOUNT
223 } CC2650DK_7ID_CryptoName;
224 
225 /*!
226  * @def CC2650DK_7ID_AESCCMName
227  * @brief Enum of AESCCM names
228  */
229 typedef enum CC2650DK_7ID_AESCCMName {
230  CC2650DK_7ID_AESCCM0 = 0,
231 
232  CC2650DK_7ID_AESCCMCOUNT
233 } CC2650DK_7ID_AESCCMName;
234 
235 /*!
236  * @def CC2650DK_7ID_AESGCMName
237  * @brief Enum of AESGCM names
238  */
239 typedef enum CC2650DK_7ID_AESGCMName {
240  CC2650DK_7ID_AESGCM0 = 0,
241 
242  CC2650DK_7ID_AESGCMCOUNT
243 } CC2650DK_7ID_AESGCMName;
244 
245 /*!
246  * @def CC2650DK_7ID_AESCBCName
247  * @brief Enum of AESCBC names
248  */
249 typedef enum CC2650DK_7ID_AESCBCName {
250  CC2650DK_7ID_AESCBC0 = 0,
251 
252  CC2650DK_7ID_AESCBCCOUNT
253 } CC2650DK_7ID_AESCBCName;
254 
255 /*!
256  * @def CC2650DK_7ID_AESCTRName
257  * @brief Enum of AESCTR names
258  */
259 typedef enum CC2650DK_7ID_AESCTRName {
260  CC2650DK_7ID_AESCTR0 = 0,
261 
262  CC2650DK_7ID_AESCTRCOUNT
263 } CC2650DK_7ID_AESCTRName;
264 
265 /*!
266  * @def CC2650DK_7ID_AESECBName
267  * @brief Enum of AESECB names
268  */
269 typedef enum CC2650DK_7ID_AESECBName {
270  CC2650DK_7ID_AESECB0 = 0,
271 
272  CC2650DK_7ID_AESECBCOUNT
273 } CC2650DK_7ID_AESECBName;
274 
275 /*!
276  * @def CC2650DK_7ID_AESCTRDRBGName
277  * @brief Enum of AESCTRDRBG names
278  */
279 typedef enum CC2650DK_7ID_AESCTRDRBGName {
280  CC2650DK_7ID_AESCTRDRBG0 = 0,
281 
282  CC2650DK_7ID_AESCTRDRBGCOUNT
283 } CC2650DK_7ID_AESCTRDRBGName;
284 
285 /*!
286  * @def CC2650DK_7ID_TRNGName
287  * @brief Enum of TRNG names
288  */
289 typedef enum CC2650DK_7ID_TRNGName {
290  CC2650DK_7ID_TRNG0 = 0,
291 
292  CC2650DK_7ID_TRNGCOUNT
293 } CC2650DK_7ID_TRNGName;
294 
295 /*!
296  * @def CC2650DK_7ID_GPIOName
297  * @brief Enum of GPIO names
298  */
299 typedef enum CC2650DK_7ID_GPIOName {
300  CC2650DK_7ID_GPIO_KEY_SELECT = 0,
301  CC2650DK_7ID_GPIO_KEY_UP,
302  CC2650DK_7ID_GPIO_KEY_DOWN,
303  CC2650DK_7ID_GPIO_KEY_LEFT,
304  CC2650DK_7ID_GPIO_KEY_RIGHT,
305  CC2650DK_7ID_SPI_MASTER_READY,
306  CC2650DK_7ID_SPI_SLAVE_READY,
307  CC2650DK_7ID_GPIO_LED1,
308  CC2650DK_7ID_GPIO_LED2,
309  CC2650DK_7ID_GPIO_LED3,
310  CC2650DK_7ID_GPIO_LED4,
311  CC2650DK_7ID_SDSPI_CS,
312  CC2650DK_7ID_GPIO_ACC_CS,
313 
314  CC2650DK_7ID_GPIOCOUNT
315 } CC2650DK_7ID_GPIOName;
316 
317 /*!
318  * @def CC2650DK_7ID_GPTimerName
319  * @brief Enum of GPTimer parts
320  */
321 typedef enum CC2650DK_7ID_GPTimerName {
322  CC2650DK_7ID_GPTIMER0A = 0,
323  CC2650DK_7ID_GPTIMER0B,
324  CC2650DK_7ID_GPTIMER1A,
325  CC2650DK_7ID_GPTIMER1B,
326  CC2650DK_7ID_GPTIMER2A,
327  CC2650DK_7ID_GPTIMER2B,
328  CC2650DK_7ID_GPTIMER3A,
329  CC2650DK_7ID_GPTIMER3B,
330 
331  CC2650DK_7ID_GPTIMERPARTSCOUNT
332 } CC2650DK_7ID_GPTimerName;
333 
334 /*!
335  * @def CC2650DK_7ID_GPTimers
336  * @brief Enum of GPTimers
337  */
338 typedef enum CC2650DK_7ID_GPTimers {
339  CC2650DK_7ID_GPTIMER0 = 0,
340  CC2650DK_7ID_GPTIMER1,
341  CC2650DK_7ID_GPTIMER2,
342  CC2650DK_7ID_GPTIMER3,
343 
344  CC2650DK_7ID_GPTIMERCOUNT
345 } CC2650DK_7ID_GPTimers;
346 
347 /*!
348  * @def CC2650DK_7ID_I2CName
349  * @brief Enum of I2C names
350  */
351 typedef enum CC2650DK_7ID_I2CName {
352 #if TI_I2C_CONF_I2C0_ENABLE
353  CC2650DK_7ID_I2C0 = 0,
354 #endif
355 
356  CC2650DK_7ID_I2CCOUNT
357 } CC2650DK_7ID_I2CName;
358 
359 /*!
360  * @def CC2650DK_7ID_I2SName
361  * @brief Enum of I2S names
362  */
363 typedef enum CC2650DK_7ID_I2SName {
364  CC2650DK_7ID_I2S0 = 0,
365 
366  CC2650DK_7ID_I2SCOUNT
367 } CC2650DK_7ID_I2SName;
368 
369 /*!
370  * @def CC2650DK_7ID_NVSName
371  * @brief Enum of NVS names
372  */
373 typedef enum CC2650DK_7ID_NVSName {
374 #if TI_NVS_CONF_NVS_INTERNAL_ENABLE
375  CC2650DK_7ID_NVSCC26XX0 = 0,
376 #endif
377 
378  CC2650DK_7ID_NVSCOUNT
379 } CC2650DK_7ID_NVSName;
380 
381 /*!
382  * @def CC2650DK_7ID_PWMName
383  * @brief Enum of PWM outputs
384  */
385 typedef enum CC2650DK_7ID_PWMName {
386  CC2650DK_7ID_PWM0 = 0,
387  CC2650DK_7ID_PWM1,
388  CC2650DK_7ID_PWM2,
389  CC2650DK_7ID_PWM3,
390  CC2650DK_7ID_PWM4,
391  CC2650DK_7ID_PWM5,
392  CC2650DK_7ID_PWM6,
393  CC2650DK_7ID_PWM7,
394 
395  CC2650DK_7ID_PWMCOUNT
396 } CC2650DK_7ID_PWMName;
397 
398 /*!
399  * @def CC2650DK_7ID_SDName
400  * @brief Enum of SD names
401  */
402 typedef enum CC2650DK_7ID_SDName {
403  CC2650DK_7ID_SDSPI0 = 0,
404 
405  CC2650DK_7ID_SDCOUNT
406 } CC2650DK_7ID_SDName;
407 
408 /*!
409  * @def CC2650DK_7ID_SPIName
410  * @brief Enum of SPI names
411  */
412 typedef enum CC2650DK_7ID_SPIName {
413 #if TI_SPI_CONF_SPI0_ENABLE
414  CC2650DK_7ID_SPI0 = 0,
415 #endif
416 #if TI_SPI_CONF_SPI1_ENABLE
417  CC2650DK_7ID_SPI1,
418 #endif
419 
420  CC2650DK_7ID_SPICOUNT
421 } CC2650DK_7ID_SPIName;
422 
423 /*!
424  * @def CC2650DK_7ID_UARTName
425  * @brief Enum of UARTs
426  */
427 typedef enum CC2650DK_7ID_UARTName {
428 #if TI_UART_CONF_UART0_ENABLE
429  CC2650DK_7ID_UART0 = 0,
430 #endif
431 
432  CC2650DK_7ID_UARTCOUNT
433 } CC2650DK_7ID_UARTName;
434 
435 /*!
436  * @def CC2650DK_7ID_UDMAName
437  * @brief Enum of DMA buffers
438  */
439 typedef enum CC2650DK_7ID_UDMAName {
440  CC2650DK_7ID_UDMA0 = 0,
441 
442  CC2650DK_7ID_UDMACOUNT
443 } CC2650DK_7ID_UDMAName;
444 
445 /*!
446  * @def CC2650DK_7ID_WatchdogName
447  * @brief Enum of Watchdogs
448  */
449 typedef enum CC2650DK_7ID_WatchdogName {
450  CC2650DK_7ID_WATCHDOG0 = 0,
451 
452  CC2650DK_7ID_WATCHDOGCOUNT
453 } CC2650DK_7ID_WatchdogName;
454 
455 #ifdef __cplusplus
456 }
457 #endif
458 
459 #endif /* __CC2650DK_7ID_BOARD_H__ */
void CC2650DK_7ID_wakeUpExtFlash(void)
Wake up the external flash present on the board files.
void CC2650DK_7ID_initGeneral(void)
Initialize the general board specific settings.
Definition: CC2650DK_7ID.c:877
void CC2650DK_7ID_shutDownExtFlash(void)
Turn off the external flash on LaunchPads.