The latest development version of this page may be more current than this released 2.3-beta.1 version.

Pinmux

SoC(System on Chip) control peripherals and interact with data through IO pins. The W80X series of SoC come in different packages, offering varying numbers of IO pins. An example is provided below with the pinout diagram of the W800:

w800_io

Considering the relationship between chip package area and cost, the number of chip pins is limited as much as possible. To support more functions, some pins are multiplexed for multiple purposes, which is also known as pinmux, as introduced in the current chapter.

IO pinmux definition is crucial in project development but can easily lead to confusion. When obtaining a new platform or initiating new device functions, it is often necessary to first configure the pinmux parameters in the SDK based on the project’s functional requirements and in combination with the hardware engineer’s schematic. This is a prerequisite for the proper operation of related device drivers. To avoid confusion, attention can be paid to the following aspects:

Note

1.Ensure that the chip specification book referred to is consistent with the SoC selected for the project.

2.Be cautious that the IO configured in the device table does not exceed the support range of the selected SoC. It is recommended to use pin enumeration definitions when configuring pins so that the compilation system can check for validity.

3.Be aware of whether the IO configured in the device table is redundantly defined in multiple devices.

4.Verify whether the IO attribute configurations in the device table are correct (such as pullup/pulldown, input/output direction, etc.).

5.Check whether the newly added application software in the project has issues similar to those mentioned in points 2, 3, and 4.

In the future, we will improve and provide ways to assist users in detecting these errors in advance.

The following tables are more intuitive Pinmux Tables compiled based on the chip specification books of the W80X series SoC.

The pinmux function multiplexing relationships for W800 and W805 chips

GPIO_NUM

PadName

FUN1

FUN2

FUN3

FUN4

FUN5

FUN6

FUN7

WM_GPIO_NUM_0

PA0

I2S_MCLK

L-SPI_CS

PWM2

I2S_DO

GPIO

WM_GPIO_NUM_1

PA1

JTAG_CK

I2C_SCL

PWM3

I2S_LRCLK

GPIO

ADC_0

WM_GPIO_NUM_4

PA4

JTAG_SWO

I2C_SDA

PWM4

I2S_BCLK

GPIO

ADC_1

WM_GPIO_NUM_7

PA7

PWM4

L-SPI_MOSI

I2S_MCLK

I2S_DI

GPIO

WM_GPIO_NUM_16

PB0

PWM0

L-SPI_MISO

UART3_TX

PSRAM_CK

GPIO

WM_GPIO_NUM_17

PB1

PWM1

L-SPI_CK

UART3_RX

PSRAM_CS

GPIO

WM_GPIO_NUM_18

PB2

PWM2

L-SPI_CK

UART2_TX

PSRAM_DAT0

GPIO

WM_GPIO_NUM_19

PB3

PWM3

L-SPI_MISO

UART2_RX

PSRAM_DAT1

GPIO

WM_GPIO_NUM_20

PB4

L-SPI_CS

UART2_RTS

UART4_TX

PSRAM_DAT2

GPIO

WM_GPIO_NUM_21

PB5

L-SPI_MOSI

UART2_CTS

UART4_RX

PSRAM_DAT3

GPIO

WM_GPIO_NUM_22

PB6

UART1_TX

MMC_CLK

H-SPI_CK

SDIO_SLAVE_CK

GPIO

WM_GPIO_NUM_23

PB7

UART1_RX

MMC_CMD

H-SPI_INT

SDIO_SLAVE_CMD

GPIO

WM_GPIO_NUM_24

PB8

I2S_BCLK

MMC_DAT0

PWM_BREAK

SDIO_SLAVE_D0

GPIO

WM_GPIO_NUM_25

PB9

I2S_LRCLK

MMC_DAT1

H-SPI_CS

SDIO_SLAVE_D1

GPIO

WM_GPIO_NUM_26

PB10

I2S_DI

MMC_DAT2

H-SPI_DI

SDIO_SLAVE_D2

GPIO

WM_GPIO_NUM_27

PB11

I2S_D0

MMC_DAT3

