Skip to content

Commit 7fd6fdd

Browse files
Ambiq Apollo3: Make SFE_ARTEMIS use arduino uno form factor, fix GPIO IRQ API (#473)
* Ambiq Apollo3: Make SFW_ARTEMIS use arduino uno form factor, fix GPIO IRQ API * Start updating all PinNames.h files for Apollo3 to new standard * Update remaining PinNames.h files
1 parent 0d0f2ea commit 7fd6fdd

File tree

10 files changed

+612
-332
lines changed

10 files changed

+612
-332
lines changed

hal/include/hal/gpio_irq_api.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,7 @@ typedef void (*gpio_irq_handler)(uintptr_t context, gpio_irq_event event);
4949
* # Defined behavior
5050
* * ::gpio_irq_init initializes the GPIO IRQ pin
5151
* * ::gpio_irq_init attaches the interrupt handler
52+
* * ::gpio_irq_init enables the IRQ
5253
* * ::gpio_irq_free releases the GPIO IRQ pin
5354
* * ::gpio_irq_set enables/disables pin IRQ event
5455
* * ::gpio_irq_enable enables GPIO IRQ

targets/TARGET_Ambiq_Micro/TARGET_Apollo3/TARGET_SFE_ARTEMIS/PinNames.h

Lines changed: 87 additions & 44 deletions
Original file line numberDiff line numberDiff line change
@@ -38,69 +38,112 @@ extern "C"
3838

3939
typedef enum
4040
{
41-
// Digital naming
42-
D0 = 25,
43-
D1 = 24,
44-
D2 = 35,
45-
D3 = 4,
46-
D4 = 22,
47-
D5 = 23,
48-
D6 = 27,
49-
D7 = 28,
50-
D8 = 32,
51-
D9 = 12,
52-
D10 = 13,
53-
D11 = 7,
54-
D12 = 6,
55-
D13 = 5,
56-
D14 = 40,
57-
D15 = 39,
58-
D16 = 29,
59-
D17 = 11,
60-
D18 = 34,
61-
D19 = 33,
62-
D20 = 16,
63-
D21 = 31,
64-
65-
// Analog naming
66-
A0 = D16,
67-
A1 = D17,
68-
A2 = D18,
69-
A3 = D19,
70-
A4 = D20,
71-
A5 = D21,
72-
A6 = D2,
73-
// A7 = ??
74-
A8 = D8,
75-
A9 = D9,
76-
A10 = D10,
41+
// Apollo3 I/O pins - CSP and BGA packages
42+
IO_0 = 0,
43+
IO_1 = 1,
44+
IO_2 = 2,
45+
IO_3 = 3,
46+
IO_4 = 4,
47+
IO_5 = 5,
48+
IO_6 = 6,
49+
IO_7 = 7,
50+
IO_8 = 8,
51+
IO_9 = 9,
52+
IO_10 = 10,
53+
IO_11 = 11,
54+
IO_12 = 12,
55+
IO_13 = 13,
56+
IO_14 = 14,
57+
IO_15 = 15,
58+
IO_16 = 16,
59+
IO_17 = 17,
60+
IO_18 = 18,
61+
IO_19 = 19,
62+
IO_20 = 20,
63+
IO_21 = 21,
64+
IO_22 = 22,
65+
IO_23 = 23,
66+
IO_24 = 24,
67+
IO_25 = 25,
68+
IO_26 = 26,
69+
IO_27 = 27,
70+
IO_28 = 28,
71+
IO_29 = 29,
72+
IO_39 = 39,
73+
IO_40 = 40,
74+
IO_41 = 41,
75+
IO_44 = 44,
76+
IO_47 = 47,
77+
IO_48 = 48,
78+
IO_49 = 49,
79+
80+
// Apollo3 I/O pins - BGA package only
81+
IO_30 = 30,
82+
IO_31 = 31,
83+
IO_32 = 32,
84+
IO_33 = 33,
85+
IO_34 = 34,
86+
IO_35 = 35,
87+
IO_36 = 36,
88+
IO_37 = 37,
89+
IO_38 = 38,
90+
IO_42 = 42,
91+
IO_43 = 43,
92+
IO_45 = 45,
93+
IO_46 = 46,
94+
95+
#ifdef TARGET_FF_ARDUINO_UNO
96+
// Arduino form factor pins
97+
ARDUINO_UNO_D0 = IO_25,
98+
ARDUINO_UNO_D1 = IO_24,
99+
ARDUINO_UNO_D2 = IO_35,
100+
ARDUINO_UNO_D3 = IO_4,
101+
ARDUINO_UNO_D4 = IO_22,
102+
ARDUINO_UNO_D5 = IO_23,
103+
ARDUINO_UNO_D6 = IO_27,
104+
ARDUINO_UNO_D7 = IO_28,
105+
ARDUINO_UNO_D8 = IO_32,
106+
ARDUINO_UNO_D9 = IO_12,
107+
ARDUINO_UNO_D10 = IO_13,
108+
ARDUINO_UNO_D11 = IO_7,
109+
ARDUINO_UNO_D12 = IO_6,
110+
ARDUINO_UNO_D13 = IO_5,
111+
ARDUINO_UNO_D14 = IO_40,
112+
ARDUINO_UNO_D15 = IO_39,
113+
114+
ARDUINO_UNO_A0 = IO_29,
115+
ARDUINO_UNO_A1 = IO_11,
116+
ARDUINO_UNO_A2 = IO_34,
117+
ARDUINO_UNO_A3 = IO_33,
118+
ARDUINO_UNO_A4 = IO_16,
119+
ARDUINO_UNO_A5 = IO_31,
120+
#endif
77121

78122
// UART
79123
SERIAL_TX = AM_BSP_PRIM_UART_TX_PIN,
80124
SERIAL_RX = AM_BSP_PRIM_UART_RX_PIN,
81125
CONSOLE_TX = SERIAL_TX,
82126
CONSOLE_RX = SERIAL_RX,
83127

84-
SERIAL1_TX = D1,
85-
SERIAL1_RX = D0,
128+
SERIAL1_TX = IO_24,
129+
SERIAL1_RX = IO_25,
86130

87131
// Not connected
88132
NC = NC_VAL
89133
} PinName;
90134

91135
// LEDs
92-
#define LED1 D13 // Blue LED
136+
#define LED1 IO_5 // Blue LED
93137

94138
// I2C bus
95-
#define I2C_SCL D15
96-
#define I2C_SDA D14
139+
// note: I2C_SCL and I2C_SDA defines are provided by the FF_ARDUINO_UNO header
97140
#define QWIIC_SCL I2C_SCL
98141
#define QWIIC_SDA I2C_SDA
99142

100143
// SPI bus
101-
#define SPI_CLK D13
102-
#define SPI_SDO D11
103-
#define SPI_SDI D12
144+
#define SPI_SCLK IO_5
145+
#define SPI_MOSI IO_7
146+
#define SPI_MISO IO_6
104147

105148
#if defined(MBED_CONF_TARGET_STDIO_UART_TX)
106149
#define STDIO_UART_TX MBED_CONF_TARGET_STDIO_UART_TX

targets/TARGET_Ambiq_Micro/TARGET_Apollo3/TARGET_SFE_ARTEMIS_ATP/PinNames.h

Lines changed: 118 additions & 66 deletions
Original file line numberDiff line numberDiff line change
@@ -38,53 +38,110 @@ extern "C"
3838

3939
typedef enum
4040
{
41+
// Apollo3 I/O pins - CSP and BGA packages
42+
IO_0 = 0,
43+
IO_1 = 1,
44+
IO_2 = 2,
45+
IO_3 = 3,
46+
IO_4 = 4,
47+
IO_5 = 5,
48+
IO_6 = 6,
49+
IO_7 = 7,
50+
IO_8 = 8,
51+
IO_9 = 9,
52+
IO_10 = 10,
53+
IO_11 = 11,
54+
IO_12 = 12,
55+
IO_13 = 13,
56+
IO_14 = 14,
57+
IO_15 = 15,
58+
IO_16 = 16,
59+
IO_17 = 17,
60+
IO_18 = 18,
61+
IO_19 = 19,
62+
IO_20 = 20,
63+
IO_21 = 21,
64+
IO_22 = 22,
65+
IO_23 = 23,
66+
IO_24 = 24,
67+
IO_25 = 25,
68+
IO_26 = 26,
69+
IO_27 = 27,
70+
IO_28 = 28,
71+
IO_29 = 29,
72+
IO_39 = 39,
73+
IO_40 = 40,
74+
IO_41 = 41,
75+
IO_44 = 44,
76+
IO_47 = 47,
77+
IO_48 = 48,
78+
IO_49 = 49,
79+
80+
// Apollo3 I/O pins - BGA package only
81+
IO_30 = 30,
82+
IO_31 = 31,
83+
IO_32 = 32,
84+
IO_33 = 33,
85+
IO_34 = 34,
86+
IO_35 = 35,
87+
IO_36 = 36,
88+
IO_37 = 37,
89+
IO_38 = 38,
90+
IO_42 = 42,
91+
IO_43 = 43,
92+
IO_45 = 45,
93+
IO_46 = 46,
94+
4195
// Digital naming
42-
D0 = 0,
43-
D1 = 1,
44-
D2 = 2,
45-
D3 = 3,
46-
D4 = 4,
47-
D5 = 5,
48-
D6 = 6,
49-
D7 = 7,
50-
D8 = 8,
51-
D9 = 9,
52-
D10 = 10,
53-
D11 = 11,
54-
D12 = 12,
55-
D13 = 13,
56-
D14 = 14,
57-
D15 = 15,
58-
D16 = 16,
59-
D17 = 17,
60-
D18 = 18,
61-
D19 = 19,
62-
// D20 = ??
63-
// D21 = ??
64-
D22 = 22,
65-
D23 = 23,
66-
D24 = 24,
67-
D25 = 25,
68-
D26 = 26,
69-
D27 = 27,
70-
D28 = 28,
71-
D29 = 29,
72-
// D30 = ??
73-
D31 = 31,
74-
D32 = 32,
75-
D33 = 33,
76-
D34 = 34,
77-
D35 = 35,
78-
D36 = 36,
79-
D37 = 37,
80-
D38 = 38,
81-
D39 = 39,
82-
D40 = 40,
83-
D41 = 41,
84-
D42 = 42,
85-
D43 = 43,
86-
D44 = 44,
87-
D45 = 45,
96+
D0 = IO_0,
97+
D1 = IO_1,
98+
D2 = IO_2,
99+
D3 = IO_3,
100+
D4 = IO_4,
101+
D5 = IO_5,
102+
D6 = IO_6,
103+
D7 = IO_7,
104+
D8 = IO_8,
105+
D9 = IO_9,
106+
D10 = IO_10,
107+
D11 = IO_11,
108+
D12 = IO_12,
109+
D13 = IO_13,
110+
D14 = IO_14,
111+
D15 = IO_15,
112+
D16 = IO_16,
113+
D17 = IO_17,
114+
D18 = IO_18,
115+
D19 = IO_19,
116+
117+
// D20 and D21 used as SWD debug pins, not broken out
118+
119+
D22 = IO_22,
120+
D23 = IO_23,
121+
D24 = IO_24,
122+
D25 = IO_25,
123+
D26 = IO_26,
124+
D27 = IO_27,
125+
D28 = IO_28,
126+
D29 = IO_29,
127+
128+
// D30 not broken out from Artemis module
129+
130+
D31 = IO_31,
131+
D32 = IO_32,
132+
D33 = IO_33,
133+
D34 = IO_34,
134+
D35 = IO_35,
135+
D36 = IO_36,
136+
D37 = IO_37,
137+
D38 = IO_38,
138+
D39 = IO_39,
139+
D40 = IO_40,
140+
D41 = IO_41,
141+
D42 = IO_42,
142+
D43 = IO_43,
143+
D44 = IO_44,
144+
D45 = IO_45,
88145

89146
// Analog naming
90147
A11 = D11,
@@ -98,26 +155,6 @@ typedef enum
98155
A34 = D34,
99156
A35 = D35,
100157

101-
// LEDs
102-
LED_BLUE = AM_BSP_GPIO_LED_BLUE,
103-
104-
// mbed original LED naming
105-
LED1 = AM_BSP_GPIO_LED0,
106-
LED2 = D42,
107-
108-
// I2C
109-
I2C_SCL = AM_BSP_QWIIC_I2C_SCL_PIN,
110-
I2C_SDA = AM_BSP_QWIIC_I2C_SDA_PIN,
111-
112-
// Qwiic
113-
QWIIC_SCL = I2C_SCL,
114-
QWIIC_SDA = I2C_SDA,
115-
116-
// SPI
117-
SPI_CLK = AM_BSP_PRIM_SPI_CLK_PIN,
118-
SPI_SDO = AM_BSP_PRIM_SPI_SDO_PIN,
119-
SPI_SDI = AM_BSP_PRIM_SPI_SDI_PIN,
120-
121158
// UART
122159
SERIAL_TX = AM_BSP_PRIM_UART_TX_PIN,
123160
SERIAL_RX = AM_BSP_PRIM_UART_RX_PIN,
@@ -131,6 +168,21 @@ typedef enum
131168
NC = NC_VAL
132169
} PinName;
133170

171+
// LEDs
172+
#define LED1 IO_5 // Blue LED
173+
174+
// I2C bus
175+
#define I2C_SCL IO_39
176+
#define I2C_SDA IO_40
177+
178+
#define QWIIC_SCL I2C_SCL
179+
#define QWIIC_SDA I2C_SDA
180+
181+
// SPI bus
182+
#define SPI_SCLK IO_5
183+
#define SPI_MOSI IO_7
184+
#define SPI_MISO IO_6
185+
134186
#if defined(MBED_CONF_TARGET_STDIO_UART_TX)
135187
#define STDIO_UART_TX MBED_CONF_TARGET_STDIO_UART_TX
136188
#else

0 commit comments

Comments
 (0)