Skip to content

Commit 020ace1

Browse files
committed
Add support for FRDM KW24D
Signed-off-by: Mahadevan Mahesh <[email protected]>
1 parent 7bcc63b commit 020ace1

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

93 files changed

+49140
-0
lines changed
Lines changed: 106 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,106 @@
1+
/* mbed Microcontroller Library
2+
* Copyright (c) 2006-2013 ARM Limited
3+
*
4+
* Licensed under the Apache License, Version 2.0 (the "License");
5+
* you may not use this file except in compliance with the License.
6+
* You may obtain a copy of the License at
7+
*
8+
* http://www.apache.org/licenses/LICENSE-2.0
9+
*
10+
* Unless required by applicable law or agreed to in writing, software
11+
* distributed under the License is distributed on an "AS IS" BASIS,
12+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13+
* See the License for the specific language governing permissions and
14+
* limitations under the License.
15+
*/
16+
#ifndef MBED_PERIPHERALNAMES_H
17+
#define MBED_PERIPHERALNAMES_H
18+
19+
#include "cmsis.h"
20+
21+
#ifdef __cplusplus
22+
extern "C" {
23+
#endif
24+
25+
typedef enum {
26+
OSC32KCLK = 0,
27+
} RTCName;
28+
29+
typedef enum {
30+
UART_0 = 0,
31+
UART_1 = 1,
32+
UART_2 = 2,
33+
} UARTName;
34+
35+
#define STDIO_UART_TX USBTX
36+
#define STDIO_UART_RX USBRX
37+
#define STDIO_UART UART_1
38+
39+
/* SPI defines used to communicate with the MCR20 RF device */
40+
#define MCR20A_SPI_MOSI PTB16
41+
#define MCR20A_SPI_MISO PTB17
42+
#define MCR20A_SPI_SCLK PTB11
43+
#define MCR20A_SPI_CS PTB10
44+
#define MCR20A_SPI_RST PTB19
45+
#define MCR20A_SPI_IRQ PTB3
46+
47+
typedef enum {
48+
I2C_0 = 0,
49+
I2C_1 = 1,
50+
} I2CName;
51+
52+
#define TPM_SHIFT 8
53+
typedef enum {
54+
PWM_0 = (0 << TPM_SHIFT) | (0), // FTM0 CH0
55+
PWM_1 = (0 << TPM_SHIFT) | (1), // FTM0 CH1
56+
PWM_2 = (0 << TPM_SHIFT) | (2), // FTM0 CH2
57+
PWM_3 = (0 << TPM_SHIFT) | (3), // FTM0 CH3
58+
PWM_4 = (0 << TPM_SHIFT) | (4), // FTM0 CH4
59+
PWM_5 = (0 << TPM_SHIFT) | (5), // FTM0 CH5
60+
PWM_6 = (0 << TPM_SHIFT) | (6), // FTM0 CH6
61+
PWM_7 = (0 << TPM_SHIFT) | (7), // FTM0 CH7
62+
PWM_8 = (1 << TPM_SHIFT) | (0), // FTM1 CH0
63+
PWM_9 = (1 << TPM_SHIFT) | (1), // FTM1 CH1
64+
PWM_10 = (2 << TPM_SHIFT) | (0), // FTM2 CH0
65+
PWM_11 = (2 << TPM_SHIFT) | (1), // FTM2 CH1
66+
} PWMName;
67+
68+
#define ADC_INSTANCE_SHIFT 8
69+
#define ADC_B_CHANNEL_SHIFT 5
70+
typedef enum {
71+
ADC0_SE4a = (0 << ADC_INSTANCE_SHIFT) | 4,
72+
ADC0_SE5a = (0 << ADC_INSTANCE_SHIFT) | 5,
73+
ADC0_SE6a = (0 << ADC_INSTANCE_SHIFT) | 6,
74+
ADC0_SE7a = (0 << ADC_INSTANCE_SHIFT) | 7,
75+
ADC0_SE4b = (0 << ADC_INSTANCE_SHIFT) | (1 << ADC_B_CHANNEL_SHIFT) | 4,
76+
ADC0_SE5b = (0 << ADC_INSTANCE_SHIFT) | (1 << ADC_B_CHANNEL_SHIFT) | 5,
77+
ADC0_SE6b = (0 << ADC_INSTANCE_SHIFT) | (1 << ADC_B_CHANNEL_SHIFT) | 6,
78+
ADC0_SE7b = (0 << ADC_INSTANCE_SHIFT) | (1 << ADC_B_CHANNEL_SHIFT) | 7,
79+
ADC0_SE8 = (0 << ADC_INSTANCE_SHIFT) | 8,
80+
ADC0_SE9 = (0 << ADC_INSTANCE_SHIFT) | 9,
81+
ADC0_SE10 = (0 << ADC_INSTANCE_SHIFT) | 10,
82+
ADC0_SE11 = (0 << ADC_INSTANCE_SHIFT) | 11,
83+
ADC0_SE12 = (0 << ADC_INSTANCE_SHIFT) | 12,
84+
ADC0_SE13 = (0 << ADC_INSTANCE_SHIFT) | 13,
85+
ADC0_SE14 = (0 << ADC_INSTANCE_SHIFT) | 14,
86+
ADC0_SE15 = (0 << ADC_INSTANCE_SHIFT) | 15,
87+
ADC0_SE21 = (0 << ADC_INSTANCE_SHIFT) | 21,
88+
ADC0_SE22 = (0 << ADC_INSTANCE_SHIFT) | 22,
89+
ADC0_SE23 = (0 << ADC_INSTANCE_SHIFT) | 23,
90+
} ADCName;
91+
92+
typedef enum {
93+
DAC_0 = 0
94+
} DACName;
95+
96+
97+
typedef enum {
98+
SPI_0 = 0,
99+
SPI_1 = 1,
100+
} SPIName;
101+
102+
#ifdef __cplusplus
103+
}
104+
#endif
105+
106+
#endif
Lines changed: 140 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,140 @@
1+
/* mbed Microcontroller Library
2+
* Copyright (c) 2006-2013 ARM Limited
3+
*
4+
* Licensed under the Apache License, Version 2.0 (the "License");
5+
* you may not use this file except in compliance with the License.
6+
* You may obtain a copy of the License at
7+
*
8+
* http://www.apache.org/licenses/LICENSE-2.0
9+
*
10+
* Unless required by applicable law or agreed to in writing, software
11+
* distributed under the License is distributed on an "AS IS" BASIS,
12+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13+
* See the License for the specific language governing permissions and
14+
* limitations under the License.
15+
*/
16+
17+
#include "PeripheralPins.h"
18+
19+
/************RTC***************/
20+
const PinMap PinMap_RTC[] = {
21+
{NC, OSC32KCLK, 0},
22+
};
23+
24+
/************ADC***************/
25+
const PinMap PinMap_ADC[] = {
26+
{PTD1, ADC0_SE5b, 0},
27+
{PTD4, ADC0_SE21, 0},
28+
{PTD5, ADC0_SE6b, 0},
29+
{PTD6, ADC0_SE7b, 0},
30+
{PTD7, ADC0_SE22, 0},
31+
{PTE0, ADC0_SE10, 0},
32+
{PTE1, ADC0_SE11, 0},
33+
{PTE16, ADC0_SE4a, 0},
34+
{PTE17, ADC0_SE5a, 0},
35+
{PTE18, ADC0_SE6a, 0},
36+
{PTE19, ADC0_SE7a, 0},
37+
{NC , NC , 0}
38+
};
39+
40+
/************I2C***************/
41+
const PinMap PinMap_I2C_SDA[] = {
42+
{PTD3, I2C_0, 4},
43+
{PTE0, I2C_1, 6},
44+
{PTE18, I2C_0, 4},
45+
{NC , NC , 0}
46+
};
47+
48+
const PinMap PinMap_I2C_SCL[] = {
49+
{PTD2, I2C_0, 4},
50+
{PTE1, I2C_1, 6},
51+
{PTE19, I2C_0, 4},
52+
{NC , NC , 0}
53+
};
54+
55+
/************UART***************/
56+
const PinMap PinMap_UART_TX[] = {
57+
{PTA2, UART_0, 2},
58+
{PTD7, UART_0, 3},
59+
{PTC4, UART_1, 3},
60+
{PTE0, UART_1, 3},
61+
{PTD3, UART_2, 3},
62+
{PTE16, UART_2, 3},
63+
{NC , NC , 0}
64+
};
65+
66+
const PinMap PinMap_UART_RX[] = {
67+
{PTA1, UART_0, 2},
68+
{PTD6, UART_0, 3},
69+
{PTE1, UART_1, 3},
70+
{PTD2, UART_2, 3},
71+
{PTE17, UART_2, 3},
72+
73+
{NC , NC , 0}
74+
};
75+
76+
const PinMap PinMap_UART_CTS[] = {
77+
{PTD1, UART_2, 3},
78+
{PTD5, UART_0, 3},
79+
{PTE2, UART_1, 3},
80+
{PTE18, UART_2, 3},
81+
{PTA0, UART_0, 2},
82+
{NC , NC , 0}
83+
};
84+
85+
const PinMap PinMap_UART_RTS[] = {
86+
{PTD4, UART_0, 3},
87+
{PTE3 , UART_1, 3},
88+
{PTE19, UART_2, 3},
89+
{PTA3, UART_0, 2},
90+
{NC , NC , 0}
91+
};
92+
93+
/************SPI***************/
94+
const PinMap PinMap_SPI_SCLK[] = {
95+
{PTC5, SPI_0, 2},
96+
{PTD1, SPI_0, 2},
97+
{PTE2, SPI_1, 2},
98+
{PTE17, SPI_0, 2},
99+
{NC , NC , 0}
100+
};
101+
102+
const PinMap PinMap_SPI_MOSI[] = {
103+
{PTC6, SPI_0, 2},
104+
{PTD2, SPI_0, 2},
105+
{PTE1, SPI_1, 2},
106+
{PTE3, SPI_1, 7},
107+
{PTE18, SPI_0, 2},
108+
{NC , NC , 0}
109+
};
110+
111+
const PinMap PinMap_SPI_MISO[] = {
112+
{PTC7, SPI_0, 2},
113+
{PTD3, SPI_0, 2},
114+
{PTE1, SPI_1, 7},
115+
{PTE3, SPI_1, 2},
116+
{PTE19, SPI_0, 2},
117+
{NC , NC , 0}
118+
};
119+
120+
const PinMap PinMap_SPI_SSEL[] = {
121+
{PTC4, SPI_0, 2},
122+
{PTE4, SPI_1, 2},
123+
{PTE16, SPI_0, 2},
124+
{NC , NC , 0}
125+
};
126+
127+
/************PWM***************/
128+
const PinMap PinMap_PWM[] = {
129+
{PTC4, PWM_3, 4},
130+
{PTD4, PWM_4, 4},
131+
{PTD5, PWM_5, 4},
132+
{PTD6, PWM_6, 4},
133+
{PTD7, PWM_7, 4},
134+
{PTA0, PWM_5, 3},
135+
{PTA1, PWM_6, 3},
136+
{PTA2, PWM_7, 3},
137+
{PTA3, PWM_0, 3},
138+
{PTA4, PWM_1, 3},
139+
{NC , NC , 0}
140+
};
Lines changed: 125 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,125 @@
1+
/* mbed Microcontroller Library
2+
* Copyright (c) 2006-2013 ARM Limited
3+
*
4+
* Licensed under the Apache License, Version 2.0 (the "License");
5+
* you may not use this file except in compliance with the License.
6+
* You may obtain a copy of the License at
7+
*
8+
* http://www.apache.org/licenses/LICENSE-2.0
9+
*
10+
* Unless required by applicable law or agreed to in writing, software
11+
* distributed under the License is distributed on an "AS IS" BASIS,
12+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13+
* See the License for the specific language governing permissions and
14+
* limitations under the License.
15+
*/
16+
#ifndef MBED_PINNAMES_H
17+
#define MBED_PINNAMES_H
18+
19+
#include "cmsis.h"
20+
21+
#ifdef __cplusplus
22+
extern "C" {
23+
#endif
24+
25+
typedef enum {
26+
PIN_INPUT,
27+
PIN_OUTPUT
28+
} PinDirection;
29+
30+
#define GPIO_PORT_SHIFT 12
31+
32+
typedef enum {
33+
PTA0 = (0 << GPIO_PORT_SHIFT | 0 ),
34+
PTA1 = (0 << GPIO_PORT_SHIFT | 1 ),
35+
PTA2 = (0 << GPIO_PORT_SHIFT | 2 ),
36+
PTA3 = (0 << GPIO_PORT_SHIFT | 3 ),
37+
PTA4 = (0 << GPIO_PORT_SHIFT | 4 ),
38+
PTA18 = (0 << GPIO_PORT_SHIFT | 18),
39+
PTA19 = (0 << GPIO_PORT_SHIFT | 19),
40+
PTB3 = (1 << GPIO_PORT_SHIFT | 3),
41+
PTB10 = (1 << GPIO_PORT_SHIFT | 10),
42+
PTB11 = (1 << GPIO_PORT_SHIFT | 11),
43+
PTB16 = (1 << GPIO_PORT_SHIFT | 16),
44+
PTB17 = (1 << GPIO_PORT_SHIFT | 17),
45+
PTB19 = (1 << GPIO_PORT_SHIFT | 19),
46+
PTC0 = (2 << GPIO_PORT_SHIFT | 0 ),
47+
PTC1 = (2 << GPIO_PORT_SHIFT | 1 ),
48+
PTC3 = (2 << GPIO_PORT_SHIFT | 3 ),
49+
PTC4 = (2 << GPIO_PORT_SHIFT | 4 ),
50+
PTC5 = (2 << GPIO_PORT_SHIFT | 5 ),
51+
PTC6 = (2 << GPIO_PORT_SHIFT | 6 ),
52+
PTC7 = (2 << GPIO_PORT_SHIFT | 7 ),
53+
PTD1 = (3 << GPIO_PORT_SHIFT | 1 ),
54+
PTD2 = (3 << GPIO_PORT_SHIFT | 2 ),
55+
PTD3 = (3 << GPIO_PORT_SHIFT | 3 ),
56+
PTD4 = (3 << GPIO_PORT_SHIFT | 4 ),
57+
PTD5 = (3 << GPIO_PORT_SHIFT | 5 ),
58+
PTD6 = (3 << GPIO_PORT_SHIFT | 6 ),
59+
PTD7 = (3 << GPIO_PORT_SHIFT | 7 ),
60+
PTE0 = (4 << GPIO_PORT_SHIFT | 0 ),
61+
PTE1 = (4 << GPIO_PORT_SHIFT | 1 ),
62+
PTE2 = (4 << GPIO_PORT_SHIFT | 2 ),
63+
PTE3 = (4 << GPIO_PORT_SHIFT | 3 ),
64+
PTE4 = (4 << GPIO_PORT_SHIFT | 4 ),
65+
PTE16 = (4 << GPIO_PORT_SHIFT | 16),
66+
PTE17 = (4 << GPIO_PORT_SHIFT | 17),
67+
PTE18 = (4 << GPIO_PORT_SHIFT | 18),
68+
PTE19 = (4 << GPIO_PORT_SHIFT | 19),
69+
70+
LED_RED = PTD4,
71+
LED_GREEN = PTD5,
72+
LED_BLUE = PTD6,
73+
74+
// mbed original LED naming
75+
LED1 = LED_RED,
76+
LED2 = LED_GREEN,
77+
LED3 = LED_BLUE,
78+
LED4 = PTD7,
79+
80+
//Push buttons
81+
SW1 = PTE4,
82+
SW2 = PTE3,
83+
SW3 = PTD1,
84+
SW4 = PTA19,
85+
86+
// USB Pins
87+
USBTX = PTE0,
88+
USBRX = PTE1,
89+
90+
// Arduino Headers
91+
D0 = PTD7,
92+
D1 = PTD6,
93+
D2 = PTD5,
94+
D3 = PTD4,
95+
D6 = PTE4,
96+
D7 = PTD1,
97+
D8 = PTA19,
98+
D9 = PTA18,
99+
D10 = PTC4,
100+
D11 = PTC6,
101+
D12 = PTC7,
102+
D13 = PTC5,
103+
D14 = PTD3,
104+
D15 = PTD2,
105+
106+
I2C_SCL = D15,
107+
I2C_SDA = D14,
108+
109+
// Not connected
110+
NC = (int)0xFFFFFFFF
111+
} PinName;
112+
113+
114+
typedef enum {
115+
PullNone = 0,
116+
PullDown = 1,
117+
PullUp = 2,
118+
PullDefault = PullUp
119+
} PinMode;
120+
121+
#ifdef __cplusplus
122+
}
123+
#endif
124+
125+
#endif

0 commit comments

Comments
 (0)