summary | shortlog | log | commit | commitdiff | tree
raw | patch | inline | side by side (parent: 0325652)
raw | patch | inline | side by side (parent: 0325652)
author | Borja Martinez <borja.martinez@gmail.com> | |
Tue, 4 Oct 2016 20:06:44 +0000 (22:06 +0200) | ||
committer | Borja Martinez <borja.martinez@gmail.com> | |
Tue, 4 Oct 2016 20:06:44 +0000 (22:06 +0200) |
16 files changed:
diff --git a/Basic-Test-Package/CC2650/Test_CC2650_3wSPI_DAC8730/CC2650_I3M.h b/Basic-Test-Package/CC2650/Test_CC2650_3wSPI_DAC8730/CC2650_I3M.h
+++ /dev/null
@@ -1,324 +0,0 @@
-/*
- * Copyright (c) 2015-2016, Texas Instruments Incorporated
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * * Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- *
- * * Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- *
- * * Neither the name of Texas Instruments Incorporated nor the names of
- * its contributors may be used to endorse or promote products derived
- * from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
- * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
- * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
- * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
- * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
- * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
- * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
- * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-/** ============================================================================
- * @file CC2650_I3MOTE.h
- *
- * @brief CC2650 LaunchPad Board Specific header file.
- *
- * NB! This is the board file for CC2650 LaunchPad PCB version 1.1
- *
- * ============================================================================
- */
-#ifndef __CC2650_I3MOTE_BOARD_H__
-#define __CC2650_I3MOTE_BOARD_H__
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/** ============================================================================
- * Includes
- * ==========================================================================*/
-#include <ti/drivers/PIN.h>
-#include <driverlib/ioc.h>
-
-/** ============================================================================
- * Externs
- * ==========================================================================*/
-extern const PIN_Config BoardGpioInitTable[];
-
-/** ============================================================================
- * Defines
- * ==========================================================================*/
-
-/* Same RF Configuration as 7x7 EM */
-#define CC2650EM_7ID
-#define CC2650_I3MOTE
-
-
-/* Sensors */
-#define Board_INA219_ADDR (0x41)
-#define Board_HDC1000_ADDR (0x43)
-#define Board_HDC1080_ADDR (0x40)
-#define Board_TMP007_ADDR (0x44)
-#define Board_OPT3001_ADDR (0x45)
-#define Board_MPU9250_ADDR (0x68)
-#define Board_BMP280_ADDR (0x77)
-
-
-/* Mapping of pins to board signals using general board aliases
- * <board signal alias> <pin mapping>
- */
-/* Discrete outputs */
-/* I2C */
-
-#define Board_I2C0_SDA0 IOID_23
-#define Board_I2C0_SCL0 IOID_24
-
-#define Board_LEDR IOID_5
-#define Board_LEDG IOID_6
-
-#define Board_LED_ON 1
-#define Board_LED_OFF 0
-
-/* Discrete inputs */
-#define Board_BTN1 IOID_4
-#define Board_BTN2 PIN_UNASSIGNED
-
-/* Debug UART */
-#define Board_UART_RX IOID_2 /* RXD */
-#define Board_UART_TX IOID_3 /* TXD */
-
-/* DAC8730 UART */
-//#define Board_UART_TX IOID_8 /* TCD to DAC*/
-//#define Board_UART_RX IOID_9 /* RXD from DAC */
-
-/* SPI Board */
-#define Board_SPI0_IRQ IOID_10
-#define Board_SPI0_MISO IOID_12
-#define Board_SPI0_MOSI IOID_13
-#define Board_SPI0_CLK IOID_14
-#define Board_SPI0_CSN IOID_15
-
-#define Board_SPI1_MISO IOID_18
-#define Board_SPI1_MOSI IOID_19
-#define Board_SPI1_CLK IOID_20
-#define Board_SPI1_CSN IOID_21
-#define Board_SPI1_IRQ IOID_22
-
-/* Power */
-//#define Board_DIO0 IOID_0 // VCCIO_DAC
-//#define Board_DIO1 IOID_1 // GPS_PWR_nEN
-//#define Board_DIO7 IOID_7 // EH_nBYPASS
-//#define Board_DIO25 IOID_25 // SSM_PWR_nEN
-//#define Board_DIO26 IOID_26 // GPS_PWR_nEN
-//#define Board_DIO27 IOID_27 // VBAT_OK
-//#define Board_DIO28 IOID_28 // SSM_5V_EN
-
-/* Misc */
-//#define Board_DIO11 IOID_11 // BSL
-//#define Board_DIO16 IOID_16 // JTAG_TDO
-//#define Board_DIO17 IOID_17 // JTAG_TDI
-
-
-
-/* Analog */
-#define Board_DIO23_ANALOG PIN_UNASSIGNED
-#define Board_DIO24_ANALOG PIN_UNASSIGNED
-#define Board_DIO25_ANALOG PIN_UNASSIGNED
-#define Board_DIO26_ANALOG PIN_UNASSIGNED
-#define Board_DIO27_ANALOG PIN_UNASSIGNED
-#define Board_DIO28_ANALOG PIN_UNASSIGNED
-#define Board_DIO29_ANALOG PIN_UNASSIGNED
-#define Board_DIO30_ANALOG PIN_UNASSIGNED
-
-
-/* PWM outputs */
-#define Board_PWMPIN0 PIN_UNASSIGNED
-#define Board_PWMPIN1 PIN_UNASSIGNED
-#define Board_PWMPIN2 PIN_UNASSIGNED
-#define Board_PWMPIN3 PIN_UNASSIGNED
-#define Board_PWMPIN4 PIN_UNASSIGNED
-#define Board_PWMPIN5 PIN_UNASSIGNED
-#define Board_PWMPIN6 PIN_UNASSIGNED
-#define Board_PWMPIN7 PIN_UNASSIGNED
-
-
-/** ============================================================================
- * Instance identifiers
- * ==========================================================================*/
-/* Generic I2C instance identifiers */
-#define Board_I2C CC2650_I3MOTE_I2C0
-/* Generic SPI instance identifiers */
-#define Board_SPI0 CC2650_I3MOTE_SPI0
-#define Board_SPI1 CC2650_I3MOTE_SPI1
-/* Generic UART instance identifiers */
-#define Board_UART CC2650_I3MOTE_UART0
-/* Generic Crypto instance identifiers */
-#define Board_CRYPTO CC2650_I3MOTE_CRYPTO0
-/* Generic GPTimer instance identifiers */
-#define Board_GPTIMER0A CC2650_I3MOTE_GPTIMER0A
-#define Board_GPTIMER0B CC2650_I3MOTE_GPTIMER0B
-#define Board_GPTIMER1A CC2650_I3MOTE_GPTIMER1A
-#define Board_GPTIMER1B CC2650_I3MOTE_GPTIMER1B
-#define Board_GPTIMER2A CC2650_I3MOTE_GPTIMER2A
-#define Board_GPTIMER2B CC2650_I3MOTE_GPTIMER2B
-#define Board_GPTIMER3A CC2650_I3MOTE_GPTIMER3A
-#define Board_GPTIMER3B CC2650_I3MOTE_GPTIMER3B
-/* Generic PWM instance identifiers */
-#define Board_PWM0 CC2650_I3MOTE_PWM0
-#define Board_PWM1 CC2650_I3MOTE_PWM1
-#define Board_PWM2 CC2650_I3MOTE_PWM2
-#define Board_PWM3 CC2650_I3MOTE_PWM3
-#define Board_PWM4 CC2650_I3MOTE_PWM4
-#define Board_PWM5 CC2650_I3MOTE_PWM5
-#define Board_PWM6 CC2650_I3MOTE_PWM6
-#define Board_PWM7 CC2650_I3MOTE_PWM7
-
-/** ============================================================================
- * Number of peripherals and their names
- * ==========================================================================*/
-
-/*!
- * @def CC2650_I3MOTE_I2CName
- * @brief Enum of I2C names on the CC2650 dev board
- */
-typedef enum CC2650_I3MOTE_I2CName {
- CC2650_I3MOTE_I2C0 = 0,
-
- CC2650_I3MOTE_I2CCOUNT
-} CC2650_I3MOTE_I2CName;
-
-/*!
- * @def CC2650_I3MOTE_CryptoName
- * @brief Enum of Crypto names on the CC2650 dev board
- */
-typedef enum CC2650_I3MOTE_CryptoName {
- CC2650_I3MOTE_CRYPTO0 = 0,
-
- CC2650_I3MOTE_CRYPTOCOUNT
-} CC2650_I3MOTE_CryptoName;
-
-
-/*!
- * @def CC2650_I3MOTE_SPIName
- * @brief Enum of SPI names on the CC2650 dev board
- */
-typedef enum CC2650_I3MOTE_SPIName {
- CC2650_I3MOTE_SPI0 = 0,
- CC2650_I3MOTE_SPI1,
-
- CC2650_I3MOTE_SPICOUNT
-} CC2650_I3MOTE_SPIName;
-
-/*!
- * @def CC2650_I3MOTE_UARTName
- * @brief Enum of UARTs on the CC2650 dev board
- */
-typedef enum CC2650_I3MOTE_UARTName {
- CC2650_I3MOTE_UART0 = 0,
-
- CC2650_I3MOTE_UARTCOUNT
-} CC2650_I3MOTE_UARTName;
-
-/*!
- * @def CC2650_I3MOTE_UdmaName
- * @brief Enum of DMA buffers
- */
-typedef enum CC2650_I3MOTE_UdmaName {
- CC2650_I3MOTE_UDMA0 = 0,
-
- CC2650_I3MOTE_UDMACOUNT
-} CC2650_I3MOTE_UdmaName;
-
-/*!
- * @def CC2650_I3MOTE_GPTimerName
- * @brief Enum of GPTimer parts
- */
-typedef enum CC2650_I3MOTE_GPTimerName
-{
- CC2650_I3MOTE_GPTIMER0A = 0,
- CC2650_I3MOTE_GPTIMER0B,
- CC2650_I3MOTE_GPTIMER1A,
- CC2650_I3MOTE_GPTIMER1B,
- CC2650_I3MOTE_GPTIMER2A,
- CC2650_I3MOTE_GPTIMER2B,
- CC2650_I3MOTE_GPTIMER3A,
- CC2650_I3MOTE_GPTIMER3B,
- CC2650_I3MOTE_GPTIMERPARTSCOUNT
-} CC2650_I3MOTE_GPTimerName;
-
-/*!
- * @def CC2650_I3MOTE_GPTimers
- * @brief Enum of GPTimers
- */
-typedef enum CC2650_I3MOTE_GPTimers
-{
- CC2650_I3MOTE_GPTIMER0 = 0,
- CC2650_I3MOTE_GPTIMER1,
- CC2650_I3MOTE_GPTIMER2,
- CC2650_I3MOTE_GPTIMER3,
- CC2650_I3MOTE_GPTIMERCOUNT
-} CC2650_I3MOTE_GPTimers;
-
-/*!
- * @def CC2650_I3MOTE_PWM
- * @brief Enum of PWM outputs on the board
- */
-typedef enum CC2650_I3MOTE_PWM
-{
- CC2650_I3MOTE_PWM0 = 0,
- CC2650_I3MOTE_PWM1,
- CC2650_I3MOTE_PWM2,
- CC2650_I3MOTE_PWM3,
- CC2650_I3MOTE_PWM4,
- CC2650_I3MOTE_PWM5,
- CC2650_I3MOTE_PWM6,
- CC2650_I3MOTE_PWM7,
- CC2650_I3MOTE_PWMCOUNT
-} CC2650_I3MOTE_PWM;
-
-/*!
- * @def CC2650_I3MOTE_ADCBufName
- * @brief Enum of ADCs
- */
-typedef enum CC2650_I3MOTE_ADCBufName {
- CC2650_I3MOTE_ADCBuf0 = 0,
- CC2650_I3MOTE_ADCBufCOUNT
-} CC2650_I3MOTE_ADCBufName;
-
-
-/*!
- * @def CC2650_I3MOTE_ADCName
- * @brief Enum of ADCs
- */
-typedef enum CC2650_I3MOTE_ADCName {
- CC2650_I3MOTE_ADC0 = 0,
- CC2650_I3MOTE_ADC1,
- CC2650_I3MOTE_ADC2,
- CC2650_I3MOTE_ADC3,
- CC2650_I3MOTE_ADC4,
- CC2650_I3MOTE_ADC5,
- CC2650_I3MOTE_ADC6,
- CC2650_I3MOTE_ADC7,
- CC2650_I3MOTE_ADCDCOUPL,
- CC2650_I3MOTE_ADCVSS,
- CC2650_I3MOTE_ADCVDDS,
- CC2650_I3MOTE_ADCCOUNT
-} CC2650_I3MOTE_ADCName;
-
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* __CC2650_I3MOTE_BOARD_H__ */
diff --git a/Basic-Test-Package/CC2650/Test_CC2650_3wSPI_Master_MSP432_SlaveIRQ/CC2650_I3M.c b/Basic-Test-Package/CC2650/Test_CC2650_3wSPI_Master_MSP432_SlaveIRQ/CC2650_I3M.c
+++ /dev/null
@@ -1,640 +0,0 @@
-/*
- * Copyright (c) 2016, Texas Instruments Incorporated
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * * Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- *
- * * Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- *
- * * Neither the name of Texas Instruments Incorporated nor the names of
- * its contributors may be used to endorse or promote products derived
- * from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
- * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
- * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
- * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
- * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
- * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
- * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
- * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-/*
- * ====================== CC2650_I3MOTE.c ===================================
- * This file is responsible for setting up the board specific items for the
- * CC2650 LaunchPad.
- */
-
-
-/*
- * ====================== Includes ============================================
- */
-#include <xdc/std.h>
-#include <xdc/runtime/System.h>
-
-#include <ti/sysbios/family/arm/m3/Hwi.h>
-#include <ti/drivers/PIN.h>
-#include <ti/drivers/pin/PINCC26XX.h>
-#include <ti/drivers/PWM.h>
-#include <ti/drivers/pwm/PWMTimerCC26XX.h>
-#include <ti/drivers/timer/GPTimerCC26XX.h>
-#include <ti/drivers/Power.h>
-#include <ti/drivers/power/PowerCC26XX.h>
-
-#include <inc/hw_memmap.h>
-#include <inc/hw_ints.h>
-#include <driverlib/ioc.h>
-#include <driverlib/udma.h>
-
-#include <Board.h>
-
-/*
- * ========================= IO driver initialization =========================
- * From main, PIN_init(BoardGpioInitTable) should be called to setup safe
- * settings for this board.
- * When a pin is allocated and then de-allocated, it will revert to the state
- * configured in this table.
- */
-/* Place into subsections to allow the TI linker to remove items properly */
-#if defined(__TI_COMPILER_VERSION__)
-#pragma DATA_SECTION(BoardGpioInitTable, ".const:BoardGpioInitTable")
-#pragma DATA_SECTION(PINCC26XX_hwAttrs, ".const:PINCC26XX_hwAttrs")
-#endif
-
-const PIN_Config BoardGpioInitTable[] = {
-
- Board_LEDR | PIN_GPIO_OUTPUT_EN | PIN_GPIO_LOW | PIN_PUSHPULL | PIN_DRVSTR_MAX, /* LED initially off */
- Board_LEDG | PIN_GPIO_OUTPUT_EN | PIN_GPIO_LOW | PIN_PUSHPULL | PIN_DRVSTR_MAX, /* LED initially off */
- Board_BTN1 | PIN_INPUT_EN | PIN_PULLUP | PIN_IRQ_BOTHEDGES | PIN_HYSTERESIS, /* Button is active low */
- Board_UART_RX | PIN_INPUT_EN | PIN_PULLDOWN, /* UART RX via debugger back channel */
- Board_UART_TX | PIN_GPIO_OUTPUT_EN | PIN_GPIO_HIGH | PIN_PUSHPULL, /* UART TX via debugger back channel */
- PIN_TERMINATE
-};
-
-const PINCC26XX_HWAttrs PINCC26XX_hwAttrs = {
- .intPriority = ~0,
- .swiPriority = 0
-};
-/*============================================================================*/
-
-/*
- * ============================= Power begin ==================================
- */
-/* Place into subsections to allow the TI linker to remove items properly */
-#if defined(__TI_COMPILER_VERSION__)
-#pragma DATA_SECTION(PowerCC26XX_config, ".const:PowerCC26XX_config")
-#endif
-const PowerCC26XX_Config PowerCC26XX_config = {
- .policyInitFxn = NULL,
- .policyFxn = &PowerCC26XX_standbyPolicy,
- .calibrateFxn = &PowerCC26XX_calibrate,
- .enablePolicy = TRUE,
- .calibrateRCOSC_LF = TRUE,
- .calibrateRCOSC_HF = TRUE,
-};
-/*
- * ============================= Power end ====================================
- */
-
-/*
- * ============================= UART begin ===================================
- */
-/* Place into subsections to allow the TI linker to remove items properly */
-#if defined(__TI_COMPILER_VERSION__)
-#pragma DATA_SECTION(UART_config, ".const:UART_config")
-#pragma DATA_SECTION(uartCC26XXHWAttrs, ".const:uartCC26XXHWAttrs")
-#endif
-
-/* Include drivers */
-#include <ti/drivers/UART.h>
-#include <ti/drivers/uart/UARTCC26XX.h>
-
-/* UART objects */
-UARTCC26XX_Object uartCC26XXObjects[CC2650_I3MOTE_UARTCOUNT];
-
-/* UART hardware parameter structure, also used to assign UART pins */
-const UARTCC26XX_HWAttrsV1 uartCC26XXHWAttrs[CC2650_I3MOTE_UARTCOUNT] = {
- {
- .baseAddr = UART0_BASE,
- .powerMngrId = PowerCC26XX_PERIPH_UART0,
- .intNum = INT_UART0_COMB,
- .intPriority = ~0,
- .swiPriority = 0,
- .txPin = Board_UART_TX,
- .rxPin = Board_UART_RX,
- .ctsPin = PIN_UNASSIGNED,
- .rtsPin = PIN_UNASSIGNED
- }
-};
-
-/* UART configuration structure */
-const UART_Config UART_config[] = {
- {
- .fxnTablePtr = &UARTCC26XX_fxnTable,
- .object = &uartCC26XXObjects[0],
- .hwAttrs = &uartCC26XXHWAttrs[0]
- },
- {NULL, NULL, NULL}
-};
-/*
- * ============================= UART end =====================================
- */
-
-/*
- * ============================= UDMA begin ===================================
- */
-/* Place into subsections to allow the TI linker to remove items properly */
-#if defined(__TI_COMPILER_VERSION__)
-#pragma DATA_SECTION(UDMACC26XX_config, ".const:UDMACC26XX_config")
-#pragma DATA_SECTION(udmaHWAttrs, ".const:udmaHWAttrs")
-#endif
-
-/* Include drivers */
-#include <ti/drivers/dma/UDMACC26XX.h>
-
-/* UDMA objects */
-UDMACC26XX_Object udmaObjects[CC2650_I3MOTE_UDMACOUNT];
-
-/* UDMA configuration structure */
-const UDMACC26XX_HWAttrs udmaHWAttrs[CC2650_I3MOTE_UDMACOUNT] = {
- {
- .baseAddr = UDMA0_BASE,
- .powerMngrId = PowerCC26XX_PERIPH_UDMA,
- .intNum = INT_DMA_ERR,
- .intPriority = ~0
- }
-};
-
-/* UDMA configuration structure */
-const UDMACC26XX_Config UDMACC26XX_config[] = {
- {
- .object = &udmaObjects[0],
- .hwAttrs = &udmaHWAttrs[0]
- },
- {NULL, NULL}
-};
-/*
- * ============================= UDMA end =====================================
- */
-
-/*
- * ========================== SPI DMA begin ===================================
- */
-/* Place into subsections to allow the TI linker to remove items properly */
-#if defined(__TI_COMPILER_VERSION__)
-#pragma DATA_SECTION(SPI_config, ".const:SPI_config")
-#pragma DATA_SECTION(spiCC26XXDMAHWAttrs, ".const:spiCC26XXDMAHWAttrs")
-#endif
-
-/* Include drivers */
-#include <ti/drivers/spi/SPICC26XXDMA.h>
-
-/* SPI objects */
-SPICC26XXDMA_Object spiCC26XXDMAObjects[CC2650_I3MOTE_SPICOUNT];
-
-/* SPI configuration structure, describing which pins are to be used */
-const SPICC26XXDMA_HWAttrsV1 spiCC26XXDMAHWAttrs[CC2650_I3MOTE_SPICOUNT] = {
- {
- .baseAddr = SSI0_BASE,
- .intNum = INT_SSI0_COMB,
- .intPriority = ~0,
- .swiPriority = 0,
- .powerMngrId = PowerCC26XX_PERIPH_SSI0,
- .defaultTxBufValue = 0,
- .rxChannelBitMask = 1<<UDMA_CHAN_SSI0_RX,
- .txChannelBitMask = 1<<UDMA_CHAN_SSI0_TX,
- .mosiPin = Board_SPI0_MOSI,
- .misoPin = Board_SPI0_MISO,
- .clkPin = Board_SPI0_CLK,
- .csnPin = Board_SPI0_CSN
- },
- {
- .baseAddr = SSI1_BASE,
- .intNum = INT_SSI1_COMB,
- .intPriority = ~0,
- .swiPriority = 0,
- .powerMngrId = PowerCC26XX_PERIPH_SSI1,
- .defaultTxBufValue = 0,
- .rxChannelBitMask = 1<<UDMA_CHAN_SSI1_RX,
- .txChannelBitMask = 1<<UDMA_CHAN_SSI1_TX,
- .mosiPin = Board_SPI1_MOSI,
- .misoPin = Board_SPI1_MISO,
- .clkPin = Board_SPI1_CLK,
- .csnPin = Board_SPI1_CSN
- }
-};
-
-/* SPI configuration structure */
-const SPI_Config SPI_config[] = {
- {
- .fxnTablePtr = &SPICC26XXDMA_fxnTable,
- .object = &spiCC26XXDMAObjects[0],
- .hwAttrs = &spiCC26XXDMAHWAttrs[0]
- },
- {
- .fxnTablePtr = &SPICC26XXDMA_fxnTable,
- .object = &spiCC26XXDMAObjects[1],
- .hwAttrs = &spiCC26XXDMAHWAttrs[1]
- },
- {NULL, NULL, NULL}
-};
-/*
- * ========================== SPI DMA end =====================================
-*/
-
-
-/*
- * ============================= I2C Begin=====================================
-*/
-/* Place into subsections to allow the TI linker to remove items properly */
-#if defined(__TI_COMPILER_VERSION__)
-#pragma DATA_SECTION(I2C_config, ".const:I2C_config")
-#pragma DATA_SECTION(i2cCC26xxHWAttrs, ".const:i2cCC26xxHWAttrs")
-#endif
-
-/* Include drivers */
-#include <ti/drivers/i2c/I2CCC26XX.h>
-
-/* I2C objects */
-I2CCC26XX_Object i2cCC26xxObjects[CC2650_I3MOTE_I2CCOUNT];
-
-/* I2C configuration structure, describing which pins are to be used */
-const I2CCC26XX_HWAttrsV1 i2cCC26xxHWAttrs[CC2650_I3MOTE_I2CCOUNT] = {
- {
- .baseAddr = I2C0_BASE,
- .powerMngrId = PowerCC26XX_PERIPH_I2C0,
- .intNum = INT_I2C_IRQ,
- .intPriority = ~0,
- .swiPriority = 0,
- .sdaPin = Board_I2C0_SDA0,
- .sclPin = Board_I2C0_SCL0,
- }
-};
-
-/* I2C configuration structure */
-const I2C_Config I2C_config[] = {
- {
- .fxnTablePtr = &I2CCC26XX_fxnTable,
- .object = &i2cCC26xxObjects[0],
- .hwAttrs = &i2cCC26xxHWAttrs[0]
- },
- {NULL, NULL, NULL}
-};
-/*
- * ========================== I2C end =========================================
- */
-
-/*
- * ========================== Crypto begin ====================================
- * NOTE: The Crypto implementation should be considered experimental
- * and not validated!
- */
-/* Place into subsections to allow the TI linker to remove items properly */
-#if defined(__TI_COMPILER_VERSION__)
-#pragma DATA_SECTION(CryptoCC26XX_config, ".const:CryptoCC26XX_config")
-#pragma DATA_SECTION(cryptoCC26XXHWAttrs, ".const:cryptoCC26XXHWAttrs")
-#endif
-
-/* Include drivers */
-#include <ti/drivers/crypto/CryptoCC26XX.h>
-
-/* Crypto objects */
-CryptoCC26XX_Object cryptoCC26XXObjects[CC2650_I3MOTE_CRYPTOCOUNT];
-
-/* Crypto configuration structure, describing which pins are to be used */
-const CryptoCC26XX_HWAttrs cryptoCC26XXHWAttrs[CC2650_I3MOTE_CRYPTOCOUNT] = {
- {
- .baseAddr = CRYPTO_BASE,
- .powerMngrId = PowerCC26XX_PERIPH_CRYPTO,
- .intNum = INT_CRYPTO_RESULT_AVAIL_IRQ,
- .intPriority = ~0,
- }
-};
-
-/* Crypto configuration structure */
-const CryptoCC26XX_Config CryptoCC26XX_config[] = {
- {
- .object = &cryptoCC26XXObjects[0],
- .hwAttrs = &cryptoCC26XXHWAttrs[0]
- },
- {NULL, NULL}
-};
-/*
- * ========================== Crypto end ======================================
- */
-
-
-/*
- * ========================= RF driver begin ==================================
- */
-/* Place into subsections to allow the TI linker to remove items properly */
-#if defined(__TI_COMPILER_VERSION__)
-#pragma DATA_SECTION(RFCC26XX_hwAttrs, ".const:RFCC26XX_hwAttrs")
-#endif
-
-/* Include drivers */
-#include <ti/drivers/rf/RF.h>
-
-/* RF hwi and swi priority */
-const RFCC26XX_HWAttrs RFCC26XX_hwAttrs = {
- .hwiCpe0Priority = ~0,
- .hwiHwPriority = ~0,
- .swiCpe0Priority = 0,
- .swiHwPriority = 0,
-};
-
-/*
- * ========================== RF driver end ===================================
- */
-
-/*
- * ========================= Display begin ====================================
- */
-
-/*
- * ========================= Display end ======================================
- */
-
-/*
- * ============================ GPTimer begin =================================
- * Remove unused entries to reduce flash usage both in Board.c and Board.h
- */
-/* Place into subsections to allow the TI linker to remove items properly */
-#if defined(__TI_COMPILER_VERSION__)
-#pragma DATA_SECTION(GPTimerCC26XX_config, ".const:GPTimerCC26XX_config")
-#pragma DATA_SECTION(gptimerCC26xxHWAttrs, ".const:gptimerCC26xxHWAttrs")
-#endif
-
-/* GPTimer hardware attributes, one per timer part (Timer 0A, 0B, 1A, 1B..) */
-const GPTimerCC26XX_HWAttrs gptimerCC26xxHWAttrs[CC2650_I3MOTE_GPTIMERPARTSCOUNT] = {
- { .baseAddr = GPT0_BASE, .intNum = INT_GPT0A, .intPriority = (~0), .powerMngrId = PowerCC26XX_PERIPH_GPT0, .pinMux = GPT_PIN_0A, },
- { .baseAddr = GPT0_BASE, .intNum = INT_GPT0B, .intPriority = (~0), .powerMngrId = PowerCC26XX_PERIPH_GPT0, .pinMux = GPT_PIN_0B, },
- { .baseAddr = GPT1_BASE, .intNum = INT_GPT1A, .intPriority = (~0), .powerMngrId = PowerCC26XX_PERIPH_GPT1, .pinMux = GPT_PIN_1A, },
- { .baseAddr = GPT1_BASE, .intNum = INT_GPT1B, .intPriority = (~0), .powerMngrId = PowerCC26XX_PERIPH_GPT1, .pinMux = GPT_PIN_1B, },
- { .baseAddr = GPT2_BASE, .intNum = INT_GPT2A, .intPriority = (~0), .powerMngrId = PowerCC26XX_PERIPH_GPT2, .pinMux = GPT_PIN_2A, },
- { .baseAddr = GPT2_BASE, .intNum = INT_GPT2B, .intPriority = (~0), .powerMngrId = PowerCC26XX_PERIPH_GPT2, .pinMux = GPT_PIN_2B, },
- { .baseAddr = GPT3_BASE, .intNum = INT_GPT3A, .intPriority = (~0), .powerMngrId = PowerCC26XX_PERIPH_GPT3, .pinMux = GPT_PIN_3A, },
- { .baseAddr = GPT3_BASE, .intNum = INT_GPT3B, .intPriority = (~0), .powerMngrId = PowerCC26XX_PERIPH_GPT3, .pinMux = GPT_PIN_3B, },
-};
-
-/* GPTimer objects, one per full-width timer (A+B) (Timer 0, Timer 1..) */
-GPTimerCC26XX_Object gptimerCC26XXObjects[CC2650_I3MOTE_GPTIMERCOUNT];
-
-/* GPTimer configuration (used as GPTimer_Handle by driver and application) */
-const GPTimerCC26XX_Config GPTimerCC26XX_config[CC2650_I3MOTE_GPTIMERPARTSCOUNT] = {
- { &gptimerCC26XXObjects[0], &gptimerCC26xxHWAttrs[0], GPT_A },
- { &gptimerCC26XXObjects[0], &gptimerCC26xxHWAttrs[1], GPT_B },
- { &gptimerCC26XXObjects[1], &gptimerCC26xxHWAttrs[2], GPT_A },
- { &gptimerCC26XXObjects[1], &gptimerCC26xxHWAttrs[3], GPT_B },
- { &gptimerCC26XXObjects[2], &gptimerCC26xxHWAttrs[4], GPT_A },
- { &gptimerCC26XXObjects[2], &gptimerCC26xxHWAttrs[5], GPT_B },
- { &gptimerCC26XXObjects[3], &gptimerCC26xxHWAttrs[6], GPT_A },
- { &gptimerCC26XXObjects[3], &gptimerCC26xxHWAttrs[7], GPT_B },
-};
-
-/*
- * ============================ GPTimer end ===================================
- */
-
-
-
-/*
- * ============================= PWM begin ====================================
- * Remove unused entries to reduce flash usage both in Board.c and Board.h
- */
-/* Place into subsections to allow the TI linker to remove items properly */
-#if defined(__TI_COMPILER_VERSION__)
-#pragma DATA_SECTION(PWM_config, ".const:PWM_config")
-#pragma DATA_SECTION(pwmtimerCC26xxHWAttrs, ".const:pwmtimerCC26xxHWAttrs")
-#endif
-
-/* PWM configuration, one per PWM output. */
-PWMTimerCC26XX_HwAttrs pwmtimerCC26xxHWAttrs[CC2650_I3MOTE_PWMCOUNT] = {
- { .pwmPin = Board_PWMPIN0, .gpTimerUnit = Board_GPTIMER0A },
- { .pwmPin = Board_PWMPIN1, .gpTimerUnit = Board_GPTIMER0B },
- { .pwmPin = Board_PWMPIN2, .gpTimerUnit = Board_GPTIMER1A },
- { .pwmPin = Board_PWMPIN3, .gpTimerUnit = Board_GPTIMER1B },
- { .pwmPin = Board_PWMPIN4, .gpTimerUnit = Board_GPTIMER2A },
- { .pwmPin = Board_PWMPIN5, .gpTimerUnit = Board_GPTIMER2B },
- { .pwmPin = Board_PWMPIN6, .gpTimerUnit = Board_GPTIMER3A },
- { .pwmPin = Board_PWMPIN7, .gpTimerUnit = Board_GPTIMER3B },
-};
-
-/* PWM object, one per PWM output */
-PWMTimerCC26XX_Object pwmtimerCC26xxObjects[CC2650_I3MOTE_PWMCOUNT];
-
-extern const PWM_FxnTable PWMTimerCC26XX_fxnTable;
-
-/* PWM configuration (used as PWM_Handle by driver and application) */
-const PWM_Config PWM_config[CC2650_I3MOTE_PWMCOUNT + 1] = {
- { &PWMTimerCC26XX_fxnTable, &pwmtimerCC26xxObjects[0], &pwmtimerCC26xxHWAttrs[0] },
- { &PWMTimerCC26XX_fxnTable, &pwmtimerCC26xxObjects[1], &pwmtimerCC26xxHWAttrs[1] },
- { &PWMTimerCC26XX_fxnTable, &pwmtimerCC26xxObjects[2], &pwmtimerCC26xxHWAttrs[2] },
- { &PWMTimerCC26XX_fxnTable, &pwmtimerCC26xxObjects[3], &pwmtimerCC26xxHWAttrs[3] },
- { &PWMTimerCC26XX_fxnTable, &pwmtimerCC26xxObjects[4], &pwmtimerCC26xxHWAttrs[4] },
- { &PWMTimerCC26XX_fxnTable, &pwmtimerCC26xxObjects[5], &pwmtimerCC26xxHWAttrs[5] },
- { &PWMTimerCC26XX_fxnTable, &pwmtimerCC26xxObjects[6], &pwmtimerCC26xxHWAttrs[6] },
- { &PWMTimerCC26XX_fxnTable, &pwmtimerCC26xxObjects[7], &pwmtimerCC26xxHWAttrs[7] },
- { NULL, NULL, NULL }
-};
-
-
-/*
- * ============================= PWM end ======================================
- */
-
-/*
- * ========================== ADCBuf begin =========================================
- */
-/* Place into subsections to allow the TI linker to remove items properly */
-#if defined(__TI_COMPILER_VERSION__)
-#pragma DATA_SECTION(ADCBuf_config, ".const:ADCBuf_config")
-#pragma DATA_SECTION(adcBufCC26xxHWAttrs, ".const:adcBufCC26xxHWAttrs")
-#pragma DATA_SECTION(ADCBufCC26XX_adcChannelLut, ".const:ADCBufCC26XX_adcChannelLut")
-#endif
-
-/* Include drivers */
-#include <ti/drivers/ADCBuf.h>
-#include <ti/drivers/adcbuf/ADCBufCC26XX.h>
-
-/* ADCBuf objects */
-ADCBufCC26XX_Object adcBufCC26xxObjects[CC2650_I3MOTE_ADCBufCOUNT];
-
-/*
- * This table converts a virtual adc channel into a dio and internal analogue input signal.
- * This table is necessary for the functioning of the adcBuf driver.
- * Comment out unused entries to save flash.
- * Dio and internal signal pairs are hardwired. Do not remap them in the table. You may reorder entire entries though.
- * The mapping of dio and internal signals is package dependent.
- */
-const ADCBufCC26XX_AdcChannelLutEntry ADCBufCC26XX_adcChannelLut[] = {
- {PIN_UNASSIGNED, ADC_COMPB_IN_VDDS},
- {PIN_UNASSIGNED, ADC_COMPB_IN_DCOUPL},
- {PIN_UNASSIGNED, ADC_COMPB_IN_VSS},
- //{Board_DIO23_ANALOG, ADC_COMPB_IN_AUXIO7},
- //{Board_DIO24_ANALOG, ADC_COMPB_IN_AUXIO6},
- //{Board_DIO25_ANALOG, ADC_COMPB_IN_AUXIO5},
- //{Board_DIO26_ANALOG, ADC_COMPB_IN_AUXIO4},
- //{Board_DIO27_ANALOG, ADC_COMPB_IN_AUXIO3},
- //{Board_DIO28_ANALOG, ADC_COMPB_IN_AUXIO2},
- //{Board_DIO29_ANALOG, ADC_COMPB_IN_AUXIO1},
- //{Board_DIO30_ANALOG, ADC_COMPB_IN_AUXIO0},
-};
-
-const ADCBufCC26XX_HWAttrs adcBufCC26xxHWAttrs[CC2650_I3MOTE_ADCBufCOUNT] = {
- {
- .intPriority = ~0,
- .swiPriority = 0,
- .adcChannelLut = ADCBufCC26XX_adcChannelLut,
- .gpTimerUnit = Board_GPTIMER0A,
- .gptDMAChannelMask = 1 << UDMA_CHAN_TIMER0_A,
- }
-};
-
-const ADCBuf_Config ADCBuf_config[] = {
- {&ADCBufCC26XX_fxnTable, &adcBufCC26xxObjects[0], &adcBufCC26xxHWAttrs[0]},
- {NULL, NULL, NULL},
-};
-/*
- * ========================== ADCBuf end =========================================
- */
-
-
-
-/*
- * ========================== ADC begin =========================================
- */
-/* Place into subsections to allow the TI linker to remove items properly */
-#if defined(__TI_COMPILER_VERSION__)
-#pragma DATA_SECTION(ADC_config, ".const:ADC_config")
-#pragma DATA_SECTION(adcCC26xxHWAttrs, ".const:adcCC26xxHWAttrs")
-#endif
-
-/* Include drivers */
-#include <ti/drivers/ADC.h>
-#include <ti/drivers/adc/ADCCC26XX.h>
-
-/* ADC objects */
-ADCCC26XX_Object adcCC26xxObjects[CC2650_I3MOTE_ADCCOUNT];
-
-
-const ADCCC26XX_HWAttrs adcCC26xxHWAttrs[CC2650_I3MOTE_ADCCOUNT] = {
- {
- .adcDIO = Board_DIO23_ANALOG,
- .adcCompBInput = ADC_COMPB_IN_AUXIO7,
- .refSource = ADCCC26XX_FIXED_REFERENCE,
- .samplingDuration = ADCCC26XX_SAMPLING_DURATION_2P7_US,
- .inputScalingEnabled = true,
- .triggerSource = ADCCC26XX_TRIGGER_MANUAL
- },
- {
- .adcDIO = Board_DIO24_ANALOG,
- .adcCompBInput = ADC_COMPB_IN_AUXIO6,
- .refSource = ADCCC26XX_FIXED_REFERENCE,
- .samplingDuration = ADCCC26XX_SAMPLING_DURATION_2P7_US,
- .inputScalingEnabled = true,
- .triggerSource = ADCCC26XX_TRIGGER_MANUAL
- },
- {
- .adcDIO = Board_DIO25_ANALOG,
- .adcCompBInput = ADC_COMPB_IN_AUXIO5,
- .refSource = ADCCC26XX_FIXED_REFERENCE,
- .samplingDuration = ADCCC26XX_SAMPLING_DURATION_2P7_US,
- .inputScalingEnabled = true,
- .triggerSource = ADCCC26XX_TRIGGER_MANUAL
- },
- {
- .adcDIO = Board_DIO26_ANALOG,
- .adcCompBInput = ADC_COMPB_IN_AUXIO4,
- .refSource = ADCCC26XX_FIXED_REFERENCE,
- .samplingDuration = ADCCC26XX_SAMPLING_DURATION_2P7_US,
- .inputScalingEnabled = true,
- .triggerSource = ADCCC26XX_TRIGGER_MANUAL
- },
- {
- .adcDIO = Board_DIO27_ANALOG,
- .adcCompBInput = ADC_COMPB_IN_AUXIO3,
- .refSource = ADCCC26XX_FIXED_REFERENCE,
- .samplingDuration = ADCCC26XX_SAMPLING_DURATION_2P7_US,
- .inputScalingEnabled = true,
- .triggerSource = ADCCC26XX_TRIGGER_MANUAL
- },
- {
- .adcDIO = Board_DIO28_ANALOG,
- .adcCompBInput = ADC_COMPB_IN_AUXIO2,
- .refSource = ADCCC26XX_FIXED_REFERENCE,
- .samplingDuration = ADCCC26XX_SAMPLING_DURATION_2P7_US,
- .inputScalingEnabled = true,
- .triggerSource = ADCCC26XX_TRIGGER_MANUAL
- },
- {
- .adcDIO = Board_DIO29_ANALOG,
- .adcCompBInput = ADC_COMPB_IN_AUXIO1,
- .refSource = ADCCC26XX_FIXED_REFERENCE,
- .samplingDuration = ADCCC26XX_SAMPLING_DURATION_2P7_US,
- .inputScalingEnabled = true,
- .triggerSource = ADCCC26XX_TRIGGER_MANUAL
- },
- {
- .adcDIO = Board_DIO30_ANALOG,
- .adcCompBInput = ADC_COMPB_IN_AUXIO0,
- .refSource = ADCCC26XX_FIXED_REFERENCE,
- .samplingDuration = ADCCC26XX_SAMPLING_DURATION_10P9_MS,
- .inputScalingEnabled = true,
- .triggerSource = ADCCC26XX_TRIGGER_MANUAL
- },
- {
- .adcDIO = PIN_UNASSIGNED,
- .adcCompBInput = ADC_COMPB_IN_DCOUPL,
- .refSource = ADCCC26XX_FIXED_REFERENCE,
- .samplingDuration = ADCCC26XX_SAMPLING_DURATION_2P7_US,
- .inputScalingEnabled = true,
- .triggerSource = ADCCC26XX_TRIGGER_MANUAL
- },
- {
- .adcDIO = PIN_UNASSIGNED,
- .adcCompBInput = ADC_COMPB_IN_VSS,
- .refSource = ADCCC26XX_FIXED_REFERENCE,
- .samplingDuration = ADCCC26XX_SAMPLING_DURATION_2P7_US,
- .inputScalingEnabled = true,
- .triggerSource = ADCCC26XX_TRIGGER_MANUAL
- },
- {
- .adcDIO = PIN_UNASSIGNED,
- .adcCompBInput = ADC_COMPB_IN_VDDS,
- .refSource = ADCCC26XX_FIXED_REFERENCE,
- .samplingDuration = ADCCC26XX_SAMPLING_DURATION_2P7_US,
- .inputScalingEnabled = true,
- .triggerSource = ADCCC26XX_TRIGGER_MANUAL
- }
-};
-
-const ADC_Config ADC_config[] = {
- {&ADCCC26XX_fxnTable, &adcCC26xxObjects[0], &adcCC26xxHWAttrs[0]},
- {&ADCCC26XX_fxnTable, &adcCC26xxObjects[1], &adcCC26xxHWAttrs[1]},
- {&ADCCC26XX_fxnTable, &adcCC26xxObjects[2], &adcCC26xxHWAttrs[2]},
- {&ADCCC26XX_fxnTable, &adcCC26xxObjects[3], &adcCC26xxHWAttrs[3]},
- {&ADCCC26XX_fxnTable, &adcCC26xxObjects[4], &adcCC26xxHWAttrs[4]},
- {&ADCCC26XX_fxnTable, &adcCC26xxObjects[5], &adcCC26xxHWAttrs[5]},
- {&ADCCC26XX_fxnTable, &adcCC26xxObjects[6], &adcCC26xxHWAttrs[6]},
- {&ADCCC26XX_fxnTable, &adcCC26xxObjects[7], &adcCC26xxHWAttrs[7]},
- {&ADCCC26XX_fxnTable, &adcCC26xxObjects[8], &adcCC26xxHWAttrs[8]},
- {&ADCCC26XX_fxnTable, &adcCC26xxObjects[9], &adcCC26xxHWAttrs[9]},
- {&ADCCC26XX_fxnTable, &adcCC26xxObjects[10], &adcCC26xxHWAttrs[10]},
- {NULL, NULL, NULL},
-};
-
-/*
- * ========================== ADC end =========================================
- */
diff --git a/Basic-Test-Package/CC2650/Test_CC2650_3wSPI_Master_MSP432_SlaveIRQ/CC2650_I3M.h b/Basic-Test-Package/CC2650/Test_CC2650_3wSPI_Master_MSP432_SlaveIRQ/CC2650_I3M.h
+++ /dev/null
@@ -1,324 +0,0 @@
-/*
- * Copyright (c) 2015-2016, Texas Instruments Incorporated
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * * Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- *
- * * Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- *
- * * Neither the name of Texas Instruments Incorporated nor the names of
- * its contributors may be used to endorse or promote products derived
- * from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
- * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
- * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
- * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
- * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
- * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
- * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
- * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-/** ============================================================================
- * @file CC2650_I3MOTE.h
- *
- * @brief CC2650 LaunchPad Board Specific header file.
- *
- * NB! This is the board file for CC2650 LaunchPad PCB version 1.1
- *
- * ============================================================================
- */
-#ifndef __CC2650_I3MOTE_BOARD_H__
-#define __CC2650_I3MOTE_BOARD_H__
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/** ============================================================================
- * Includes
- * ==========================================================================*/
-#include <ti/drivers/PIN.h>
-#include <driverlib/ioc.h>
-
-/** ============================================================================
- * Externs
- * ==========================================================================*/
-extern const PIN_Config BoardGpioInitTable[];
-
-/** ============================================================================
- * Defines
- * ==========================================================================*/
-
-/* Same RF Configuration as 7x7 EM */
-#define CC2650EM_7ID
-#define CC2650_I3MOTE
-
-
-/* Sensors */
-#define Board_INA219_ADDR (0x41)
-#define Board_HDC1000_ADDR (0x43)
-#define Board_HDC1080_ADDR (0x40)
-#define Board_TMP007_ADDR (0x44)
-#define Board_OPT3001_ADDR (0x45)
-#define Board_MPU9250_ADDR (0x68)
-#define Board_BMP280_ADDR (0x77)
-
-
-/* Mapping of pins to board signals using general board aliases
- * <board signal alias> <pin mapping>
- */
-/* Discrete outputs */
-/* I2C */
-
-#define Board_I2C0_SDA0 IOID_23
-#define Board_I2C0_SCL0 IOID_24
-
-#define Board_LEDR IOID_5
-#define Board_LEDG IOID_6
-
-#define Board_LED_ON 1
-#define Board_LED_OFF 0
-
-/* Discrete inputs */
-#define Board_BTN1 IOID_4
-#define Board_BTN2 PIN_UNASSIGNED
-
-/* Debug UART */
-#define Board_UART_RX IOID_2 /* RXD */
-#define Board_UART_TX IOID_3 /* TXD */
-
-/* DAC8730 UART */
-//#define Board_UART_TX IOID_8 /* TCD to DAC*/
-//#define Board_UART_RX IOID_9 /* RXD from DAC */
-
-/* SPI Board */
-#define Board_SPI0_IRQ IOID_10
-#define Board_SPI0_MISO IOID_12
-#define Board_SPI0_MOSI IOID_13
-#define Board_SPI0_CLK IOID_14
-#define Board_SPI0_CSN IOID_15
-
-#define Board_SPI1_MISO IOID_18
-#define Board_SPI1_MOSI IOID_19
-#define Board_SPI1_CLK IOID_20
-#define Board_SPI1_CSN IOID_21
-#define Board_SPI1_IRQ IOID_22
-
-/* Power */
-//#define Board_DIO0 IOID_0 // VCCIO_DAC
-//#define Board_DIO1 IOID_1 // GPS_PWR_nEN
-//#define Board_DIO7 IOID_7 // EH_nBYPASS
-//#define Board_DIO25 IOID_25 // SSM_PWR_nEN
-//#define Board_DIO26 IOID_26 // GPS_PWR_nEN
-//#define Board_DIO27 IOID_27 // VBAT_OK
-//#define Board_DIO28 IOID_28 // SSM_5V_EN
-
-/* Misc */
-//#define Board_DIO11 IOID_11 // BSL
-//#define Board_DIO16 IOID_16 // JTAG_TDO
-//#define Board_DIO17 IOID_17 // JTAG_TDI
-
-
-
-/* Analog */
-#define Board_DIO23_ANALOG PIN_UNASSIGNED
-#define Board_DIO24_ANALOG PIN_UNASSIGNED
-#define Board_DIO25_ANALOG PIN_UNASSIGNED
-#define Board_DIO26_ANALOG PIN_UNASSIGNED
-#define Board_DIO27_ANALOG PIN_UNASSIGNED
-#define Board_DIO28_ANALOG PIN_UNASSIGNED
-#define Board_DIO29_ANALOG PIN_UNASSIGNED
-#define Board_DIO30_ANALOG PIN_UNASSIGNED
-
-
-/* PWM outputs */
-#define Board_PWMPIN0 PIN_UNASSIGNED
-#define Board_PWMPIN1 PIN_UNASSIGNED
-#define Board_PWMPIN2 PIN_UNASSIGNED
-#define Board_PWMPIN3 PIN_UNASSIGNED
-#define Board_PWMPIN4 PIN_UNASSIGNED
-#define Board_PWMPIN5 PIN_UNASSIGNED
-#define Board_PWMPIN6 PIN_UNASSIGNED
-#define Board_PWMPIN7 PIN_UNASSIGNED
-
-
-/** ============================================================================
- * Instance identifiers
- * ==========================================================================*/
-/* Generic I2C instance identifiers */
-#define Board_I2C CC2650_I3MOTE_I2C0
-/* Generic SPI instance identifiers */
-#define Board_SPI0 CC2650_I3MOTE_SPI0
-#define Board_SPI1 CC2650_I3MOTE_SPI1
-/* Generic UART instance identifiers */
-#define Board_UART CC2650_I3MOTE_UART0
-/* Generic Crypto instance identifiers */
-#define Board_CRYPTO CC2650_I3MOTE_CRYPTO0
-/* Generic GPTimer instance identifiers */
-#define Board_GPTIMER0A CC2650_I3MOTE_GPTIMER0A
-#define Board_GPTIMER0B CC2650_I3MOTE_GPTIMER0B
-#define Board_GPTIMER1A CC2650_I3MOTE_GPTIMER1A
-#define Board_GPTIMER1B CC2650_I3MOTE_GPTIMER1B
-#define Board_GPTIMER2A CC2650_I3MOTE_GPTIMER2A
-#define Board_GPTIMER2B CC2650_I3MOTE_GPTIMER2B
-#define Board_GPTIMER3A CC2650_I3MOTE_GPTIMER3A
-#define Board_GPTIMER3B CC2650_I3MOTE_GPTIMER3B
-/* Generic PWM instance identifiers */
-#define Board_PWM0 CC2650_I3MOTE_PWM0
-#define Board_PWM1 CC2650_I3MOTE_PWM1
-#define Board_PWM2 CC2650_I3MOTE_PWM2
-#define Board_PWM3 CC2650_I3MOTE_PWM3
-#define Board_PWM4 CC2650_I3MOTE_PWM4
-#define Board_PWM5 CC2650_I3MOTE_PWM5
-#define Board_PWM6 CC2650_I3MOTE_PWM6
-#define Board_PWM7 CC2650_I3MOTE_PWM7
-
-/** ============================================================================
- * Number of peripherals and their names
- * ==========================================================================*/
-
-/*!
- * @def CC2650_I3MOTE_I2CName
- * @brief Enum of I2C names on the CC2650 dev board
- */
-typedef enum CC2650_I3MOTE_I2CName {
- CC2650_I3MOTE_I2C0 = 0,
-
- CC2650_I3MOTE_I2CCOUNT
-} CC2650_I3MOTE_I2CName;
-
-/*!
- * @def CC2650_I3MOTE_CryptoName
- * @brief Enum of Crypto names on the CC2650 dev board
- */
-typedef enum CC2650_I3MOTE_CryptoName {
- CC2650_I3MOTE_CRYPTO0 = 0,
-
- CC2650_I3MOTE_CRYPTOCOUNT
-} CC2650_I3MOTE_CryptoName;
-
-
-/*!
- * @def CC2650_I3MOTE_SPIName
- * @brief Enum of SPI names on the CC2650 dev board
- */
-typedef enum CC2650_I3MOTE_SPIName {
- CC2650_I3MOTE_SPI0 = 0,
- CC2650_I3MOTE_SPI1,
-
- CC2650_I3MOTE_SPICOUNT
-} CC2650_I3MOTE_SPIName;
-
-/*!
- * @def CC2650_I3MOTE_UARTName
- * @brief Enum of UARTs on the CC2650 dev board
- */
-typedef enum CC2650_I3MOTE_UARTName {
- CC2650_I3MOTE_UART0 = 0,
-
- CC2650_I3MOTE_UARTCOUNT
-} CC2650_I3MOTE_UARTName;
-
-/*!
- * @def CC2650_I3MOTE_UdmaName
- * @brief Enum of DMA buffers
- */
-typedef enum CC2650_I3MOTE_UdmaName {
- CC2650_I3MOTE_UDMA0 = 0,
-
- CC2650_I3MOTE_UDMACOUNT
-} CC2650_I3MOTE_UdmaName;
-
-/*!
- * @def CC2650_I3MOTE_GPTimerName
- * @brief Enum of GPTimer parts
- */
-typedef enum CC2650_I3MOTE_GPTimerName
-{
- CC2650_I3MOTE_GPTIMER0A = 0,
- CC2650_I3MOTE_GPTIMER0B,
- CC2650_I3MOTE_GPTIMER1A,
- CC2650_I3MOTE_GPTIMER1B,
- CC2650_I3MOTE_GPTIMER2A,
- CC2650_I3MOTE_GPTIMER2B,
- CC2650_I3MOTE_GPTIMER3A,
- CC2650_I3MOTE_GPTIMER3B,
- CC2650_I3MOTE_GPTIMERPARTSCOUNT
-} CC2650_I3MOTE_GPTimerName;
-
-/*!
- * @def CC2650_I3MOTE_GPTimers
- * @brief Enum of GPTimers
- */
-typedef enum CC2650_I3MOTE_GPTimers
-{
- CC2650_I3MOTE_GPTIMER0 = 0,
- CC2650_I3MOTE_GPTIMER1,
- CC2650_I3MOTE_GPTIMER2,
- CC2650_I3MOTE_GPTIMER3,
- CC2650_I3MOTE_GPTIMERCOUNT
-} CC2650_I3MOTE_GPTimers;
-
-/*!
- * @def CC2650_I3MOTE_PWM
- * @brief Enum of PWM outputs on the board
- */
-typedef enum CC2650_I3MOTE_PWM
-{
- CC2650_I3MOTE_PWM0 = 0,
- CC2650_I3MOTE_PWM1,
- CC2650_I3MOTE_PWM2,
- CC2650_I3MOTE_PWM3,
- CC2650_I3MOTE_PWM4,
- CC2650_I3MOTE_PWM5,
- CC2650_I3MOTE_PWM6,
- CC2650_I3MOTE_PWM7,
- CC2650_I3MOTE_PWMCOUNT
-} CC2650_I3MOTE_PWM;
-
-/*!
- * @def CC2650_I3MOTE_ADCBufName
- * @brief Enum of ADCs
- */
-typedef enum CC2650_I3MOTE_ADCBufName {
- CC2650_I3MOTE_ADCBuf0 = 0,
- CC2650_I3MOTE_ADCBufCOUNT
-} CC2650_I3MOTE_ADCBufName;
-
-
-/*!
- * @def CC2650_I3MOTE_ADCName
- * @brief Enum of ADCs
- */
-typedef enum CC2650_I3MOTE_ADCName {
- CC2650_I3MOTE_ADC0 = 0,
- CC2650_I3MOTE_ADC1,
- CC2650_I3MOTE_ADC2,
- CC2650_I3MOTE_ADC3,
- CC2650_I3MOTE_ADC4,
- CC2650_I3MOTE_ADC5,
- CC2650_I3MOTE_ADC6,
- CC2650_I3MOTE_ADC7,
- CC2650_I3MOTE_ADCDCOUPL,
- CC2650_I3MOTE_ADCVSS,
- CC2650_I3MOTE_ADCVDDS,
- CC2650_I3MOTE_ADCCOUNT
-} CC2650_I3MOTE_ADCName;
-
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* __CC2650_I3MOTE_BOARD_H__ */
diff --git a/Basic-Test-Package/CC2650/Test_CC2650_3wSPI_Master_MSP432_SlaveIRQ/main.c b/Basic-Test-Package/CC2650/Test_CC2650_3wSPI_Master_MSP432_SlaveIRQ/main.c
index 2cfa0cae113fa12d902f99133c6deeec9c4c17cf..f96d6413fe77a203d952a8ba38f27d98c51aeecb 100644 (file)
/* Wait IRQ from MSP432 line*/
PIN_setOutputValue(ledPinHandle, Board_LED1,1);
- Semaphore_post(semHandle);
CPUdelay(8000*100);
+ Semaphore_post(semHandle);
PIN_setOutputValue(ledPinHandle, Board_LED1,0);
}
if(!spi){
System_printf("SPI did not open");
}
- System_printf("SPI Init Done\r\n");
+ System_printf("SPI-Master Open\r\n");
spiTransaction.rxBuf= rxBufferPointer;
spiTransaction.txBuf = txBufferPointer;
Semaphore_pend(semHandle, BIOS_WAIT_FOREVER);
- txBufferPointer[0]=i++;
- rxBufferPointer[0]=0;
+ //txBufferPointer[0]=i++;
+ //rxBufferPointer[0]=0;
+
+ txBufferPointer[0]=rxBufferPointer[0];
if (SPI_transfer(spi,&spiTransaction)) {
- System_printf("TxData: %x RxData: %x\r\n",txBufferPointer[0],rxBufferPointer[0]);
+ System_printf("RxData: %x TxData: %x\r\n",rxBufferPointer[0],txBufferPointer[0]);
}
}
diff --git a/Basic-Test-Package/CC2650/Test_CC2650_Blink/CC2650_I3M.c b/Basic-Test-Package/CC2650/Test_CC2650_Blink/CC2650_I3M.c
+++ /dev/null
@@ -1,640 +0,0 @@
-/*
- * Copyright (c) 2016, Texas Instruments Incorporated
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * * Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- *
- * * Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- *
- * * Neither the name of Texas Instruments Incorporated nor the names of
- * its contributors may be used to endorse or promote products derived
- * from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
- * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
- * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
- * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
- * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
- * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
- * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
- * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-/*
- * ====================== CC2650_I3MOTE.c ===================================
- * This file is responsible for setting up the board specific items for the
- * CC2650 LaunchPad.
- */
-
-
-/*
- * ====================== Includes ============================================
- */
-#include <xdc/std.h>
-#include <xdc/runtime/System.h>
-
-#include <ti/sysbios/family/arm/m3/Hwi.h>
-#include <ti/drivers/PIN.h>
-#include <ti/drivers/pin/PINCC26XX.h>
-#include <ti/drivers/PWM.h>
-#include <ti/drivers/pwm/PWMTimerCC26XX.h>
-#include <ti/drivers/timer/GPTimerCC26XX.h>
-#include <ti/drivers/Power.h>
-#include <ti/drivers/power/PowerCC26XX.h>
-
-#include <inc/hw_memmap.h>
-#include <inc/hw_ints.h>
-#include <driverlib/ioc.h>
-#include <driverlib/udma.h>
-
-#include <Board.h>
-
-/*
- * ========================= IO driver initialization =========================
- * From main, PIN_init(BoardGpioInitTable) should be called to setup safe
- * settings for this board.
- * When a pin is allocated and then de-allocated, it will revert to the state
- * configured in this table.
- */
-/* Place into subsections to allow the TI linker to remove items properly */
-#if defined(__TI_COMPILER_VERSION__)
-#pragma DATA_SECTION(BoardGpioInitTable, ".const:BoardGpioInitTable")
-#pragma DATA_SECTION(PINCC26XX_hwAttrs, ".const:PINCC26XX_hwAttrs")
-#endif
-
-const PIN_Config BoardGpioInitTable[] = {
-
- Board_LEDR | PIN_GPIO_OUTPUT_EN | PIN_GPIO_LOW | PIN_PUSHPULL | PIN_DRVSTR_MAX, /* LED initially off */
- Board_LEDG | PIN_GPIO_OUTPUT_EN | PIN_GPIO_LOW | PIN_PUSHPULL | PIN_DRVSTR_MAX, /* LED initially off */
- Board_BTN1 | PIN_INPUT_EN | PIN_PULLUP | PIN_IRQ_BOTHEDGES | PIN_HYSTERESIS, /* Button is active low */
- Board_UART_RX | PIN_INPUT_EN | PIN_PULLDOWN, /* UART RX via debugger back channel */
- Board_UART_TX | PIN_GPIO_OUTPUT_EN | PIN_GPIO_HIGH | PIN_PUSHPULL, /* UART TX via debugger back channel */
- PIN_TERMINATE
-};
-
-const PINCC26XX_HWAttrs PINCC26XX_hwAttrs = {
- .intPriority = ~0,
- .swiPriority = 0
-};
-/*============================================================================*/
-
-/*
- * ============================= Power begin ==================================
- */
-/* Place into subsections to allow the TI linker to remove items properly */
-#if defined(__TI_COMPILER_VERSION__)
-#pragma DATA_SECTION(PowerCC26XX_config, ".const:PowerCC26XX_config")
-#endif
-const PowerCC26XX_Config PowerCC26XX_config = {
- .policyInitFxn = NULL,
- .policyFxn = &PowerCC26XX_standbyPolicy,
- .calibrateFxn = &PowerCC26XX_calibrate,
- .enablePolicy = TRUE,
- .calibrateRCOSC_LF = TRUE,
- .calibrateRCOSC_HF = TRUE,
-};
-/*
- * ============================= Power end ====================================
- */
-
-/*
- * ============================= UART begin ===================================
- */
-/* Place into subsections to allow the TI linker to remove items properly */
-#if defined(__TI_COMPILER_VERSION__)
-#pragma DATA_SECTION(UART_config, ".const:UART_config")
-#pragma DATA_SECTION(uartCC26XXHWAttrs, ".const:uartCC26XXHWAttrs")
-#endif
-
-/* Include drivers */
-#include <ti/drivers/UART.h>
-#include <ti/drivers/uart/UARTCC26XX.h>
-
-/* UART objects */
-UARTCC26XX_Object uartCC26XXObjects[CC2650_I3MOTE_UARTCOUNT];
-
-/* UART hardware parameter structure, also used to assign UART pins */
-const UARTCC26XX_HWAttrsV1 uartCC26XXHWAttrs[CC2650_I3MOTE_UARTCOUNT] = {
- {
- .baseAddr = UART0_BASE,
- .powerMngrId = PowerCC26XX_PERIPH_UART0,
- .intNum = INT_UART0_COMB,
- .intPriority = ~0,
- .swiPriority = 0,
- .txPin = Board_UART_TX,
- .rxPin = Board_UART_RX,
- .ctsPin = PIN_UNASSIGNED,
- .rtsPin = PIN_UNASSIGNED
- }
-};
-
-/* UART configuration structure */
-const UART_Config UART_config[] = {
- {
- .fxnTablePtr = &UARTCC26XX_fxnTable,
- .object = &uartCC26XXObjects[0],
- .hwAttrs = &uartCC26XXHWAttrs[0]
- },
- {NULL, NULL, NULL}
-};
-/*
- * ============================= UART end =====================================
- */
-
-/*
- * ============================= UDMA begin ===================================
- */
-/* Place into subsections to allow the TI linker to remove items properly */
-#if defined(__TI_COMPILER_VERSION__)
-#pragma DATA_SECTION(UDMACC26XX_config, ".const:UDMACC26XX_config")
-#pragma DATA_SECTION(udmaHWAttrs, ".const:udmaHWAttrs")
-#endif
-
-/* Include drivers */
-#include <ti/drivers/dma/UDMACC26XX.h>
-
-/* UDMA objects */
-UDMACC26XX_Object udmaObjects[CC2650_I3MOTE_UDMACOUNT];
-
-/* UDMA configuration structure */
-const UDMACC26XX_HWAttrs udmaHWAttrs[CC2650_I3MOTE_UDMACOUNT] = {
- {
- .baseAddr = UDMA0_BASE,
- .powerMngrId = PowerCC26XX_PERIPH_UDMA,
- .intNum = INT_DMA_ERR,
- .intPriority = ~0
- }
-};
-
-/* UDMA configuration structure */
-const UDMACC26XX_Config UDMACC26XX_config[] = {
- {
- .object = &udmaObjects[0],
- .hwAttrs = &udmaHWAttrs[0]
- },
- {NULL, NULL}
-};
-/*
- * ============================= UDMA end =====================================
- */
-
-/*
- * ========================== SPI DMA begin ===================================
- */
-/* Place into subsections to allow the TI linker to remove items properly */
-#if defined(__TI_COMPILER_VERSION__)
-#pragma DATA_SECTION(SPI_config, ".const:SPI_config")
-#pragma DATA_SECTION(spiCC26XXDMAHWAttrs, ".const:spiCC26XXDMAHWAttrs")
-#endif
-
-/* Include drivers */
-#include <ti/drivers/spi/SPICC26XXDMA.h>
-
-/* SPI objects */
-SPICC26XXDMA_Object spiCC26XXDMAObjects[CC2650_I3MOTE_SPICOUNT];
-
-/* SPI configuration structure, describing which pins are to be used */
-const SPICC26XXDMA_HWAttrsV1 spiCC26XXDMAHWAttrs[CC2650_I3MOTE_SPICOUNT] = {
- {
- .baseAddr = SSI0_BASE,
- .intNum = INT_SSI0_COMB,
- .intPriority = ~0,
- .swiPriority = 0,
- .powerMngrId = PowerCC26XX_PERIPH_SSI0,
- .defaultTxBufValue = 0,
- .rxChannelBitMask = 1<<UDMA_CHAN_SSI0_RX,
- .txChannelBitMask = 1<<UDMA_CHAN_SSI0_TX,
- .mosiPin = Board_SPI0_MOSI,
- .misoPin = Board_SPI0_MISO,
- .clkPin = Board_SPI0_CLK,
- .csnPin = Board_SPI0_CSN
- },
- {
- .baseAddr = SSI1_BASE,
- .intNum = INT_SSI1_COMB,
- .intPriority = ~0,
- .swiPriority = 0,
- .powerMngrId = PowerCC26XX_PERIPH_SSI1,
- .defaultTxBufValue = 0,
- .rxChannelBitMask = 1<<UDMA_CHAN_SSI1_RX,
- .txChannelBitMask = 1<<UDMA_CHAN_SSI1_TX,
- .mosiPin = Board_SPI1_MOSI,
- .misoPin = Board_SPI1_MISO,
- .clkPin = Board_SPI1_CLK,
- .csnPin = Board_SPI1_CSN
- }
-};
-
-/* SPI configuration structure */
-const SPI_Config SPI_config[] = {
- {
- .fxnTablePtr = &SPICC26XXDMA_fxnTable,
- .object = &spiCC26XXDMAObjects[0],
- .hwAttrs = &spiCC26XXDMAHWAttrs[0]
- },
- {
- .fxnTablePtr = &SPICC26XXDMA_fxnTable,
- .object = &spiCC26XXDMAObjects[1],
- .hwAttrs = &spiCC26XXDMAHWAttrs[1]
- },
- {NULL, NULL, NULL}
-};
-/*
- * ========================== SPI DMA end =====================================
-*/
-
-
-/*
- * ============================= I2C Begin=====================================
-*/
-/* Place into subsections to allow the TI linker to remove items properly */
-#if defined(__TI_COMPILER_VERSION__)
-#pragma DATA_SECTION(I2C_config, ".const:I2C_config")
-#pragma DATA_SECTION(i2cCC26xxHWAttrs, ".const:i2cCC26xxHWAttrs")
-#endif
-
-/* Include drivers */
-#include <ti/drivers/i2c/I2CCC26XX.h>
-
-/* I2C objects */
-I2CCC26XX_Object i2cCC26xxObjects[CC2650_I3MOTE_I2CCOUNT];
-
-/* I2C configuration structure, describing which pins are to be used */
-const I2CCC26XX_HWAttrsV1 i2cCC26xxHWAttrs[CC2650_I3MOTE_I2CCOUNT] = {
- {
- .baseAddr = I2C0_BASE,
- .powerMngrId = PowerCC26XX_PERIPH_I2C0,
- .intNum = INT_I2C_IRQ,
- .intPriority = ~0,
- .swiPriority = 0,
- .sdaPin = Board_I2C0_SDA0,
- .sclPin = Board_I2C0_SCL0,
- }
-};
-
-/* I2C configuration structure */
-const I2C_Config I2C_config[] = {
- {
- .fxnTablePtr = &I2CCC26XX_fxnTable,
- .object = &i2cCC26xxObjects[0],
- .hwAttrs = &i2cCC26xxHWAttrs[0]
- },
- {NULL, NULL, NULL}
-};
-/*
- * ========================== I2C end =========================================
- */
-
-/*
- * ========================== Crypto begin ====================================
- * NOTE: The Crypto implementation should be considered experimental
- * and not validated!
- */
-/* Place into subsections to allow the TI linker to remove items properly */
-#if defined(__TI_COMPILER_VERSION__)
-#pragma DATA_SECTION(CryptoCC26XX_config, ".const:CryptoCC26XX_config")
-#pragma DATA_SECTION(cryptoCC26XXHWAttrs, ".const:cryptoCC26XXHWAttrs")
-#endif
-
-/* Include drivers */
-#include <ti/drivers/crypto/CryptoCC26XX.h>
-
-/* Crypto objects */
-CryptoCC26XX_Object cryptoCC26XXObjects[CC2650_I3MOTE_CRYPTOCOUNT];
-
-/* Crypto configuration structure, describing which pins are to be used */
-const CryptoCC26XX_HWAttrs cryptoCC26XXHWAttrs[CC2650_I3MOTE_CRYPTOCOUNT] = {
- {
- .baseAddr = CRYPTO_BASE,
- .powerMngrId = PowerCC26XX_PERIPH_CRYPTO,
- .intNum = INT_CRYPTO_RESULT_AVAIL_IRQ,
- .intPriority = ~0,
- }
-};
-
-/* Crypto configuration structure */
-const CryptoCC26XX_Config CryptoCC26XX_config[] = {
- {
- .object = &cryptoCC26XXObjects[0],
- .hwAttrs = &cryptoCC26XXHWAttrs[0]
- },
- {NULL, NULL}
-};
-/*
- * ========================== Crypto end ======================================
- */
-
-
-/*
- * ========================= RF driver begin ==================================
- */
-/* Place into subsections to allow the TI linker to remove items properly */
-#if defined(__TI_COMPILER_VERSION__)
-#pragma DATA_SECTION(RFCC26XX_hwAttrs, ".const:RFCC26XX_hwAttrs")
-#endif
-
-/* Include drivers */
-#include <ti/drivers/rf/RF.h>
-
-/* RF hwi and swi priority */
-const RFCC26XX_HWAttrs RFCC26XX_hwAttrs = {
- .hwiCpe0Priority = ~0,
- .hwiHwPriority = ~0,
- .swiCpe0Priority = 0,
- .swiHwPriority = 0,
-};
-
-/*
- * ========================== RF driver end ===================================
- */
-
-/*
- * ========================= Display begin ====================================
- */
-
-/*
- * ========================= Display end ======================================
- */
-
-/*
- * ============================ GPTimer begin =================================
- * Remove unused entries to reduce flash usage both in Board.c and Board.h
- */
-/* Place into subsections to allow the TI linker to remove items properly */
-#if defined(__TI_COMPILER_VERSION__)
-#pragma DATA_SECTION(GPTimerCC26XX_config, ".const:GPTimerCC26XX_config")
-#pragma DATA_SECTION(gptimerCC26xxHWAttrs, ".const:gptimerCC26xxHWAttrs")
-#endif
-
-/* GPTimer hardware attributes, one per timer part (Timer 0A, 0B, 1A, 1B..) */
-const GPTimerCC26XX_HWAttrs gptimerCC26xxHWAttrs[CC2650_I3MOTE_GPTIMERPARTSCOUNT] = {
- { .baseAddr = GPT0_BASE, .intNum = INT_GPT0A, .intPriority = (~0), .powerMngrId = PowerCC26XX_PERIPH_GPT0, .pinMux = GPT_PIN_0A, },
- { .baseAddr = GPT0_BASE, .intNum = INT_GPT0B, .intPriority = (~0), .powerMngrId = PowerCC26XX_PERIPH_GPT0, .pinMux = GPT_PIN_0B, },
- { .baseAddr = GPT1_BASE, .intNum = INT_GPT1A, .intPriority = (~0), .powerMngrId = PowerCC26XX_PERIPH_GPT1, .pinMux = GPT_PIN_1A, },
- { .baseAddr = GPT1_BASE, .intNum = INT_GPT1B, .intPriority = (~0), .powerMngrId = PowerCC26XX_PERIPH_GPT1, .pinMux = GPT_PIN_1B, },
- { .baseAddr = GPT2_BASE, .intNum = INT_GPT2A, .intPriority = (~0), .powerMngrId = PowerCC26XX_PERIPH_GPT2, .pinMux = GPT_PIN_2A, },
- { .baseAddr = GPT2_BASE, .intNum = INT_GPT2B, .intPriority = (~0), .powerMngrId = PowerCC26XX_PERIPH_GPT2, .pinMux = GPT_PIN_2B, },
- { .baseAddr = GPT3_BASE, .intNum = INT_GPT3A, .intPriority = (~0), .powerMngrId = PowerCC26XX_PERIPH_GPT3, .pinMux = GPT_PIN_3A, },
- { .baseAddr = GPT3_BASE, .intNum = INT_GPT3B, .intPriority = (~0), .powerMngrId = PowerCC26XX_PERIPH_GPT3, .pinMux = GPT_PIN_3B, },
-};
-
-/* GPTimer objects, one per full-width timer (A+B) (Timer 0, Timer 1..) */
-GPTimerCC26XX_Object gptimerCC26XXObjects[CC2650_I3MOTE_GPTIMERCOUNT];
-
-/* GPTimer configuration (used as GPTimer_Handle by driver and application) */
-const GPTimerCC26XX_Config GPTimerCC26XX_config[CC2650_I3MOTE_GPTIMERPARTSCOUNT] = {
- { &gptimerCC26XXObjects[0], &gptimerCC26xxHWAttrs[0], GPT_A },
- { &gptimerCC26XXObjects[0], &gptimerCC26xxHWAttrs[1], GPT_B },
- { &gptimerCC26XXObjects[1], &gptimerCC26xxHWAttrs[2], GPT_A },
- { &gptimerCC26XXObjects[1], &gptimerCC26xxHWAttrs[3], GPT_B },
- { &gptimerCC26XXObjects[2], &gptimerCC26xxHWAttrs[4], GPT_A },
- { &gptimerCC26XXObjects[2], &gptimerCC26xxHWAttrs[5], GPT_B },
- { &gptimerCC26XXObjects[3], &gptimerCC26xxHWAttrs[6], GPT_A },
- { &gptimerCC26XXObjects[3], &gptimerCC26xxHWAttrs[7], GPT_B },
-};
-
-/*
- * ============================ GPTimer end ===================================
- */
-
-
-
-/*
- * ============================= PWM begin ====================================
- * Remove unused entries to reduce flash usage both in Board.c and Board.h
- */
-/* Place into subsections to allow the TI linker to remove items properly */
-#if defined(__TI_COMPILER_VERSION__)
-#pragma DATA_SECTION(PWM_config, ".const:PWM_config")
-#pragma DATA_SECTION(pwmtimerCC26xxHWAttrs, ".const:pwmtimerCC26xxHWAttrs")
-#endif
-
-/* PWM configuration, one per PWM output. */
-PWMTimerCC26XX_HwAttrs pwmtimerCC26xxHWAttrs[CC2650_I3MOTE_PWMCOUNT] = {
- { .pwmPin = Board_PWMPIN0, .gpTimerUnit = Board_GPTIMER0A },
- { .pwmPin = Board_PWMPIN1, .gpTimerUnit = Board_GPTIMER0B },
- { .pwmPin = Board_PWMPIN2, .gpTimerUnit = Board_GPTIMER1A },
- { .pwmPin = Board_PWMPIN3, .gpTimerUnit = Board_GPTIMER1B },
- { .pwmPin = Board_PWMPIN4, .gpTimerUnit = Board_GPTIMER2A },
- { .pwmPin = Board_PWMPIN5, .gpTimerUnit = Board_GPTIMER2B },
- { .pwmPin = Board_PWMPIN6, .gpTimerUnit = Board_GPTIMER3A },
- { .pwmPin = Board_PWMPIN7, .gpTimerUnit = Board_GPTIMER3B },
-};
-
-/* PWM object, one per PWM output */
-PWMTimerCC26XX_Object pwmtimerCC26xxObjects[CC2650_I3MOTE_PWMCOUNT];
-
-extern const PWM_FxnTable PWMTimerCC26XX_fxnTable;
-
-/* PWM configuration (used as PWM_Handle by driver and application) */
-const PWM_Config PWM_config[CC2650_I3MOTE_PWMCOUNT + 1] = {
- { &PWMTimerCC26XX_fxnTable, &pwmtimerCC26xxObjects[0], &pwmtimerCC26xxHWAttrs[0] },
- { &PWMTimerCC26XX_fxnTable, &pwmtimerCC26xxObjects[1], &pwmtimerCC26xxHWAttrs[1] },
- { &PWMTimerCC26XX_fxnTable, &pwmtimerCC26xxObjects[2], &pwmtimerCC26xxHWAttrs[2] },
- { &PWMTimerCC26XX_fxnTable, &pwmtimerCC26xxObjects[3], &pwmtimerCC26xxHWAttrs[3] },
- { &PWMTimerCC26XX_fxnTable, &pwmtimerCC26xxObjects[4], &pwmtimerCC26xxHWAttrs[4] },
- { &PWMTimerCC26XX_fxnTable, &pwmtimerCC26xxObjects[5], &pwmtimerCC26xxHWAttrs[5] },
- { &PWMTimerCC26XX_fxnTable, &pwmtimerCC26xxObjects[6], &pwmtimerCC26xxHWAttrs[6] },
- { &PWMTimerCC26XX_fxnTable, &pwmtimerCC26xxObjects[7], &pwmtimerCC26xxHWAttrs[7] },
- { NULL, NULL, NULL }
-};
-
-
-/*
- * ============================= PWM end ======================================
- */
-
-/*
- * ========================== ADCBuf begin =========================================
- */
-/* Place into subsections to allow the TI linker to remove items properly */
-#if defined(__TI_COMPILER_VERSION__)
-#pragma DATA_SECTION(ADCBuf_config, ".const:ADCBuf_config")
-#pragma DATA_SECTION(adcBufCC26xxHWAttrs, ".const:adcBufCC26xxHWAttrs")
-#pragma DATA_SECTION(ADCBufCC26XX_adcChannelLut, ".const:ADCBufCC26XX_adcChannelLut")
-#endif
-
-/* Include drivers */
-#include <ti/drivers/ADCBuf.h>
-#include <ti/drivers/adcbuf/ADCBufCC26XX.h>
-
-/* ADCBuf objects */
-ADCBufCC26XX_Object adcBufCC26xxObjects[CC2650_I3MOTE_ADCBufCOUNT];
-
-/*
- * This table converts a virtual adc channel into a dio and internal analogue input signal.
- * This table is necessary for the functioning of the adcBuf driver.
- * Comment out unused entries to save flash.
- * Dio and internal signal pairs are hardwired. Do not remap them in the table. You may reorder entire entries though.
- * The mapping of dio and internal signals is package dependent.
- */
-const ADCBufCC26XX_AdcChannelLutEntry ADCBufCC26XX_adcChannelLut[] = {
- {PIN_UNASSIGNED, ADC_COMPB_IN_VDDS},
- {PIN_UNASSIGNED, ADC_COMPB_IN_DCOUPL},
- {PIN_UNASSIGNED, ADC_COMPB_IN_VSS},
- //{Board_DIO23_ANALOG, ADC_COMPB_IN_AUXIO7},
- //{Board_DIO24_ANALOG, ADC_COMPB_IN_AUXIO6},
- //{Board_DIO25_ANALOG, ADC_COMPB_IN_AUXIO5},
- //{Board_DIO26_ANALOG, ADC_COMPB_IN_AUXIO4},
- //{Board_DIO27_ANALOG, ADC_COMPB_IN_AUXIO3},
- //{Board_DIO28_ANALOG, ADC_COMPB_IN_AUXIO2},
- //{Board_DIO29_ANALOG, ADC_COMPB_IN_AUXIO1},
- //{Board_DIO30_ANALOG, ADC_COMPB_IN_AUXIO0},
-};
-
-const ADCBufCC26XX_HWAttrs adcBufCC26xxHWAttrs[CC2650_I3MOTE_ADCBufCOUNT] = {
- {
- .intPriority = ~0,
- .swiPriority = 0,
- .adcChannelLut = ADCBufCC26XX_adcChannelLut,
- .gpTimerUnit = Board_GPTIMER0A,
- .gptDMAChannelMask = 1 << UDMA_CHAN_TIMER0_A,
- }
-};
-
-const ADCBuf_Config ADCBuf_config[] = {
- {&ADCBufCC26XX_fxnTable, &adcBufCC26xxObjects[0], &adcBufCC26xxHWAttrs[0]},
- {NULL, NULL, NULL},
-};
-/*
- * ========================== ADCBuf end =========================================
- */
-
-
-
-/*
- * ========================== ADC begin =========================================
- */
-/* Place into subsections to allow the TI linker to remove items properly */
-#if defined(__TI_COMPILER_VERSION__)
-#pragma DATA_SECTION(ADC_config, ".const:ADC_config")
-#pragma DATA_SECTION(adcCC26xxHWAttrs, ".const:adcCC26xxHWAttrs")
-#endif
-
-/* Include drivers */
-#include <ti/drivers/ADC.h>
-#include <ti/drivers/adc/ADCCC26XX.h>
-
-/* ADC objects */
-ADCCC26XX_Object adcCC26xxObjects[CC2650_I3MOTE_ADCCOUNT];
-
-
-const ADCCC26XX_HWAttrs adcCC26xxHWAttrs[CC2650_I3MOTE_ADCCOUNT] = {
- {
- .adcDIO = Board_DIO23_ANALOG,
- .adcCompBInput = ADC_COMPB_IN_AUXIO7,
- .refSource = ADCCC26XX_FIXED_REFERENCE,
- .samplingDuration = ADCCC26XX_SAMPLING_DURATION_2P7_US,
- .inputScalingEnabled = true,
- .triggerSource = ADCCC26XX_TRIGGER_MANUAL
- },
- {
- .adcDIO = Board_DIO24_ANALOG,
- .adcCompBInput = ADC_COMPB_IN_AUXIO6,
- .refSource = ADCCC26XX_FIXED_REFERENCE,
- .samplingDuration = ADCCC26XX_SAMPLING_DURATION_2P7_US,
- .inputScalingEnabled = true,
- .triggerSource = ADCCC26XX_TRIGGER_MANUAL
- },
- {
- .adcDIO = Board_DIO25_ANALOG,
- .adcCompBInput = ADC_COMPB_IN_AUXIO5,
- .refSource = ADCCC26XX_FIXED_REFERENCE,
- .samplingDuration = ADCCC26XX_SAMPLING_DURATION_2P7_US,
- .inputScalingEnabled = true,
- .triggerSource = ADCCC26XX_TRIGGER_MANUAL
- },
- {
- .adcDIO = Board_DIO26_ANALOG,
- .adcCompBInput = ADC_COMPB_IN_AUXIO4,
- .refSource = ADCCC26XX_FIXED_REFERENCE,
- .samplingDuration = ADCCC26XX_SAMPLING_DURATION_2P7_US,
- .inputScalingEnabled = true,
- .triggerSource = ADCCC26XX_TRIGGER_MANUAL
- },
- {
- .adcDIO = Board_DIO27_ANALOG,
- .adcCompBInput = ADC_COMPB_IN_AUXIO3,
- .refSource = ADCCC26XX_FIXED_REFERENCE,
- .samplingDuration = ADCCC26XX_SAMPLING_DURATION_2P7_US,
- .inputScalingEnabled = true,
- .triggerSource = ADCCC26XX_TRIGGER_MANUAL
- },
- {
- .adcDIO = Board_DIO28_ANALOG,
- .adcCompBInput = ADC_COMPB_IN_AUXIO2,
- .refSource = ADCCC26XX_FIXED_REFERENCE,
- .samplingDuration = ADCCC26XX_SAMPLING_DURATION_2P7_US,
- .inputScalingEnabled = true,
- .triggerSource = ADCCC26XX_TRIGGER_MANUAL
- },
- {
- .adcDIO = Board_DIO29_ANALOG,
- .adcCompBInput = ADC_COMPB_IN_AUXIO1,
- .refSource = ADCCC26XX_FIXED_REFERENCE,
- .samplingDuration = ADCCC26XX_SAMPLING_DURATION_2P7_US,
- .inputScalingEnabled = true,
- .triggerSource = ADCCC26XX_TRIGGER_MANUAL
- },
- {
- .adcDIO = Board_DIO30_ANALOG,
- .adcCompBInput = ADC_COMPB_IN_AUXIO0,
- .refSource = ADCCC26XX_FIXED_REFERENCE,
- .samplingDuration = ADCCC26XX_SAMPLING_DURATION_10P9_MS,
- .inputScalingEnabled = true,
- .triggerSource = ADCCC26XX_TRIGGER_MANUAL
- },
- {
- .adcDIO = PIN_UNASSIGNED,
- .adcCompBInput = ADC_COMPB_IN_DCOUPL,
- .refSource = ADCCC26XX_FIXED_REFERENCE,
- .samplingDuration = ADCCC26XX_SAMPLING_DURATION_2P7_US,
- .inputScalingEnabled = true,
- .triggerSource = ADCCC26XX_TRIGGER_MANUAL
- },
- {
- .adcDIO = PIN_UNASSIGNED,
- .adcCompBInput = ADC_COMPB_IN_VSS,
- .refSource = ADCCC26XX_FIXED_REFERENCE,
- .samplingDuration = ADCCC26XX_SAMPLING_DURATION_2P7_US,
- .inputScalingEnabled = true,
- .triggerSource = ADCCC26XX_TRIGGER_MANUAL
- },
- {
- .adcDIO = PIN_UNASSIGNED,
- .adcCompBInput = ADC_COMPB_IN_VDDS,
- .refSource = ADCCC26XX_FIXED_REFERENCE,
- .samplingDuration = ADCCC26XX_SAMPLING_DURATION_2P7_US,
- .inputScalingEnabled = true,
- .triggerSource = ADCCC26XX_TRIGGER_MANUAL
- }
-};
-
-const ADC_Config ADC_config[] = {
- {&ADCCC26XX_fxnTable, &adcCC26xxObjects[0], &adcCC26xxHWAttrs[0]},
- {&ADCCC26XX_fxnTable, &adcCC26xxObjects[1], &adcCC26xxHWAttrs[1]},
- {&ADCCC26XX_fxnTable, &adcCC26xxObjects[2], &adcCC26xxHWAttrs[2]},
- {&ADCCC26XX_fxnTable, &adcCC26xxObjects[3], &adcCC26xxHWAttrs[3]},
- {&ADCCC26XX_fxnTable, &adcCC26xxObjects[4], &adcCC26xxHWAttrs[4]},
- {&ADCCC26XX_fxnTable, &adcCC26xxObjects[5], &adcCC26xxHWAttrs[5]},
- {&ADCCC26XX_fxnTable, &adcCC26xxObjects[6], &adcCC26xxHWAttrs[6]},
- {&ADCCC26XX_fxnTable, &adcCC26xxObjects[7], &adcCC26xxHWAttrs[7]},
- {&ADCCC26XX_fxnTable, &adcCC26xxObjects[8], &adcCC26xxHWAttrs[8]},
- {&ADCCC26XX_fxnTable, &adcCC26xxObjects[9], &adcCC26xxHWAttrs[9]},
- {&ADCCC26XX_fxnTable, &adcCC26xxObjects[10], &adcCC26xxHWAttrs[10]},
- {NULL, NULL, NULL},
-};
-
-/*
- * ========================== ADC end =========================================
- */
diff --git a/Basic-Test-Package/CC2650/Test_CC2650_Blink/main.c b/Basic-Test-Package/CC2650/Test_CC2650_Blink/main.c
index a6c6bfe66ffa6ae1b8d724d5c5dcf4a052e88d89..00045f3537dcb9172dbb9cb0e99011ea42be7f53 100644 (file)
/* Construct heartBeat Task thread */
Task_Params_init(&taskParams);
- taskParams.arg0 = 500000 / Clock_tickPeriod;
+ taskParams.arg0 = 250000 / Clock_tickPeriod;
taskParams.stackSize = TASKSTACKSIZE;
taskParams.stack = &task0Stack;
Task_construct(&task0Struct, (Task_FuncPtr)heartBeatFxn, &taskParams, NULL);
System_abort("Error initializing board LED pins\n");
}
- PIN_setOutputValue(ledPinHandle, Board_LED1, 0);
+ PIN_setOutputValue(ledPinHandle, Board_LED1, 1);
PIN_setOutputValue(ledPinHandle, Board_LED0, 0);
/* Start BIOS */
diff --git a/Basic-Test-Package/CC2650/Test_CC2650_DebugUART_EchoPC/CC2650_I3M.c b/Basic-Test-Package/CC2650/Test_CC2650_DebugUART_EchoPC/CC2650_I3M.c
+++ /dev/null
@@ -1,640 +0,0 @@
-/*
- * Copyright (c) 2016, Texas Instruments Incorporated
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * * Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- *
- * * Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- *
- * * Neither the name of Texas Instruments Incorporated nor the names of
- * its contributors may be used to endorse or promote products derived
- * from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
- * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
- * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
- * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
- * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
- * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
- * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
- * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-/*
- * ====================== CC2650_I3MOTE.c ===================================
- * This file is responsible for setting up the board specific items for the
- * CC2650 LaunchPad.
- */
-
-
-/*
- * ====================== Includes ============================================
- */
-#include <xdc/std.h>
-#include <xdc/runtime/System.h>
-
-#include <ti/sysbios/family/arm/m3/Hwi.h>
-#include <ti/drivers/PIN.h>
-#include <ti/drivers/pin/PINCC26XX.h>
-#include <ti/drivers/PWM.h>
-#include <ti/drivers/pwm/PWMTimerCC26XX.h>
-#include <ti/drivers/timer/GPTimerCC26XX.h>
-#include <ti/drivers/Power.h>
-#include <ti/drivers/power/PowerCC26XX.h>
-
-#include <inc/hw_memmap.h>
-#include <inc/hw_ints.h>
-#include <driverlib/ioc.h>
-#include <driverlib/udma.h>
-
-#include <Board.h>
-
-/*
- * ========================= IO driver initialization =========================
- * From main, PIN_init(BoardGpioInitTable) should be called to setup safe
- * settings for this board.
- * When a pin is allocated and then de-allocated, it will revert to the state
- * configured in this table.
- */
-/* Place into subsections to allow the TI linker to remove items properly */
-#if defined(__TI_COMPILER_VERSION__)
-#pragma DATA_SECTION(BoardGpioInitTable, ".const:BoardGpioInitTable")
-#pragma DATA_SECTION(PINCC26XX_hwAttrs, ".const:PINCC26XX_hwAttrs")
-#endif
-
-const PIN_Config BoardGpioInitTable[] = {
-
- Board_LEDR | PIN_GPIO_OUTPUT_EN | PIN_GPIO_LOW | PIN_PUSHPULL | PIN_DRVSTR_MAX, /* LED initially off */
- Board_LEDG | PIN_GPIO_OUTPUT_EN | PIN_GPIO_LOW | PIN_PUSHPULL | PIN_DRVSTR_MAX, /* LED initially off */
- Board_BTN1 | PIN_INPUT_EN | PIN_PULLUP | PIN_IRQ_BOTHEDGES | PIN_HYSTERESIS, /* Button is active low */
- Board_UART_RX | PIN_INPUT_EN | PIN_PULLDOWN, /* UART RX via debugger back channel */
- Board_UART_TX | PIN_GPIO_OUTPUT_EN | PIN_GPIO_HIGH | PIN_PUSHPULL, /* UART TX via debugger back channel */
- PIN_TERMINATE
-};
-
-const PINCC26XX_HWAttrs PINCC26XX_hwAttrs = {
- .intPriority = ~0,
- .swiPriority = 0
-};
-/*============================================================================*/
-
-/*
- * ============================= Power begin ==================================
- */
-/* Place into subsections to allow the TI linker to remove items properly */
-#if defined(__TI_COMPILER_VERSION__)
-#pragma DATA_SECTION(PowerCC26XX_config, ".const:PowerCC26XX_config")
-#endif
-const PowerCC26XX_Config PowerCC26XX_config = {
- .policyInitFxn = NULL,
- .policyFxn = &PowerCC26XX_standbyPolicy,
- .calibrateFxn = &PowerCC26XX_calibrate,
- .enablePolicy = TRUE,
- .calibrateRCOSC_LF = TRUE,
- .calibrateRCOSC_HF = TRUE,
-};
-/*
- * ============================= Power end ====================================
- */
-
-/*
- * ============================= UART begin ===================================
- */
-/* Place into subsections to allow the TI linker to remove items properly */
-#if defined(__TI_COMPILER_VERSION__)
-#pragma DATA_SECTION(UART_config, ".const:UART_config")
-#pragma DATA_SECTION(uartCC26XXHWAttrs, ".const:uartCC26XXHWAttrs")
-#endif
-
-/* Include drivers */
-#include <ti/drivers/UART.h>
-#include <ti/drivers/uart/UARTCC26XX.h>
-
-/* UART objects */
-UARTCC26XX_Object uartCC26XXObjects[CC2650_I3MOTE_UARTCOUNT];
-
-/* UART hardware parameter structure, also used to assign UART pins */
-const UARTCC26XX_HWAttrsV1 uartCC26XXHWAttrs[CC2650_I3MOTE_UARTCOUNT] = {
- {
- .baseAddr = UART0_BASE,
- .powerMngrId = PowerCC26XX_PERIPH_UART0,
- .intNum = INT_UART0_COMB,
- .intPriority = ~0,
- .swiPriority = 0,
- .txPin = Board_UART_TX,
- .rxPin = Board_UART_RX,
- .ctsPin = PIN_UNASSIGNED,
- .rtsPin = PIN_UNASSIGNED
- }
-};
-
-/* UART configuration structure */
-const UART_Config UART_config[] = {
- {
- .fxnTablePtr = &UARTCC26XX_fxnTable,
- .object = &uartCC26XXObjects[0],
- .hwAttrs = &uartCC26XXHWAttrs[0]
- },
- {NULL, NULL, NULL}
-};
-/*
- * ============================= UART end =====================================
- */
-
-/*
- * ============================= UDMA begin ===================================
- */
-/* Place into subsections to allow the TI linker to remove items properly */
-#if defined(__TI_COMPILER_VERSION__)
-#pragma DATA_SECTION(UDMACC26XX_config, ".const:UDMACC26XX_config")
-#pragma DATA_SECTION(udmaHWAttrs, ".const:udmaHWAttrs")
-#endif
-
-/* Include drivers */
-#include <ti/drivers/dma/UDMACC26XX.h>
-
-/* UDMA objects */
-UDMACC26XX_Object udmaObjects[CC2650_I3MOTE_UDMACOUNT];
-
-/* UDMA configuration structure */
-const UDMACC26XX_HWAttrs udmaHWAttrs[CC2650_I3MOTE_UDMACOUNT] = {
- {
- .baseAddr = UDMA0_BASE,
- .powerMngrId = PowerCC26XX_PERIPH_UDMA,
- .intNum = INT_DMA_ERR,
- .intPriority = ~0
- }
-};
-
-/* UDMA configuration structure */
-const UDMACC26XX_Config UDMACC26XX_config[] = {
- {
- .object = &udmaObjects[0],
- .hwAttrs = &udmaHWAttrs[0]
- },
- {NULL, NULL}
-};
-/*
- * ============================= UDMA end =====================================
- */
-
-/*
- * ========================== SPI DMA begin ===================================
- */
-/* Place into subsections to allow the TI linker to remove items properly */
-#if defined(__TI_COMPILER_VERSION__)
-#pragma DATA_SECTION(SPI_config, ".const:SPI_config")
-#pragma DATA_SECTION(spiCC26XXDMAHWAttrs, ".const:spiCC26XXDMAHWAttrs")
-#endif
-
-/* Include drivers */
-#include <ti/drivers/spi/SPICC26XXDMA.h>
-
-/* SPI objects */
-SPICC26XXDMA_Object spiCC26XXDMAObjects[CC2650_I3MOTE_SPICOUNT];
-
-/* SPI configuration structure, describing which pins are to be used */
-const SPICC26XXDMA_HWAttrsV1 spiCC26XXDMAHWAttrs[CC2650_I3MOTE_SPICOUNT] = {
- {
- .baseAddr = SSI0_BASE,
- .intNum = INT_SSI0_COMB,
- .intPriority = ~0,
- .swiPriority = 0,
- .powerMngrId = PowerCC26XX_PERIPH_SSI0,
- .defaultTxBufValue = 0,
- .rxChannelBitMask = 1<<UDMA_CHAN_SSI0_RX,
- .txChannelBitMask = 1<<UDMA_CHAN_SSI0_TX,
- .mosiPin = Board_SPI0_MOSI,
- .misoPin = Board_SPI0_MISO,
- .clkPin = Board_SPI0_CLK,
- .csnPin = Board_SPI0_CSN
- },
- {
- .baseAddr = SSI1_BASE,
- .intNum = INT_SSI1_COMB,
- .intPriority = ~0,
- .swiPriority = 0,
- .powerMngrId = PowerCC26XX_PERIPH_SSI1,
- .defaultTxBufValue = 0,
- .rxChannelBitMask = 1<<UDMA_CHAN_SSI1_RX,
- .txChannelBitMask = 1<<UDMA_CHAN_SSI1_TX,
- .mosiPin = Board_SPI1_MOSI,
- .misoPin = Board_SPI1_MISO,
- .clkPin = Board_SPI1_CLK,
- .csnPin = Board_SPI1_CSN
- }
-};
-
-/* SPI configuration structure */
-const SPI_Config SPI_config[] = {
- {
- .fxnTablePtr = &SPICC26XXDMA_fxnTable,
- .object = &spiCC26XXDMAObjects[0],
- .hwAttrs = &spiCC26XXDMAHWAttrs[0]
- },
- {
- .fxnTablePtr = &SPICC26XXDMA_fxnTable,
- .object = &spiCC26XXDMAObjects[1],
- .hwAttrs = &spiCC26XXDMAHWAttrs[1]
- },
- {NULL, NULL, NULL}
-};
-/*
- * ========================== SPI DMA end =====================================
-*/
-
-
-/*
- * ============================= I2C Begin=====================================
-*/
-/* Place into subsections to allow the TI linker to remove items properly */
-#if defined(__TI_COMPILER_VERSION__)
-#pragma DATA_SECTION(I2C_config, ".const:I2C_config")
-#pragma DATA_SECTION(i2cCC26xxHWAttrs, ".const:i2cCC26xxHWAttrs")
-#endif
-
-/* Include drivers */
-#include <ti/drivers/i2c/I2CCC26XX.h>
-
-/* I2C objects */
-I2CCC26XX_Object i2cCC26xxObjects[CC2650_I3MOTE_I2CCOUNT];
-
-/* I2C configuration structure, describing which pins are to be used */
-const I2CCC26XX_HWAttrsV1 i2cCC26xxHWAttrs[CC2650_I3MOTE_I2CCOUNT] = {
- {
- .baseAddr = I2C0_BASE,
- .powerMngrId = PowerCC26XX_PERIPH_I2C0,
- .intNum = INT_I2C_IRQ,
- .intPriority = ~0,
- .swiPriority = 0,
- .sdaPin = Board_I2C0_SDA0,
- .sclPin = Board_I2C0_SCL0,
- }
-};
-
-/* I2C configuration structure */
-const I2C_Config I2C_config[] = {
- {
- .fxnTablePtr = &I2CCC26XX_fxnTable,
- .object = &i2cCC26xxObjects[0],
- .hwAttrs = &i2cCC26xxHWAttrs[0]
- },
- {NULL, NULL, NULL}
-};
-/*
- * ========================== I2C end =========================================
- */
-
-/*
- * ========================== Crypto begin ====================================
- * NOTE: The Crypto implementation should be considered experimental
- * and not validated!
- */
-/* Place into subsections to allow the TI linker to remove items properly */
-#if defined(__TI_COMPILER_VERSION__)
-#pragma DATA_SECTION(CryptoCC26XX_config, ".const:CryptoCC26XX_config")
-#pragma DATA_SECTION(cryptoCC26XXHWAttrs, ".const:cryptoCC26XXHWAttrs")
-#endif
-
-/* Include drivers */
-#include <ti/drivers/crypto/CryptoCC26XX.h>
-
-/* Crypto objects */
-CryptoCC26XX_Object cryptoCC26XXObjects[CC2650_I3MOTE_CRYPTOCOUNT];
-
-/* Crypto configuration structure, describing which pins are to be used */
-const CryptoCC26XX_HWAttrs cryptoCC26XXHWAttrs[CC2650_I3MOTE_CRYPTOCOUNT] = {
- {
- .baseAddr = CRYPTO_BASE,
- .powerMngrId = PowerCC26XX_PERIPH_CRYPTO,
- .intNum = INT_CRYPTO_RESULT_AVAIL_IRQ,
- .intPriority = ~0,
- }
-};
-
-/* Crypto configuration structure */
-const CryptoCC26XX_Config CryptoCC26XX_config[] = {
- {
- .object = &cryptoCC26XXObjects[0],
- .hwAttrs = &cryptoCC26XXHWAttrs[0]
- },
- {NULL, NULL}
-};
-/*
- * ========================== Crypto end ======================================
- */
-
-
-/*
- * ========================= RF driver begin ==================================
- */
-/* Place into subsections to allow the TI linker to remove items properly */
-#if defined(__TI_COMPILER_VERSION__)
-#pragma DATA_SECTION(RFCC26XX_hwAttrs, ".const:RFCC26XX_hwAttrs")
-#endif
-
-/* Include drivers */
-#include <ti/drivers/rf/RF.h>
-
-/* RF hwi and swi priority */
-const RFCC26XX_HWAttrs RFCC26XX_hwAttrs = {
- .hwiCpe0Priority = ~0,
- .hwiHwPriority = ~0,
- .swiCpe0Priority = 0,
- .swiHwPriority = 0,
-};
-
-/*
- * ========================== RF driver end ===================================
- */
-
-/*
- * ========================= Display begin ====================================
- */
-
-/*
- * ========================= Display end ======================================
- */
-
-/*
- * ============================ GPTimer begin =================================
- * Remove unused entries to reduce flash usage both in Board.c and Board.h
- */
-/* Place into subsections to allow the TI linker to remove items properly */
-#if defined(__TI_COMPILER_VERSION__)
-#pragma DATA_SECTION(GPTimerCC26XX_config, ".const:GPTimerCC26XX_config")
-#pragma DATA_SECTION(gptimerCC26xxHWAttrs, ".const:gptimerCC26xxHWAttrs")
-#endif
-
-/* GPTimer hardware attributes, one per timer part (Timer 0A, 0B, 1A, 1B..) */
-const GPTimerCC26XX_HWAttrs gptimerCC26xxHWAttrs[CC2650_I3MOTE_GPTIMERPARTSCOUNT] = {
- { .baseAddr = GPT0_BASE, .intNum = INT_GPT0A, .intPriority = (~0), .powerMngrId = PowerCC26XX_PERIPH_GPT0, .pinMux = GPT_PIN_0A, },
- { .baseAddr = GPT0_BASE, .intNum = INT_GPT0B, .intPriority = (~0), .powerMngrId = PowerCC26XX_PERIPH_GPT0, .pinMux = GPT_PIN_0B, },
- { .baseAddr = GPT1_BASE, .intNum = INT_GPT1A, .intPriority = (~0), .powerMngrId = PowerCC26XX_PERIPH_GPT1, .pinMux = GPT_PIN_1A, },
- { .baseAddr = GPT1_BASE, .intNum = INT_GPT1B, .intPriority = (~0), .powerMngrId = PowerCC26XX_PERIPH_GPT1, .pinMux = GPT_PIN_1B, },
- { .baseAddr = GPT2_BASE, .intNum = INT_GPT2A, .intPriority = (~0), .powerMngrId = PowerCC26XX_PERIPH_GPT2, .pinMux = GPT_PIN_2A, },
- { .baseAddr = GPT2_BASE, .intNum = INT_GPT2B, .intPriority = (~0), .powerMngrId = PowerCC26XX_PERIPH_GPT2, .pinMux = GPT_PIN_2B, },
- { .baseAddr = GPT3_BASE, .intNum = INT_GPT3A, .intPriority = (~0), .powerMngrId = PowerCC26XX_PERIPH_GPT3, .pinMux = GPT_PIN_3A, },
- { .baseAddr = GPT3_BASE, .intNum = INT_GPT3B, .intPriority = (~0), .powerMngrId = PowerCC26XX_PERIPH_GPT3, .pinMux = GPT_PIN_3B, },
-};
-
-/* GPTimer objects, one per full-width timer (A+B) (Timer 0, Timer 1..) */
-GPTimerCC26XX_Object gptimerCC26XXObjects[CC2650_I3MOTE_GPTIMERCOUNT];
-
-/* GPTimer configuration (used as GPTimer_Handle by driver and application) */
-const GPTimerCC26XX_Config GPTimerCC26XX_config[CC2650_I3MOTE_GPTIMERPARTSCOUNT] = {
- { &gptimerCC26XXObjects[0], &gptimerCC26xxHWAttrs[0], GPT_A },
- { &gptimerCC26XXObjects[0], &gptimerCC26xxHWAttrs[1], GPT_B },
- { &gptimerCC26XXObjects[1], &gptimerCC26xxHWAttrs[2], GPT_A },
- { &gptimerCC26XXObjects[1], &gptimerCC26xxHWAttrs[3], GPT_B },
- { &gptimerCC26XXObjects[2], &gptimerCC26xxHWAttrs[4], GPT_A },
- { &gptimerCC26XXObjects[2], &gptimerCC26xxHWAttrs[5], GPT_B },
- { &gptimerCC26XXObjects[3], &gptimerCC26xxHWAttrs[6], GPT_A },
- { &gptimerCC26XXObjects[3], &gptimerCC26xxHWAttrs[7], GPT_B },
-};
-
-/*
- * ============================ GPTimer end ===================================
- */
-
-
-
-/*
- * ============================= PWM begin ====================================
- * Remove unused entries to reduce flash usage both in Board.c and Board.h
- */
-/* Place into subsections to allow the TI linker to remove items properly */
-#if defined(__TI_COMPILER_VERSION__)
-#pragma DATA_SECTION(PWM_config, ".const:PWM_config")
-#pragma DATA_SECTION(pwmtimerCC26xxHWAttrs, ".const:pwmtimerCC26xxHWAttrs")
-#endif
-
-/* PWM configuration, one per PWM output. */
-PWMTimerCC26XX_HwAttrs pwmtimerCC26xxHWAttrs[CC2650_I3MOTE_PWMCOUNT] = {
- { .pwmPin = Board_PWMPIN0, .gpTimerUnit = Board_GPTIMER0A },
- { .pwmPin = Board_PWMPIN1, .gpTimerUnit = Board_GPTIMER0B },
- { .pwmPin = Board_PWMPIN2, .gpTimerUnit = Board_GPTIMER1A },
- { .pwmPin = Board_PWMPIN3, .gpTimerUnit = Board_GPTIMER1B },
- { .pwmPin = Board_PWMPIN4, .gpTimerUnit = Board_GPTIMER2A },
- { .pwmPin = Board_PWMPIN5, .gpTimerUnit = Board_GPTIMER2B },
- { .pwmPin = Board_PWMPIN6, .gpTimerUnit = Board_GPTIMER3A },
- { .pwmPin = Board_PWMPIN7, .gpTimerUnit = Board_GPTIMER3B },
-};
-
-/* PWM object, one per PWM output */
-PWMTimerCC26XX_Object pwmtimerCC26xxObjects[CC2650_I3MOTE_PWMCOUNT];
-
-extern const PWM_FxnTable PWMTimerCC26XX_fxnTable;
-
-/* PWM configuration (used as PWM_Handle by driver and application) */
-const PWM_Config PWM_config[CC2650_I3MOTE_PWMCOUNT + 1] = {
- { &PWMTimerCC26XX_fxnTable, &pwmtimerCC26xxObjects[0], &pwmtimerCC26xxHWAttrs[0] },
- { &PWMTimerCC26XX_fxnTable, &pwmtimerCC26xxObjects[1], &pwmtimerCC26xxHWAttrs[1] },
- { &PWMTimerCC26XX_fxnTable, &pwmtimerCC26xxObjects[2], &pwmtimerCC26xxHWAttrs[2] },
- { &PWMTimerCC26XX_fxnTable, &pwmtimerCC26xxObjects[3], &pwmtimerCC26xxHWAttrs[3] },
- { &PWMTimerCC26XX_fxnTable, &pwmtimerCC26xxObjects[4], &pwmtimerCC26xxHWAttrs[4] },
- { &PWMTimerCC26XX_fxnTable, &pwmtimerCC26xxObjects[5], &pwmtimerCC26xxHWAttrs[5] },
- { &PWMTimerCC26XX_fxnTable, &pwmtimerCC26xxObjects[6], &pwmtimerCC26xxHWAttrs[6] },
- { &PWMTimerCC26XX_fxnTable, &pwmtimerCC26xxObjects[7], &pwmtimerCC26xxHWAttrs[7] },
- { NULL, NULL, NULL }
-};
-
-
-/*
- * ============================= PWM end ======================================
- */
-
-/*
- * ========================== ADCBuf begin =========================================
- */
-/* Place into subsections to allow the TI linker to remove items properly */
-#if defined(__TI_COMPILER_VERSION__)
-#pragma DATA_SECTION(ADCBuf_config, ".const:ADCBuf_config")
-#pragma DATA_SECTION(adcBufCC26xxHWAttrs, ".const:adcBufCC26xxHWAttrs")
-#pragma DATA_SECTION(ADCBufCC26XX_adcChannelLut, ".const:ADCBufCC26XX_adcChannelLut")
-#endif
-
-/* Include drivers */
-#include <ti/drivers/ADCBuf.h>
-#include <ti/drivers/adcbuf/ADCBufCC26XX.h>
-
-/* ADCBuf objects */
-ADCBufCC26XX_Object adcBufCC26xxObjects[CC2650_I3MOTE_ADCBufCOUNT];
-
-/*
- * This table converts a virtual adc channel into a dio and internal analogue input signal.
- * This table is necessary for the functioning of the adcBuf driver.
- * Comment out unused entries to save flash.
- * Dio and internal signal pairs are hardwired. Do not remap them in the table. You may reorder entire entries though.
- * The mapping of dio and internal signals is package dependent.
- */
-const ADCBufCC26XX_AdcChannelLutEntry ADCBufCC26XX_adcChannelLut[] = {
- {PIN_UNASSIGNED, ADC_COMPB_IN_VDDS},
- {PIN_UNASSIGNED, ADC_COMPB_IN_DCOUPL},
- {PIN_UNASSIGNED, ADC_COMPB_IN_VSS},
- //{Board_DIO23_ANALOG, ADC_COMPB_IN_AUXIO7},
- //{Board_DIO24_ANALOG, ADC_COMPB_IN_AUXIO6},
- //{Board_DIO25_ANALOG, ADC_COMPB_IN_AUXIO5},
- //{Board_DIO26_ANALOG, ADC_COMPB_IN_AUXIO4},
- //{Board_DIO27_ANALOG, ADC_COMPB_IN_AUXIO3},
- //{Board_DIO28_ANALOG, ADC_COMPB_IN_AUXIO2},
- //{Board_DIO29_ANALOG, ADC_COMPB_IN_AUXIO1},
- //{Board_DIO30_ANALOG, ADC_COMPB_IN_AUXIO0},
-};
-
-const ADCBufCC26XX_HWAttrs adcBufCC26xxHWAttrs[CC2650_I3MOTE_ADCBufCOUNT] = {
- {
- .intPriority = ~0,
- .swiPriority = 0,
- .adcChannelLut = ADCBufCC26XX_adcChannelLut,
- .gpTimerUnit = Board_GPTIMER0A,
- .gptDMAChannelMask = 1 << UDMA_CHAN_TIMER0_A,
- }
-};
-
-const ADCBuf_Config ADCBuf_config[] = {
- {&ADCBufCC26XX_fxnTable, &adcBufCC26xxObjects[0], &adcBufCC26xxHWAttrs[0]},
- {NULL, NULL, NULL},
-};
-/*
- * ========================== ADCBuf end =========================================
- */
-
-
-
-/*
- * ========================== ADC begin =========================================
- */
-/* Place into subsections to allow the TI linker to remove items properly */
-#if defined(__TI_COMPILER_VERSION__)
-#pragma DATA_SECTION(ADC_config, ".const:ADC_config")
-#pragma DATA_SECTION(adcCC26xxHWAttrs, ".const:adcCC26xxHWAttrs")
-#endif
-
-/* Include drivers */
-#include <ti/drivers/ADC.h>
-#include <ti/drivers/adc/ADCCC26XX.h>
-
-/* ADC objects */
-ADCCC26XX_Object adcCC26xxObjects[CC2650_I3MOTE_ADCCOUNT];
-
-
-const ADCCC26XX_HWAttrs adcCC26xxHWAttrs[CC2650_I3MOTE_ADCCOUNT] = {
- {
- .adcDIO = Board_DIO23_ANALOG,
- .adcCompBInput = ADC_COMPB_IN_AUXIO7,
- .refSource = ADCCC26XX_FIXED_REFERENCE,
- .samplingDuration = ADCCC26XX_SAMPLING_DURATION_2P7_US,
- .inputScalingEnabled = true,
- .triggerSource = ADCCC26XX_TRIGGER_MANUAL
- },
- {
- .adcDIO = Board_DIO24_ANALOG,
- .adcCompBInput = ADC_COMPB_IN_AUXIO6,
- .refSource = ADCCC26XX_FIXED_REFERENCE,
- .samplingDuration = ADCCC26XX_SAMPLING_DURATION_2P7_US,
- .inputScalingEnabled = true,
- .triggerSource = ADCCC26XX_TRIGGER_MANUAL
- },
- {
- .adcDIO = Board_DIO25_ANALOG,
- .adcCompBInput = ADC_COMPB_IN_AUXIO5,
- .refSource = ADCCC26XX_FIXED_REFERENCE,
- .samplingDuration = ADCCC26XX_SAMPLING_DURATION_2P7_US,
- .inputScalingEnabled = true,
- .triggerSource = ADCCC26XX_TRIGGER_MANUAL
- },
- {
- .adcDIO = Board_DIO26_ANALOG,
- .adcCompBInput = ADC_COMPB_IN_AUXIO4,
- .refSource = ADCCC26XX_FIXED_REFERENCE,
- .samplingDuration = ADCCC26XX_SAMPLING_DURATION_2P7_US,
- .inputScalingEnabled = true,
- .triggerSource = ADCCC26XX_TRIGGER_MANUAL
- },
- {
- .adcDIO = Board_DIO27_ANALOG,
- .adcCompBInput = ADC_COMPB_IN_AUXIO3,
- .refSource = ADCCC26XX_FIXED_REFERENCE,
- .samplingDuration = ADCCC26XX_SAMPLING_DURATION_2P7_US,
- .inputScalingEnabled = true,
- .triggerSource = ADCCC26XX_TRIGGER_MANUAL
- },
- {
- .adcDIO = Board_DIO28_ANALOG,
- .adcCompBInput = ADC_COMPB_IN_AUXIO2,
- .refSource = ADCCC26XX_FIXED_REFERENCE,
- .samplingDuration = ADCCC26XX_SAMPLING_DURATION_2P7_US,
- .inputScalingEnabled = true,
- .triggerSource = ADCCC26XX_TRIGGER_MANUAL
- },
- {
- .adcDIO = Board_DIO29_ANALOG,
- .adcCompBInput = ADC_COMPB_IN_AUXIO1,
- .refSource = ADCCC26XX_FIXED_REFERENCE,
- .samplingDuration = ADCCC26XX_SAMPLING_DURATION_2P7_US,
- .inputScalingEnabled = true,
- .triggerSource = ADCCC26XX_TRIGGER_MANUAL
- },
- {
- .adcDIO = Board_DIO30_ANALOG,
- .adcCompBInput = ADC_COMPB_IN_AUXIO0,
- .refSource = ADCCC26XX_FIXED_REFERENCE,
- .samplingDuration = ADCCC26XX_SAMPLING_DURATION_10P9_MS,
- .inputScalingEnabled = true,
- .triggerSource = ADCCC26XX_TRIGGER_MANUAL
- },
- {
- .adcDIO = PIN_UNASSIGNED,
- .adcCompBInput = ADC_COMPB_IN_DCOUPL,
- .refSource = ADCCC26XX_FIXED_REFERENCE,
- .samplingDuration = ADCCC26XX_SAMPLING_DURATION_2P7_US,
- .inputScalingEnabled = true,
- .triggerSource = ADCCC26XX_TRIGGER_MANUAL
- },
- {
- .adcDIO = PIN_UNASSIGNED,
- .adcCompBInput = ADC_COMPB_IN_VSS,
- .refSource = ADCCC26XX_FIXED_REFERENCE,
- .samplingDuration = ADCCC26XX_SAMPLING_DURATION_2P7_US,
- .inputScalingEnabled = true,
- .triggerSource = ADCCC26XX_TRIGGER_MANUAL
- },
- {
- .adcDIO = PIN_UNASSIGNED,
- .adcCompBInput = ADC_COMPB_IN_VDDS,
- .refSource = ADCCC26XX_FIXED_REFERENCE,
- .samplingDuration = ADCCC26XX_SAMPLING_DURATION_2P7_US,
- .inputScalingEnabled = true,
- .triggerSource = ADCCC26XX_TRIGGER_MANUAL
- }
-};
-
-const ADC_Config ADC_config[] = {
- {&ADCCC26XX_fxnTable, &adcCC26xxObjects[0], &adcCC26xxHWAttrs[0]},
- {&ADCCC26XX_fxnTable, &adcCC26xxObjects[1], &adcCC26xxHWAttrs[1]},
- {&ADCCC26XX_fxnTable, &adcCC26xxObjects[2], &adcCC26xxHWAttrs[2]},
- {&ADCCC26XX_fxnTable, &adcCC26xxObjects[3], &adcCC26xxHWAttrs[3]},
- {&ADCCC26XX_fxnTable, &adcCC26xxObjects[4], &adcCC26xxHWAttrs[4]},
- {&ADCCC26XX_fxnTable, &adcCC26xxObjects[5], &adcCC26xxHWAttrs[5]},
- {&ADCCC26XX_fxnTable, &adcCC26xxObjects[6], &adcCC26xxHWAttrs[6]},
- {&ADCCC26XX_fxnTable, &adcCC26xxObjects[7], &adcCC26xxHWAttrs[7]},
- {&ADCCC26XX_fxnTable, &adcCC26xxObjects[8], &adcCC26xxHWAttrs[8]},
- {&ADCCC26XX_fxnTable, &adcCC26xxObjects[9], &adcCC26xxHWAttrs[9]},
- {&ADCCC26XX_fxnTable, &adcCC26xxObjects[10], &adcCC26xxHWAttrs[10]},
- {NULL, NULL, NULL},
-};
-
-/*
- * ========================== ADC end =========================================
- */
diff --git a/Basic-Test-Package/CC2650/Test_CC2650_DebugUART_EchoPC/CC2650_I3M.h b/Basic-Test-Package/CC2650/Test_CC2650_DebugUART_EchoPC/CC2650_I3M.h
+++ /dev/null
@@ -1,324 +0,0 @@
-/*
- * Copyright (c) 2015-2016, Texas Instruments Incorporated
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * * Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- *
- * * Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- *
- * * Neither the name of Texas Instruments Incorporated nor the names of
- * its contributors may be used to endorse or promote products derived
- * from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
- * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
- * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
- * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
- * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
- * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
- * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
- * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-/** ============================================================================
- * @file CC2650_I3MOTE.h
- *
- * @brief CC2650 LaunchPad Board Specific header file.
- *
- * NB! This is the board file for CC2650 LaunchPad PCB version 1.1
- *
- * ============================================================================
- */
-#ifndef __CC2650_I3MOTE_BOARD_H__
-#define __CC2650_I3MOTE_BOARD_H__
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/** ============================================================================
- * Includes
- * ==========================================================================*/
-#include <ti/drivers/PIN.h>
-#include <driverlib/ioc.h>
-
-/** ============================================================================
- * Externs
- * ==========================================================================*/
-extern const PIN_Config BoardGpioInitTable[];
-
-/** ============================================================================
- * Defines
- * ==========================================================================*/
-
-/* Same RF Configuration as 7x7 EM */
-#define CC2650EM_7ID
-#define CC2650_I3MOTE
-
-
-/* Sensors */
-#define Board_INA219_ADDR (0x41)
-#define Board_HDC1000_ADDR (0x43)
-#define Board_HDC1080_ADDR (0x40)
-#define Board_TMP007_ADDR (0x44)
-#define Board_OPT3001_ADDR (0x45)
-#define Board_MPU9250_ADDR (0x68)
-#define Board_BMP280_ADDR (0x77)
-
-
-/* Mapping of pins to board signals using general board aliases
- * <board signal alias> <pin mapping>
- */
-/* Discrete outputs */
-/* I2C */
-
-#define Board_I2C0_SDA0 IOID_23
-#define Board_I2C0_SCL0 IOID_24
-
-#define Board_LEDR IOID_5
-#define Board_LEDG IOID_6
-
-#define Board_LED_ON 1
-#define Board_LED_OFF 0
-
-/* Discrete inputs */
-#define Board_BTN1 IOID_4
-#define Board_BTN2 PIN_UNASSIGNED
-
-/* Debug UART */
-#define Board_UART_RX IOID_2 /* RXD */
-#define Board_UART_TX IOID_3 /* TXD */
-
-/* DAC8730 UART */
-//#define Board_UART_TX IOID_8 /* TCD to DAC*/
-//#define Board_UART_RX IOID_9 /* RXD from DAC */
-
-/* SPI Board */
-#define Board_SPI0_IRQ IOID_10
-#define Board_SPI0_MISO IOID_12
-#define Board_SPI0_MOSI IOID_13
-#define Board_SPI0_CLK IOID_14
-#define Board_SPI0_CSN IOID_15
-
-#define Board_SPI1_MISO IOID_18
-#define Board_SPI1_MOSI IOID_19
-#define Board_SPI1_CLK IOID_20
-#define Board_SPI1_CSN IOID_21
-#define Board_SPI1_IRQ IOID_22
-
-/* Power */
-//#define Board_DIO0 IOID_0 // VCCIO_DAC
-//#define Board_DIO1 IOID_1 // GPS_PWR_nEN
-//#define Board_DIO7 IOID_7 // EH_nBYPASS
-//#define Board_DIO25 IOID_25 // SSM_PWR_nEN
-//#define Board_DIO26 IOID_26 // GPS_PWR_nEN
-//#define Board_DIO27 IOID_27 // VBAT_OK
-//#define Board_DIO28 IOID_28 // SSM_5V_EN
-
-/* Misc */
-//#define Board_DIO11 IOID_11 // BSL
-//#define Board_DIO16 IOID_16 // JTAG_TDO
-//#define Board_DIO17 IOID_17 // JTAG_TDI
-
-
-
-/* Analog */
-#define Board_DIO23_ANALOG PIN_UNASSIGNED
-#define Board_DIO24_ANALOG PIN_UNASSIGNED
-#define Board_DIO25_ANALOG PIN_UNASSIGNED
-#define Board_DIO26_ANALOG PIN_UNASSIGNED
-#define Board_DIO27_ANALOG PIN_UNASSIGNED
-#define Board_DIO28_ANALOG PIN_UNASSIGNED
-#define Board_DIO29_ANALOG PIN_UNASSIGNED
-#define Board_DIO30_ANALOG PIN_UNASSIGNED
-
-
-/* PWM outputs */
-#define Board_PWMPIN0 PIN_UNASSIGNED
-#define Board_PWMPIN1 PIN_UNASSIGNED
-#define Board_PWMPIN2 PIN_UNASSIGNED
-#define Board_PWMPIN3 PIN_UNASSIGNED
-#define Board_PWMPIN4 PIN_UNASSIGNED
-#define Board_PWMPIN5 PIN_UNASSIGNED
-#define Board_PWMPIN6 PIN_UNASSIGNED
-#define Board_PWMPIN7 PIN_UNASSIGNED
-
-
-/** ============================================================================
- * Instance identifiers
- * ==========================================================================*/
-/* Generic I2C instance identifiers */
-#define Board_I2C CC2650_I3MOTE_I2C0
-/* Generic SPI instance identifiers */
-#define Board_SPI0 CC2650_I3MOTE_SPI0
-#define Board_SPI1 CC2650_I3MOTE_SPI1
-/* Generic UART instance identifiers */
-#define Board_UART CC2650_I3MOTE_UART0
-/* Generic Crypto instance identifiers */
-#define Board_CRYPTO CC2650_I3MOTE_CRYPTO0
-/* Generic GPTimer instance identifiers */
-#define Board_GPTIMER0A CC2650_I3MOTE_GPTIMER0A
-#define Board_GPTIMER0B CC2650_I3MOTE_GPTIMER0B
-#define Board_GPTIMER1A CC2650_I3MOTE_GPTIMER1A
-#define Board_GPTIMER1B CC2650_I3MOTE_GPTIMER1B
-#define Board_GPTIMER2A CC2650_I3MOTE_GPTIMER2A
-#define Board_GPTIMER2B CC2650_I3MOTE_GPTIMER2B
-#define Board_GPTIMER3A CC2650_I3MOTE_GPTIMER3A
-#define Board_GPTIMER3B CC2650_I3MOTE_GPTIMER3B
-/* Generic PWM instance identifiers */
-#define Board_PWM0 CC2650_I3MOTE_PWM0
-#define Board_PWM1 CC2650_I3MOTE_PWM1
-#define Board_PWM2 CC2650_I3MOTE_PWM2
-#define Board_PWM3 CC2650_I3MOTE_PWM3
-#define Board_PWM4 CC2650_I3MOTE_PWM4
-#define Board_PWM5 CC2650_I3MOTE_PWM5
-#define Board_PWM6 CC2650_I3MOTE_PWM6
-#define Board_PWM7 CC2650_I3MOTE_PWM7
-
-/** ============================================================================
- * Number of peripherals and their names
- * ==========================================================================*/
-
-/*!
- * @def CC2650_I3MOTE_I2CName
- * @brief Enum of I2C names on the CC2650 dev board
- */
-typedef enum CC2650_I3MOTE_I2CName {
- CC2650_I3MOTE_I2C0 = 0,
-
- CC2650_I3MOTE_I2CCOUNT
-} CC2650_I3MOTE_I2CName;
-
-/*!
- * @def CC2650_I3MOTE_CryptoName
- * @brief Enum of Crypto names on the CC2650 dev board
- */
-typedef enum CC2650_I3MOTE_CryptoName {
- CC2650_I3MOTE_CRYPTO0 = 0,
-
- CC2650_I3MOTE_CRYPTOCOUNT
-} CC2650_I3MOTE_CryptoName;
-
-
-/*!
- * @def CC2650_I3MOTE_SPIName
- * @brief Enum of SPI names on the CC2650 dev board
- */
-typedef enum CC2650_I3MOTE_SPIName {
- CC2650_I3MOTE_SPI0 = 0,
- CC2650_I3MOTE_SPI1,
-
- CC2650_I3MOTE_SPICOUNT
-} CC2650_I3MOTE_SPIName;
-
-/*!
- * @def CC2650_I3MOTE_UARTName
- * @brief Enum of UARTs on the CC2650 dev board
- */
-typedef enum CC2650_I3MOTE_UARTName {
- CC2650_I3MOTE_UART0 = 0,
-
- CC2650_I3MOTE_UARTCOUNT
-} CC2650_I3MOTE_UARTName;
-
-/*!
- * @def CC2650_I3MOTE_UdmaName
- * @brief Enum of DMA buffers
- */
-typedef enum CC2650_I3MOTE_UdmaName {
- CC2650_I3MOTE_UDMA0 = 0,
-
- CC2650_I3MOTE_UDMACOUNT
-} CC2650_I3MOTE_UdmaName;
-
-/*!
- * @def CC2650_I3MOTE_GPTimerName
- * @brief Enum of GPTimer parts
- */
-typedef enum CC2650_I3MOTE_GPTimerName
-{
- CC2650_I3MOTE_GPTIMER0A = 0,
- CC2650_I3MOTE_GPTIMER0B,
- CC2650_I3MOTE_GPTIMER1A,
- CC2650_I3MOTE_GPTIMER1B,
- CC2650_I3MOTE_GPTIMER2A,
- CC2650_I3MOTE_GPTIMER2B,
- CC2650_I3MOTE_GPTIMER3A,
- CC2650_I3MOTE_GPTIMER3B,
- CC2650_I3MOTE_GPTIMERPARTSCOUNT
-} CC2650_I3MOTE_GPTimerName;
-
-/*!
- * @def CC2650_I3MOTE_GPTimers
- * @brief Enum of GPTimers
- */
-typedef enum CC2650_I3MOTE_GPTimers
-{
- CC2650_I3MOTE_GPTIMER0 = 0,
- CC2650_I3MOTE_GPTIMER1,
- CC2650_I3MOTE_GPTIMER2,
- CC2650_I3MOTE_GPTIMER3,
- CC2650_I3MOTE_GPTIMERCOUNT
-} CC2650_I3MOTE_GPTimers;
-
-/*!
- * @def CC2650_I3MOTE_PWM
- * @brief Enum of PWM outputs on the board
- */
-typedef enum CC2650_I3MOTE_PWM
-{
- CC2650_I3MOTE_PWM0 = 0,
- CC2650_I3MOTE_PWM1,
- CC2650_I3MOTE_PWM2,
- CC2650_I3MOTE_PWM3,
- CC2650_I3MOTE_PWM4,
- CC2650_I3MOTE_PWM5,
- CC2650_I3MOTE_PWM6,
- CC2650_I3MOTE_PWM7,
- CC2650_I3MOTE_PWMCOUNT
-} CC2650_I3MOTE_PWM;
-
-/*!
- * @def CC2650_I3MOTE_ADCBufName
- * @brief Enum of ADCs
- */
-typedef enum CC2650_I3MOTE_ADCBufName {
- CC2650_I3MOTE_ADCBuf0 = 0,
- CC2650_I3MOTE_ADCBufCOUNT
-} CC2650_I3MOTE_ADCBufName;
-
-
-/*!
- * @def CC2650_I3MOTE_ADCName
- * @brief Enum of ADCs
- */
-typedef enum CC2650_I3MOTE_ADCName {
- CC2650_I3MOTE_ADC0 = 0,
- CC2650_I3MOTE_ADC1,
- CC2650_I3MOTE_ADC2,
- CC2650_I3MOTE_ADC3,
- CC2650_I3MOTE_ADC4,
- CC2650_I3MOTE_ADC5,
- CC2650_I3MOTE_ADC6,
- CC2650_I3MOTE_ADC7,
- CC2650_I3MOTE_ADCDCOUPL,
- CC2650_I3MOTE_ADCVSS,
- CC2650_I3MOTE_ADCVDDS,
- CC2650_I3MOTE_ADCCOUNT
-} CC2650_I3MOTE_ADCName;
-
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* __CC2650_I3MOTE_BOARD_H__ */
diff --git a/Basic-Test-Package/CC2650/Test_CC2650_DebugUART_EchoPC/main.c b/Basic-Test-Package/CC2650/Test_CC2650_DebugUART_EchoPC/main.c
index d56b5b5cb145bebcd36022d19e86ba78b56452af..4d2d3f5ba454285a7b151386f874343e018e8f34 100644 (file)
/* Construct heartBeat Task thread */
Task_Params_init(&taskParams);
- taskParams.arg0 = 500000 / Clock_tickPeriod;
+ taskParams.arg0 = 2000000 / Clock_tickPeriod;
taskParams.stackSize = TASKSTACKSIZE;
taskParams.stack = &task0Stack;
Task_construct(&task0Struct, (Task_FuncPtr)heartBeatFxn, &taskParams, NULL);
diff --git a/Basic-Test-Package/CC2650/Test_CC2650_I2C_Sensors/CC2650_I3M.c b/Basic-Test-Package/CC2650/Test_CC2650_I2C_Sensors/CC2650_I3M.c
+++ /dev/null
@@ -1,640 +0,0 @@
-/*
- * Copyright (c) 2016, Texas Instruments Incorporated
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * * Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- *
- * * Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- *
- * * Neither the name of Texas Instruments Incorporated nor the names of
- * its contributors may be used to endorse or promote products derived
- * from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
- * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
- * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
- * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
- * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
- * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
- * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
- * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-/*
- * ====================== CC2650_I3MOTE.c ===================================
- * This file is responsible for setting up the board specific items for the
- * CC2650 LaunchPad.
- */
-
-
-/*
- * ====================== Includes ============================================
- */
-#include <xdc/std.h>
-#include <xdc/runtime/System.h>
-
-#include <ti/sysbios/family/arm/m3/Hwi.h>
-#include <ti/drivers/PIN.h>
-#include <ti/drivers/pin/PINCC26XX.h>
-#include <ti/drivers/PWM.h>
-#include <ti/drivers/pwm/PWMTimerCC26XX.h>
-#include <ti/drivers/timer/GPTimerCC26XX.h>
-#include <ti/drivers/Power.h>
-#include <ti/drivers/power/PowerCC26XX.h>
-
-#include <inc/hw_memmap.h>
-#include <inc/hw_ints.h>
-#include <driverlib/ioc.h>
-#include <driverlib/udma.h>
-
-#include <Board.h>
-
-/*
- * ========================= IO driver initialization =========================
- * From main, PIN_init(BoardGpioInitTable) should be called to setup safe
- * settings for this board.
- * When a pin is allocated and then de-allocated, it will revert to the state
- * configured in this table.
- */
-/* Place into subsections to allow the TI linker to remove items properly */
-#if defined(__TI_COMPILER_VERSION__)
-#pragma DATA_SECTION(BoardGpioInitTable, ".const:BoardGpioInitTable")
-#pragma DATA_SECTION(PINCC26XX_hwAttrs, ".const:PINCC26XX_hwAttrs")
-#endif
-
-const PIN_Config BoardGpioInitTable[] = {
-
- Board_LEDR | PIN_GPIO_OUTPUT_EN | PIN_GPIO_LOW | PIN_PUSHPULL | PIN_DRVSTR_MAX, /* LED initially off */
- Board_LEDG | PIN_GPIO_OUTPUT_EN | PIN_GPIO_LOW | PIN_PUSHPULL | PIN_DRVSTR_MAX, /* LED initially off */
- Board_BTN1 | PIN_INPUT_EN | PIN_PULLUP | PIN_IRQ_BOTHEDGES | PIN_HYSTERESIS, /* Button is active low */
- Board_UART_RX | PIN_INPUT_EN | PIN_PULLDOWN, /* UART RX via debugger back channel */
- Board_UART_TX | PIN_GPIO_OUTPUT_EN | PIN_GPIO_HIGH | PIN_PUSHPULL, /* UART TX via debugger back channel */
- PIN_TERMINATE
-};
-
-const PINCC26XX_HWAttrs PINCC26XX_hwAttrs = {
- .intPriority = ~0,
- .swiPriority = 0
-};
-/*============================================================================*/
-
-/*
- * ============================= Power begin ==================================
- */
-/* Place into subsections to allow the TI linker to remove items properly */
-#if defined(__TI_COMPILER_VERSION__)
-#pragma DATA_SECTION(PowerCC26XX_config, ".const:PowerCC26XX_config")
-#endif
-const PowerCC26XX_Config PowerCC26XX_config = {
- .policyInitFxn = NULL,
- .policyFxn = &PowerCC26XX_standbyPolicy,
- .calibrateFxn = &PowerCC26XX_calibrate,
- .enablePolicy = TRUE,
- .calibrateRCOSC_LF = TRUE,
- .calibrateRCOSC_HF = TRUE,
-};
-/*
- * ============================= Power end ====================================
- */
-
-/*
- * ============================= UART begin ===================================
- */
-/* Place into subsections to allow the TI linker to remove items properly */
-#if defined(__TI_COMPILER_VERSION__)
-#pragma DATA_SECTION(UART_config, ".const:UART_config")
-#pragma DATA_SECTION(uartCC26XXHWAttrs, ".const:uartCC26XXHWAttrs")
-#endif
-
-/* Include drivers */
-#include <ti/drivers/UART.h>
-#include <ti/drivers/uart/UARTCC26XX.h>
-
-/* UART objects */
-UARTCC26XX_Object uartCC26XXObjects[CC2650_I3MOTE_UARTCOUNT];
-
-/* UART hardware parameter structure, also used to assign UART pins */
-const UARTCC26XX_HWAttrsV1 uartCC26XXHWAttrs[CC2650_I3MOTE_UARTCOUNT] = {
- {
- .baseAddr = UART0_BASE,
- .powerMngrId = PowerCC26XX_PERIPH_UART0,
- .intNum = INT_UART0_COMB,
- .intPriority = ~0,
- .swiPriority = 0,
- .txPin = Board_UART_TX,
- .rxPin = Board_UART_RX,
- .ctsPin = PIN_UNASSIGNED,
- .rtsPin = PIN_UNASSIGNED
- }
-};
-
-/* UART configuration structure */
-const UART_Config UART_config[] = {
- {
- .fxnTablePtr = &UARTCC26XX_fxnTable,
- .object = &uartCC26XXObjects[0],
- .hwAttrs = &uartCC26XXHWAttrs[0]
- },
- {NULL, NULL, NULL}
-};
-/*
- * ============================= UART end =====================================
- */
-
-/*
- * ============================= UDMA begin ===================================
- */
-/* Place into subsections to allow the TI linker to remove items properly */
-#if defined(__TI_COMPILER_VERSION__)
-#pragma DATA_SECTION(UDMACC26XX_config, ".const:UDMACC26XX_config")
-#pragma DATA_SECTION(udmaHWAttrs, ".const:udmaHWAttrs")
-#endif
-
-/* Include drivers */
-#include <ti/drivers/dma/UDMACC26XX.h>
-
-/* UDMA objects */
-UDMACC26XX_Object udmaObjects[CC2650_I3MOTE_UDMACOUNT];
-
-/* UDMA configuration structure */
-const UDMACC26XX_HWAttrs udmaHWAttrs[CC2650_I3MOTE_UDMACOUNT] = {
- {
- .baseAddr = UDMA0_BASE,
- .powerMngrId = PowerCC26XX_PERIPH_UDMA,
- .intNum = INT_DMA_ERR,
- .intPriority = ~0
- }
-};
-
-/* UDMA configuration structure */
-const UDMACC26XX_Config UDMACC26XX_config[] = {
- {
- .object = &udmaObjects[0],
- .hwAttrs = &udmaHWAttrs[0]
- },
- {NULL, NULL}
-};
-/*
- * ============================= UDMA end =====================================
- */
-
-/*
- * ========================== SPI DMA begin ===================================
- */
-/* Place into subsections to allow the TI linker to remove items properly */
-#if defined(__TI_COMPILER_VERSION__)
-#pragma DATA_SECTION(SPI_config, ".const:SPI_config")
-#pragma DATA_SECTION(spiCC26XXDMAHWAttrs, ".const:spiCC26XXDMAHWAttrs")
-#endif
-
-/* Include drivers */
-#include <ti/drivers/spi/SPICC26XXDMA.h>
-
-/* SPI objects */
-SPICC26XXDMA_Object spiCC26XXDMAObjects[CC2650_I3MOTE_SPICOUNT];
-
-/* SPI configuration structure, describing which pins are to be used */
-const SPICC26XXDMA_HWAttrsV1 spiCC26XXDMAHWAttrs[CC2650_I3MOTE_SPICOUNT] = {
- {
- .baseAddr = SSI0_BASE,
- .intNum = INT_SSI0_COMB,
- .intPriority = ~0,
- .swiPriority = 0,
- .powerMngrId = PowerCC26XX_PERIPH_SSI0,
- .defaultTxBufValue = 0,
- .rxChannelBitMask = 1<<UDMA_CHAN_SSI0_RX,
- .txChannelBitMask = 1<<UDMA_CHAN_SSI0_TX,
- .mosiPin = Board_SPI0_MOSI,
- .misoPin = Board_SPI0_MISO,
- .clkPin = Board_SPI0_CLK,
- .csnPin = Board_SPI0_CSN
- },
- {
- .baseAddr = SSI1_BASE,
- .intNum = INT_SSI1_COMB,
- .intPriority = ~0,
- .swiPriority = 0,
- .powerMngrId = PowerCC26XX_PERIPH_SSI1,
- .defaultTxBufValue = 0,
- .rxChannelBitMask = 1<<UDMA_CHAN_SSI1_RX,
- .txChannelBitMask = 1<<UDMA_CHAN_SSI1_TX,
- .mosiPin = Board_SPI1_MOSI,
- .misoPin = Board_SPI1_MISO,
- .clkPin = Board_SPI1_CLK,
- .csnPin = Board_SPI1_CSN
- }
-};
-
-/* SPI configuration structure */
-const SPI_Config SPI_config[] = {
- {
- .fxnTablePtr = &SPICC26XXDMA_fxnTable,
- .object = &spiCC26XXDMAObjects[0],
- .hwAttrs = &spiCC26XXDMAHWAttrs[0]
- },
- {
- .fxnTablePtr = &SPICC26XXDMA_fxnTable,
- .object = &spiCC26XXDMAObjects[1],
- .hwAttrs = &spiCC26XXDMAHWAttrs[1]
- },
- {NULL, NULL, NULL}
-};
-/*
- * ========================== SPI DMA end =====================================
-*/
-
-
-/*
- * ============================= I2C Begin=====================================
-*/
-/* Place into subsections to allow the TI linker to remove items properly */
-#if defined(__TI_COMPILER_VERSION__)
-#pragma DATA_SECTION(I2C_config, ".const:I2C_config")
-#pragma DATA_SECTION(i2cCC26xxHWAttrs, ".const:i2cCC26xxHWAttrs")
-#endif
-
-/* Include drivers */
-#include <ti/drivers/i2c/I2CCC26XX.h>
-
-/* I2C objects */
-I2CCC26XX_Object i2cCC26xxObjects[CC2650_I3MOTE_I2CCOUNT];
-
-/* I2C configuration structure, describing which pins are to be used */
-const I2CCC26XX_HWAttrsV1 i2cCC26xxHWAttrs[CC2650_I3MOTE_I2CCOUNT] = {
- {
- .baseAddr = I2C0_BASE,
- .powerMngrId = PowerCC26XX_PERIPH_I2C0,
- .intNum = INT_I2C_IRQ,
- .intPriority = ~0,
- .swiPriority = 0,
- .sdaPin = Board_I2C0_SDA0,
- .sclPin = Board_I2C0_SCL0,
- }
-};
-
-/* I2C configuration structure */
-const I2C_Config I2C_config[] = {
- {
- .fxnTablePtr = &I2CCC26XX_fxnTable,
- .object = &i2cCC26xxObjects[0],
- .hwAttrs = &i2cCC26xxHWAttrs[0]
- },
- {NULL, NULL, NULL}
-};
-/*
- * ========================== I2C end =========================================
- */
-
-/*
- * ========================== Crypto begin ====================================
- * NOTE: The Crypto implementation should be considered experimental
- * and not validated!
- */
-/* Place into subsections to allow the TI linker to remove items properly */
-#if defined(__TI_COMPILER_VERSION__)
-#pragma DATA_SECTION(CryptoCC26XX_config, ".const:CryptoCC26XX_config")
-#pragma DATA_SECTION(cryptoCC26XXHWAttrs, ".const:cryptoCC26XXHWAttrs")
-#endif
-
-/* Include drivers */
-#include <ti/drivers/crypto/CryptoCC26XX.h>
-
-/* Crypto objects */
-CryptoCC26XX_Object cryptoCC26XXObjects[CC2650_I3MOTE_CRYPTOCOUNT];
-
-/* Crypto configuration structure, describing which pins are to be used */
-const CryptoCC26XX_HWAttrs cryptoCC26XXHWAttrs[CC2650_I3MOTE_CRYPTOCOUNT] = {
- {
- .baseAddr = CRYPTO_BASE,
- .powerMngrId = PowerCC26XX_PERIPH_CRYPTO,
- .intNum = INT_CRYPTO_RESULT_AVAIL_IRQ,
- .intPriority = ~0,
- }
-};
-
-/* Crypto configuration structure */
-const CryptoCC26XX_Config CryptoCC26XX_config[] = {
- {
- .object = &cryptoCC26XXObjects[0],
- .hwAttrs = &cryptoCC26XXHWAttrs[0]
- },
- {NULL, NULL}
-};
-/*
- * ========================== Crypto end ======================================
- */
-
-
-/*
- * ========================= RF driver begin ==================================
- */
-/* Place into subsections to allow the TI linker to remove items properly */
-#if defined(__TI_COMPILER_VERSION__)
-#pragma DATA_SECTION(RFCC26XX_hwAttrs, ".const:RFCC26XX_hwAttrs")
-#endif
-
-/* Include drivers */
-#include <ti/drivers/rf/RF.h>
-
-/* RF hwi and swi priority */
-const RFCC26XX_HWAttrs RFCC26XX_hwAttrs = {
- .hwiCpe0Priority = ~0,
- .hwiHwPriority = ~0,
- .swiCpe0Priority = 0,
- .swiHwPriority = 0,
-};
-
-/*
- * ========================== RF driver end ===================================
- */
-
-/*
- * ========================= Display begin ====================================
- */
-
-/*
- * ========================= Display end ======================================
- */
-
-/*
- * ============================ GPTimer begin =================================
- * Remove unused entries to reduce flash usage both in Board.c and Board.h
- */
-/* Place into subsections to allow the TI linker to remove items properly */
-#if defined(__TI_COMPILER_VERSION__)
-#pragma DATA_SECTION(GPTimerCC26XX_config, ".const:GPTimerCC26XX_config")
-#pragma DATA_SECTION(gptimerCC26xxHWAttrs, ".const:gptimerCC26xxHWAttrs")
-#endif
-
-/* GPTimer hardware attributes, one per timer part (Timer 0A, 0B, 1A, 1B..) */
-const GPTimerCC26XX_HWAttrs gptimerCC26xxHWAttrs[CC2650_I3MOTE_GPTIMERPARTSCOUNT] = {
- { .baseAddr = GPT0_BASE, .intNum = INT_GPT0A, .intPriority = (~0), .powerMngrId = PowerCC26XX_PERIPH_GPT0, .pinMux = GPT_PIN_0A, },
- { .baseAddr = GPT0_BASE, .intNum = INT_GPT0B, .intPriority = (~0), .powerMngrId = PowerCC26XX_PERIPH_GPT0, .pinMux = GPT_PIN_0B, },
- { .baseAddr = GPT1_BASE, .intNum = INT_GPT1A, .intPriority = (~0), .powerMngrId = PowerCC26XX_PERIPH_GPT1, .pinMux = GPT_PIN_1A, },
- { .baseAddr = GPT1_BASE, .intNum = INT_GPT1B, .intPriority = (~0), .powerMngrId = PowerCC26XX_PERIPH_GPT1, .pinMux = GPT_PIN_1B, },
- { .baseAddr = GPT2_BASE, .intNum = INT_GPT2A, .intPriority = (~0), .powerMngrId = PowerCC26XX_PERIPH_GPT2, .pinMux = GPT_PIN_2A, },
- { .baseAddr = GPT2_BASE, .intNum = INT_GPT2B, .intPriority = (~0), .powerMngrId = PowerCC26XX_PERIPH_GPT2, .pinMux = GPT_PIN_2B, },
- { .baseAddr = GPT3_BASE, .intNum = INT_GPT3A, .intPriority = (~0), .powerMngrId = PowerCC26XX_PERIPH_GPT3, .pinMux = GPT_PIN_3A, },
- { .baseAddr = GPT3_BASE, .intNum = INT_GPT3B, .intPriority = (~0), .powerMngrId = PowerCC26XX_PERIPH_GPT3, .pinMux = GPT_PIN_3B, },
-};
-
-/* GPTimer objects, one per full-width timer (A+B) (Timer 0, Timer 1..) */
-GPTimerCC26XX_Object gptimerCC26XXObjects[CC2650_I3MOTE_GPTIMERCOUNT];
-
-/* GPTimer configuration (used as GPTimer_Handle by driver and application) */
-const GPTimerCC26XX_Config GPTimerCC26XX_config[CC2650_I3MOTE_GPTIMERPARTSCOUNT] = {
- { &gptimerCC26XXObjects[0], &gptimerCC26xxHWAttrs[0], GPT_A },
- { &gptimerCC26XXObjects[0], &gptimerCC26xxHWAttrs[1], GPT_B },
- { &gptimerCC26XXObjects[1], &gptimerCC26xxHWAttrs[2], GPT_A },
- { &gptimerCC26XXObjects[1], &gptimerCC26xxHWAttrs[3], GPT_B },
- { &gptimerCC26XXObjects[2], &gptimerCC26xxHWAttrs[4], GPT_A },
- { &gptimerCC26XXObjects[2], &gptimerCC26xxHWAttrs[5], GPT_B },
- { &gptimerCC26XXObjects[3], &gptimerCC26xxHWAttrs[6], GPT_A },
- { &gptimerCC26XXObjects[3], &gptimerCC26xxHWAttrs[7], GPT_B },
-};
-
-/*
- * ============================ GPTimer end ===================================
- */
-
-
-
-/*
- * ============================= PWM begin ====================================
- * Remove unused entries to reduce flash usage both in Board.c and Board.h
- */
-/* Place into subsections to allow the TI linker to remove items properly */
-#if defined(__TI_COMPILER_VERSION__)
-#pragma DATA_SECTION(PWM_config, ".const:PWM_config")
-#pragma DATA_SECTION(pwmtimerCC26xxHWAttrs, ".const:pwmtimerCC26xxHWAttrs")
-#endif
-
-/* PWM configuration, one per PWM output. */
-PWMTimerCC26XX_HwAttrs pwmtimerCC26xxHWAttrs[CC2650_I3MOTE_PWMCOUNT] = {
- { .pwmPin = Board_PWMPIN0, .gpTimerUnit = Board_GPTIMER0A },
- { .pwmPin = Board_PWMPIN1, .gpTimerUnit = Board_GPTIMER0B },
- { .pwmPin = Board_PWMPIN2, .gpTimerUnit = Board_GPTIMER1A },
- { .pwmPin = Board_PWMPIN3, .gpTimerUnit = Board_GPTIMER1B },
- { .pwmPin = Board_PWMPIN4, .gpTimerUnit = Board_GPTIMER2A },
- { .pwmPin = Board_PWMPIN5, .gpTimerUnit = Board_GPTIMER2B },
- { .pwmPin = Board_PWMPIN6, .gpTimerUnit = Board_GPTIMER3A },
- { .pwmPin = Board_PWMPIN7, .gpTimerUnit = Board_GPTIMER3B },
-};
-
-/* PWM object, one per PWM output */
-PWMTimerCC26XX_Object pwmtimerCC26xxObjects[CC2650_I3MOTE_PWMCOUNT];
-
-extern const PWM_FxnTable PWMTimerCC26XX_fxnTable;
-
-/* PWM configuration (used as PWM_Handle by driver and application) */
-const PWM_Config PWM_config[CC2650_I3MOTE_PWMCOUNT + 1] = {
- { &PWMTimerCC26XX_fxnTable, &pwmtimerCC26xxObjects[0], &pwmtimerCC26xxHWAttrs[0] },
- { &PWMTimerCC26XX_fxnTable, &pwmtimerCC26xxObjects[1], &pwmtimerCC26xxHWAttrs[1] },
- { &PWMTimerCC26XX_fxnTable, &pwmtimerCC26xxObjects[2], &pwmtimerCC26xxHWAttrs[2] },
- { &PWMTimerCC26XX_fxnTable, &pwmtimerCC26xxObjects[3], &pwmtimerCC26xxHWAttrs[3] },
- { &PWMTimerCC26XX_fxnTable, &pwmtimerCC26xxObjects[4], &pwmtimerCC26xxHWAttrs[4] },
- { &PWMTimerCC26XX_fxnTable, &pwmtimerCC26xxObjects[5], &pwmtimerCC26xxHWAttrs[5] },
- { &PWMTimerCC26XX_fxnTable, &pwmtimerCC26xxObjects[6], &pwmtimerCC26xxHWAttrs[6] },
- { &PWMTimerCC26XX_fxnTable, &pwmtimerCC26xxObjects[7], &pwmtimerCC26xxHWAttrs[7] },
- { NULL, NULL, NULL }
-};
-
-
-/*
- * ============================= PWM end ======================================
- */
-
-/*
- * ========================== ADCBuf begin =========================================
- */
-/* Place into subsections to allow the TI linker to remove items properly */
-#if defined(__TI_COMPILER_VERSION__)
-#pragma DATA_SECTION(ADCBuf_config, ".const:ADCBuf_config")
-#pragma DATA_SECTION(adcBufCC26xxHWAttrs, ".const:adcBufCC26xxHWAttrs")
-#pragma DATA_SECTION(ADCBufCC26XX_adcChannelLut, ".const:ADCBufCC26XX_adcChannelLut")
-#endif
-
-/* Include drivers */
-#include <ti/drivers/ADCBuf.h>
-#include <ti/drivers/adcbuf/ADCBufCC26XX.h>
-
-/* ADCBuf objects */
-ADCBufCC26XX_Object adcBufCC26xxObjects[CC2650_I3MOTE_ADCBufCOUNT];
-
-/*
- * This table converts a virtual adc channel into a dio and internal analogue input signal.
- * This table is necessary for the functioning of the adcBuf driver.
- * Comment out unused entries to save flash.
- * Dio and internal signal pairs are hardwired. Do not remap them in the table. You may reorder entire entries though.
- * The mapping of dio and internal signals is package dependent.
- */
-const ADCBufCC26XX_AdcChannelLutEntry ADCBufCC26XX_adcChannelLut[] = {
- {PIN_UNASSIGNED, ADC_COMPB_IN_VDDS},
- {PIN_UNASSIGNED, ADC_COMPB_IN_DCOUPL},
- {PIN_UNASSIGNED, ADC_COMPB_IN_VSS},
- //{Board_DIO23_ANALOG, ADC_COMPB_IN_AUXIO7},
- //{Board_DIO24_ANALOG, ADC_COMPB_IN_AUXIO6},
- //{Board_DIO25_ANALOG, ADC_COMPB_IN_AUXIO5},
- //{Board_DIO26_ANALOG, ADC_COMPB_IN_AUXIO4},
- //{Board_DIO27_ANALOG, ADC_COMPB_IN_AUXIO3},
- //{Board_DIO28_ANALOG, ADC_COMPB_IN_AUXIO2},
- //{Board_DIO29_ANALOG, ADC_COMPB_IN_AUXIO1},
- //{Board_DIO30_ANALOG, ADC_COMPB_IN_AUXIO0},
-};
-
-const ADCBufCC26XX_HWAttrs adcBufCC26xxHWAttrs[CC2650_I3MOTE_ADCBufCOUNT] = {
- {
- .intPriority = ~0,
- .swiPriority = 0,
- .adcChannelLut = ADCBufCC26XX_adcChannelLut,
- .gpTimerUnit = Board_GPTIMER0A,
- .gptDMAChannelMask = 1 << UDMA_CHAN_TIMER0_A,
- }
-};
-
-const ADCBuf_Config ADCBuf_config[] = {
- {&ADCBufCC26XX_fxnTable, &adcBufCC26xxObjects[0], &adcBufCC26xxHWAttrs[0]},
- {NULL, NULL, NULL},
-};
-/*
- * ========================== ADCBuf end =========================================
- */
-
-
-
-/*
- * ========================== ADC begin =========================================
- */
-/* Place into subsections to allow the TI linker to remove items properly */
-#if defined(__TI_COMPILER_VERSION__)
-#pragma DATA_SECTION(ADC_config, ".const:ADC_config")
-#pragma DATA_SECTION(adcCC26xxHWAttrs, ".const:adcCC26xxHWAttrs")
-#endif
-
-/* Include drivers */
-#include <ti/drivers/ADC.h>
-#include <ti/drivers/adc/ADCCC26XX.h>
-
-/* ADC objects */
-ADCCC26XX_Object adcCC26xxObjects[CC2650_I3MOTE_ADCCOUNT];
-
-
-const ADCCC26XX_HWAttrs adcCC26xxHWAttrs[CC2650_I3MOTE_ADCCOUNT] = {
- {
- .adcDIO = Board_DIO23_ANALOG,
- .adcCompBInput = ADC_COMPB_IN_AUXIO7,
- .refSource = ADCCC26XX_FIXED_REFERENCE,
- .samplingDuration = ADCCC26XX_SAMPLING_DURATION_2P7_US,
- .inputScalingEnabled = true,
- .triggerSource = ADCCC26XX_TRIGGER_MANUAL
- },
- {
- .adcDIO = Board_DIO24_ANALOG,
- .adcCompBInput = ADC_COMPB_IN_AUXIO6,
- .refSource = ADCCC26XX_FIXED_REFERENCE,
- .samplingDuration = ADCCC26XX_SAMPLING_DURATION_2P7_US,
- .inputScalingEnabled = true,
- .triggerSource = ADCCC26XX_TRIGGER_MANUAL
- },
- {
- .adcDIO = Board_DIO25_ANALOG,
- .adcCompBInput = ADC_COMPB_IN_AUXIO5,
- .refSource = ADCCC26XX_FIXED_REFERENCE,
- .samplingDuration = ADCCC26XX_SAMPLING_DURATION_2P7_US,
- .inputScalingEnabled = true,
- .triggerSource = ADCCC26XX_TRIGGER_MANUAL
- },
- {
- .adcDIO = Board_DIO26_ANALOG,
- .adcCompBInput = ADC_COMPB_IN_AUXIO4,
- .refSource = ADCCC26XX_FIXED_REFERENCE,
- .samplingDuration = ADCCC26XX_SAMPLING_DURATION_2P7_US,
- .inputScalingEnabled = true,
- .triggerSource = ADCCC26XX_TRIGGER_MANUAL
- },
- {
- .adcDIO = Board_DIO27_ANALOG,
- .adcCompBInput = ADC_COMPB_IN_AUXIO3,
- .refSource = ADCCC26XX_FIXED_REFERENCE,
- .samplingDuration = ADCCC26XX_SAMPLING_DURATION_2P7_US,
- .inputScalingEnabled = true,
- .triggerSource = ADCCC26XX_TRIGGER_MANUAL
- },
- {
- .adcDIO = Board_DIO28_ANALOG,
- .adcCompBInput = ADC_COMPB_IN_AUXIO2,
- .refSource = ADCCC26XX_FIXED_REFERENCE,
- .samplingDuration = ADCCC26XX_SAMPLING_DURATION_2P7_US,
- .inputScalingEnabled = true,
- .triggerSource = ADCCC26XX_TRIGGER_MANUAL
- },
- {
- .adcDIO = Board_DIO29_ANALOG,
- .adcCompBInput = ADC_COMPB_IN_AUXIO1,
- .refSource = ADCCC26XX_FIXED_REFERENCE,
- .samplingDuration = ADCCC26XX_SAMPLING_DURATION_2P7_US,
- .inputScalingEnabled = true,
- .triggerSource = ADCCC26XX_TRIGGER_MANUAL
- },
- {
- .adcDIO = Board_DIO30_ANALOG,
- .adcCompBInput = ADC_COMPB_IN_AUXIO0,
- .refSource = ADCCC26XX_FIXED_REFERENCE,
- .samplingDuration = ADCCC26XX_SAMPLING_DURATION_10P9_MS,
- .inputScalingEnabled = true,
- .triggerSource = ADCCC26XX_TRIGGER_MANUAL
- },
- {
- .adcDIO = PIN_UNASSIGNED,
- .adcCompBInput = ADC_COMPB_IN_DCOUPL,
- .refSource = ADCCC26XX_FIXED_REFERENCE,
- .samplingDuration = ADCCC26XX_SAMPLING_DURATION_2P7_US,
- .inputScalingEnabled = true,
- .triggerSource = ADCCC26XX_TRIGGER_MANUAL
- },
- {
- .adcDIO = PIN_UNASSIGNED,
- .adcCompBInput = ADC_COMPB_IN_VSS,
- .refSource = ADCCC26XX_FIXED_REFERENCE,
- .samplingDuration = ADCCC26XX_SAMPLING_DURATION_2P7_US,
- .inputScalingEnabled = true,
- .triggerSource = ADCCC26XX_TRIGGER_MANUAL
- },
- {
- .adcDIO = PIN_UNASSIGNED,
- .adcCompBInput = ADC_COMPB_IN_VDDS,
- .refSource = ADCCC26XX_FIXED_REFERENCE,
- .samplingDuration = ADCCC26XX_SAMPLING_DURATION_2P7_US,
- .inputScalingEnabled = true,
- .triggerSource = ADCCC26XX_TRIGGER_MANUAL
- }
-};
-
-const ADC_Config ADC_config[] = {
- {&ADCCC26XX_fxnTable, &adcCC26xxObjects[0], &adcCC26xxHWAttrs[0]},
- {&ADCCC26XX_fxnTable, &adcCC26xxObjects[1], &adcCC26xxHWAttrs[1]},
- {&ADCCC26XX_fxnTable, &adcCC26xxObjects[2], &adcCC26xxHWAttrs[2]},
- {&ADCCC26XX_fxnTable, &adcCC26xxObjects[3], &adcCC26xxHWAttrs[3]},
- {&ADCCC26XX_fxnTable, &adcCC26xxObjects[4], &adcCC26xxHWAttrs[4]},
- {&ADCCC26XX_fxnTable, &adcCC26xxObjects[5], &adcCC26xxHWAttrs[5]},
- {&ADCCC26XX_fxnTable, &adcCC26xxObjects[6], &adcCC26xxHWAttrs[6]},
- {&ADCCC26XX_fxnTable, &adcCC26xxObjects[7], &adcCC26xxHWAttrs[7]},
- {&ADCCC26XX_fxnTable, &adcCC26xxObjects[8], &adcCC26xxHWAttrs[8]},
- {&ADCCC26XX_fxnTable, &adcCC26xxObjects[9], &adcCC26xxHWAttrs[9]},
- {&ADCCC26XX_fxnTable, &adcCC26xxObjects[10], &adcCC26xxHWAttrs[10]},
- {NULL, NULL, NULL},
-};
-
-/*
- * ========================== ADC end =========================================
- */
diff --git a/Basic-Test-Package/CC2650/Test_CC2650_I2C_Sensors/CC2650_I3M.h b/Basic-Test-Package/CC2650/Test_CC2650_I2C_Sensors/CC2650_I3M.h
+++ /dev/null
@@ -1,324 +0,0 @@
-/*
- * Copyright (c) 2015-2016, Texas Instruments Incorporated
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * * Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- *
- * * Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- *
- * * Neither the name of Texas Instruments Incorporated nor the names of
- * its contributors may be used to endorse or promote products derived
- * from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
- * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
- * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
- * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
- * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
- * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
- * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
- * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-/** ============================================================================
- * @file CC2650_I3MOTE.h
- *
- * @brief CC2650 LaunchPad Board Specific header file.
- *
- * NB! This is the board file for CC2650 LaunchPad PCB version 1.1
- *
- * ============================================================================
- */
-#ifndef __CC2650_I3MOTE_BOARD_H__
-#define __CC2650_I3MOTE_BOARD_H__
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/** ============================================================================
- * Includes
- * ==========================================================================*/
-#include <ti/drivers/PIN.h>
-#include <driverlib/ioc.h>
-
-/** ============================================================================
- * Externs
- * ==========================================================================*/
-extern const PIN_Config BoardGpioInitTable[];
-
-/** ============================================================================
- * Defines
- * ==========================================================================*/
-
-/* Same RF Configuration as 7x7 EM */
-#define CC2650EM_7ID
-#define CC2650_I3MOTE
-
-
-/* Sensors */
-#define Board_INA219_ADDR (0x41)
-#define Board_HDC1000_ADDR (0x43)
-#define Board_HDC1080_ADDR (0x40)
-#define Board_TMP007_ADDR (0x44)
-#define Board_OPT3001_ADDR (0x45)
-#define Board_MPU9250_ADDR (0x68)
-#define Board_BMP280_ADDR (0x77)
-
-
-/* Mapping of pins to board signals using general board aliases
- * <board signal alias> <pin mapping>
- */
-/* Discrete outputs */
-/* I2C */
-
-#define Board_I2C0_SDA0 IOID_23
-#define Board_I2C0_SCL0 IOID_24
-
-#define Board_LEDR IOID_5
-#define Board_LEDG IOID_6
-
-#define Board_LED_ON 1
-#define Board_LED_OFF 0
-
-/* Discrete inputs */
-#define Board_BTN1 IOID_4
-#define Board_BTN2 PIN_UNASSIGNED
-
-/* Debug UART */
-#define Board_UART_RX IOID_2 /* RXD */
-#define Board_UART_TX IOID_3 /* TXD */
-
-/* DAC8730 UART */
-//#define Board_UART_TX IOID_8 /* TCD to DAC*/
-//#define Board_UART_RX IOID_9 /* RXD from DAC */
-
-/* SPI Board */
-#define Board_SPI0_IRQ IOID_10
-#define Board_SPI0_MISO IOID_12
-#define Board_SPI0_MOSI IOID_13
-#define Board_SPI0_CLK IOID_14
-#define Board_SPI0_CSN IOID_15
-
-#define Board_SPI1_MISO IOID_18
-#define Board_SPI1_MOSI IOID_19
-#define Board_SPI1_CLK IOID_20
-#define Board_SPI1_CSN IOID_21
-#define Board_SPI1_IRQ IOID_22
-
-/* Power */
-//#define Board_DIO0 IOID_0 // VCCIO_DAC
-//#define Board_DIO1 IOID_1 // GPS_PWR_nEN
-//#define Board_DIO7 IOID_7 // EH_nBYPASS
-//#define Board_DIO25 IOID_25 // SSM_PWR_nEN
-//#define Board_DIO26 IOID_26 // GPS_PWR_nEN
-//#define Board_DIO27 IOID_27 // VBAT_OK
-//#define Board_DIO28 IOID_28 // SSM_5V_EN
-
-/* Misc */
-//#define Board_DIO11 IOID_11 // BSL
-//#define Board_DIO16 IOID_16 // JTAG_TDO
-//#define Board_DIO17 IOID_17 // JTAG_TDI
-
-
-
-/* Analog */
-#define Board_DIO23_ANALOG PIN_UNASSIGNED
-#define Board_DIO24_ANALOG PIN_UNASSIGNED
-#define Board_DIO25_ANALOG PIN_UNASSIGNED
-#define Board_DIO26_ANALOG PIN_UNASSIGNED
-#define Board_DIO27_ANALOG PIN_UNASSIGNED
-#define Board_DIO28_ANALOG PIN_UNASSIGNED
-#define Board_DIO29_ANALOG PIN_UNASSIGNED
-#define Board_DIO30_ANALOG PIN_UNASSIGNED
-
-
-/* PWM outputs */
-#define Board_PWMPIN0 PIN_UNASSIGNED
-#define Board_PWMPIN1 PIN_UNASSIGNED
-#define Board_PWMPIN2 PIN_UNASSIGNED
-#define Board_PWMPIN3 PIN_UNASSIGNED
-#define Board_PWMPIN4 PIN_UNASSIGNED
-#define Board_PWMPIN5 PIN_UNASSIGNED
-#define Board_PWMPIN6 PIN_UNASSIGNED
-#define Board_PWMPIN7 PIN_UNASSIGNED
-
-
-/** ============================================================================
- * Instance identifiers
- * ==========================================================================*/
-/* Generic I2C instance identifiers */
-#define Board_I2C CC2650_I3MOTE_I2C0
-/* Generic SPI instance identifiers */
-#define Board_SPI0 CC2650_I3MOTE_SPI0
-#define Board_SPI1 CC2650_I3MOTE_SPI1
-/* Generic UART instance identifiers */
-#define Board_UART CC2650_I3MOTE_UART0
-/* Generic Crypto instance identifiers */
-#define Board_CRYPTO CC2650_I3MOTE_CRYPTO0
-/* Generic GPTimer instance identifiers */
-#define Board_GPTIMER0A CC2650_I3MOTE_GPTIMER0A
-#define Board_GPTIMER0B CC2650_I3MOTE_GPTIMER0B
-#define Board_GPTIMER1A CC2650_I3MOTE_GPTIMER1A
-#define Board_GPTIMER1B CC2650_I3MOTE_GPTIMER1B
-#define Board_GPTIMER2A CC2650_I3MOTE_GPTIMER2A
-#define Board_GPTIMER2B CC2650_I3MOTE_GPTIMER2B
-#define Board_GPTIMER3A CC2650_I3MOTE_GPTIMER3A
-#define Board_GPTIMER3B CC2650_I3MOTE_GPTIMER3B
-/* Generic PWM instance identifiers */
-#define Board_PWM0 CC2650_I3MOTE_PWM0
-#define Board_PWM1 CC2650_I3MOTE_PWM1
-#define Board_PWM2 CC2650_I3MOTE_PWM2
-#define Board_PWM3 CC2650_I3MOTE_PWM3
-#define Board_PWM4 CC2650_I3MOTE_PWM4
-#define Board_PWM5 CC2650_I3MOTE_PWM5
-#define Board_PWM6 CC2650_I3MOTE_PWM6
-#define Board_PWM7 CC2650_I3MOTE_PWM7
-
-/** ============================================================================
- * Number of peripherals and their names
- * ==========================================================================*/
-
-/*!
- * @def CC2650_I3MOTE_I2CName
- * @brief Enum of I2C names on the CC2650 dev board
- */
-typedef enum CC2650_I3MOTE_I2CName {
- CC2650_I3MOTE_I2C0 = 0,
-
- CC2650_I3MOTE_I2CCOUNT
-} CC2650_I3MOTE_I2CName;
-
-/*!
- * @def CC2650_I3MOTE_CryptoName
- * @brief Enum of Crypto names on the CC2650 dev board
- */
-typedef enum CC2650_I3MOTE_CryptoName {
- CC2650_I3MOTE_CRYPTO0 = 0,
-
- CC2650_I3MOTE_CRYPTOCOUNT
-} CC2650_I3MOTE_CryptoName;
-
-
-/*!
- * @def CC2650_I3MOTE_SPIName
- * @brief Enum of SPI names on the CC2650 dev board
- */
-typedef enum CC2650_I3MOTE_SPIName {
- CC2650_I3MOTE_SPI0 = 0,
- CC2650_I3MOTE_SPI1,
-
- CC2650_I3MOTE_SPICOUNT
-} CC2650_I3MOTE_SPIName;
-
-/*!
- * @def CC2650_I3MOTE_UARTName
- * @brief Enum of UARTs on the CC2650 dev board
- */
-typedef enum CC2650_I3MOTE_UARTName {
- CC2650_I3MOTE_UART0 = 0,
-
- CC2650_I3MOTE_UARTCOUNT
-} CC2650_I3MOTE_UARTName;
-
-/*!
- * @def CC2650_I3MOTE_UdmaName
- * @brief Enum of DMA buffers
- */
-typedef enum CC2650_I3MOTE_UdmaName {
- CC2650_I3MOTE_UDMA0 = 0,
-
- CC2650_I3MOTE_UDMACOUNT
-} CC2650_I3MOTE_UdmaName;
-
-/*!
- * @def CC2650_I3MOTE_GPTimerName
- * @brief Enum of GPTimer parts
- */
-typedef enum CC2650_I3MOTE_GPTimerName
-{
- CC2650_I3MOTE_GPTIMER0A = 0,
- CC2650_I3MOTE_GPTIMER0B,
- CC2650_I3MOTE_GPTIMER1A,
- CC2650_I3MOTE_GPTIMER1B,
- CC2650_I3MOTE_GPTIMER2A,
- CC2650_I3MOTE_GPTIMER2B,
- CC2650_I3MOTE_GPTIMER3A,
- CC2650_I3MOTE_GPTIMER3B,
- CC2650_I3MOTE_GPTIMERPARTSCOUNT
-} CC2650_I3MOTE_GPTimerName;
-
-/*!
- * @def CC2650_I3MOTE_GPTimers
- * @brief Enum of GPTimers
- */
-typedef enum CC2650_I3MOTE_GPTimers
-{
- CC2650_I3MOTE_GPTIMER0 = 0,
- CC2650_I3MOTE_GPTIMER1,
- CC2650_I3MOTE_GPTIMER2,
- CC2650_I3MOTE_GPTIMER3,
- CC2650_I3MOTE_GPTIMERCOUNT
-} CC2650_I3MOTE_GPTimers;
-
-/*!
- * @def CC2650_I3MOTE_PWM
- * @brief Enum of PWM outputs on the board
- */
-typedef enum CC2650_I3MOTE_PWM
-{
- CC2650_I3MOTE_PWM0 = 0,
- CC2650_I3MOTE_PWM1,
- CC2650_I3MOTE_PWM2,
- CC2650_I3MOTE_PWM3,
- CC2650_I3MOTE_PWM4,
- CC2650_I3MOTE_PWM5,
- CC2650_I3MOTE_PWM6,
- CC2650_I3MOTE_PWM7,
- CC2650_I3MOTE_PWMCOUNT
-} CC2650_I3MOTE_PWM;
-
-/*!
- * @def CC2650_I3MOTE_ADCBufName
- * @brief Enum of ADCs
- */
-typedef enum CC2650_I3MOTE_ADCBufName {
- CC2650_I3MOTE_ADCBuf0 = 0,
- CC2650_I3MOTE_ADCBufCOUNT
-} CC2650_I3MOTE_ADCBufName;
-
-
-/*!
- * @def CC2650_I3MOTE_ADCName
- * @brief Enum of ADCs
- */
-typedef enum CC2650_I3MOTE_ADCName {
- CC2650_I3MOTE_ADC0 = 0,
- CC2650_I3MOTE_ADC1,
- CC2650_I3MOTE_ADC2,
- CC2650_I3MOTE_ADC3,
- CC2650_I3MOTE_ADC4,
- CC2650_I3MOTE_ADC5,
- CC2650_I3MOTE_ADC6,
- CC2650_I3MOTE_ADC7,
- CC2650_I3MOTE_ADCDCOUPL,
- CC2650_I3MOTE_ADCVSS,
- CC2650_I3MOTE_ADCVDDS,
- CC2650_I3MOTE_ADCCOUNT
-} CC2650_I3MOTE_ADCName;
-
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* __CC2650_I3MOTE_BOARD_H__ */
diff --git a/Basic-Test-Package/CC2650/Test_CC2650_I2C_Sensors/main.c b/Basic-Test-Package/CC2650/Test_CC2650_I2C_Sensors/main.c
index 9f25b51b652f170d45a501c79ca59fb4dfe09415..afb520e338e072d42db8c7b24405f03ec98e8998 100644 (file)
/* XDCtools Header files */
#include <xdc/std.h>
#include <xdc/runtime/System.h>
+#include <xdc/runtime/Error.h>
/* BIOS Header files */
#include <ti/sysbios/BIOS.h>
#include <ti/sysbios/knl/Task.h>
#include <ti/sysbios/knl/Clock.h>
#include <ti/sysbios/knl/Semaphore.h>
+#include <ti/sysbios/knl/Event.h>
/* TI-RTOS Header files */
#include <ti/drivers/I2C.h>
#include "uart_printf.h"
-#define TASKSTACKSIZE 2048
+#define TASKSTACKSIZE (1024)
Task_Struct task0Struct;
Char task0Stack[TASKSTACKSIZE];
Task_Struct task1Struct;
Char task1Stack[TASKSTACKSIZE];
+Task_Struct task2Struct;
+Char task2Stack[TASKSTACKSIZE];
+
#define OPT3001
#define HDC1080
#define BMP280
-#define MPU9250
#define TMP007
-/* Pin driver handle */
-static PIN_Handle ledPinHandle;
-static PIN_State ledPinState;
+#undef MPU9250
+#define LISHH12
+
/* Semaphore */
Semaphore_Struct semStruct;
Semaphore_Handle semHandle;
+Event_Handle myEvent;
+Error_Block eb;
+
+/* Pin driver handle */
+static PIN_Handle ledPinHandle;
+static PIN_State ledPinState;
+
/*
* Application LED pin configuration table:
* - All LEDs board LEDs are off.
PIN_TERMINATE
};
+/* Global memory storage for a PIN_Config table */
+static PIN_Handle buttonPinHandle;
+static PIN_State buttonPinState;
+
+PIN_Config buttonPinTable[] = {
+ Board_BUTTON0 | PIN_INPUT_EN | PIN_PULLUP | PIN_IRQ_NEGEDGE,
+ //Board_BUTTON1 | PIN_INPUT_EN | PIN_PULLUP | PIN_IRQ_NEGEDGE,
+ PIN_TERMINATE
+};
+
+
+void buttonCallbackFxn(PIN_Handle handle, PIN_Id pinId) {
+
+ PIN_setOutputValue(ledPinHandle, Board_LED0,0);
+ PIN_setOutputValue(ledPinHandle, Board_LED1,0);
+ CPUdelay(8000*200);
+ PIN_setOutputValue(ledPinHandle, Board_LED0,1);
+ PIN_setOutputValue(ledPinHandle, Board_LED1,1);
+
+ //Event_post(myEvent,Event_Id_02);
+ Semaphore_post(semHandle);
+
+}
+
+
+Void uartFxn(UArg arg0, UArg arg1)
+{
+ char input;
+
+ while (1) {
+ // Blocking Read
+ input=uart_getch();
+ if(input=='g'){
+ //Event_post(myEvent,Event_Id_02);
+ Semaphore_post(semHandle);
+ }
+ Task_sleep((UInt)arg0);
+ }
+
+}
+
Void taskFxn(UArg arg0, UArg arg1)
{
uint8_t txBuffer[1];
I2C_Params i2cParams;
I2C_Transaction i2cTransaction;
+ int flagerr=0;
+
+ //UInt events;
+
/* Create I2C for usage */
I2C_Params_init(&i2cParams);
i2cParams.bitRate = I2C_100kHz;
System_abort("Error Initializing I2C\r\n");
}
- //while(1) {
+ System_printf("I2C Initialized\r\n");
+
+ System_printf("Press button:\r\n");
+ Semaphore_pend(semHandle, BIOS_WAIT_FOREVER);
+
+
+ /* Start test */
+ PIN_setOutputValue(ledPinHandle, Board_LED0,0);
+ PIN_setOutputValue(ledPinHandle, Board_LED1,0);
+
+ //while(1)
{
#ifdef OPT3001
if (I2C_transfer(i2c, &i2cTransaction)) {
uint16_t data = (rxBuffer[0] << 8) | (rxBuffer[1] << 0);
if (data != 0x5449) {
- PIN_setOutputValue(ledPinHandle, Board_LED0,1);
- Task_exit();
+ Event_post(myEvent, Event_Id_00);
+ flagerr=1;
}
System_printf("OPT3001 ID 0x5449: %x\r\n",data);
}else{
- PIN_setOutputValue(ledPinHandle, Board_LED0,1);
- Task_exit();
+ System_printf("OPT3001 I2c Transaction Failed\r\n");
+ Event_post(myEvent, Event_Id_00);
+ flagerr=1;
}
#endif
if (I2C_transfer(i2c, &i2cTransaction)) {
uint16_t data = (rxBuffer[0] << 8) | (rxBuffer[1] << 0);
if (data != 0x1050) {
- PIN_setOutputValue(ledPinHandle, Board_LED0,1);
- Task_exit();
+ Event_post(myEvent, Event_Id_00);
+ flagerr=1;
}
//System_printf("HDC1080 Manufactured ID 0x5449: %x\n",data);
System_printf("HDC1080 Device ID 0x1050: %x\r\n",data);
}
else{
- PIN_setOutputValue(ledPinHandle, Board_LED0,1);
- Task_exit();
+ System_printf("HDC1080 I2c Transaction Failed\r\n");
+ Event_post(myEvent, Event_Id_00);
+ flagerr=1;
}
#endif
#ifdef TMP007
- //txBuffer[0] = 0xFE;
/*
txBuffer[0] = 0x1E;
i2cTransaction.slaveAddress = Board_TMP007_ADDR;
if (I2C_transfer(i2c, &i2cTransaction)) {
uint16_t data = (rxBuffer[0] << 8) | (rxBuffer[1] << 0);
if (data != 0x5449) {
- PIN_setOutputValue(ledPinHandle, Board_LED0,1);
- Task_exit();
+ Event_post(myEvent, Event_Id_00);
+ flagerr=1;
}
System_printf("TMP007 Manufactured ID 0x5449: %x\r\n",data);
}else{
- PIN_setOutputValue(ledPinHandle, Board_LED0,1);
- Task_exit();
+ Event_post(myEvent, Event_Id_00);
+ flagerr=1;
}
*/
if (I2C_transfer(i2c, &i2cTransaction)) {
uint16_t data = (rxBuffer[0] << 8) | (rxBuffer[1] << 0);
if (data != 0x0078) {
- PIN_setOutputValue(ledPinHandle, Board_LED0,1);
- Task_exit();
+ Event_post(myEvent, Event_Id_00);
+ flagerr=1;
}
System_printf("TMP007 Device ID 0x0078: %x\r\n",data);
}else{
- PIN_setOutputValue(ledPinHandle, Board_LED0,1);
- Task_exit();
+ System_printf("TMP007 I2c Transaction Failed\r\n");
+ Event_post(myEvent, Event_Id_00);
+ flagerr=1;
}
#endif
if (I2C_transfer(i2c, &i2cTransaction)) {
uint16_t data = (rxBuffer[0]);
if (data != 0x58) {
- PIN_setOutputValue(ledPinHandle, Board_LED0,1);
- Task_exit();
+ Event_post(myEvent, Event_Id_00);
+ flagerr=1;
}
System_printf("BMP280 ID 0x58: %x\r\n",data);
}else{
- PIN_setOutputValue(ledPinHandle, Board_LED0,1);
- Task_exit();
+ System_printf("BMP280 I2c Transaction Failed\r\n");
+ Event_post(myEvent, Event_Id_00);
+ flagerr=1;
}
#endif
if (I2C_transfer(i2c, &i2cTransaction)) {
uint8_t data = rxBuffer[0];
if (data != 0x71) {
- PIN_setOutputValue(ledPinHandle, Board_LED0,1);
- Task_exit();
+ Event_post(myEvent, Event_Id_00);
+ flagerr=1;
}
System_printf("MPU9250 WHOIAM 0x71: %x\r\n",data);
}else{
- PIN_setOutputValue(ledPinHandle, Board_LED0,1);
- Task_exit();
+ System_printf("MPU9250 I2c Transaction Failed\r\n");
+ Event_post(myEvent, Event_Id_00);
+ flagerr=1;
+ }
+#endif
+
+#ifdef LISHH12
+
+ txBuffer[0] = 0x0F;
+ i2cTransaction.slaveAddress = Board_LISHH12_ADDR;
+ i2cTransaction.writeBuf = txBuffer;
+ i2cTransaction.writeCount = 1;
+ i2cTransaction.readBuf = rxBuffer;
+ i2cTransaction.readCount = 1;
+
+ if (I2C_transfer(i2c, &i2cTransaction)) {
+ uint8_t data = rxBuffer[0];
+ if (data != 0x41) {
+ Event_post(myEvent, Event_Id_00);
+ flagerr=1;
+ }
+ System_printf("LISHH12 WHOIAM 0x41: %x\r\n",data);
+ }else{
+ System_printf("LISHH12 I2c Transaction Failed\r\n");
+ Event_post(myEvent, Event_Id_00);
+ flagerr=1;
}
#endif
- Semaphore_post(semHandle);
- System_printf("***\r\n");
+ /* OK! */
+ if(flagerr==0){
+ Event_post(myEvent, Event_Id_01);
+ System_printf("***\r\n");
+ System_flush();
+ }else{
+ System_printf("KO!\r\n");
+ System_flush();
+ }
+
Task_sleep((UInt)arg0);
}
*/
Void heartBeatFxn(UArg arg0, UArg arg1)
{
- Semaphore_pend(semHandle, BIOS_WAIT_FOREVER);
- while (1) {
+
+ UInt events;
+
+ events=Event_pend(myEvent,Event_Id_NONE,Event_Id_00+Event_Id_01,BIOS_WAIT_FOREVER);
+
+ if(events & Event_Id_00){
+ while (1)
+ {
+ Task_sleep((UInt)arg0);
+ PIN_setOutputValue(ledPinHandle, Board_LED0,!PIN_getOutputValue(Board_LED0));
+ }
+ }
+
+ if(events & Event_Id_01){
+ while (1)
+ {
Task_sleep((UInt)arg0);
- //PIN_setOutputValue(ledPinHandle, Board_LED0,!PIN_getOutputValue(Board_LED0));
PIN_setOutputValue(ledPinHandle, Board_LED1,!PIN_getOutputValue(Board_LED1));
- }
+ }
+ }
}
+
+
/*
* ======== main ========
*/
+
+
int main(void)
{
Task_Params taskParams;
+
Semaphore_Params semParams;
/* Call board init functions */
Board_initGeneral();
Board_initI2C();
// Board_initSPI();
- // Board_initUART();
+ Board_initUART();
// Board_initWatchdog();
+ /* Default instance configuration params */
+ Error_init(&eb);
+ myEvent = Event_create(NULL,&eb);
+ if (myEvent == NULL) {
+ System_abort("Event create failed");
+ }
+
+
+
UART_Params uartParams;
UART_Params_init(&uartParams);
uartParams.baudRate = 115200;
+ //uartParams.readEcho = UART_ECHO_OFF;
UartPrintf_init(UART_open(Board_UART, &uartParams));
- System_printf("Uart open\r\n");
+ /* Construct Test Task thread */
+ Task_Params_init(&taskParams);
+ taskParams.arg0 = 100000 / Clock_tickPeriod;
+ taskParams.stackSize = TASKSTACKSIZE;
+ taskParams.stack = &task1Stack;
+ Task_construct(&task1Struct, (Task_FuncPtr)taskFxn, &taskParams, NULL);
+
/* Construct heartBeat Task thread */
Task_Params_init(&taskParams);
taskParams.stack = &task0Stack;
Task_construct(&task0Struct, (Task_FuncPtr)heartBeatFxn, &taskParams, NULL);
-
+ /* Construct Uart Task thread */
Task_Params_init(&taskParams);
- taskParams.arg0 = 2000000 / Clock_tickPeriod;
+ taskParams.arg0 = 100000 / Clock_tickPeriod;
taskParams.stackSize = TASKSTACKSIZE;
- taskParams.stack = &task1Stack;
- Task_construct(&task1Struct, (Task_FuncPtr)taskFxn, &taskParams, NULL);
+ taskParams.stack = &task2Stack;
+ Task_construct(&task2Struct, (Task_FuncPtr)uartFxn, &taskParams, NULL);
+
- /* Construct Semaphore */
+ /* Construct Semaphore and Obtain instance handle */
Semaphore_Params_init(&semParams);
- Semaphore_construct(&semStruct, 0, &semParams);
+ Semaphore_construct(&semStruct,0, &semParams);
semHandle = Semaphore_handle(&semStruct);
+ /* Setup callback for button pins */
+ buttonPinHandle = PIN_open(&buttonPinState, buttonPinTable);
+ if(!buttonPinHandle) {
+ System_abort("Error initializing button pins\n");
+ }
+ if (PIN_registerIntCb(buttonPinHandle, &buttonCallbackFxn) != 0) {
+ System_abort("Error registering button callback function");
+ }
/* Open LED pins */
ledPinHandle = PIN_open(&ledPinState, ledPinTable);
System_abort("Error initializing board LED pins\n");
}
- PIN_setOutputValue(ledPinHandle, Board_LED0, 0);
- PIN_setOutputValue(ledPinHandle, Board_LED1, 0);
+ PIN_setOutputValue(ledPinHandle, Board_LED0,1);
+ PIN_setOutputValue(ledPinHandle, Board_LED1,1);
/* Start BIOS */
BIOS_start();
diff --git a/Basic-Test-Package/CC2650/Test_CC2650_I2C_Sensors/uart_printf.c b/Basic-Test-Package/CC2650/Test_CC2650_I2C_Sensors/uart_printf.c
index 140b3daf4331cfcbc2f8e142b210a7c903adaf91..89cc8b148a313d92d9433d015689bc22d87a4e48 100644 (file)
its documentation for any purpose.\r
\r
YOU FURTHER ACKNOWLEDGE AND AGREE THAT THE SOFTWARE AND DOCUMENTATION ARE\r
- PROVIDED \93AS IS\94 WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESS OR IMPLIED,\r
+ PROVIDED �AS IS� WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESS OR IMPLIED,\r
INCLUDING WITHOUT LIMITATION, ANY WARRANTY OF MERCHANTABILITY, TITLE,\r
NON-INFRINGEMENT AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL\r
TEXAS INSTRUMENTS OR ITS LICENSORS BE LIABLE OR OBLIGATED UNDER CONTRACT,\r
\r
uartPrintf_tail = curHead;\r
}\r
+\r
+\r
+char uart_getch()\r
+{\r
+ char input;\r
+\r
+ if (NULL == hUart)\r
+ return 0;\r
+\r
+ // Blocking Read\r
+ UART_read(hUart,&input,1);\r
+ return input;\r
+}\r
+\r
+\r
diff --git a/Basic-Test-Package/CC2650/Test_CC2650_I2C_Sensors/uart_printf.h b/Basic-Test-Package/CC2650/Test_CC2650_I2C_Sensors/uart_printf.h
index 84b82fe376e0e24374e32053887f8aa5999b264d..600ada4f4f5eec07a8e65402d027cc767471b8bc 100644 (file)
its documentation for any purpose.\r
\r
YOU FURTHER ACKNOWLEDGE AND AGREE THAT THE SOFTWARE AND DOCUMENTATION ARE\r
- PROVIDED \93AS IS\94 WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESS OR IMPLIED,\r
+ PROVIDED �AS IS� WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESS OR IMPLIED,\r
INCLUDING WITHOUT LIMITATION, ANY WARRANTY OF MERCHANTABILITY, TITLE,\r
NON-INFRINGEMENT AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL\r
TEXAS INSTRUMENTS OR ITS LICENSORS BE LIABLE OR OBLIGATED UNDER CONTRACT,\r
*/\r
void UartPrintf_init(UART_Handle handle);\r
\r
+char uart_getch();\r
\r
#ifdef __cplusplus\r
}\r
diff --git a/Basic-Test-Package/CC2650/Test_CC2650_3wSPI_DAC8730/CC2650_I3M.c b/Basic-Test-Package/CC2650/board/CC2650_I3M.c
similarity index 93%
rename from Basic-Test-Package/CC2650/Test_CC2650_3wSPI_DAC8730/CC2650_I3M.c
rename to Basic-Test-Package/CC2650/board/CC2650_I3M.c
index f3e0087f517cfa9741d6529ff96d98146272a401..64a0050607d83a1448f95e07bb975aa648d8ffca 100644 (file)
rename from Basic-Test-Package/CC2650/Test_CC2650_3wSPI_DAC8730/CC2650_I3M.c
rename to Basic-Test-Package/CC2650/board/CC2650_I3M.c
index f3e0087f517cfa9741d6529ff96d98146272a401..64a0050607d83a1448f95e07bb975aa648d8ffca 100644 (file)
/*
- * Copyright (c) 2016, Texas Instruments Incorporated
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * * Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- *
- * * Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- *
- * * Neither the name of Texas Instruments Incorporated nor the names of
- * its contributors may be used to endorse or promote products derived
- * from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
- * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
- * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
- * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
- * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
- * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
- * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
- * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
/*
diff --git a/Basic-Test-Package/CC2650/Test_CC2650_Blink/CC2650_I3M.h b/Basic-Test-Package/CC2650/board/CC2650_I3M.h
similarity index 97%
rename from Basic-Test-Package/CC2650/Test_CC2650_Blink/CC2650_I3M.h
rename to Basic-Test-Package/CC2650/board/CC2650_I3M.h
index 1ab67d2d8efcda96720e2d526040a255e0d6bdf8..0c8b08b04ce3a012686a19f493fc824f05c3d872 100644 (file)
rename from Basic-Test-Package/CC2650/Test_CC2650_Blink/CC2650_I3M.h
rename to Basic-Test-Package/CC2650/board/CC2650_I3M.h
index 1ab67d2d8efcda96720e2d526040a255e0d6bdf8..0c8b08b04ce3a012686a19f493fc824f05c3d872 100644 (file)
#define Board_OPT3001_ADDR (0x45)
#define Board_MPU9250_ADDR (0x68)
#define Board_BMP280_ADDR (0x77)
+#define Board_LISHH12_ADDR (0x1E)
+
+
/* Mapping of pins to board signals using general board aliases
#define Board_I2C0_SDA0 IOID_23
#define Board_I2C0_SCL0 IOID_24
-#define Board_LEDR IOID_5
#define Board_LEDG IOID_6
+#define Board_LEDR IOID_5
#define Board_LED_ON 1
#define Board_LED_OFF 0
#define Board_BTN1 IOID_4
#define Board_BTN2 PIN_UNASSIGNED
-/* Debug UART */
-#define Board_UART_RX IOID_2 /* RXD */
-#define Board_UART_TX IOID_3 /* TXD */
/* DAC8730 UART */
-//#define Board_UART_TX IOID_8 /* TCD to DAC*/
-//#define Board_UART_RX IOID_9 /* RXD from DAC */
+#ifdef Board_UART1
+ #warning "DAC8730-UART"
+ #define Board_UART_TX IOID_8 // TXD to DAC
+ #define Board_UART_RX IOID_9 // RXD from DAC
+#else
+/* Debug UART */
+ #define Board_UART_RX IOID_2
+ #define Board_UART_TX IOID_3
+#endif
/* SPI Board */
#define Board_SPI0_IRQ IOID_10