Hi everybody,
I difficult question, but I ask it anyway hoping that someone has the right answer.
I have a Winbond W25Q64FV and I need to program it in some way. I tried using the CH341a programmer with the related software, but the software has not the right chip in the library so I used the most similar one, the Winbond W24Q64. But after pressing read (the chip is already programmed so it's not empty) and after some minute it still shows to me only FF. So I assume that the chip wasn't read correctly. How can I read, but more importantly write, on this little piece of silicon?This is the schematic I've used (DO is MISO and DI is MOSI) without adding the resistor and obviusly not attaching the wires on a parallel port but on my CH341 programmer:
Eternyt:
I thought it was just simpler with the ch341. How can I do that with the Arduino. And more important, I can do that on my specific chip?
Thanks!
The !SPI_RAM line just connects to an Arduino pin that you specify. It is your CS pin.
Thanks, but I'm still not able to connect to my chip.
I use this schematic for the voltage conversion from 5V to 3V (where I assume that the non _L pin stands for the Arduino pins, and the pins with the _L in the end are the chip pins):
And this for SPI references(where I assume CS = SS, SCK = CLK, MISO = DO, MOSI = DI):
Then I just run the FlashDiagnostic example from the library you linked (without changing anything of the code) and it's no work at all.
What I'm doing wrong here? Thanks!
Eternyt:
Thanks, but I'm still not able to connect to my chip.
I use this schematic for the voltage conversion from 5V to 3V (where I assume that the non _L pin stands for the Arduino pins, and the pins with the _L in the end are the chip pins):
Then I just run the FlashDiagnostic example from the library you linked (without changing anything of the code) and it's no work at all.
What I'm doing wrong here? Thanks!
If you need to talk with a 3.3v SPI device a resistor divider is not recommended.
So I'm not able to interface to my chip because of the resistor dividers? So I don't understand why on the GitHub page of the library the Arduino UNO is completely supported...
What do you suggest to interface this chip? I see that the ESP8266 are supported, can I use my NodeMCU?
Also, I don't understand what the TiBackup and the Lifter (with relative schematics) are.
Many thanks!
Eternyt:
So I'm not able to interface to my chip because of the resistor dividers? So I don't understand why on the GitHub page of the library the Arduino UNO is completely supported...
What do you suggest to interface this chip? I see that the ESP8266 are supported, can I use my NodeMCU?
Also, I don't understand what the TiBackup and the Lifter (with relative schematics) are.
Many thanks!
Those schematic are examples of how I have successfully connected 25Q64 devices to Arduino Processors, the TiBackup show how a directly connect to a AVR processor running on 3.3v The second schematic show how I interfaced the 3.3V 25Q64 to a 5V Arduino Mega. The resistor divider circuit not recommended for SPI devices because of the high frequency (fast) signals. The resistor's limit the current drive. This limited current and the parasitic capacitance modify the signal waveforms. Depending on the exact capacitance of your circuit you may not achieve reliable communications with the Flash chip. The 10k resistor limits the maximum current to 0.5mA as the voltage at the tap point increase this drive current is reduced. Instead of a crisp 0V to 5V translations the Flash will see a distorted wave. Read this example from Joonas Pihlagamaa .