Using a W25Q80BV 8 Mbit flash on a Moteino R6

Started by kobuki, August 18, 2019, 06:47:25 AM

kobuki

I've found a similar topic but it was so old I didn't resurrect it. Please move my post if you think it's more appropriate there.

I found 2 unused W25Q80BVSSIG flash chips in original tube packaging in my old parts junkyard and I soldered one to an unused mote. It's not detected. If I use 0 as chip ID, it gets through the initialization phase, but both the unique ID and the chip ID is all zeroes. When I use its proper chip ID (apparently 0xEF40), it's not detected at library initialization. Since I have another of the same chip, I can try that too, but I'd like to hear some hints first: should it work (I think it should), should I resolder, should I use another chip ID, etc. This chip is easily available to purchase locally so it would be great if I could make it work for OTA updates (mainly). Thanks.

TomWS

@kobuki, Welcome back!  Haven't seen you in a while!

It seems as if it should work if you change to EF40, but I did notice one difference in the command set: command 50 to enable writing to the 'non-volatile' status bits.  This might relate to the opening sequence to do a global unprotect, but I don't know why it should affect reading the ID - that should always work - otherwise how would you know which commands to send???

kobuki

Quote from: TomWS on August 18, 2019, 07:57:09 AM
reading the ID - that should always work - otherwise how would you know which commands to send???
Yeah, I suspected that too. So it's either me killing the chip with static, bad soldering or bad karma and I need to replace it... In any case I'll report back if I find out what's wrong. Of course more ideas are welcome.

- - -
Quote from: TomWS on August 18, 2019, 07:57:09 AM
@kobuki, Welcome back!  Haven't seen you in a while!
Thanks :) I've put on hold most of my hobbies for a while. And TBH I've been playing with the ESPxx things more for a while now. They've become huge in recent years.

TomWS

Quote from: kobuki on August 18, 2019, 09:23:13 AM
Yeah, I suspected that too. So it's either me killing the chip with static, bad soldering or bad karma and I need to replace it... In any case I'll report back if I find out what's wrong. Of course more ideas are welcome.
Good luck.  That Karma thing gets me all the time!   ;)
QuoteAnd TBH I've been playing with the ESPxx things more for a while now. They've become huge in recent years.
I hear ya.  Been doing some of that and also some BLE as well.

kobuki

Well, a bit embarrassing, but it was a simple case of PEBKAC - bad soldering. The chip identifies as 0xEF40, has a proper unique ID, so 0xEF40 or 0 can be used in the constructor as jedecID. Haven't tested yet for OTA, but I'm sure it will just work as DualOptiboot doesn't check the ID and the important SPI commands are the same.

Felix

Most importantly is to have a chip with the same command set (at least the ones used in code).
Then it should work regardless of chip size because the OTA uses the first 32K sector (or several for 1284p).

Quote from: kobuki on August 19, 2019, 06:59:45 PM
Well, a bit embarrassing, but it was a simple case of PEBKAC - bad soldering.
I've actually heard that same thing twice in the past few days ;)