H-SPI_DO

SDIO_SLAVE_D3

GPIO

WM_GPIO_NUM_35

PB19

UART0_TX

PWM0

UART1_RTS

I2C_SDA

GPIO

WM_GPIO_NUM_36

PB20

UART0_RX

PWM1

UART1_CTS

I2C_SCL

GPIO

The pinmux function multiplexing relationships for W801S chip

GPIO_NUM

PadName

FUN1

FUN2

FUN3

FUN4

FUN5

FUN6

FUN7

WM_GPIO_NUM_0

PA0

I2S_MCLK

L-SPI_CS

PWM2

I2S_DO

GPIO

WM_GPIO_NUM_1

PA1

JTAG_CK

I2C_SCL

PWM3

I2S_LRCLK

GPIO

ADC_0

WM_GPIO_NUM_2

PA2

UART1_RTS

UART2_TX

PWM0

UART3_RTS

GPIO

ADC_3

WM_GPIO_NUM_3

PA3

UART1_CTS

UART2_RX

PWM1

UART3_CTS

GPIO

ADC_2

WM_GPIO_NUM_4

PA4

JTAG_SWO

I2C_SDA

PWM4

I2S_BCLK

GPIO

ADC_1

WM_GPIO_NUM_5

PA5

UART3_TX

UART2_RTS

PWM_BREAK

UART4_RTS

GPIO

WM_GPIO_NUM_6

PA6

UART3_RX

UART2_CTS

UART4_CTS

GPIO

LCD_SEG31

WM_GPIO_NUM_7

PA7

PWM4

L-SPI_MOSI

I2S_MCLK

I2S_DI

GPIO

LCD_SEG03

WM_GPIO_NUM_8

PA8

PWM_BREAK

UART4_TX

UART5_TX

I2S_BCLK

GPIO

LCD_SEG04

WM_GPIO_NUM_9

PA9

MMC_CLK

UART4_RX

UART5_RX

I2S_LRCLK

GPIO

LCD_SEG05

Touch1

WM_GPIO_NUM_10

PA10

MMC_CMD

UART4_RTS

PWM0

I2S_DO

GPIO

LCD_SEG06

Touch2

WM_GPIO_NUM_11

PA11

MMC_DAT0

UART4_CTS

PWM1

I2S_DI

GPIO

LCD_SEG07

WM_GPIO_NUM_12

PA12

MMC_DAT1

UART5_TX

PWM2

GPIO

LCD_SEG08

CMOD

WM_GPIO_NUM_13

PA13

MMC_DAT2

UART5_RX

PWM3

GPIO

LCD_SEG09

WM_GPIO_NUM_14

PA14

MMC_DAT3

UART5_CTS

PWM4

GPIO

LCD_SEG10

CDC

WM_GPIO_NUM_15

PA15

PSRAM_CK

UART5_RTS

PWM_BREAK

GPIO

LCD_SEG11

WM_GPIO_NUM_16

PB0

PWM0

L-SPI_MISO

UART3_TX

PSRAM_CK

GPIO

LCD_SEG12

Touch3

WM_GPIO_NUM_17

PB1

PWM1

L-SPI_CK

UART3_RX

PSRAM_CS

GPIO

LCD_SEG13

Touch4

WM_GPIO_NUM_18

PB2

PWM2

L-SPI_CK

UART2_TX

PSRAM_DAT0

GPIO

LCD_SEG14

Touch5

WM_GPIO_NUM_19

PB3

PWM3

L-SPI_MISO

UART2_RX

PSRAM_DAT1

GPIO

LCD_SEG15

Touch6

WM_GPIO_NUM_20

PB4

L-SPI_CS

UART2_RTS

UART4_TX

PSRAM_DAT2

GPIO

LCD_SEG16

Touch7

WM_GPIO_NUM_21

PB5

L-SPI_MOSI

UART2_CTS

UART4_RX

PSRAM_DAT3

GPIO

LCD_SEG17

Touch8

WM_GPIO_NUM_22

PB6

UART1_TX

MMC_CLK

