ISSDK  1.8
IoT Sensing Software Development Kit
lpc54114.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 lpc54114.h
11  * @brief The lpc54114.h file defines GPIO pin mappings for LPCXpresso54114 board
12 */
13 
14 #ifndef LPC54114_H_
15 #define LPC54114_H_
16 
17 #include "pin_mux.h"
18 #include "fsl_power.h"
19 #include "RTE_Device.h"
20 #include "gpio_driver.h"
21 
22 // I2C4 Pin Handles
23 extern gpioHandleKSDK_t D14;
24 extern gpioHandleKSDK_t D15;
25 
26 // I2C5/SPI5 Handles
27 extern gpioHandleKSDK_t D11;
28 extern gpioHandleKSDK_t D12;
29 extern gpioHandleKSDK_t D13;
30 
31 // UART0 Handle
32 extern gpioHandleKSDK_t D0;
33 extern gpioHandleKSDK_t D1;
34 
35 // LPCXpresso54114 Arduino Connector Pin Defintion
36 extern gpioHandleKSDK_t A0;
37 extern gpioHandleKSDK_t A1;
38 extern gpioHandleKSDK_t A2;
39 extern gpioHandleKSDK_t A3;
40 extern gpioHandleKSDK_t A4;
41 extern gpioHandleKSDK_t A5;
42 extern gpioHandleKSDK_t D2;
43 extern gpioHandleKSDK_t D3;
44 extern gpioHandleKSDK_t D4;
45 extern gpioHandleKSDK_t D5;
46 extern gpioHandleKSDK_t D6;
47 extern gpioHandleKSDK_t D7;
48 extern gpioHandleKSDK_t D8;
49 extern gpioHandleKSDK_t D9;
50 extern gpioHandleKSDK_t D10;
51 
52 // LPCXpresso54114 Internal Peripheral Pin Definitions
56 
57 // I2C_S1: Pin mapping and driver information for default I2C brought to shield
58 #define I2C_S1_SCL_PIN D15
59 #define I2C_S1_SDA_PIN D14
60 #define I2C_S1_DRIVER Driver_I2C4
61 #define I2C_S1_DEVICE_INDEX I2C4_INDEX
62 #define I2C_S1_SIGNAL_EVENT I2C4_SignalEvent_t
63 
64 // I2C_S2: Pin mapping and driver information for alternate I2C bus on shield
65 #define I2C_S2_DRIVER Driver_I2C5
66 #define I2C_S2_DEVICE_INDEX I2C5_INDEX
67 #define I2C_S2_SIGNAL_EVENT I2C5_SignalEvent_t
68 
69 // SPIS: Pin mapping and driver information default SPI brought to shield
70 #define SPI_S_DRIVER Driver_SPI5
71 #define SPI_S_BAUDRATE 500000U ///< Transfer baudrate - 500k
72 #define SPI_S_DEVICE_INDEX SPI5_INDEX
73 #define SPI_S_SIGNAL_EVENT SPI5_SignalEvent_t
74 
75 // UART: Driver information for default UART to communicate with HOST PC.
76 #define HOST_S_DRIVER Driver_USART0
77 #define HOST_S_SIGNAL_EVENT HOST_SignalEvent_t
78 #define HOST_B_DRIVER Driver_USART1
79 #define HOST_B_SIGNAL_EVENT HOST_SignalEvent_t
80 
81 #define WIRED_USART USART0
82 #define WIRED_USART_CLK_SRC kCLOCK_Flexcomm0
83 #define WIRED_USART_CLK_FREQ CLOCK_GetFreq(kCLOCK_Flexcomm0)
84 #define WIRED_USART_IRQHandler FLEXCOMM0_IRQHandler
85 #define WIRED_USART_IRQn FLEXCOMM0_IRQn
86 
87 #define WIRELESS_USART USART1
88 
89 // ADS_FLASH: The next to last sector of flash.
90 #define ADS_NVM_ADDR (FSL_FEATURE_SYSCON_FLASH_SIZE_BYTES - (2 * FSL_FEATURE_SYSCON_FLASH_SECTOR_SIZE_BYTES))
91 
92 /* @brief Ask use input to resume after specified samples have been processed. */
93 #define ASK_USER_TO_RESUME(x) \
94  static bool askResume = true; \
95  static uint16_t samplesToProcess = x - 1; \
96  if (askResume && !samplesToProcess--) \
97  { \
98  PRINTF("\r\n Specified samples processed, press any key to continue... \r\n"); \
99  GETCHAR(); \
100  askResume = false; \
101  }
102 
103 /* @brief Override Kinetis style Wrapper for handling all Clock related configurations. */
104 #ifdef BOARD_BootClockRUN
105 #undef BOARD_BootClockRUN
106 #define BOARD_BootClockRUN() \
107  /* attach 12 MHz clock to FLEXCOMM0 (debug/UART0) */ \
108  CLOCK_AttachClk(kFRO12M_to_FLEXCOMM0); \
109  /* attach 12 MHz clock to FLEXCOMM4 (I2C4) */ \
110  CLOCK_AttachClk(kFRO12M_to_FLEXCOMM4); \
111  /* attach 12 MHz clock to FLEXCOMM4 (SPI5) */ \
112  CLOCK_AttachClk(kFRO12M_to_FLEXCOMM5); \
113  /* Configure FROHF48M Clock */ \
114  BOARD_BootClockFROHF48M()
115 #endif
116 
117 /* @brief dummy arguement to Power Mode Wait Wrapper. */
118 #define SMC NULL
119 
120 /* @brief Kinetis style Wrapper API for Power Mode Wait (Wait for Interrupt). */
121 status_t SMC_SetPowerModeWait(void *);
122 
123 /* @brief Kinetis style Wrapper API for Power Mode Wait (Vlpr for Interrupt). */
124 status_t SMC_SetPowerModeVlpr(void *);
125 
126 ///@name Miscellaneous Hardware Configuration Parameters
127 ///@{
128 #define THIS_BOARD 16 ///< LPC54114
129 #define CORE_SYSTICK_HZ 48000000 ///< core and systick clock rate (Hz)
130 #define CALIBRATION_NVM_ADDR 0x0003FF00 ///< start of final 256 bytes of 256K flash memory (LPC54114)
131 #define NVM_SECTOR_NUMBER 7 ///< Sector number in flash where we will store parameters
132 #define NVM_PAGE_NUMBER 1023 ///< Page number in flash where we will store parameters
133 
134 // offsets from start of NVM block for calibration coefficients
135 #define MAG_NVM_OFFSET 0 // 68 bytes used
136 #define GYRO_NVM_OFFSET 100 // 16 bytes used
137 #define ACCEL_NVM_OFFSET 140 // 88 bytes used
138 ///@}
139 
140 #endif /* LPC54114_CM4_H_ */
gpioHandleKSDK_t D0
Definition: frdm_k64f.c:72
gpioHandleKSDK_t A0
Definition: frdm_k64f.c:88
gpioHandleKSDK_t RED_LED
Definition: frdm_k64f.c:181
gpioHandleKSDK_t D12
Definition: frdm_k64f.c:63
gpioHandleKSDK_t D11
Definition: frdm_k64f.c:56
status_t SMC_SetPowerModeWait(void *)
Configures the system to WAIT power mode. API name used from Kinetis family to maintain compatibility...
Definition: lpc54114.c:155
gpioHandleKSDK_t D6
Definition: frdm_k64f.c:144
The GPIO pin handle for KSDK.
Definition: gpio_driver.h:49
gpioHandleKSDK_t GREEN_LED
Definition: frdm_k64f.c:188
status_t SMC_SetPowerModeVlpr(void *)
Configures the system to VLPR power mode. API name used from Kinetis family to maintain compatibility...
Definition: lpc54114.c:169
gpioHandleKSDK_t D5
Definition: frdm_k64f.c:137
gpioHandleKSDK_t D10
Definition: frdm_k64f.c:172
gpioHandleKSDK_t D1
Definition: frdm_k64f.c:79
gpioHandleKSDK_t BLUE_LED
Definition: frdm_k64f.c:195
gpioHandleKSDK_t D13
Definition: frdm_k64f.c:49
gpioHandleKSDK_t D4
Definition: frdm_k64f.c:130
gpioHandleKSDK_t D3
Definition: frdm_k64f.c:123
gpioHandleKSDK_t A4
Definition: frdm_k64f.c:40
gpioHandleKSDK_t A5
Definition: frdm_k64f.c:33
gpioHandleKSDK_t D2
Definition: frdm_k64f.c:116
gpioHandleKSDK_t A1
Definition: frdm_k64f.c:95
gpioHandleKSDK_t D15
Definition: frdm_k64f.c:17
gpioHandleKSDK_t D8
Definition: frdm_k64f.c:158
gpioHandleKSDK_t D9
Definition: frdm_k64f.c:165
gpioHandleKSDK_t A2
Definition: frdm_k64f.c:102
gpioHandleKSDK_t D14
Definition: frdm_k64f.c:24
gpioHandleKSDK_t D7
Definition: frdm_k64f.c:151
gpioHandleKSDK_t A3
Definition: frdm_k64f.c:109