ISSDK  1.8
IoT Sensing Software Development Kit
frdm_k64f.h
Go to the documentation of this file.
1 /*
2  * Copyright (c) 2016, Freescale Semiconductor, Inc.
3  * Copyright 2016-2017 NXP
4  * All rights reserved.
5  *
6  * SPDX-License-Identifier: BSD-3-Clause
7  */
8 
9 /**
10  * @file frdm_k64f.h
11  * @brief The frdm_k64f.h file defines GPIO pin mappings for FRDM-K64F board
12 */
13 
14 #ifndef FRDM_K64F_H_
15 #define FRDM_K64F_H_
16 
17 #include "pin_mux.h"
18 #include "fsl_smc.h"
19 #include "MK64F12.h"
20 #include "RTE_Device.h"
21 #include "gpio_driver.h"
22 
23 // I2C0 Pin Handles
24 extern gpioHandleKSDK_t D15;
25 extern gpioHandleKSDK_t D14;
26 
27 // I2C1 Handle
28 extern gpioHandleKSDK_t A5;
29 extern gpioHandleKSDK_t A4;
30 
31 // SPI0 Handle
32 extern gpioHandleKSDK_t D13;
33 extern gpioHandleKSDK_t D11;
34 extern gpioHandleKSDK_t D12;
35 
36 // UART3 Handle
37 extern gpioHandleKSDK_t D0;
38 extern gpioHandleKSDK_t D1;
39 
40 // FRDM-K64F Arduino Connector Pin Defintion
41 extern gpioHandleKSDK_t A0;
42 extern gpioHandleKSDK_t A1;
43 extern gpioHandleKSDK_t A2;
44 extern gpioHandleKSDK_t A3;
45 extern gpioHandleKSDK_t D2;
46 extern gpioHandleKSDK_t D3;
47 extern gpioHandleKSDK_t D4;
48 extern gpioHandleKSDK_t D5;
49 extern gpioHandleKSDK_t D6;
51 extern gpioHandleKSDK_t D8;
52 extern gpioHandleKSDK_t D9;
53 extern gpioHandleKSDK_t D10;
54 
55 // FRDM-K64F Internal Peripheral Pin Definitions
59 extern gpioHandleKSDK_t INT1;
60 extern gpioHandleKSDK_t INT2;
61 
62 // I2C_S1: Pin mapping and driver information for default I2C brought to shield
63 #define I2C_S1_SCL_PIN A5
64 #define I2C_S1_SDA_PIN A4
65 #define I2C_S1_DRIVER Driver_I2C1
66 #define I2C_S1_DEVICE_INDEX I2C1_INDEX
67 #define I2C_S1_SIGNAL_EVENT I2C1_SignalEvent_t
68 
69 // I2C_S2: Pin mapping and driver information for alternate I2C bus on shield
70 #define I2C_S2_SCL_PIN D15
71 #define I2C_S2_SDA_PIN D14
72 #define I2C_S2_DRIVER Driver_I2C0
73 #define I2C_S2_DEVICE_INDEX I2C0_INDEX
74 #define I2C_S2_SIGNAL_EVENT I2C0_SignalEvent_t
75 
76 // I2C_B: Pin mapping and driver information for I2C routed on K64F base board
77 #define I2C_BB_SCL_PIN D15
78 #define I2C_BB_SDA_PIN D14
79 #define I2C_BB_DRIVER Driver_I2C0
80 #define I2C_BB_DEVICE_INDEX I2C0_INDEX
81 #define I2C_BB_SIGNAL_EVENT I2C0_SignalEvent_t
82 
83 // SPIS: Pin mapping and driver information default SPI brought to shield
84 #define SPI_S_SCLK D13
85 #define SPI_S_MOSI D11
86 #define SPI_S_MISO D12
87 #define SPI_S_DRIVER Driver_SPI0
88 #define SPI_S_BAUDRATE 500000U ///< Transfer baudrate - 500k
89 #define SPI_S_DEVICE_INDEX SPI0_INDEX
90 #define SPI_S_SIGNAL_EVENT SPI0_SignalEvent_t
91 
92 // UART: Driver information for default UART to communicate with HOST PC.
93 #define HOST_S_DRIVER Driver_USART0
94 #define HOST_S_SIGNAL_EVENT HOST_SignalEvent_t
95 
96 // Bluetooth: Driver information for default UART to communicate with HOST PC.
97 #define HOST_B_DRIVER Driver_USART3
98 #define HOST_B_SIGNAL_EVENT HOST_SignalEvent_t
99 
100 // On-Board FXOS8700 Sensor Information
101 #define FXOS8700_BB_I2C_ADDR 0x1D
102 #define FXOS8700_BB_INT1 INT1
103 #define FXOS8700_BB_INT2 INT2
104 
105 /* @brief Ask use input to resume after specified samples have been processed. */
106 #define ASK_USER_TO_RESUME(x) \
107  static volatile bool askResume = true; \
108  static uint16_t samplesToProcess = x - 1; \
109  if (askResume && !samplesToProcess--) \
110  { \
111  PRINTF("\r\n Specified samples processed, press any key to continue... \r\n"); \
112  GETCHAR(); \
113  askResume = false; \
114  }
115 
116 // Sensor Fusion Required Definitions
117 ///@{
118 // Wired UART Parameters
119 #define WIRED_UART UART0 ///< KSDK instance name for the debug UART
120 #define WIRED_UART_PORT_CLKEN kCLOCK_PortB ///< KDSK handle for the pin port clock enable
121 #define WIRED_UART_PORT PORTB ///< KDSK handle for the pin port associated with this UART
122 #define WIRED_UART_RX_PIN 16U ///< The port number associated with RX
123 #define WIRED_UART_TX_PIN 17U ///< The port number associated with TX
124 #define WIRED_UART_MUX kPORT_MuxAlt3 ///< KDSK pin mux selector
125 #ifndef USE_ORIENT_APP_CONTROL ///< If Using Orient App then use Host I/O
126 #define WIRED_UART_IRQHandler UART0_RX_TX_IRQHandler ///< KDSK-specified IRQ handler name
127 #endif
128 #define WIRED_UART_IRQn UART0_RX_TX_IRQn ///< The interrupt number associated with this IRQ
129 #define WIRED_UART_CLKSRC UART0_CLK_SRC ///< KSDK instance name for the clock feeding this module
130 #define WIRED_UART_IRQn UART0_RX_TX_IRQn ///< KSDK interrupt vector number
131 
132 // Wireless UART Parameters
133 #define WIRELESS_UART UART3 ///< KSDK instance name for the debug UART
134 #define WIRELESS_UART_PORT_CLKEN kCLOCK_PortC ///< KDSK handle for the pin port clock enable
135 #define WIRELESS_UART_PORT PORTC ///< KDSK handle for the pin port associated with this UART
136 #define WIRELESS_UART_RX_PIN 16U ///< The port number associated with RX
137 #define WIRELESS_UART_TX_PIN 17U ///< The port number associated with TX
138 #define WIRELESS_UART_MUX kPORT_MuxAlt3 ///< KDSK pin mux selector
139 #define WIRELESS_UART_IRQHandler UART3_RX_TX_IRQHandler ///< KDSK-specified IRQ handler name
140 #define WIRELESS_UART_IRQn UART3_RX_TX_IRQn ///< The interrupt number associated with this IRQ
141 #define WIRELESS_UART_CLKSRC UART3_CLK_SRC ///< KSDK instance name for the clock feeding this module
142 #define WIRELESS_UART_IRQn UART3_RX_TX_IRQn ///< KSDK interrupt vector number
143 
144 // Miscellaneous Hardware Configuration Parameters
145 #define THIS_BOARD 5 ///< FRDM_K64F
146 #define CORE_SYSTICK_HZ 120000000 ///< core and systick clock rate (Hz)
147 #define CALIBRATION_NVM_ADDR 0x000FF000 ///< start of final 4K (sector size) of 1M flash
148 #define ADS_NVM_ADDR 0x000FE000 ///< start of the next to last 4K (sector size) of the 1M flash
149 #define FLASH_SECTOR_SIZE_PROPERTY kFLASH_PropertyPflashSectorSize
150 #define FLASH_ERASE_KEY kFLASH_ApiEraseKey
151 
152 // offsets from start of NVM block for calibration coefficients
153 #define MAG_NVM_OFFSET 0 // 68 bytes used
154 #define GYRO_NVM_OFFSET 100 // 16 bytes used
155 #define ACCEL_NVM_OFFSET 140 // 88 bytes used
156 ///@}
157 
158 #endif /* FRDM_K64F_H_ */
gpioHandleKSDK_t D10
Definition: frdm_k64f.c:172
gpioHandleKSDK_t D4
Definition: frdm_k64f.c:130
gpioHandleKSDK_t BLUE_LED
Definition: frdm_k64f.c:195
gpioHandleKSDK_t D9
Definition: frdm_k64f.c:165
gpioHandleKSDK_t INT2
Definition: frdm_k64f.c:211
gpioHandleKSDK_t D14
Definition: frdm_k64f.c:24
gpioHandleKSDK_t D6
Definition: frdm_k64f.h:50
gpioHandleKSDK_t A0
Definition: frdm_k64f.c:88
gpioHandleKSDK_t A2
Definition: frdm_k64f.c:102
gpioHandleKSDK_t D2
Definition: frdm_k64f.c:116
The GPIO pin handle for KSDK.
Definition: gpio_driver.h:49
gpioHandleKSDK_t D8
Definition: frdm_k64f.c:158
gpioHandleKSDK_t GREEN_LED
Definition: frdm_k64f.c:188
gpioHandleKSDK_t D13
Definition: frdm_k64f.c:49
gpioHandleKSDK_t D5
Definition: frdm_k64f.c:137
gpioHandleKSDK_t D11
Definition: frdm_k64f.c:56
gpioHandleKSDK_t RED_LED
Definition: frdm_k64f.c:181
gpioHandleKSDK_t D12
Definition: frdm_k64f.c:63
gpioHandleKSDK_t A4
Definition: frdm_k64f.c:40
gpioHandleKSDK_t D3
Definition: frdm_k64f.c:123
gpioHandleKSDK_t INT1
Definition: frdm_k64f.c:204
gpioHandleKSDK_t D1
Definition: frdm_k64f.c:79
gpioHandleKSDK_t A5
Definition: frdm_k64f.c:33
gpioHandleKSDK_t D0
Definition: frdm_k64f.c:72
gpioHandleKSDK_t A1
Definition: frdm_k64f.c:95
gpioHandleKSDK_t A3
Definition: frdm_k64f.c:109
gpioHandleKSDK_t D15
Definition: frdm_k64f.c:17