H-SPI_CK

SDIO_SLAVE_CK

GPIO

LCD_SEG18

Touch9

WM_GPIO_NUM_23

PB7

UART1_RX

MMC_CMD

H-SPI_INT

SDIO_SLAVE_CMD

GPIO

LCD_SEG19

Touch10

WM_GPIO_NUM_24

PB8

I2S_BCLK

MMC_DAT0

PWM_BREAK

SDIO_SLAVE_D0

GPIO

LCD_SEG20

Touch11

WM_GPIO_NUM_25

PB9

I2S_LRCLK

MMC_DAT1

H-SPI_CS

SDIO_SLAVE_D1

GPIO

LCD_SEG21

Touch12

WM_GPIO_NUM_26

PB10

I2S_DI

MMC_DAT2

H-SPI_DI

SDIO_SLAVE_D2

GPIO

LCD_SEG22

WM_GPIO_NUM_27

PB11

I2S_D0

MMC_DAT3

H-SPI_DO

SDIO_SLAVE_D3

GPIO

LCD_SEG23

WM_GPIO_NUM_28

PB12

H-SPI_CK

PWM0

UART5_CTS

I2S_BCLK

GPIO

LCD_SEG24

WM_GPIO_NUM_29

PB13

H-SPI_INT

PWM1

UART5_RTS

I2S_LRCLK

GPIO

LCD_SEG25

WM_GPIO_NUM_30

PB14

HSPI_CS

PWM2

L-SPI_CS

I2S_DO

GPIO

LCD_SEG26

WM_GPIO_NUM_31

PB15

HSPI_DI

PWM3

L-SPI_CK

I2S_DI

GPIO

LCD_SEG27

WM_GPIO_NUM_32

PB16

HSPI_DO

PWM4

L-SPI_MISO

UART1_RX

GPIO

LCD_SEG28

WM_GPIO_NUM_33

PB17

UART5_RX

PWM_BREAK

L-SPI_MOSI

I2S_MCLK

GPIO

LCD_SEG29

WM_GPIO_NUM_34

PB18

UART5_TX

GPIO

LCD_SEG30

WM_GPIO_NUM_35

PB19

UART0_TX

PWM0

UART1_RTS

I2C_SDA

GPIO

WM_GPIO_NUM_36

PB20

UART0_RX

PWM1

UART1_CTS

I2C_SCL

GPIO

WM_GPIO_NUM_37

PB21

UART0_RTS

GPIO

LCD_COM1

WM_GPIO_NUM_38

PB22

UART0_CTS

GPIO

LCD_COM2

WM_GPIO_NUM_40

PB24

L-SPI_CK

PWM2

GPIO

LCD_SEG2

WM_GPIO_NUM_41

PB25

L-SPI_MISO

PWM3

GPIO

LCD_COM0

WM_GPIO_NUM_42

PB26

L-SPI_MOSI

PWM4

GPIO

LCD_SEG1

WM_GPIO_NUM_43

PB27

PSRAM_CS

UART0_TX

GPIO

LCD_COM3

The pinmux function multiplexing relationships for W802 chip

GPIO_NUM

PadName

FUN1

FUN2

FUN3

FUN4

FUN5

FUN6

FUN7

WM_GPIO_NUM_0

PA0

I2S_MCLK

L-SPI_CS

PWM2

I2S_DO

GPIO

WM_GPIO_NUM_1

PA1

JTAG_CK

I2C_SCL

PWM3

I2S_LRCLK

GPIO

ADC_0

WM_GPIO_NUM_2

PA2

UART1_RTS

UART2_TX

PWM0

UART3_RTS

GPIO

ADC_3

WM_GPIO_NUM_3

PA3

UART1_CTS

UART2_RX

PWM1

UART3_CTS

GPIO

ADC_2

WM_GPIO_NUM_4

PA4

JTAG_SWO

I2C_SDA

PWM4

I2S_BCLK

GPIO

ADC_1

WM_GPIO_NUM_7

PA7

PWM4

L-SPI_MOSI

I2S_MCLK

