IOMUX User Guide
IOMUX User Guide
Introduction
This document provides a functional overview of the QuickLogic EOS S3 sensor processing platform IOMUX. It also describes how
to program the IOMUX register block, which controls the 46 IOs.
Functional Overview
There are 46 IOs (or PADs) that can be multiplexed to/from various functions on the EOS S3 sensor processing platform. Each
pad can be programmed independently as an input pad, output pad, or bidirectional pad. Programming the IOMUX register block
(0x40004C00 – 0x40004DAC) controls the various functions that drive and sample the pad values. Refer to the Appendix –
Table 12 for IOMUX register descriptions.
NOTE: IOs and PADs are used interchangeably in this document. Both mean the same thing, which is an IO. For
example IO_6 is the same as PAD 6.
Figure 1 shows a block diagram of the implementation.
• The red muxes are controlled by IOMUX_PAD_0_CTRL[1:0]. This function determines which output can drive to a pad. There
is one red mux for each pad.
• The blue muxes select the output pad control, which can come from:
IOMUX_PAD_x_CTRL[12:5] – Register controlled (e.g., A0 register)
Other – Controlled for bidirectional signals (e.g., Serial Wire Debugger (SWD) and I 2C controllers)
Fabric (FB) – I/O controlled. These muxes are for output and/or bidirectional signaling from the device to the system.
• The yellow “AND” gate and mux allows the device to sample pad values to various functional blocks within the device. This logic
is for input and bidirectional signaling to the device from the system.
QuickLogic® EOSTM S3 Sensor Processing Platform Input/Output Multiplexor (IOMUX) User Guide Rev 1.1
When allocating pads in the system design for EOS S3, consider the following:
• The Cortex™ M4 processor, application processor (AP) (via SPI slave), and SWD can read/write the IOMUX registers. The
IOMUX registers are located in the Always-On power domain. If the power is cycled or a device reset is asserted, the IOMUX
register settings will default back to the reset state. The programmable logic (Fabric), which is a slave IP, cannot configure the
IOMUX registers. The M4, AP, or SWD is required to set up the IOMUX settings for the Fabric to use.
• Eight pads can be used as general purpose IOs (GPIOs), which the M4 can drive and sample, using the IOMUX_IO_REG_SEL
(0x40004D60), MISC_IO_INPUT (0x40005100), and MISC_IO_OUTPUT (0x40005104) register controls.
• The Fabric can control all 46 pads, assuming the M4 sets up the appropriate IOMUX programming.
• Eight of the pads can be used as external interrupts to the system (e.g., sensor interrupt or GPIO interrupt), as interrupts to M4 or
sensor interrupts to FFE.
• The other pads can be used for serial interfaces such as SPI slave, multiple SPI masters, SWD, UART, IRDA, I 2C masters, audio
microphone inputs (PDM or I2S), and I2S output to the AP.
• Eight of the pads can be used as debug monitoring pins (debug_mon). Some of PMU, CRU, Audio, and FFE internal signaling
can be brought out to eight pads. For example, CRU can bring out clocks to a pad to monitor frequency.
Refer to the Appendix – Table 13 for possible function/pad assignments. This is for system design, as it shows all the possible IO
assignments.
IMPORTANT: Determine functions for all 46 pads first as per the system design, then program the IOMUX register
accordingly.
Drive Strength:
0x0: 2 mA
PAD_0_E 9:8 RW 0x1 0x1: 4 mA
0x2: 8 mA
0x3: 12 mA
Slew Rate:
PAD_0_SR 10 RW 0x0 0x1: Fast
0x0: Slow (half frequency)
Receive enable:
PAD_0_REN 11 RW 0x0 0x1: enable
0x0: disable
Schmitt Trigger:
PAD_0_SMT 12 RW 0x0 0x1: enable
0x0: disable
For pad 0, program IOMUX_PAD_0_CTRL[1:0] to select the function that outputs to pad 0. When looking at the register definition
of IOMUX_PAD_0_CTRL, bit encoding is NOT listed in the highlighted bit field. Refer instead to the Appendix – Table 11
functional IOMUX descriptions.
Table 2 is a partial list of pads 0 through 2 (from the Appendix – Table 11) that shows IOMUX output pad programming options.
0 1 FBIO_0 BIDIR
1 1 FBIO_1 BIDIR
2 1 spi_sensor_ssn2 OUT
2 2 debug_mon[0] OUT
2 3 batt_mon OUT
2 sensor_interrupt IN
MISC_LOCK_KEY_CTRL 31:0
The pad controls for the pad are controlled by IOMUX_PAD_x_CTRL[4:3]. See Table 4 for details. This is the blue-colored mux
seen in Figure 1.
IOMUX_PAD_0_CTRL 31:0
• Select 0 if the output enable from the pad is controlled by IOMUX_PAD_x_CTRL[5]. Since IOMUX is located in the A0 (Always-
On) power domain, this is considered an A0 register.
Program IOMUX_PAD_x_CTRL[5]
– Set to 0 to be an output pad.
– Set to 1 to be an input pad. Output driver within pad is disabled.
• Select 1 if an alternate function controls the output enable dynamically. For example, I2C master(s) need bidirectional control of
the output enable for the I2C DAT pin (SDAx). Another example, SWD needs bidirectional control of the output enable for SWD
DATA pin (SW_DP_IO).
IOMUX_PAD_x_CTRL[5] is ignored.
• Select 2 if Fabric controls the output enable dynamically.
IOMUX_PAD_x_CTRL[5] is ignored.
IOMUX_PAD_0_CTRL 31:0
IOMUX_SDA0_SEL 31:0
0x40004D00 Sel
SDA0_SEL 0 RW 0x0 0: 1
1: pad #1
IOMUX_SDA1_SEL 31:0
Sel
0x40004D04 0: 1
SDA1_SEL 1:0 RW 0x0 1: pad #15
2: pad #32
3: pad #44
Mux Select
for OUT Ball Name/
Pad No. Type
(default = 0) Function
15 0 SW_DP_IO BIDIR
15 1 FBIO_15 BIDIR
15 2 SDA_1 BIDIR
15 3 UART_txd OUT
15 sensor_interrupt IN
15 IrDA_Sirin IN
32 0 FBIO_32 BIDIR
32 1 spi_sensor_ssn5 OUT
32 2 debug_mon[6] OUT
32 3 SDA_1 OUT
44 0 SW_DP_IO BIDIR
44 1 FBIO_44 BIDIR
44 2 SDA_1 BIDIR
44 3 UART_txd BIDIR
44 sensor_interrupt IN
44 IrDA_Sirin IN
NOTE: Only one input pad can be selected for a functional block.
IOMUX_IO_REG_SEL (0x40004D74) is the register definition (see Table 8) that shows the possible pad assignments for GPIOs.
• Pad 6 or 24 can be GPIO 0.
• Pad 9 or 26 can be GPIO 1.
• Pad 11 or 28 can be GPIO 2.
• Pad 14 or 30 can be GPIO 3.
• Pad 18 or 31 can be GPIO 4.
• Pad 21 or 36 can be GPIO 5.
• Pad 22 or 38 can be GPIO 6.
• Pad 23 or 45 can be GPIO 7.
IOMUX_IO_REG_SEL 31:0
MISC_IO_INPUT 31:0
0x40005100
IO_IN 7:0 RO 0x0 Reads the value of the IO pins
MISC_IO_OUTPUT 31:0
0x40005104
Allows FW to drive the IO with the
IO_OUT 7:0 RW 0x0
values specified in this register
• Read MISC_IO_INPUT. The values present on PAD31, PAD36, PAD38, and PAD45 map to values MISC_IO_INPUT[4],
[5], [6], and [7].
14 1 IrDA_Sirout OUT
14 2 SCL_1 BIDIR
14 3 gpio[3] BIDIR
14 UART_rxd IN
14 sensor_interrupt IN
15 2 SDA_1 BIDIR
15 3 UART_txd OUT
15 sensor_interrupt IN
15 IrDA_Sirin IN
void setup_iomux()
{ unsigned int wdata0,
wdata1;
Misc_LOCK_KEY_CTRL = 0x1ACCE551;
IOMUX_PAD_18_CTRL = wdata0;
IOMUX_PAD_19_CTRL = wdata0;
IOMUX_PAD_20_CTRL = wdata0;
IOMUX_PAD_21_CTRL = wdata0;
IOMUX_PAD_22_CTRL = wdata0;
IOMUX_PAD_23_CTRL = wdata0;
IOMUX_PAD_24_CTRL = wdata0;
IOMUX_PAD_25_CTRL = wdata0;
IOMUX_PAD_26_CTRL = wdata0;
IOMUX_PAD_27_CTRL = wdata0;
IOMUX_PAD_28_CTRL = wdata0;
IOMUX_PAD_29_CTRL = wdata0;
IOMUX_PAD_30_CTRL = wdata0;
IOMUX_PAD_31_CTRL = wdata0;
IOMUX_PAD_32_CTRL = wdata0;
IOMUX_PAD_33_CTRL = wdata0;
IOMUX_PAD_34_CTRL = wdata1;
IOMUX_PAD_35_CTRL = wdata0;
IOMUX_PAD_36_CTRL = wdata0;
IOMUX_PAD_37_CTRL = wdata0;
IOMUX_PAD_38_CTRL = wdata1;
IOMUX_PAD_39_CTRL = wdata1;
IOMUX_PAD_40_CTRL = wdata0;
IOMUX_PAD_41_CTRL = wdata0;
IOMUX_PAD_42_CTRL = wdata0;
IOMUX_PAD_43_CTRL = wdata1;
IOMUX_PAD_42_CTRL = wdata0;
IOMUX_PAD_43_CTRL = wdata1;// FBIO43
IOMUX_PAD_44_CTRL = wdata1; //FBIO44
IOMUX_PAD_45_CTRL = wdata0; // FBIO45
return;
}
Appendix
Table 11 shows the EOS S3 IOMUX output assignments.
2 1 spi_sensor_ssn2 OUT
2 2 debug_mon[0] OUT
2 3 batt_mon OUT
2 sensor_interrupt IN
3 0 S_INTR_0 IN A0_Reg Z N N Y
3 0 FBIO_3 BIDIR
4 1 spi_sensor_ssn3 OUT
4 2 debug_mon[1] OUT
4 3 sda_1_dpu OUT
Pad Mux Sel for Ball Name/ Type Def Ctrl Def Def Def Must Comment
No. OUT Function P Out RX Bond
(Default=0) En En
4 sensor_interrupt IN
5 1 spi_sensor_ssn4 OUT
5 2 debug_mon[2] OUT
5 3 sda_0_dpu OUT
5 sensor_interrupt IN
6 1 spi_sensor_mosi OUT
6 2 debug_mon[3] BIDIR
6 3 gpio[0] BIDIR
6 IN
6 IN
6 FCLK IN Bootstrap #9 = 1
6 IrDA_Sirin IN
6 sensor_interrupt IN
7 1 spi_sensor_ssn5 OUT
7 2 debug_mon[4] OUT
7 3 SWV OUT
Pad Mux Sel for Ball Name/ Type Def Ctrl Def Def Def Must Comment
No. OUT Function P Out RX Bond
(Default=0) En En
7 sensor_interrupt IN
8 1 pdm_cko OUT
8 2 i2s_cko OUT
8 3 IrDA_Sirout OUT
8 sensor_interrupt IN
8 spi_sensor_miso IN
9 3 gpio[1] BIDIR
9 pdm_stat_i IN
9 sensor_interrupt IN
10 1 spi_sensor_clk OUT Y
10 2 Reserved
10 3 SWV OUT
10 sensor_interrupt IN
Pad Mux Sel for Ball Name/ Type Def Ctrl Def Def Def Must Comment
No. OUT Function P Out RX Bond
(Default=0) En En
10 i2s_din IN
10 pdm_din IN
11 1 spi_sensor_ssn6 OUT
11 2 debug_mon[5] OUT
11 3 gpio[2] BIDIR
11 sensor_interrupt IN
12 1 spi_sensor_ssn7 OUT
12 2 debug_mon[6] OUT
12 3 IrDA_Sirout OUT
12 sensor_interrupt IN
13 1 spi_sensor_ssn8 OUT
13 2 debug_mon[7] OUT
13 3 SWV OUT
13 sensor_interrupt IN
Pad Mux Sel for Ball Name/ Type Def Ctrl Def Def Def Must Comment
No. OUT Function P Out RX Bond
(Default=0) En En
14 0 FBIO_14 BIDIR Z N N Choose this when
#8 = 1
14 1 IrDA_Sirout OUT
14 2 SCL_1 BIDIR
14 3 gpio[3] BIDIR
14 UART_rxd IN
14 sensor_interrupt IN
15 3 UART_txd OUT
15 sensor_interrupt IN
15 IrDA_Sirin IN
16 UART_rxd IN
17 nUARTCTS IN
Pad Mux Sel for Ball Name/ Type Def Ctrl Def Def Def Must Comment
No. OUT Function P Out RX Bond
(Default=0) En En
18 0 FBIO_18 BIDIR A0_Reg Z N N
18 1 SWV OUT
18 2 debug_mon[0] OUT
18 3 gpio[4] BIDIR
18 sensor_interrupt IN
This is used as a
bootstrap for
debugger mode as
a M4 reset release
mechanism
19 0 FBIO_19 BIDIR A0_Reg Z N N
19 1 nUARTRTS OUT
20 0 SPIs_SSn IN A0_Reg PD N Y Y
21 1 nUARTRTS OUT
21 2 debug_mon[1] OUT
21 3 gpio[5] BIDIR
21 IrDA_Sirin IN
Pad Mux Sel for Ball Name/ Type Def Ctrl Def Def Def Must Comment
No. OUT Function P Out RX Bond
(Default=0) En En
21 sensor_interrupt IN
22 1 IrDA_Sirout OUT
22 2 debug_mon[2] OUT
22 3 gpio[6] BIDIR
22 sensor_interrupt IN
22 nUARTCTS IN
23 1 SPIm_SSn2 OUT
23 2 SWV OUT
23 3 gpio[7] BIDIR
23 ap_i2s_wd_clk_i IN
n
23 sensor_interrupt IN
24 1 ap_i2s_dout OUT
24 2 UART_txd OUT
24 3 gpio[0] BIDIR
24 IrDA_Sirin IN
24 sensor_interrupt IN
Pad Mux Sel for Ball Name/ Type Def Ctrl Def Def Def Must Comment
No. OUT Function P Out RX Bond
(Default=0) En En
25 1 SPIm_SSn3 OUT
25 2 SWV OUT
25 3 IrDA_Sirout OUT
25 IN
25 UART_rxd IN
25 sensor_interrupt IN
26 1 spi_sensor_ssn4 OUT
26 2 debug_mon[3] OUT
26 3 gpio[1] BIDIR
26 sensor_interrupt IN
27 1 spi_sensor_ssn5 OUT
27 2 debug_mon[4] OUT
27 3 SPIm_SSn2 OUT
27 sensor_interrupt IN
Pad Mux Sel for Ball Name/ Type Def Ctrl Def Def Def Must Comment
No. OUT Function P Out RX Bond
(Default=0) En En
28 1 spi_sensor_mosi OUT
28 2 debug_mon[5] BIDIR
28 3 gpio[2] BIDIR
28 i2s_din IN
28 pdm_din IN
28 sensor_interrupt IN
28 IrDA_Sirin IN
29 1 pdm_cko OUT
29 2 i2s_cko OUT
29 3 IrDA_Sirout OUT
29 sensor_interrupt IN
29 spi_sensor_miso IN
30 3 gpio[3] BIDIR
30 pdm_stat_i IN
30 sensor_interrupt IN
Pad Mux Sel for Ball Name/ Type Def Ctrl Def Def Def Must Comment
No. OUT Function P Out RX Bond
(Default=0) En En
31 1 spi_sensor_clk OUT Y
31 2 Reserved
31 3 gpio[4] BIDIR
31 sensor_interrupt IN
31 ap_i2s_clk_in IN
32 1 spi_sensor_ssn5 OUT
32 2 debug_mon[6] OUT
32 3 SDA_1 OUT
32 sensor_interrupt IN
33 1 spi_sensor_ssn6 OUT
33 2 debug_mon[7] OUT
33 3 SCL_1 OUT
33 sensor_interrupt IN
Pad Mux Sel for Ball Name/ Type Def Ctrl Def Def Def Must Comment
No. OUT Function P Out RX Bond
(Default=0) En En
34 2 ap_pdm_stat_o BIDIR
34 3 debug_mon[0] OUT
34 sensor_interrupt IN
35 1 SPIm_SSn3 OUT
35 2 spi_sensor_ssn7 OUT
35 3 debug_mon[1] OUT
35 sensor_interrupt IN
36 2 spi_sensor_ssn2 BIDIR
36 3 gpio[5] BIDIR
36 sensor_interrupt IN
37 1 SDA_2_DPU OUT
37 2 spi_sensor_ssn8 OUT
37 3 debug_mon[2] OUT
37 sensor_interrupt IN
Pad Mux Sel for Ball Name/ Type Def Ctrl Def Def Def Must Comment
No. OUT Function P Out RX Bond
(Default=0) En En
38 3 gpio[6] BIDIR
38 sensor_interrupt IN
38 ap_pdm_cko_in IN
39 3 debug_mon[4] OUT
39 sensor_interrupt IN
40 1 SCL_2 OUT
40 2 debug_mon[5] OUT
40 3 Reserved BIDIR
40 sensor_interrupt IN
40 IrDA_Sirin IN
Pad Mux Sel for Ball Name/ Type Def Ctrl Def Def Def Must Comment
No. OUT Function P Out RX Bond
(Default=0) En En
41 1 SDA_2 OUT
41 2 debug_mon[6] OUT
41 3 IrDA_Sirout
41 sensor_interrupt IN
42 1 SWV OUT
42 2 debug_mon[7] OUT
42 3 SDA_1_DPU
42 sensor_interrupt IN
43 1 FBIO_43 BIDIR
44 3 UART_txd BIDIR
44 sensor_interrupt IN
44 IrDA_Sirin IN
Pad Mux Sel for Ball Name/ Type Def Ctrl Def Def Def Must Comment
No. OUT Function P Out RX Bond
(Default=0) En En
45 0 FBIO_45 BIDIR A0_Reg Z N N Choose this when
#8 = 0
45 1 IrDA_Sirout OUT
45 2 SCL_1 OUT
45 3 gpio[7] BIDIR
45 sensor_interrupt IN
45 UART_rxd IN
Table 12 shows the IOMUX registers descriptions as reference. The IOMUX address base is at 0x40004C00. Add the register offset
to the address base for the exact register address. The complete EOS S3 register map can be found in the QuickLogic EOS S3 Sensor
Processing Platform Register Map Guide.
PAD_0_CTRL 31:0
Drive Strength
0x0: 2mA
PAD_0_E 9:8 RW 0x1 0x1: 4mA
0x2: 8mA
0x3: 12mA
Slew Rate
PAD_0_SR 10 RW 0x0 0x1: Fast
0x0: Slow (half frequency)
Receive enable
PAD_0_REN 11 RW 0x0 0x1: enable
0x0: disable
Schmitt Trigger
PAD_0_SMT 12 RW 0x0 0x1: enable
0x0: disable
PAD_1_CTRL 31:0
Drive Strength
0x0: 2mA
PAD_1_E 9:8 RW 0x1 0x1: 4mA
0x2: 8mA
0x3: 12mA
Slew Rate
PAD_1_SR 10 RW 0x0 0x1: Fast
0x0: Slow (half frequency)
Receive enable
PAD_1_REN 11 RW 0x0 0x1: enable
0x0: disable
Schmitt Trigger
PAD_1_SMT 12 RW 0x0 0x1: enable
0x0: disable
PAD_2_CTRL 31:0
Drive Strength
0x0: 2mA
PAD_2_E 9:8 RW 0x1 0x1: 4mA
0x2: 8mA
0x3: 12mA
Slew Rate
PAD_2_SR 10 RW 0x0 0x1: Fast
0x0: Slow (half frequency)
Receive enable
PAD_2_REN 11 RW 0x0 0x1: enable
0x0: disable
Schmitt Trigger
PAD_2_SMT 12 RW 0x0 0x1: enable
0x0: disable
PAD_3_CTRL 31:0
Drive Strength
0x0: 2mA
PAD_3_E 9:8 RW 0x1 0x1: 4mA
0x2: 8mA
0x3: 12mA
Slew Rate
PAD_3_SR 10 RW 0x0 0x1: Fast
0x0: Slow (half frequency)
Receive enable
PAD_3_REN 11 RW 0x0 0x1: enable
0x0: disable
Schmitt Trigger
PAD_3_SMT 12 RW 0x0 0x1: enable
0x0: disable
PAD_4_CTRL 31:0
Drive Strength
0x0: 2mA
PAD_4_E 9:8 RW 0x1 0x1: 4mA
0x2: 8mA
0x3: 12mA
Slew Rate
PAD_4_SR 10 RW 0x0 0x1: Fast
0x0: Slow (half frequency)
Receive enable
PAD_4_REN 11 RW 0x0 0x1: enable
0x0: disable
Schmitt Trigger
PAD_4_SMT 12 RW 0x0 0x1: enable
0x0: disable
PAD_5_CTRL 31:0
Drive Strength
0x0: 2mA
PAD_5_E 9:8 RW 0x1 0x1: 4mA
0x2: 8mA
0x3: 12mA
Slew Rate
PAD_5_SR 10 RW 0x0 0x1: Fast
0x0: Slow (half frequency)
Receive enable
PAD_5_REN 11 RW 0x0 0x1: enable
0x0: disable
Schmitt Trigger
PAD_5_SMT 12 RW 0x0 0x1: enable
0x0: disable
PAD_6_CTRL 31:0
Drive Strength
0x0: 2mA
PAD_6_E 9:8 RW 0x1 0x1: 4mA
0x2: 8mA
0x3: 12mA
Slew Rate
PAD_6_SR 10 RW 0x0 0x1: Fast
0x0: Slow (half frequency)
Receive enable
PAD_6_REN 11 RW 0x0 0x1: enable
0x0: disable
Schmitt Trigger
PAD_6_SMT 12 RW 0x0 0x1: enable
0x0: disable
PAD_7_CTRL 31:0
Drive Strength
0x0: 2mA
PAD_7_E 9:8 RW 0x1 0x1: 4mA
0x2: 8mA
0x3: 12mA
Slew Rate
PAD_7_SR 10 RW 0x0 0x1: Fast
0x0: Slow (half frequency)
Receive enable
PAD_7_REN 11 RW 0x0 0x1: enable
0x0: disable
Schmitt Trigger
PAD_7_SMT 12 RW 0x0 0x1: enable
0x0: disable
PAD_8_CTRL 31:0
Drive Strength
0x0: 2mA
PAD_8_E 9:8 RW 0x1 0x1: 4mA
0x2: 8mA
0x3: 12mA
Slew Rate
PAD_8_SR 10 RW 0x0 0x1: Fast
0x0: Slow (half frequency)
Receive enable
PAD_8_REN 11 RW 0x1 0x1: enable
0x0: disable
Schmitt Trigger
PAD_8_SMT 12 RW 0x0 0x1: enable
0x0: disable
PAD_9_CTRL 31:0
Drive Strength
0x0: 2mA
PAD_9_E 9:8 RW 0x1 0x1: 4mA
0x2: 8mA
0x3: 12mA
Slew Rate
PAD_9_SR 10 RW 0x0 0x1: Fast
0x0: Slow (half frequency)
Receive enable
PAD_9_REN 11 RW 0x1 0x1: enable
0x0: disable
Schmitt Trigger
PAD_9_SMT 12 RW 0x0 0x1: enable
0x0: disable
PAD_10_CTRL 31:0
Drive Strength
0x0: 2mA
PAD_10_E 9:8 RW 0x1 0x1: 4mA
0x2: 8mA
0x3: 12mA
Slew Rate
PAD_10_SR 10 RW 0x0 0x1: Fast
0x0: Slow (half frequency)
Receive enable
PAD_10_REN 11 RW 0x0 0x1: enable
0x0: disable
Schmitt Trigger
PAD_10_SMT 12 RW 0x0 0x1: enable
0x0: disable
PAD_11_CTRL 31:0
Drive Strength
0x0: 2mA
PAD_11_E 9:8 RW 0x1 0x1: 4mA
0x2: 8mA
0x3: 12mA
Slew Rate
PAD_11_SR 10 RW 0x0 0x1: Fast
0x0: Slow (half frequency)
Receive enable
PAD_11_REN 11 RW 0x0 0x1: enable
0x0: disable
Schmitt Trigger
PAD_11_SMT 12 RW 0x0 0x1: enable
0x0: disable
PAD_12_CTRL 31:0
Drive Strength
0x0: 2mA
PAD_12_E 9:8 RW 0x1 0x1: 4mA
0x2: 8mA
0x3: 12mA
Slew Rate
PAD_12_SR 10 RW 0x0 0x1: Fast
0x0: Slow (half frequency)
Receive enable
PAD_12_REN 11 RW 0x0 0x1: enable
0x0: disable
Schmitt Trigger
PAD_12_SMT 12 RW 0x0 0x1: enable
0x0: disable
PAD_13_CTRL 31:0
Drive Strength
0x0: 2mA
PAD_13_E 9:8 RW 0x1 0x1: 4mA
0x2: 8mA
0x3: 12mA
Slew Rate
PAD_13_SR 10 RW 0x0 0x1: Fast
0x0: Slow (half frequency)
Receive enable
PAD_13_REN 11 RW 0x0 0x1: enable
0x0: disable
Schmitt Trigger
PAD_13_SMT 12 RW 0x0 0x1: enable
0x0: disable
PAD_14_CTRL 31:0
Drive Strength
0x0: 2mA
PAD_14_E 9:8 RW 0x1 0x1: 4mA
0x2: 8mA
0x3: 12mA
Slew Rate
PAD_14_SR 10 RW 0x0 0x1: Fast
0x0: Slow (half frequency)
Receive enable
PAD_14_REN 11 RW 0x0 0x1: enable
0x0: disable
Schmitt Trigger
PAD_14_SMT 12 RW 0x0 0x1: enable
0x0: disable
PAD_15_CTRL 31:0
Drive Strength
0x0: 2mA
PAD_15_E 9:8 RW 0x1 0x1: 4mA
0x2: 8mA
0x3: 12mA
Slew Rate
PAD_15_SR 10 RW 0x0 0x1: Fast
0x0: Slow (half frequency)
Receive enable
PAD_15_REN 11 RW 0x0 0x1: enable
0x0: disable
Schmitt Trigger
PAD_15_SMT 12 RW 0x0 0x1: enable
0x0: disable
PAD_16_CTRL 31:0
Drive Strength
0x0: 2mA
PAD_16_E 9:8 RW 0x1 0x1: 4mA
0x2: 8mA
0x3: 12mA
Slew Rate
PAD_16_SR 10 RW 0x0 0x1: Fast
0x0: Slow (half frequency)
Receive enable
PAD_16_REN 11 RW 0x1 0x1: enable
0x0: disable
Schmitt Trigger
PAD_16_SMT 12 RW 0x0 0x1: enable
0x0: disable
PAD_17_CTRL 31:0
Drive Strength
0x0: 2mA
PAD_17_E 9:8 RW 0x1 0x1: 4mA
0x2: 8mA
0x3: 12mA
Slew Rate
PAD_17_SR 10 RW 0x0 0x1: Fast
0x0: Slow (half frequency)
Receive enable
PAD_17_REN 11 RW 0x0 0x1: enable
0x0: disable
Schmitt Trigger
PAD_17_SMT 12 RW 0x0 0x1: enable
0x0: disable
PAD_18_CTRL 31:0
Drive Strength
0x0: 2mA
PAD_18_E 9:8 RW 0x1 0x1: 4mA
0x2: 8mA
0x3: 12mA
Slew Rate
PAD_18_SR 10 RW 0x0 0x1: Fast
0x0: Slow (half frequency)
Receive enable
PAD_18_REN 11 RW 0x0 0x1: enable
0x0: disable
Schmitt Trigger
PAD_18_SMT 12 RW 0x0 0x1: enable
0x0: disable
PAD_19_CTRL 31:0
Drive Strength
0x0: 2mA
PAD_19_E 9:8 RW 0x1 0x1: 4mA
0x2: 8mA
0x3: 12mA
Slew Rate
PAD_19_SR 10 RW 0x0 0x1: Fast
0x0: Slow (half frequency)
Receive enable
PAD_19_REN 11 RW 0x1 0x1: enable
0x0: disable
Schmitt Trigger
PAD_19_SMT 12 RW 0x0 0x1: enable
0x0: disable
PAD_20_CTRL 31:0
Drive Strength
0x0: 2mA
PAD_20_E 9:8 RW 0x1 0x1: 4mA
0x2: 8mA
0x3: 12mA
Slew Rate
PAD_20_SR 10 RW 0x0 0x1: Fast
0x0: Slow (half frequency)
Receive enable
PAD_20_REN 11 RW 0x1 0x1: enable
0x0: disable
Schmitt Trigger
PAD_20_SMT 12 RW 0x0 0x1: enable
0x0: disable
PAD_21_CTRL 31:0
Drive Strength
0x0: 2mA
PAD_21_E 9:8 RW 0x1 0x1: 4mA
0x2: 8mA
0x3: 12mA
Slew Rate
PAD_21_SR 10 RW 0x0 0x1: Fast
0x0: Slow (half frequency)
Receive enable
PAD_21_REN 11 RW 0x0 0x1: enable
0x0: disable
Schmitt Trigger
PAD_21_SMT 12 RW 0x0 0x1: enable
0x0: disable
PAD_22_CTRL 31:0
Drive Strength
0x0: 2mA
PAD_22_E 9:8 RW 0x1 0x1: 4mA
0x2: 8mA
0x3: 12mA
Slew Rate
PAD_22_SR 10 RW 0x0 0x1: Fast
0x0: Slow (half frequency)
Receive enable
PAD_22_REN 11 RW 0x0 0x1: enable
0x0: disable
Schmitt Trigger
PAD_22_SMT 12 RW 0x0 0x1: enable
0x0: disable
PAD_23_CTRL 31:0
Drive Strength
0x0: 2mA
PAD_23_E 9:8 RW 0x1 0x1: 4mA
0x2: 8mA
0x3: 12mA
Slew Rate
PAD_23_SR 10 RW 0x0 0x1: Fast
0x0: Slow (half frequency)
Receive enable
PAD_23_REN 11 RW 0x0 0x1: enable
0x0: disable
Schmitt Trigger
PAD_23_SMT 12 RW 0x0 0x1: enable
0x0: disable
PAD_24_CTRL 31:0
Drive Strength
0x0: 2mA
PAD_24_E 9:8 RW 0x1 0x1: 4mA
0x2: 8mA
0x3: 12mA
Slew Rate
PAD_24_SR 10 RW 0x0 0x1: Fast
0x0: Slow (half frequency)
Receive enable
PAD_24_REN 11 RW 0x0 0x1: enable
0x0: disable
Schmitt Trigger
PAD_24_SMT 12 RW 0x0 0x1: enable
0x0: disable
PAD_25_CTRL 31:0
Drive Strength
0x0: 2mA
PAD_25_E 9:8 RW 0x1 0x1: 4mA
0x2: 8mA
0x3: 12mA
Slew Rate
PAD_25_SR 10 RW 0x0 0x1: Fast
0x0: Slow (half frequency)
Receive enable
PAD_25_REN 11 RW 0x0 0x1: enable
0x0: disable
Schmitt Trigger
PAD_25_SMT 12 RW 0x0 0x1: enable
0x0: disable
PAD_26_CTRL 31:0
Drive Strength
0x0: 2mA
PAD_26_E 9:8 RW 0x1 0x1: 4mA
0x2: 8mA
0x3: 12mA
Slew Rate
PAD_26_SR 10 RW 0x0 0x1: Fast
0x0: Slow (half frequency)
Receive enable
PAD_26_REN 11 RW 0x0 0x1: enable
0x0: disable
Schmitt Trigger
PAD_26_SMT 12 RW 0x0 0x1: enable
0x0: disable
PAD_27_CTRL 31:0
Drive Strength
0x0: 2mA
PAD_27_E 9:8 RW 0x1 0x1: 4mA
0x2: 8mA
0x3: 12mA
Slew Rate
PAD_27_SR 10 RW 0x0 0x1: Fast
0x0: Slow (half frequency)
Receive enable
PAD_27_REN 11 RW 0x0 0x1: enable
0x0: disable
Schmitt Trigger
PAD_27_SMT 12 RW 0x0 0x1: enable
0x0: disable
PAD_28_CTRL 31:0
Drive Strength
0x0: 2mA
PAD_28_E 9:8 RW 0x1 0x1: 4mA
0x2: 8mA
0x3: 12mA
Slew Rate
PAD_28_SR 10 RW 0x0 0x1: Fast
0x0: Slow (half frequency)
Receive enable
PAD_28_REN 11 RW 0x0 0x1: enable
0x0: disable
Schmitt Trigger
PAD_28_SMT 12 RW 0x0 0x1: enable
0x0: disable
PAD_29_CTRL 31:0
Drive Strength
0x0: 2mA
PAD_29_E 9:8 RW 0x1 0x1: 4mA
0x2: 8mA
0x3: 12mA
Slew Rate
PAD_29_SR 10 RW 0x0 0x1: Fast
0x0: Slow (half frequency)
Receive enable
PAD_29_REN 11 RW 0x0 0x1: enable
0x0: disable
Schmitt Trigger
PAD_29_SMT 12 RW 0x0 0x1: enable
0x0: disable
PAD_30_CTRL 31:0
Drive Strength
0x0: 2mA
PAD_30_E 9:8 RW 0x1 0x1: 4mA
0x2: 8mA
0x3: 12mA
Slew Rate
PAD_30_SR 10 RW 0x0 0x1: Fast
0x0: Slow (half frequency)
Receive enable
PAD_30_REN 11 RW 0x0 0x1: enable
0x0: disable
Schmitt Trigger
PAD_30_SMT 12 RW 0x0 0x1: enable
0x0: disable
PAD_31_CTRL 31:0
Drive Strength
0x0: 2mA
PAD_31_E 9:8 RW 0x1 0x1: 4mA
0x2: 8mA
0x3: 12mA
Slew Rate
PAD_31_SR 10 RW 0x0 0x1: Fast
0x0: Slow (half frequency)
Receive enable
PAD_31_REN 11 RW 0x0 0x1: enable
0x0: disable
Schmitt Trigger
PAD_31_SMT 12 RW 0x0 0x1: enable
0x0: disable
PAD_32_CTRL 31:0
Drive Strength
0x0: 2mA
PAD_32_E 9:8 RW 0x1 0x1: 4mA
0x2: 8mA
0x3: 12mA
Slew Rate
PAD_32_SR 10 RW 0x0 0x1: Fast
0x0: Slow (half frequency)
Receive enable
PAD_32_REN 11 RW 0x0 0x1: enable
0x0: disable
Schmitt Trigger
PAD_32_SMT 12 RW 0x0 0x1: enable
0x0: disable
PAD_33_CTRL 31:0
Drive Strength
0x0: 2mA
PAD_33_E 9:8 RW 0x1 0x1: 4mA
0x2: 8mA
0x3: 12mA
Slew Rate
PAD_33_SR 10 RW 0x0 0x1: Fast
0x0: Slow (half frequency)
Receive enable
PAD_33_REN 11 RW 0x0 0x1: enable
0x0: disable
Schmitt Trigger
PAD_33_SMT 12 RW 0x0 0x1: enable
0x0: disable
PAD_34_CTRL 31:0
Drive Strength
0x0: 2mA
PAD_34_E 9:8 RW 0x1 0x1: 4mA
0x2: 8mA
0x3: 12mA
Slew Rate
PAD_34_SR 10 RW 0x0 0x1: Fast
0x0: Slow (half frequency)
Receive enable
PAD_34_REN 11 RW 0x0 0x1: enable
0x0: disable
Schmitt Trigger
PAD_34_SMT 12 RW 0x0 0x1: enable
0x0: disable
PAD_35_CTRL 31:0
Drive Strength
0x0: 2mA
PAD_35_E 9:8 RW 0x1 0x1: 4mA
0x2: 8mA
0x3: 12mA
Slew Rate
PAD_35_SR 10 RW 0x0 0x1: Fast
0x0: Slow (half frequency)
Receive enable
PAD_35_REN 11 RW 0x0 0x1: enable
0x0: disable
Schmitt Trigger
PAD_35_SMT 12 RW 0x0 0x1: enable
0x0: disable
PAD_36_CTRL 31:0
Drive Strength
0x0: 2mA
PAD_36_E 9:8 RW 0x1 0x1: 4mA
0x2: 8mA
0x3: 12mA
Slew Rate
PAD_36_SR 10 RW 0x0 0x1: Fast
0x0: Slow (half frequency)
Receive enable
PAD_36_REN 11 RW 0x0 0x1: enable
0x0: disable
Schmitt Trigger
PAD_36_SMT 12 RW 0x0 0x1: enable
0x0: disable
PAD_37_CTRL 31:0
Drive Strength
0x0: 2mA
PAD_37_E 9:8 RW 0x1 0x1: 4mA
0x2: 8mA
0x3: 12mA
Slew Rate
PAD_37_SR 10 RW 0x0 0x1: Fast
0x0: Slow (half frequency)
Receive enable
PAD_37_REN 11 RW 0x0 0x1: enable
0x0: disable
Schmitt Trigger
PAD_37_SMT 12 RW 0x0 0x1: enable
0x0: disable
PAD_38_CTRL 31:0
Drive Strength
0x0: 2mA
PAD_38_E 9:8 RW 0x1 0x1: 4mA
0x2: 8mA
0x3: 12mA
Slew Rate
PAD_38_SR 10 RW 0x0 0x1: Fast
0x0: Slow (half frequency)
Receive enable
PAD_38_REN 11 RW 0x0 0x1: enable
0x0: disable
Schmitt Trigger
PAD_38_SMT 12 RW 0x0 0x1: enable
0x0: disable
PAD_39_CTRL 31:0
Drive Strength
0x0: 2mA
PAD_39_E 9:8 RW 0x1 0x1: 4mA
0x2: 8mA
0x3: 12mA
Slew Rate
PAD_39_SR 10 RW 0x0 0x1: Fast
0x0: Slow (half frequency)
Receive enable
PAD_39_REN 11 RW 0x0 0x1: enable
0x0: disable
Schmitt Trigger
PAD_39_SMT 12 RW 0x0 0x1: enable
0x0: disable
PAD_40_CTRL 31:0
Drive Strength
0x0: 2mA
PAD_40_E 9:8 RW 0x1 0x1: 4mA
0x2: 8mA
0x3: 12mA
Slew Rate
PAD_40_SR 10 RW 0x0 0x1: Fast
0x0: Slow (half frequency)
Receive enable
PAD_40_REN 11 RW 0x0 0x1: enable
0x0: disable
Schmitt Trigger
PAD_40_SMT 12 RW 0x0 0x1: enable
0x0: disable
PAD_41_CTRL 31:0
Drive Strength
0x0: 2mA
PAD_41_E 9:8 RW 0x1 0x1: 4mA
0x2: 8mA
0x3: 12mA
Slew Rate
PAD_41_SR 10 RW 0x0 0x1: Fast
0x0: Slow (half frequency)
Receive enable
PAD_41_REN 11 RW 0x0 0x1: enable
0x0: disable
Schmitt Trigger
PAD_41_SMT 12 RW 0x0 0x1: enable
0x0: disable
PAD_42_CTRL 31:0
Drive Strength
0x0: 2mA
PAD_42_E 9:8 RW 0x1 0x1: 4mA
0x2: 8mA
0x3: 12mA
Slew Rate
PAD_42_SR 10 RW 0x0 0x1: Fast
0x0: Slow (half frequency)
Receive enable
PAD_42_REN 11 RW 0x0 0x1: enable
0x0: disable
Schmitt Trigger
PAD_42_SMT 12 RW 0x0 0x1: enable
0x0: disable
PAD_43_CTRL 31:0
Drive Strength
0x0: 2mA
PAD_43_E 9:8 RW 0x1 0x1: 4mA
0x2: 8mA
0x3: 12mA
Slew Rate
PAD_43_SR 10 RW 0x0 0x1: Fast
0x0: Slow (half frequency)
Receive enable
PAD_43_REN 11 RW 0x0 0x1: enable
0x0: disable
Schmitt Trigger
PAD_43_SMT 12 RW 0x0 0x1: enable
0x0: disable
PAD_44_CTRL 31:0
Drive Strength
0x0: 2mA
PAD_44_E 9:8 RW 0x1 0x1: 4mA
0x2: 8mA
0x3: 12mA
Slew Rate
PAD_44_SR 10 RW 0x0 0x1: Fast
0x0: Slow (half frequency)
Receive enable
PAD_44_REN 11 RW 0x0 0x1: enable
0x0: disable
Schmitt Trigger
PAD_44_SMT 12 RW 0x0 0x1: enable
0x0: disable
PAD_45_CTRL 31:0
Drive Strength
0x0: 2mA
PAD_45_E 9:8 RW 0x1 0x1: 4mA
0x2: 8mA
0x3: 12mA
Slew Rate
PAD_45_SR 10 RW 0x0 0x1: Fast
0x0: Slow (half frequency)
Receive enable
PAD_45_REN 11 RW 0x0 0x1: enable
0x0: disable
Schmitt Trigger
PAD_45_SMT 12 RW 0x0 0x1: enable
0x0: disable
16 SPIs_CLK UART_rxd
17 SPIs_MISO nUARTCTS
20 SPIs_SSn UART_txd
Contact Information
Phone: (408) 990-4000 (US)
+(44) 1932-21-3160 (Europe)
+(886) 26-603-8948 (Taiwan)
+(86) 139-0517-5302 (China)
+(81) 3-5875-0547 (Japan)
+(82) 31-601-4225 (Korea)
E-mail: [email protected]
Sales: [email protected]
[email protected]
[email protected]
[email protected]
[email protected]
Support: www.quicklogic.com/support
Internet: www.quicklogic.com
Revision History
Revision Date Comments
1.0 August 2016 st
1 release
1.1 April 2020 Add register 0x134
Notice of Disclaimer
QuickLogic is providing this design, product or intellectual property "as is." By providing the design, product or intellectual property as one possible
implementation of your desired system-level feature, application, or standard, QuickLogic makes no representation that this implementation is free from
any claims of infringement and any implied warranties of merchantability or fitness for a particular purpose. You are responsible for obtaining any rights
you may require for your system implementation. QuickLogic shall not be liable for any damages arising out of or in connection with the use of the design,
product or intellectual property including liability for lost profit, business interruption, or any other damages whatsoever. QuickLogic products are not
designed for use in life-support equipment or applications that would cause a life-threatening situation if any such products failed. Do not use QuickLogic
products in these types of equipment or applications.
QuickLogic does not assume any liability for errors which may appear in this document. However, QuickLogic attempts to notify customers of such errors.
QuickLogic retains the right to make changes to either the documentation, specification, or product without notice. Verify with QuickLogic that you have
the latest specifications before finalizing a product design.