Contiki-NG
Loading...
Searching...
No Matches
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
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 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 */
182void CC1350STK_initGeneral(void);
183
184/*!
185 * @brief Turn off the external flash on LaunchPads
186 *
187 */
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 */
196void CC1350STK_wakeUpExtFlash(void);
197
198/*!
199 * @def CC1350STK_ADCBufName
200 * @brief Enum of ADCBufs
201 */
202typedef 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 */
212typedef 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 */
232typedef 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 */
252typedef 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 */
262typedef 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 */
272typedef 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 */
282typedef 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 */
292typedef 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 */
302typedef 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 */
312typedef 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 */
322typedef 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 */
332typedef 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 */
345typedef 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 */
362typedef 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 */
375typedef enum CC1350STK_I2CName {
376#if TI_I2C_CONF_I2C0_ENABLE
377 CC1350STK_I2C0 = 0,
378 CC1350STK_I2C1 = 1,
379#endif
380
381 CC1350STK_I2CCOUNT
382} CC1350STK_I2CName;
383
384/*!
385 * @def CC1350STK_I2SName
386 * @brief Enum of I2S names
387 */
388typedef enum CC1350STK_I2SName {
389 CC1350STK_I2S0 = 0,
390
391 CC1350STK_I2SCOUNT
392} CC1350STK_I2SName;
393
394/*!
395 * @def CC1350STK_NVSName
396 * @brief Enum of NVS names
397 */
398typedef enum CC1350STK_NVSName {
399#if TI_NVS_CONF_NVS_INTERNAL_ENABLE
400 CC1350STK_NVSCC26XX0 = 0,
401#endif
402#if TI_NVS_CONF_NVS_EXTERNAL_ENABLE
403 CC1350STK_NVSSPI25X0,
404#endif
405
406 CC1350STK_NVSCOUNT
407} CC1350STK_NVSName;
408
409/*!
410 * @def CC1350STK_PWMName
411 * @brief Enum of PWM outputs
412 */
413typedef enum CC1350STK_PWMName {
414 CC1350STK_PWM0 = 0,
415 CC1350STK_PWM1,
416 CC1350STK_PWM2,
417 CC1350STK_PWM3,
418 CC1350STK_PWM4,
419 CC1350STK_PWM5,
420 CC1350STK_PWM6,
421 CC1350STK_PWM7,
422
423 CC1350STK_PWMCOUNT
424} CC1350STK_PWMName;
425
426/*!
427 * @def CC1350STK_SPIName
428 * @brief Enum of SPI names
429 */
430typedef enum CC1350STK_SPIName {
431#if TI_SPI_CONF_SPI0_ENABLE
432 CC1350STK_SPI0 = 0,
433#endif
434#if TI_SPI_CONF_SPI1_ENABLE
435 CC1350STK_SPI1,
436#endif
437
438 CC1350STK_SPICOUNT
439} CC1350STK_SPIName;
440
441/*!
442 * @def CC1350STK_UARTName
443 * @brief Enum of UARTs
444 */
445typedef enum CC1350STK_UARTName {
446#if TI_UART_CONF_UART0_ENABLE
447 CC1350STK_UART0 = 0,
448#endif
449
450 CC1350STK_UARTCOUNT
451} CC1350STK_UARTName;
452
453/*!
454 * @def CC1350STK_UDMAName
455 * @brief Enum of DMA buffers
456 */
457typedef enum CC1350STK_UDMAName {
458 CC1350STK_UDMA0 = 0,
459
460 CC1350STK_UDMACOUNT
461} CC1350STK_UDMAName;
462
463/*!
464 * @def CC1350STK_WatchdogName
465 * @brief Enum of Watchdogs
466 */
467typedef enum CC1350STK_WatchdogName {
468 CC1350STK_WATCHDOG0 = 0,
469
470 CC1350STK_WATCHDOGCOUNT
471} CC1350STK_WatchdogName;
472
473#ifdef __cplusplus
474}
475#endif
476
477#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:956