I2S_DI

GPIO

WM_GPIO_NUM_9

PA9

MMC_CLK

UART4_RX

UART5_RX

I2S_LRCLK

GPIO

Touch1

WM_GPIO_NUM_10

PA10

MMC_CMD

UART4_RTS

PWM0

I2S_DO

GPIO

Touch2

WM_GPIO_NUM_12

PA12

MMC_DAT1

UART5_TX

PWM2

GPIO

CMOD

WM_GPIO_NUM_14

PA14

MMC_DAT3

UART5_CTS

PWM4

GPIO

CDC

WM_GPIO_NUM_16

PB0

PWM0

L-SPI_MISO

UART3_TX

PSRAM_CK

GPIO

Touch3

WM_GPIO_NUM_17

PB1

PWM1

L-SPI_CK

UART3_RX

PSRAM_CS

GPIO

Touch4

WM_GPIO_NUM_18

PB2

PWM2

L-SPI_CK

UART2_TX

PSRAM_DAT0

GPIO

Touch5

WM_GPIO_NUM_19

PB3

PWM3

L-SPI_MISO

UART2_RX

PSRAM_DAT1

GPIO

Touch6

WM_GPIO_NUM_20

PB4

L-SPI_CS

UART2_RTS

UART4_TX

PSRAM_DAT2

GPIO

Touch7

WM_GPIO_NUM_21

PB5

L-SPI_MOSI

UART2_CTS

UART4_RX

PSRAM_DAT3

GPIO

Touch8

WM_GPIO_NUM_22

PB6

UART1_TX

MMC_CLK

H-SPI_CK

SDIO_SLAVE_CK

GPIO

Touch9

WM_GPIO_NUM_23

PB7

UART1_RX

MMC_CMD

H-SPI_INT

SDIO_SLAVE_CMD

GPIO

Touch10

WM_GPIO_NUM_24

PB8

I2S_BCLK

MMC_DAT0

PWM_BREAK

SDIO_SLAVE_D0

GPIO

Touch11

WM_GPIO_NUM_25

PB9

I2S_LRCLK

MMC_DAT1

H-SPI_CS

SDIO_SLAVE_D1

GPIO

Touch12

WM_GPIO_NUM_26

PB10

I2S_DI

MMC_DAT2

H-SPI_DI

SDIO_SLAVE_D2

GPIO

WM_GPIO_NUM_27

PB11

I2S_D0

MMC_DAT3

H-SPI_DO

SDIO_SLAVE_D3

GPIO

WM_GPIO_NUM_28

PB12

H-SPI_CK

PWM0

UART5_CTS

I2S_BCLK

GPIO

WM_GPIO_NUM_29

PB13

H-SPI_INT

PWM1

UART5_RTS

I2S_LRCLK

GPIO

WM_GPIO_NUM_30

PB14

HSPI_CS

PWM2

L-SPI_CS

I2S_DO

GPIO

WM_GPIO_NUM_31

PB15

HSPI_DI

PWM3

L-SPI_CK

I2S_DI

GPIO

WM_GPIO_NUM_32

PB16

HSPI_DO

PWM4

L-SPI_MISO

UART1_RX

GPIO

WM_GPIO_NUM_33

PB17

UART5_RX

PWM_BREAK

L-SPI_MOSI

I2S_MCLK

GPIO

WM_GPIO_NUM_34

PB18

UART5_TX

GPIO

WM_GPIO_NUM_35

PB19

UART0_TX

PWM0

UART1_RTS

I2C_SDA

GPIO

WM_GPIO_NUM_36

PB20

UART0_RX

PWM1

UART1_CTS

I2C_SCL

GPIO

WM_GPIO_NUM_37

PB21

UART0_RTS

GPIO

WM_GPIO_NUM_38

PB22

UART0_CTS

GPIO

WM_GPIO_NUM_40

PB24

L-SPI_CK

PWM2

GPIO

WM_GPIO_NUM_41

PB25

L-SPI_MISO

PWM3

GPIO

WM_GPIO_NUM_42

PB26

