I/O mux - "Any GPIO pins" comment

Mickael_Sportable
Posts: 1
Joined: Thu Nov 09, 2017 10:07 am

I/O mux - "Any GPIO pins" comment

Postby Mickael_Sportable » Thu Nov 09, 2017 10:22 am

Hi everyone,

There is something with ESP32 I/O Mux which is not clear for me.

Table 8. of the Datasheet details all different interface and signals (that's good). But I am a bit confused by the "Pin" column that specifies where those different signals are mapped, especially when it reads "Any GPIO Pins".
To me, the statement is then contradicted by the "A.4 IO_MUX" Table which details what specific functions is available on which physical pins.

I will give an example:
- I want to use a Standard SPI interface - so lets say HSPI* in this case, and the signal HSPICLK in particular.
- The "Any GPIO Pins" comment of Table 8. makes me think that I can map it on ANY GPIOs physical pin, provided that it is an output.
- But then looking an the I/O Mux Table, HSPICLK is only mapped on GPIO_14, as Function 2...
>>> What is the correct understanding?

Hope I was clear enough!
Thanks,
Mickael

ESP_Sprite
Posts: 9708
Joined: Thu Nov 26, 2015 4:08 am

Re: I/O mux - "Any GPIO pins" comment

Postby ESP_Sprite » Thu Nov 09, 2017 11:11 pm

The issue is that there are two ways of mapping pins: the GPIO mux and the IO_MUX. The GPIO mux allows you to map a peripheral to any pin, but it has the disadvantage that it introduces an APB clock (80MHz) tick delay in the signal; for some purposes this can be disadvantageous. Because of this, we also have the IO_MUX, which can map the signals of some peripherals to a very limited amount of IO pins; this reduces flexibility but because the IO_MUX does not have the delay, it can be useful for some purposes.

Who is online

Users browsing this forum: forrest and 74 guests