Use this forum to chat about hardware specific topics for the ESP8266 (peripherals, memory, clocks, JTAG, programming)

User avatar
By CARPP
#85148 As far as I know, the ESP8266 does not have an I2C module. This is emulated via software.
But I guess you are right with your second statement, that the I2S clock influences the CPU clock as well.

Don't know why you are relating from Wifi to UART though. The ESP8266 also has two very powerful SPI modules
User avatar
By eriksl
#85151 The ESP8266 certainly does not have I2C hardware support. At least not exposed in any way to us. That's why I made my own code for that (a "tad" better than the Espressif one, both faster and more compliant).

The I2S clock does not have a direct relation to the CPU clock, but they probably share one or more (parts of) registers (which is quite usual in microcontrollers).

There are not many people that use SPI for primary interaction with the ESP8266. It's very well possible though, indeed.

Only one SPI module can be used, the other one is for accessing the flash memory. In theory one could read all code in IRAM (64 kB in total), run from there and then one would be able to use the primary SPI controller for it's own purpose. I don't see the use though as there is already a second SPI controller provided.

Anyway, so yeah, in that case you could do without WLAN. But also in that case you wouldn't be using, imho, the unique selling point of the device.
User avatar
By CARPP
#85152
There are not many people that use SPI for primary interaction with the ESP8266. It's very well possible though, indeed.

If you are relating from a computer point of view then certainly UART is the best way to communicate with the ESP8266 - but between embedded ICs, SPI certainly has higher bandwidth (considering 80MHz SPI-Clock you are able to transmit 80Mbit/s).

Only one SPI module can be used, the other one is for accessing the flash memory.

If opened another topic about the SPI used for flash: viewtopic.php?f=13&t=20702 just a few days ago.
And @btidey mentioned that it sure is possible to share the Flash-SPI with other devices (even though CS0 has highest priority, but CS1/CS2 could be used in theory, practically you don't want to re-map the functionality of CS1 which is the UART-TX used for flashing, so you are left with CS2).

I don't see the use though as there is already a second SPI controller provided.

You are right, it is much easier to just use the second SPI block.

But also in that case you wouldn't be using, imho, the unique selling point of the device.

Think about it that way: The main selling point of the ESP8266 would shift from being a low-price WIFI-enabled controller to a low-price high-speed controller (considering that the ESP8266EX IC is available via Taobao for as low as ~40 Euro-Cent, there is just no other device running at >300MHz for 40 Cent).

I would appreciate it very much if anyone could share his/her experience with the ESP8266's PLL.
User avatar
By eriksl
#85154 Here the same, but I don't think many people will have interest in an ESP8266 with disabled WLAN. Whether that would be appropriate or not. I do think that's the reason not much can be found on this topic.

Yes, you can share the pins of the SPI (flash) HSPI (user) controller, but I wouldn't go there unless you really need all GPIO pins for other purposes. A simpler approach would mostly be to connect an I/O expander (either using I2C or SPI), but then you wouldn't have PWM etc. on the pins.