added readme
[tida-00561-firmware-files/tida-00561-firmware-files.git] / Startup / Board.h
1 /*
2  * Copyright (c) 2015, Texas Instruments Incorporated
3  * All rights reserved.
4  *
5  * Redistribution and use in source and binary forms, with or without
6  * modification, are permitted provided that the following conditions
7  * are met:
8  *
9  * *  Redistributions of source code must retain the above copyright
10  *    notice, this list of conditions and the following disclaimer.
11  *
12  * *  Redistributions in binary form must reproduce the above copyright
13  *    notice, this list of conditions and the following disclaimer in the
14  *    documentation and/or other materials provided with the distribution.
15  *
16  * *  Neither the name of Texas Instruments Incorporated nor the names of
17  *    its contributors may be used to endorse or promote products derived
18  *    from this software without specific prior written permission.
19  *
20  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
21  * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
22  * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
23  * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
24  * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
25  * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
26  * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
27  * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
28  * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
29  * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
30  * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
31  */
32 /** ============================================================================
33  *  @file       Board.h
34  *
35  *  @brief      CC2650SENSORTAG Board Specific header file.
36  *
37  *  NB! This is the board file for PCB versions 1.2 and 1.3
38  *
39  *  The CC2650 header file should be included in an application as follows:
40  *  @code
41  *  #include <Board.h>
42  *  @endcode
43  *
44  *  ============================================================================
45  */
46 #ifndef __BOARD_H__
47 #define __BOARD_H__
49 #ifndef __CC2650STK_SENSORTAG_BOARD_H__
50 #define __CC2650STK_SENSORTAG_BOARD_H__
52 #ifdef __cplusplus
53 extern "C" {
54 #endif
56 /** ============================================================================
57  *  Includes
58  *  ==========================================================================*/
59 #include <ti/drivers/PIN.h>
60 #include <driverlib/ioc.h>
63 /** ============================================================================
64  *  Externs
65  *  ==========================================================================*/
66 extern const PIN_Config BoardGpioInitTable[];
68 /** ============================================================================
69  *  Defines
70  *  ==========================================================================*/
72 /* Same RF Configuration as 7x7 EM */
73 #define CC2650EM_7ID
75 /* This PCB version supports magnetometer */
76 #define FEATURE_MAGNETOMETER
78 /* External flash manufacturer and device ID */
79 #define EXT_FLASH_MAN_ID            0xEF
80 #define EXT_FLASH_DEV_ID            0x12
82 /* Mapping of pins to board signals using general board aliases
83  *      <board signal alias>                <pin mapping>
84  */
86 /* Discrete outputs */
87 #define Board_STK_LED1              IOID_10
88 #define Board_STK_LED2              IOID_15
89 #define Board_BUZZER                IOID_21
90 #define Board_LED_ON                1
91 #define Board_LED_OFF               0
92 #define Board_BUZZER_ON             1
93 #define Board_BUZZER_OFF            0
95 /* Discrete inputs */
96 #define Board_KEY_LEFT              IOID_0
97 #define Board_KEY_RIGHT             IOID_4
98 #define Board_RELAY                 IOID_3
100 /* Sensor outputs */
101 #define Board_MPU_INT               IOID_7
102 #define Board_TMP_RDY               IOID_1
104 /* I2C */
105 #define Board_I2C0_SDA0             IOID_5
106 #define Board_I2C0_SCL0             IOID_6
107 #define Board_I2C0_SDA1             IOID_8
108 #define Board_I2C0_SCL1             IOID_9
110 /* SPI */
111 #define Board_SPI_FLASH_CS          IOID_14
112 #define Board_SPI_DEVPK_CS          IOID_20
113 #define Board_FLASH_CS_ON           0
114 #define Board_FLASH_CS_OFF          1
115 #define Board_DEVPK_CS_ON           1
116 #define Board_DEVPK_CS_OFF          0
118 #define Board_SPI0_MISO             IOID_18
119 #define Board_SPI0_MOSI             IOID_19
121 #ifdef PH_SENSOR_DK
122 #define Board_SPI0_CLK              IOID_11             //deb_gp change SCLK routing. 
123 #else
124 #define Board_SPI0_CLK              IOID_17
125 #endif
127 #define Board_SPI0_CSN              PIN_UNASSIGNED
128 #define Board_SPI1_MISO             PIN_UNASSIGNED
129 #define Board_SPI1_MOSI             PIN_UNASSIGNED
130 #define Board_SPI1_CLK              PIN_UNASSIGNED
131 #define Board_SPI1_CSN              PIN_UNASSIGNED
133 /* UART when connected to SRF06EB */
134 #define Board_EB_UART_TX            IOID_16
135 #define Board_EB_UART_RX            IOID_17
137 /* Power control */
138 #define Board_MPU_POWER             IOID_12
139 #define Board_MPU_POWER_ON          1
140 #define Board_MPU_POWER_OFF         0
142 /* Audio */
143 #define Board_MIC_POWER             IOID_13
144 #define Board_MIC_POWER_ON          1
145 #define Board_MIC_POWER_OFF         0
146 #define Board_AUDIO_DI              IOID_2
148 #ifndef PH_SENSOR_DK            //deb_gp 
149 #define Board_AUDIO_CLK             IOID_11
150 #endif 
151 /* UART pins used by driver */
152 #define Board_UART_TX               Board_DP5_UARTTX
153 #define Board_UART_RX               Board_DP4_UARTRX
155 /* DevPack common */
156 #define Board_AUDIOFS_TDO           IOID_16
157 #define Board_AUDIODO               IOID_22
158 #define Board_DP2                   IOID_23
159 #define Board_DP1                   IOID_24
160 #define Board_DP0                   IOID_25
161 #define Board_DP3                   IOID_27
162 #define Board_DP4_UARTRX            IOID_28
163 #define Board_DP5_UARTTX            IOID_29
164 #define Board_DEVPK_ID              IOID_30
166 /* These #defines allow us to reuse TI-RTOS across other device families */
167 #define     Board_LED1              Board_STK_LED1
168 #define     Board_LED2              Board_STK_LED2
169 #define     Board_LED0              Board_LED2
171 #define     Board_BUTTON0           Board_KEY_LEFT
172 #define     Board_BUTTON1           Board_KEY_RIGHT
174 #define     Board_I2C0              Board_I2C
175 #define     Board_I2C_TMP           Board_I2C0
176 #define     Board_UART0             Board_UART
177 #define     Board_AES0              Board_AES
178 #define     Board_WATCHDOG0         Board_WATCHDOG
180 #define     Board_initGeneral() { \
181     Power_init(); \
182     if (PIN_init(BoardGpioInitTable) != PIN_SUCCESS) \
183         {System_abort("Error with PIN_init\n"); \
184     } \
187 #define     Board_initGPIO()
188 #define     Board_initPWM()         PWM_init()
189 #define     Board_initI2C()         I2C_init()
190 #define     Board_initSPI()         SPI_init()
191 #define     Board_initUART()        UART_init()
192 #define     Board_initWatchdog()    Watchdog_init()
193 #define     GPIO_toggle(n)
194 #define     GPIO_write(n,m)
196 /* Board specific I2C addresses */
198 /* Interface #0 */
199 #define     Board_HDC1000_ADDR      (0x43)
200 #define     Board_TMP007_ADDR       (0x44)
201 #define     Board_OPT3001_ADDR      (0x45)
202 #define     Board_BMP280_ADDR       (0x77)
204 /* Interface #1 */
205 #define     Board_MPU9250_ADDR      (0x68)
206 #define     Board_MPU9250_MAG_ADDR  (0x0C)
209 /** ============================================================================
210  *  Instance identifiers
211  *  ==========================================================================*/
212 /* Generic I2C instance identifiers */
213 #define Board_I2C                   CC2650STK_I2C0
214 /* Generic PDM instance identifiers */
215 #define Board_PDM                   CC2650STK_PDM0
216 /* Generic SPI instance identifiers */
217 #define Board_SPI0                  CC2650STK_SPI0
218 #define Board_SPI1                  CC2650STK_SPI1
219 /* Generic UART instance identifiers */
220 #define Board_UART                  CC2650STK_UART0
223 /** ============================================================================
224  *  Number of peripherals and their names
225  *  ==========================================================================*/
227 /*!
228  *  @def    CC2650STK_I2CName
229  *  @brief  Enum of I2C names on the CC2650 dev board
230  */
231 typedef enum CC2650STK_I2CName {
232     CC2650STK_I2C0 = 0,
234     CC2650STK_I2CCOUNT
235 } CC2650STK_I2CName;
237 /*!
238  *  @def    CC2650STK_CryptoName
239  *  @brief  Enum of Crypto names on the CC2650 dev board
240  */
241 typedef enum CC2650STK_CryptoName {
242     CC2650STK_CRYPTO0 = 0,
244     CC2650STK_CRYPTOCOUNT
245 } CC2650STK_CryptoName;
247 /*!
248  *  @def    CC2650STK_PdmName
249  *  @brief  Enum of PDM names on the CC2650 dev board
250  */
251 typedef enum CC2650STK_PDMName {
252     CC2650STK_PDM0 = 0,
253     CC2650STK_PDMCOUNT
254 } CC2650STK_PDMName;
256 /*!
257  *  @def    CC2650STK_SPIName
258  *  @brief  Enum of SPI names on the CC2650 dev board
259  */
260 typedef enum CC2650STK_SPIName {
261     CC2650STK_SPI0 = 0,
262     CC2650STK_SPI1,
264     CC2650STK_SPICOUNT
265 } CC2650STK_SPIName;
267 /*!
268  *  @def    CC2650STK_TRNGName
269  *  @brief  Enum of TRNG names on the board
270  */
271 typedef enum CC2650STK_TRNGName {
272     CC2650STK_TRNG0 = 0,
273     CC2650STK_TRNGCOUNT
274 } CC2650STK_TRNGName;
276 /*!
277  *  @def    CC2650STK_UARTName
278  *  @brief  Enum of UARTs on the CC2650 dev board
279  */
280 typedef enum CC2650STK_UARTName {
281     CC2650STK_UART0 = 0,
283     CC2650STK_UARTCOUNT
284 } CC2650STK_UARTName;
286 /*!
287  *  @def    CC2650STK_UdmaName
288  *  @brief  Enum of DMA buffers
289  */
290 typedef enum CC2650STK_UdmaName {
291     CC2650STK_UDMA0 = 0,
293     CC2650STK_UDMACOUNT
294 } CC2650STK_UdmaName;
296 #ifdef __cplusplus
298 #endif
300 #endif /* __BOARD_H__ */
301 #endif /* __CC2650STK_SENSORTAG_BOARD_H__ */