SPI外部Flash大小限制?

⚠️
Hi there.. thanks for coming to the forums. Exciting news! we’re now in the process of moving to our new forum platform that will offer better functionality and is contained within the main Dialog website. All posts and accounts have been migrated. We’re now accepting traffic on the new forum only - please POST any new threads at//www.wsdof.com/support. We’ll be fixing bugs / optimising the searching and tagging over the coming days.
5 posts / 0 new
Last post
Max44
Offline
Last seen:9 months 2 weeks ago
加入:2016-02-08 15:58
SPI外部Flash大小限制?

Hello Dialog,
From reading forum posts on external SPI flash, it seems like there was a limit to the external flash size. Is this still the case? How large of a flash memory does Smart Snippets now support?
I'm looking at a large flash primarily for data logging and I can maintain the data area., but I'd like the low order flash to be used as a boot memory and for SUOTA and to be able to program it with Smart Snippets.
谢谢, Max

Device:
MH_Dialog (not verified)
Hi Max,

Hi Max,

Because an external SPI flash is limited to the 3 bytes of address, DA14580 can only support up to 16MB memory size. I believe the tool can also fulfill your requirement. Please refer to AN-B-023 for more information on external memory.

Max44
Offline
Last seen:9 months 2 weeks ago
加入:2016-02-08 15:58
谢谢MH and STS,

谢谢MH and STS,

I was trying to wire up a W25Q64 I have on a breakout board to the basic kit using a different set of pins than the onboard flash to verify operation for a custom board development and do some code development prior to the board being built. So far adding the Jedec ID and parameters to the spi_flash.h file and modifying spi_flash.c is working and I can access the flash with a modified version of the spi_flash peripheral example.

This flash chip is overkill for my application but is similar to what will be in the custom design. I'd also like to verify that I can program it with Smart Snippets and verify boot operation with this configuration. Theoretically I should be able to program the first 32 KB boot area if I modify the flash_programmer.bin file to support the W25Q64. I'm not sure I want to launch the erase for the whole chip in Smart Snippets as that takes 20 seconds or longer. Might be interesting to see if it will work though. It's been a while since I went down this path, but I'll try to set up to experiment with Smart Snippets using the modified spi_flash code and let you know how I make out.

Regards, Max

Max44
Offline
Last seen:9 months 2 weeks ago
加入:2016-02-08 15:58
I was able to access the

I was able to access the large W25Q64 flash with Smart Snippets after updating with a new version of jtag_programmer.bin that contained the updated spi_flash code. I could connect, read, erase sectors, and burn and verify. The chip erase reported an error, but it did appear to have erased the 1st 32 KB section. I assume this was because a chip erase command was issued and it timed out or the flash chip was still busy when a read and verify was attempted. Let me know if there's a way to adjust this.

Unfortunately, this turned out to be an exercise in futility. We discovered that there's only one configuration for an external SPI flash slave supported by the default bootloader and we did not want to have a secondary bootloader at this time. We were attempting to use P0-0,1,2,3 pins for the SPI slave and didn't realize this was set up for an external SPI master. So we're reconfiguring the board design and I can test the default configuration with the onboard flash of the basic kit.

谢谢for the help, Max

STS_Dialog (not verified)
Hi max 44,

Hi max 44,

By design every chip has its own memory size defined. In smart snippet tools in spi flash programmer there is an option at the right on the screen which determines the size. In case where the firmwork has bigger size than the real size of the memory, it will fail.

Flash Programmer (DA145x,DA 14585/6): If the data size of the archive is more than 32000 bytes, they break into parts of 16000 bytes and every part set in to the memory apart. For smaller data size archives set into the memory at once. We handle it either above uart or jtag .

谢谢,

STS_Dialog.