L-SPI_MOSI

PWM4

GPIO

WM_GPIO_NUM_45

PB29

PSRAM_DAT1_1

UART0_RTS_1

GPIO

Touch15

The pinmux function multiplexing relationships for W803 chip

GPIO_NUM

PadName

FUN1

FUN2

FUN3

FUN4

FUN5

FUN6

FUN7

WM_GPIO_NUM_0

PA0

I2S_MCLK

L-SPI_CS

PWM2

I2S_DO

GPIO

WM_GPIO_NUM_1

PA1

JTAG_CK

I2C_SCL

PWM3

I2S_LRCLK

GPIO

ADC_0

WM_GPIO_NUM_4

PA4

JTAG_SWO

I2C_SDA

PWM4

I2S_BCLK

GPIO

ADC_1

WM_GPIO_NUM_7

PA7

PWM4

L-SPI_MOSI

I2S_MCLK

I2S_DI

GPIO

WM_GPIO_NUM_12

PA12

UART5_TX

PWM2

GPIO

CMOD

WM_GPIO_NUM_14

PA14

UART5_CTS

PWM4

GPIO

CDC

WM_GPIO_NUM_16

PB0

PWM0

L-SPI_MISO

UART3_TX

PSRAM_CK

GPIO

Touch3

WM_GPIO_NUM_17

PB1

PWM1

L-SPI_CK

UART3_RX

PSRAM_CS

GPIO

Touch4

WM_GPIO_NUM_18

PB2

PWM2

L-SPI_CK

UART2_TX

PSRAM_DAT0

GPIO

Touch5

WM_GPIO_NUM_19

PB3

PWM3

L-SPI_MISO

UART2_RX

PSRAM_DAT1

GPIO

Touch6

WM_GPIO_NUM_20

PB4

L-SPI_CS

UART2_RTS

UART4_TX

PSRAM_DAT2

GPIO

Touch7

WM_GPIO_NUM_21

PB5

L-SPI_MOSI

UART2_CTS

UART4_RX

PSRAM_DAT3

GPIO

Touch8

WM_GPIO_NUM_22

PB6

UART1_TX

MMC_CLK

H-SPI_CK

SDIO_SLAVE_CK

GPIO

Touch9

WM_GPIO_NUM_23

PB7

UART1_RX

MMC_CMD

H-SPI_INT

SDIO_SLAVE_CMD

GPIO

Touch10

WM_GPIO_NUM_24

PB8

I2S_BCLK

MMC_DAT0

PWM_BREAK

SDIO_SLAVE_D0

GPIO

Touch11

WM_GPIO_NUM_25

PB9

I2S_LRCLK

MMC_DAT1

H-SPI_CS

SDIO_SLAVE_D1

GPIO

Touch12

WM_GPIO_NUM_26

PB10

I2S_DI

MMC_DAT2

H-SPI_DI

SDIO_SLAVE_D2

GPIO

WM_GPIO_NUM_27

PB11

I2S_D0

MMC_DAT3

H-SPI_DO

SDIO_SLAVE_D3

GPIO

WM_GPIO_NUM_35

PB19

UART0_TX

PWM0

UART1_RTS

I2C_SDA

GPIO

WM_GPIO_NUM_36

PB20

UART0_RX

PWM1

UART1_CTS

I2C_SCL

GPIO

The pinmux function multiplexing relationships for W806 chip

GPIO_NUM

PadName

FUN1

FUN2

FUN3

FUN4

FUN5

FUN6

FUN7

WM_GPIO_NUM_0

PA0

I2S_MCLK

L-SPI_CS

PWM2

I2S_DO

GPIO

WM_GPIO_NUM_1

PA1

JTAG_CK

I2C_SCL

PWM3

I2S_LRCLK

GPIO

ADC_0

WM_GPIO_NUM_2

PA2

UART1_RTS

UART2_TX

PWM0

UART3_RTS

GPIO

ADC_3

WM_GPIO_NUM_3

PA3

UART1_CTS

UART2_RX

PWM1

UART3_CTS

GPIO

