Hello @ratio-x, thanks for the feedback!
As you correctly stated, the ESP32-S3 CPU has 2 I2C controllers. The only reason why the data sheet does not mention the second I2C is probably due to the Nano pinout legacy, in which only a single I2C was assigned. We will surely clarify this point in a future revision!
Both should work effortlessly (using Wire and Wire1 objects), however note that on the second interface you will have to manually assign clock and data pins via setPins() (see the Arduino-ESP32 I2C reference for more information). Any available pin should work just fine!
Thank you for clarification. This should also be mentioned in the Tech Spec section of the product website, where is stated:
UART
2x
I2C
1x, A4 (SDA), A5 (SCL)
SPI
D11 (COPI), D12 (CIPO), D13 (SCK). Use any GPIO for Chip Select (CS).
Two I2C buses are an essential feature in combination with a dual core (multithreading-capable) chip.
That clarification should also be done with SPI. There are 4 controllers, 2 needed for flash memory, so 2 left for peripherals (VSPI, HSPI).
ESP32-S3 integrates 4 SPI peripherals.
SPI0 and SPI1 are used internally to access the ESP32-S3’s attached flash memory. Both controllers share the same SPI bus signals, and there is an arbiter to determine which can access the bus.
Currently, SPI Master driver does not support SPI1 bus.
SPI2 and SPI3 are general purpose SPI controllers. They are open to users. SPI2 and SPI3 have independent signal buses with the same respective names. SPI2 has 6 CS lines. SPI3 has 3 CS lines. Each CS line can be used to drive one SPI slave.