
Shield pin configuration
2.2
Pin function multiplexing control (summary)
All GPIO pins on the Arduino* header require some internal GPIOs to be set up before the pin is usable. This is
usually as simple as setting an output enable, pullup enable, and mode. However, some pins have extra
functionality such as SPI, PWM, or I
2
C, so these pins need extra multiplexing (muxing) in order to be usable.
Table 3 shows this such that a programmer can easily see all the muxing pins affected for a given Arduino* header
pin. The color codes in the table show related boxes. For example, the blue boxes are meant to show the
relationship between the pin mux pins and the pin modes. This table is a synopsis of the more detailed tables
below, which contain extra information, such as schematic pin numbers. For most needs, this synopsized table
should suffice.
Table 3
Arduino* pin mux and pin mode settings
Linux
GPIO
pin
GPIO pin mux
SoC pin modes
Output enable
(high = output)
Pullup
enable
Linux pin
0 (low)
1 (high)
0
1
Linux
Linux
IO0
130
GPIO
UART
248
216
IO0
130
GPIO
UART
248
216
IO1
131
GPIO
UART
249
217
IO2
128
GPIO
UART
250
218
IO3
12
GPIO
PWM
251
219
IO4
129
GPIO
UART
252
220
IO5
13
GPIO
PWM
253
221
IO6
182
GPIO
PWM
254
222
IO7
48
GPIO
255
223
IO8
49
GPIO
256
224
IO9
183
GPIO
PWM
257
225
IO10
41
263
PWM
see 240
GPIO
I2S or SPI
258
226
240
GPIO or I2S
GPIO or SPI_FS
IO11
43
262
PWM
see 241
GPIO
I2S or SPI
259
227
241
GPIO or I2S
GPIO or SPI TXD
IO12
42
242
GPIO or I2S
GPIO or SPI RXD
GPIO
I2S or SPI
260
228
IO13
40
243
GPIO or I2S
GPIO or SPI CLK
GPIO
I2S or SPI
261
229
IO14 (A0)
44
200
GPIO
A0
GPIO
232
208
IO15 (A1)
45
201
GPIO
A1
GPIO
233
209
IO16 (A2)
46
202
GPIO
A2
GPIO
234
210
IO17 (A3)
47
203
GPIO
A3
GPIO
235
211
IO18 (A4)
14
204
GPIO or I2C SDA
A4
GPIO
I2C-6
236
212
IO19 (A5)
165
205
GPIO or I2C SCL
A5
GPIO
I2C-6
237
213
Note:
Before setting up any muxing, set pin 214 (TRI_STATE_ALL) to LOW, make all of your changes, then set pin
214 to HIGH.
Intel® Edison Kit for Arduino*
December 2014
Hardware Guide
Document Number: 331191-004
9