ADC_2

WM_GPIO_NUM_4

PA4

JTAG_SWO

I2C_SDA

PWM4

I2S_BCLK

GPIO

ADC_1

WM_GPIO_NUM_5

PA5

UART3_TX

UART2_RTS

PWM_BREAK

UART4_RTS

GPIO

WM_GPIO_NUM_6

PA6

UART3_RX

UART2_CTS

UART4_CTS

GPIO

LCD_SEG31

WM_GPIO_NUM_7

PA7

PWM4

L-SPI_MOSI

I2S_MCLK

I2S_DI

GPIO

LCD_SEG03

WM_GPIO_NUM_8

PA8

PWM_BREAK

UART4_TX

UART5_TX

I2S_BCLK

GPIO

LCD_SEG04

WM_GPIO_NUM_9

PA9

MMC_CLK

UART4_RX

UART5_RX

I2S_LRCLK

GPIO

LCD_SEG05

WM_GPIO_NUM_10

PA10

MMC_CMD

UART4_RTS

PWM0

I2S_DO

GPIO

LCD_SEG06

WM_GPIO_NUM_11

PA11

MMC_DAT0

UART4_CTS

PWM1

I2S_DI

GPIO

LCD_SEG07

WM_GPIO_NUM_12

PA12

MMC_DAT1

UART5_TX

PWM2

GPIO

LCD_SEG08

WM_GPIO_NUM_13

PA13

MMC_DAT2

UART5_RX

PWM3

GPIO

LCD_SEG09

WM_GPIO_NUM_14

PA14

MMC_DAT3

UART5_CTS

PWM4

GPIO

LCD_SEG10

WM_GPIO_NUM_15

PA15

PSRAM_CK

UART5_RTS

PWM_BREAK

GPIO

LCD_SEG11

WM_GPIO_NUM_16

PB0

PWM0

L-SPI_MISO

UART3_TX

PSRAM_CK

GPIO

LCD_SEG12

WM_GPIO_NUM_17

PB1

PWM1

L-SPI_CK

UART3_RX

PSRAM_CS

GPIO

LCD_SEG13

WM_GPIO_NUM_18

PB2

PWM2

L-SPI_CK

UART2_TX

PSRAM_DAT0

GPIO

LCD_SEG14

WM_GPIO_NUM_19

PB3

PWM3

L-SPI_MISO

UART2_RX

PSRAM_DAT1

GPIO

LCD_SEG15

WM_GPIO_NUM_20

PB4

L-SPI_CS

UART2_RTS

UART4_TX

PSRAM_DAT2

GPIO

LCD_SEG16

WM_GPIO_NUM_21

PB5

L-SPI_MOSI

UART2_CTS

UART4_RX

PSRAM_DAT3

GPIO

LCD_SEG17

WM_GPIO_NUM_22

PB6

UART1_TX

MMC_CLK

H-SPI_CK

SDIO_SLAVE_CK

GPIO

LCD_SEG18

WM_GPIO_NUM_23

PB7

UART1_RX

MMC_CMD

H-SPI_INT

SDIO_SLAVE_CMD

GPIO

LCD_SEG19

WM_GPIO_NUM_24

PB8

I2S_BCLK

MMC_DAT0

PWM_BREAK

SDIO_SLAVE_D0

GPIO

LCD_SEG20

WM_GPIO_NUM_25

PB9

I2S_LRCLK

MMC_DAT1

H-SPI_CS

SDIO_SLAVE_D1

GPIO

LCD_SEG21

WM_GPIO_NUM_26

PB10

I2S_DI

MMC_DAT2

H-SPI_DI

SDIO_SLAVE_D2

GPIO

LCD_SEG22

WM_GPIO_NUM_27

PB11

I2S_D0

MMC_DAT3

H-SPI_DO

SDIO_SLAVE_D3

GPIO

LCD_SEG23

WM_GPIO_NUM_28

PB12

H-SPI_CK

PWM0

UART5_CTS

I2S_BCLK

GPIO

LCD_SEG24

WM_GPIO_NUM_29

