The Esp8266 family have limited ram for both running firmware and for storing data. To store large blocks of data it makes sense to have external RAM. Since I want to transfer large blocks of data to program target applications I am adding external ram to the SPI bus. Microchip makes a 1 Mbit SQI interface serial RAM.
Note: SQI is a version of SPI where the data is read/written 4 bits at a time.
To interface with SQI RAM I had to research how the SPI pins are connected to the flash memory. I searched on the web for the ESP-12e Flash chip. The clearest result(not necessarily accurate) is the Winbond W25Q32BV. I downloaded its datasheet along with a photoplot of the ESP-12E routing. I followed the signal traces of each pin from the Winbond flash chip to the edge of the board. The following table represents the signals and their pins on the edge of the board. This is based on very limited understanding of the ESP-12E.
ESP-12E Pin # Signal Notes 9 CS Don't use this, it is chip select for the flash chip 10 MISO/IO1 Should be available when firmware is loaded into ram 11 IO3 SQI IO Pin 12 IO2 SQI IO Pin 13 MOSI/IO0 Should be available when firmware is loaded into ram 14 SCLK Clock for all SPI and SQI data
The individual chip select lines determine which device is on the SPI/SQI bus.
This research led me to change the ESP-12E part in the library to reflect the signals, I have added a new chip to the library for the Microchip serial flash and attached the appropriate signals along with GPIO15 for the chip select.