This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

Understanding External Serial Flash

Hello,

I am working on my first project that uses external serial flash for storage.  I am having a hard time understanding how the memory in the chip is laid out.  I also wanted to verify some of my thinking.  I was hoping to ask a few questions.  Any input would be greatly appreciated.  I am using the Micorchip SST25VF032B 

1.  Is there anyway to see a diagram of the memory blocks with the address names?  The description says "The SST25VF032B SuperFlash memory array is organized in uniform 4 KByte erasable sectors with 32 KByte overlay blocks and 64 KByte overlay erasable blocks."  While I am sure that is descriptive to some I have not idea what that looks like.

2.  The chip itself is 32 Mbit is size.  The memory area table shows addresses from 000000H-3FFFFFH.  I believe this mean that there are 4,194,303 bytes of memory available (hex to decimal conversion).  Is this correct?

3.  The datasheet uses the names for the addresses such as Ams-A12, Ams- 15, Ams-A16, A23-A1, A23-A0.  Page 10 is where this naming convention starts.  I understand Ams stand for "most significant memory address" but I have not idea what it means or what it would look like on a memory map.  Any clarification would be helpful.

4.  The program I am writing will consecutively store data and it is measured.  The device will turn on and off numerous times through it's life.  I would like to find the last place data was written and write to the proceeding byte.  Is there a way to do this?  Should I store the last know location to the MSP430 or is there an easy way to search for the next available byte?

Sorry for all of the questions.  I looked for a tutorial on the chip itself but I could not find anything that made sense for a newbie.

Take care,

Jon

  • Jonthornham said:
    Micorchip SST25VF032B 

    Why you are writing in msp430 forum?

  • Ilmars said:

    Why you are writing in msp430 forum?

    llmars ++;

    Perchance - "micorchip" forum enforces some (limited) spelling competency...

  • (1)/(3) are answered by the Notes below Table 5.

    1) The 4KB/32KB/64KB distinction is conceptual, based on which block size you prefer to code around. Any given byte is located simultaneously in a 4KB and a 32KB and a 64KB enclosing block. The chip provides a linear-bytes logical structure; the physical layout of the flash inside the chip is not presented.

    2) Yes.

    3) A23 refers to the fact that every address presented to the device is 24 bits long. For smaller devices some of these (A23-Ams) are irrelevant and are ignored.

    4) This is a design question for your system. You'll probably find that writing the last-byte pointer (a veryvery simple directory structure) to the device will be simplest code-wise. Take care to (a) watch out for inopportune power-outs, e.g. write alternately to 2x different locations (b) watch out for write-cycle limitations (wear-leveling) -- 100k writes is large, but not impossibly large.

  • @Bruce, Yours - above/beyond - yet might a less demanding device be a superior, "first pass/first step?"

    Poster's "attention to detail" not firmly (yet) in evidence - along w/ proper targeting of issue. 

    And then - the whole issue of MCU -> slave device - must be identified and systematically resolved.  (perhaps that on an appropriate forum...)

  • I am writing on the MSP430 forum for several reasons.  The biggest reason is that there are a lot of smart people that like to offer a helping hand.  I know that there are many people who have interfaced to microchip storage with an MSP430 in the past and I value there input.  

    Take care,

    Jon

  • Bruce,

    Thanks for taking the time to answer my questions.  As I mentioned I've never done this before and I know that my questions so my limited understanding.  

    Take care,

    Jon

  • Jonthornham said:
    people here - that like to offer a helping hand

    No one could have known that - your 1st writing. 

    Strongly suggest that you "start" w/far simpler (i.e. substantially smaller capacity) memory chip - build your understanding/confidence - only then move onto that far more advanced (and demanding) device.  KISS most always saves you time/money/effort...

**Attention** This is a public forum