Thanks for creating SPIFlash -- I can see a tremendous amount of work has gone into it.
I am new to SPI Flash memory so I may be asking a stupid question but here goes. My basic question is: does SPIFlash support the "JV" series of chips from Winbond, specifically the W25Q32JVSSIQ and W25Q64JVSSIQ? Or is there something about the JV series that makes them incompatible, and I should try to find the BV of FV series mentioned in the wiki?
I got some Winbond chips from DigiKey: W25Q32JVSSIQ and W25Q64JVSSIQ. I soldered them on some SMT breakout boards from Adafruit and wired them up to an Adafruit Feather M0. The pinouts are:
3V --> 8 (VCC)
GND --> 4 (GND)
SCK --> 6 (CLK)
MOSI --> 5 (DI / IO0)
MISO --> 2 (DO / IO1)
GPIO #11 --> 1 (/CS)
At first, I did not hook up pins 3 (IO2) or 7 (IO3) to anything since it seemed they were not needed in this configuration.
I modified the readWriteString example sketch to tell it to use pin 11 for chip select in the SPIFlash constructor:
However, when I run I get an endless stream of this error message:
Unable to Enable Writing to chip.
Please make sure the HOLD & WRITEPROTECT pins are pulled up to VCC
According to the Winbond data sheet, the JV series of chips do not have HOLD and WRITEPROTECT pins:
Unlike the FV series, which state that pin 3 is both /WP and IO2, and pin 7 is both HOLD and IO3, the JV series just calls them IO2 and IO3. Looks like write protection is enabled/disabled only via the status registers.
I tried various combinations of tying pins 3 and/or 7 to Vdd and Vcc, but always got the same error. Then, based on the error message, I tried putting pullup resistors between 3 and 7 and Vcc, with values of 5.1K and then 100K, but I admit I'm just guessing there. Same result.
So ... am I out of luck? Is this chip series not supported?
Should I add pullup resistors between pins 3 and/or 7 to Vcc? If so, any suggestion on what values?