Using ESP8266/32 to write Flash

Non-technical related questions should go here.
User avatar
mon2
XCore Legend
Posts: 1913
Joined: Thu Jun 10, 2010 11:43 am
Contact:

Post by mon2 »

This company has some patented small footprint jtag cable which could work for your consideration.

http://www.tag-connect.com/

Use enough pins on the cable to allow for the disabling of your mux and still allow for the assertion of the SPI pins to reflash a virgin or corrupt flash device. The main intent is to how to program the flash the first time and using an external jig is probably a good solution. From past dialog, vendors like Arrow and most likely Avnet can pre-program the flash with your code at the factory and then ship you the part on tape & reel so the assembly house does not complain. But then you will be paying a small premium for the service + setup fees. Benefit is that the board will do something upon first power up since the flash is programmed already. Many ideas to ponder.


User avatar
xaerox
Active Member
Posts: 43
Joined: Thu Apr 30, 2015 6:12 pm

Post by xaerox »

Thank you mon2!
I already worked with tag-connect products :)
nicolass
Member
Posts: 9
Joined: Fri Aug 17, 2018 4:42 pm

Post by nicolass »

infiniteimprobability wrote:Hmm, well you can of course hold xmos in reset and directly control the QSPI lines but you will need QPSI support (at least bit banged) in the ESP and also you need to be wary of SI with stubs on the lines (particularly clock).

Alternatively you could use the flashlib API under say, slave i2c control. We do that for DFU in the vocalfusion reference design for I2C and for USB in the usb audio reference design which you could use as an example. The flashlib API provides support for factory/upgrade images etc.
Hi, I'm looking for examples of DFU using I2C so that I can implement it on my system, but I can't find any reference to DFU using I2C in documentation or examples. Also the makefile for the reference design `app_vf_spk_base` explicitly sets DFU=0 when the build option is set to `i2s_only`.

Your statement above indicates that there should be a way to do this however - could anybody point me in the right direction to get started?

Many thanks,
Nic
Post Reply