PB13

H-SPI_INT

PWM1

UART5_RTS

I2S_LRCLK

GPIO

LCD_SEG25

WM_GPIO_NUM_30

PB14

HSPI_CS

PWM2

L-SPI_CS

I2S_DO

GPIO

LCD_SEG26

WM_GPIO_NUM_31

PB15

HSPI_DI

PWM3

L-SPI_CK

I2S_DI

GPIO

LCD_SEG27

WM_GPIO_NUM_32

PB16

HSPI_DO

PWM4

L-SPI_MISO

UART1_RX

GPIO

LCD_SEG28

WM_GPIO_NUM_33

PB17

UART5_RX

PWM_BREAK

L-SPI_MOSI

I2S_MCLK

GPIO

LCD_SEG29

WM_GPIO_NUM_34

PB18

UART5_TX

GPIO

LCD_SEG30

WM_GPIO_NUM_35

PB19

UART0_TX

PWM0

UART1_RTS

I2C_SDA

GPIO

WM_GPIO_NUM_36

PB20

UART0_RX

PWM1

UART1_CTS

I2C_SCL

GPIO

WM_GPIO_NUM_37

PB21

UART0_RTS

GPIO

LCD_COM1

WM_GPIO_NUM_38

PB22

UART0_CTS

GPIO

LCD_COM2

WM_GPIO_NUM_40

PB24

L-SPI_CK

PWM2

GPIO

LCD_SEG2

WM_GPIO_NUM_41

PB25

L-SPI_MISO

PWM3

GPIO

LCD_COM0

WM_GPIO_NUM_42

PB26

L-SPI_MOSI

PWM4

GPIO

LCD_SEG1

WM_GPIO_NUM_43

PB27

PSRAM_CS

UART0_TX

GPIO

LCD_COM3

The requirements for setting the attributes of pins for IO function

By configuring pinmux, the IO can be selected to perform different functions, and some of these functions have specific requirements for the attributes of the pins. The following table summarizes the specific IO attribute requirements for each IO function of the W80X SoC:

IO Function

Sub-Function Requirements

Pullmode

Direction

LCD_SEG

FLOAT

INPUT

LCD_COM

FLOAT

INPUT

ADC

FLOAT

INPUT

Touch

FLOAT

INPUT

I2C_SDA

PULLUP

Irrelevant

I2C_SCL

PULLUP

Irrelevant

PWM_BREAK

High Level Trigger

PULLDOWN

Irrelevant

PWM_BREAK

Low Level Trigger

PULLUP

Irrelevant

UART RX

PULLUP

Irrelevant

GPIO

Input

PULLUP/DOWN/FLOAT

INPUT

GPIO

Output

Irrelevant

OUTPUT

I2S_LRCLK

Sequence L->R

PULLUP

Irrelevant

I2S_LRCLK

Sequence R->L

PULLDOWN

Irrelevant

I2S BCLK/DI/DO

Irrelevant

Irrelevant

SDIO

Irrelevant

Irrelevant

HSPI

Irrelevant

Irrelevant

SIM

Irrelevant

Irrelevant

PWM

Irrelevant

Irrelevant

MMC

Irrelevant

Irrelevant

Uart TX/RTS/CTS

Irrelevant

Irrelevant

JTAG

Irrelevant

Irrelevant

For example, WM_GPIO_NUM_1 is configured as FUN6, which corresponds to the ADC function. Additionally, it is necessary to set the IO attribute to FLOAT and configure the GPIO Direction as INPUT.

Note

1.Upon power-on, all IOs on the W80X series SoC are defaulted to a Floating, Input state.

2.When configuring an IO to FUN6 or FUN7, this IO is set to an analog function. Under such conditions, the Pullmode of this IO should not be set to pullup, as it may cause damage to the chip in some environments.

3.For PWM applications, attention should be paid to IO configuration. Each channel should only have one pin function configured to maintain a single output path. If multiple pins are set to the same PWM channel (for example, both GPIO2 and GPIO10 are set to PWM0), all these pins will output the PWM0 waveform.