I have a ESP8266-01 and a 74HC595 8-bit shift register. I can drive the shift register using the ESP8266, but the ESP8266 doesn't have a SPI interface. I have a Microchip 23LC1024 that I want to drive using the ESP8266. I was wondering if it is possible to drive a SPI slave by bit banging with the shift register?
-
1\$\begingroup\$ I'm not understanding what benefit this shift register is going to have here. It looks like it's a serial in/parallel out SR. The serial input is basically SPI. If you can talk to that with the ESP8266 perhaps you can talk directly to the SPI slave by bit banging? \$\endgroup\$– cholzJul 22, 2021 at 15:18
-
\$\begingroup\$ Why can't you talk SPI directly from the ESP8266? You don't need an SPI interface to talk SPI. The interface just makes it more efficient. \$\endgroup\$– user253751Jul 22, 2021 at 16:20
-
\$\begingroup\$ use a esp8266 module with SPI pins accessible \$\endgroup\$– JurajJul 23, 2021 at 4:44
1 Answer
Yes, you could do it. As long as you are able to read data back from the memory chip somehow.
However, the HC595 is already on SPI-compatible bus. So you would be bit-banging SPI to shift register acting as IO expander, and then use the IO expander to bit-bang SPI to SPI Flash chip, which makes very little sense.
It would make more sense to use the bit-banged SPI to the HC595 also for the SPI flash, you only need separate chip selects (and data back from flash).
-
\$\begingroup\$ If I got you correctly, you're saying that I can just skip the HC595? \$\endgroup\$ Jul 22, 2021 at 19:10
-
\$\begingroup\$ Yes, because you would be bit-banging the SPI bus from HC595 to flash, over a bit-banged SPI bus from MCU to HC595. \$\endgroup\$– JustmeJul 22, 2021 at 19:23