ISSDK  1.8
IoT Sensing Software Development Kit
board.h
Go to the documentation of this file.
1 /*
2  * Copyright (c) 2015, Freescale Semiconductor, Inc.
3  * Copyright 2016-2017 NXP
4  * All rights reserved.
5  *
6  * SPDX-License-Identifier: BSD-3-Clause
7  */
8 
9 #ifndef _BOARD_H_
10 #define _BOARD_H_
11 
12 #include "clock_config.h"
13 #include "fsl_gpio.h"
14 
15 /*******************************************************************************
16  * Definitions
17  ******************************************************************************/
18 
19 /* The board name */
20 #define BOARD_NAME "FRDM-K64F"
21 
22 /* The UART to use for debug messages. */
23 #define BOARD_DEBUG_UART_TYPE DEBUG_CONSOLE_DEVICE_TYPE_UART
24 #define BOARD_DEBUG_UART_BASEADDR (uint32_t) UART0
25 #define BOARD_DEBUG_UART_CLKSRC SYS_CLK
26 #define BOARD_DEBUG_UART_CLK_FREQ CLOCK_GetCoreSysClkFreq()
27 #define BOARD_UART_IRQ UART0_RX_TX_IRQn
28 #define BOARD_UART_IRQ_HANDLER UART0_RX_TX_IRQHandler
29 
30 #ifndef BOARD_DEBUG_UART_BAUDRATE
31 #define BOARD_DEBUG_UART_BAUDRATE 115200
32 #endif /* BOARD_DEBUG_UART_BAUDRATE */
33 
34 /* Define the port interrupt number for the board switches */
35 #define BOARD_SW2_GPIO GPIOC
36 #define BOARD_SW2_PORT PORTC
37 #define BOARD_SW2_GPIO_PIN 6U
38 #define BOARD_SW2_IRQ PORTC_IRQn
39 #define BOARD_SW2_IRQ_HANDLER PORTC_IRQHandler
40 #define BOARD_SW2_NAME "SW2"
41 
42 #define BOARD_SW3_GPIO GPIOA
43 #define BOARD_SW3_PORT PORTA
44 #define BOARD_SW3_GPIO_PIN 4U
45 #define BOARD_SW3_IRQ PORTA_IRQn
46 #define BOARD_SW3_IRQ_HANDLER PORTA_IRQHandler
47 #define BOARD_SW3_NAME "SW3"
48 
49 #define LLWU_SW_GPIO BOARD_SW2_GPIO
50 #define LLWU_SW_PORT BOARD_SW2_PORT
51 #define LLWU_SW_GPIO_PIN BOARD_SW2_GPIO_PIN
52 #define LLWU_SW_IRQ BOARD_SW2_IRQ
53 #define LLWU_SW_IRQ_HANDLER BOARD_SW2_IRQ_HANDLER
54 #define LLWU_SW_NAME BOARD_SW2_NAME
55 
56 /* Board led color mapping */
57 #define LOGIC_LED_ON 0U
58 #define LOGIC_LED_OFF 1U
59 #define BOARD_LED_RED_GPIO GPIOB
60 #define BOARD_LED_RED_GPIO_PORT PORTB
61 #define BOARD_LED_RED_GPIO_PIN 22U
62 #define BOARD_LED_GREEN_GPIO GPIOE
63 #define BOARD_LED_GREEN_GPIO_PORT PORTE
64 #define BOARD_LED_GREEN_GPIO_PIN 26U
65 #define BOARD_LED_BLUE_GPIO GPIOB
66 #define BOARD_LED_BLUE_GPIO_PORT PORTB
67 #define BOARD_LED_BLUE_GPIO_PIN 21U
68 
69 #define LED_RED_INIT(output) \
70  GPIO_WritePinOutput(BOARD_LED_RED_GPIO, BOARD_LED_RED_GPIO_PIN, output); \
71  BOARD_LED_RED_GPIO->PDDR |= (1U << BOARD_LED_RED_GPIO_PIN) /*!< Enable target LED_RED */
72 #define LED_RED_ON() \
73  GPIO_ClearPinsOutput(BOARD_LED_RED_GPIO, 1U << BOARD_LED_RED_GPIO_PIN) /*!< Turn on target LED_RED */
74 #define LED_RED_OFF() \
75  GPIO_SetPinsOutput(BOARD_LED_RED_GPIO, 1U << BOARD_LED_RED_GPIO_PIN) /*!< Turn off target LED_RED */
76 #define LED_RED_TOGGLE() \
77  GPIO_TogglePinsOutput(BOARD_LED_RED_GPIO, 1U << BOARD_LED_RED_GPIO_PIN) /*!< Toggle on target LED_RED */
78 
79 #define LED_GREEN_INIT(output) \
80  GPIO_WritePinOutput(BOARD_LED_GREEN_GPIO, BOARD_LED_GREEN_GPIO_PIN, output); \
81  BOARD_LED_GREEN_GPIO->PDDR |= (1U << BOARD_LED_GREEN_GPIO_PIN) /*!< Enable target LED_GREEN */
82 #define LED_GREEN_ON() \
83  GPIO_ClearPinsOutput(BOARD_LED_GREEN_GPIO, 1U << BOARD_LED_GREEN_GPIO_PIN) /*!< Turn on target LED_GREEN */
84 #define LED_GREEN_OFF() \
85  GPIO_SetPinsOutput(BOARD_LED_GREEN_GPIO, 1U << BOARD_LED_GREEN_GPIO_PIN) /*!< Turn off target LED_GREEN */
86 #define LED_GREEN_TOGGLE() \
87  GPIO_TogglePinsOutput(BOARD_LED_GREEN_GPIO, 1U << BOARD_LED_GREEN_GPIO_PIN) /*!< Toggle on target LED_GREEN */
88 
89 #define LED_BLUE_INIT(output) \
90  GPIO_WritePinOutput(BOARD_LED_BLUE_GPIO, BOARD_LED_BLUE_GPIO_PIN, output); \
91  BOARD_LED_BLUE_GPIO->PDDR |= (1U << BOARD_LED_BLUE_GPIO_PIN) /*!< Enable target LED_BLUE */
92 #define LED_BLUE_ON() \
93  GPIO_ClearPinsOutput(BOARD_LED_BLUE_GPIO, 1U << BOARD_LED_BLUE_GPIO_PIN) /*!< Turn on target LED_BLUE */
94 #define LED_BLUE_OFF() \
95  GPIO_SetPinsOutput(BOARD_LED_BLUE_GPIO, 1U << BOARD_LED_BLUE_GPIO_PIN) /*!< Turn off target LED_BLUE */
96 #define LED_BLUE_TOGGLE() \
97  GPIO_TogglePinsOutput(BOARD_LED_BLUE_GPIO, 1U << BOARD_LED_BLUE_GPIO_PIN) /*!< Toggle on target LED_BLUE */
98 
99 /* The SDHC instance/channel used for board */
100 #define BOARD_SDHC_CD_GPIO_IRQ_HANDLER PORTB_IRQHandler
101 
102 /* SDHC base address, clock and card detection pin */
103 #define BOARD_SDHC_BASEADDR SDHC
104 #define BOARD_SDHC_CLKSRC kCLOCK_CoreSysClk
105 #define BOARD_SDHC_CLK_FREQ CLOCK_GetFreq(kCLOCK_CoreSysClk)
106 #define BOARD_SDHC_IRQ SDHC_IRQn
107 #define BOARD_SDHC_CD_GPIO_BASE GPIOE
108 #define BOARD_SDHC_CD_GPIO_PIN 6U
109 #define BOARD_SDHC_CD_PORT_BASE PORTE
110 #define BOARD_SDHC_CD_PORT_IRQ PORTE_IRQn
111 #define BOARD_SDHC_CD_PORT_IRQ_HANDLER PORTE_IRQHandler
112 #define BOARD_SDHC_CD_LOGIC_RISING
113 
114 #define BOARD_ACCEL_I2C_BASEADDR I2C0
116 /* ERPC DSPI configuration */
117 #define ERPC_BOARD_DSPI_BASEADDR SPI0
118 #define ERPC_BOARD_DSPI_BAUDRATE 500000U
119 #define ERPC_BOARD_DSPI_CLKSRC DSPI0_CLK_SRC
120 #define ERPC_BOARD_DSPI_CLK_FREQ CLOCK_GetFreq(DSPI0_CLK_SRC)
121 #define ERPC_BOARD_DSPI_INT_GPIO GPIOB
122 #define ERPC_BOARD_DSPI_INT_PORT PORTB
123 #define ERPC_BOARD_DSPI_INT_PIN 2U
124 #define ERPC_BOARD_DSPI_INT_PIN_IRQ PORTB_IRQn
125 #define ERPC_BOARD_DSPI_INT_PIN_IRQ_HANDLER PORTB_IRQHandler
127 /* DAC base address */
128 #define BOARD_DAC_BASEADDR DAC0
130 /* Board accelerometer driver */
131 #define BOARD_ACCEL_FXOS
133 #if defined(__cplusplus)
134 extern "C" {
135 #endif /* __cplusplus */
137 /*******************************************************************************
138  * API
139  ******************************************************************************/
141 
142 #if defined(__cplusplus)
143 }
144 #endif /* __cplusplus */
145 
146 #endif /* _BOARD_H_ */
void BOARD_InitDebugConsole(void)
Definition: board.c:15