Contiki-NG
Loading...
Searching...
No Matches
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
48extern "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 */
59extern 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 */
183void CC2650STK_initGeneral(void);
184
185/*!
186 * @brief Turn off the external flash on LaunchPads
187 *
188 */
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 */
197void CC2650STK_wakeUpExtFlash(void);
198
199/*!
200 * @def CC2650STK_ADCBufName
201 * @brief Enum of ADCBufs
202 */
203typedef 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 */
213typedef 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 */
233typedef 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 */
253typedef 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 */
263typedef 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 */
273typedef 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 */
283typedef 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 */
293typedef 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 */
303typedef 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 */
313typedef 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 */
323typedef 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 */
333typedef 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 */
346typedef 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 */
363typedef 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 */
376typedef enum CC2650STK_I2CName {
377#if TI_I2C_CONF_I2C0_ENABLE
378 CC2650STK_I2C0 = 0,
379 CC2650STK_I2C1 = 1,
380#endif
381
382 CC2650STK_I2CCOUNT
383} CC2650STK_I2CName;
384
385/*!
386 * @def CC2650STK_I2SName
387 * @brief Enum of I2S names
388 */
389typedef enum CC2650STK_I2SName {
390 CC2650STK_I2S0 = 0,
391
392 CC2650STK_I2SCOUNT
393} CC2650STK_I2SName;
394
395/*!
396 * @def CC2650STK_NVSName
397 * @brief Enum of NVS names
398 */
399typedef enum CC2650STK_NVSName {
400#if TI_NVS_CONF_NVS_INTERNAL_ENABLE
401 CC2650STK_NVSCC26XX0 = 0,
402#endif
403#if TI_NVS_CONF_NVS_EXTERNAL_ENABLE
404 CC2650STK_NVSSPI25X0,
405#endif
406
407 CC2650STK_NVSCOUNT
408} CC2650STK_NVSName;
409
410/*!
411 * @def CC2650STK_PWMName
412 * @brief Enum of PWM outputs
413 */
414typedef enum CC2650STK_PWMName {
415 CC2650STK_PWM0 = 0,
416 CC2650STK_PWM1,
417 CC2650STK_PWM2,
418 CC2650STK_PWM3,
419 CC2650STK_PWM4,
420 CC2650STK_PWM5,
421 CC2650STK_PWM6,
422 CC2650STK_PWM7,
423
424 CC2650STK_PWMCOUNT
425} CC2650STK_PWMName;
426
427/*!
428 * @def CC2650STK_SPIName
429 * @brief Enum of SPI names
430 */
431typedef enum CC2650STK_SPIName {
432#if TI_SPI_CONF_SPI0_ENABLE
433 CC2650STK_SPI0 = 0,
434#endif
435#if TI_SPI_CONF_SPI1_ENABLE
436 CC2650STK_SPI1,
437#endif
438
439 CC2650STK_SPICOUNT
440} CC2650STK_SPIName;
441
442/*!
443 * @def CC2650STK_UARTName
444 * @brief Enum of UARTs
445 */
446typedef enum CC2650STK_UARTName {
447#if TI_UART_CONF_UART0_ENABLE
448 CC2650STK_UART0 = 0,
449#endif
450
451
452 CC2650STK_UARTCOUNT
453} CC2650STK_UARTName;
454
455/*!
456 * @def CC2650STK_UDMAName
457 * @brief Enum of DMA buffers
458 */
459typedef enum CC2650STK_UDMAName {
460 CC2650STK_UDMA0 = 0,
461
462 CC2650STK_UDMACOUNT
463} CC2650STK_UDMAName;
464
465/*!
466 * @def CC2650STK_WatchdogName
467 * @brief Enum of Watchdogs
468 */
469typedef enum CC2650STK_WatchdogName {
470 CC2650STK_WATCHDOG0 = 0,
471
472 CC2650STK_WATCHDOGCOUNT
473} CC2650STK_WatchdogName;
474
475#ifdef __cplusplus
476}
477#endif
478
479#endif /* __CC2650STK_BOARD_H__ */
void CC2650STK_wakeUpExtFlash(void)
Wake up the external flash present on the board files.
void CC2650STK_initGeneral(void)
Initialize the general board specific settings.
Definition CC2650STK.c:957
void CC2650STK_shutDownExtFlash(void)
Turn off the external flash on LaunchPads.