Chat freely about anything...

User avatar
By GeorgeIoak
#20048 Unfortunately it doesn't appear that people who dig into the source code stay on this forum. I'm very curious about the answers to your questions so maybe you should make another post on the "official" forum, http://bbs.espressif.com/ and hopefully we can get some answers from there.

As far as my experience when working with different MCUs and processors this all comes down to 2 things, how the drivers are written that access the flash and then the speed at which the hardware can reliably perform. We know that the flash supports quad data access but if the clocks and timings are not properly performing they could impact the performance in a very big way. Since you you've have had some success I would think that maybe the code is OK since once it works there shouldn't be a reason to change it.
User avatar
By cal
#20064 Moin,

I suggest reading http://richard.burtons.org/2015/05/17/e ... t-process/ and his postings here.
Too many spaces to explore and not enough time.

If you want to dig into assembler or source code yourself tell what you want and I might me able
give some help to get started.

Cal
User avatar
By Eyal
#20102
GeorgeIoak wrote:once it works there shouldn't be a reason to change it.

Actually, it was not changed in this regard. If you look at my report earlier in this thread you will see that originally the flash was incorrectly detected as 512KB (x200) (making it fast)
Code: Select all> =string.format("%x %x %x %x %x %x %x %x", node.info())
0 9 5 a05aa1 1640ef 200 0 2625a00

but this later changed to 4MB (x1000) (making it slow)
Code: Select all> =string.format("%x %x %x %x %x %x %x %x", node.info())
0 9 5 a05aa1 1640ef 1000 0 2625a00

I do not know if this was an SDK change or an earlier mis-detection.
I am following up on the espressif forum though.
User avatar
By GeorgeIoak
#20104 If you issue a Device ID command to the flash it will return the following:

W25Q32FV-SPI Mode-->15-4016
W25Q32FV-QPI Mode-->15-6016

W25Q128FV-SPI Mode-->17-4018
W25Q128FV-QPI Mode-->17-6018

And other chips respond with different IDs so by issuing the same command you should immediately know what chip you are talking to. Since memory is mapped I don't know if you have to state the flash size at compile time and that is the only place or if the code will probe the flash chip and map the address space based on the detected chip. If I was a programmer that is how I would do it but hopefully you'll get a rseponse on the other forum and we can all learn.