Forums

Re: Flash

Started by tintronic December 14, 2007
1) As for external storing:
- For logging large amout of data, I use serial flash chips, like the
AT25F4096: SPI, 4Mbit, about $1.72 per unit on digi-key. But remember
this is FLASH and not EEPROM.

- For medium amounts of data, it may be preferible to use an I2C
EEPROMs like the 24LC256 (256kbit) for just under $2.

- If you need to store just a few bytes, the 93LC46 (SPI, 1kbit) may
be more suitable for about $0.42

- I you plan to use a low-power SPI real-time clock like the DS1302,
you can use its 31 bytes of battery-backed up RAM. An CR2032 battery
should keep time and RAM data for over 10 years.

- I've never used FRAM, which seem to be a great solution for 0-delay
nonvolatile storage, but their cost/capacity ratio is quite higher
than FLASH or EEPROM. You can find them in newark.com. Just search for
"FM25" and then click on "memory".

*As for using internal flash:
- While erasing flash, timers should go on working as usual, but you
HAVE to disable interrupts by means of the GIE bit. This is also true
when writing.

-I quote MSP430x1xx datasheet:
"All interrupt sources should be disabled before initiating any flash
operation. If an enabled interrupt were to occur during a flash
operation, the CPU would fetch 03FFFh as the address of the interrupt
service routine. The CPU would then execute the JMP PC instruction
while BUSY=1. When the flash operation finished, the CPU would begin
executing code at address 03FFFh, not the correct address for
interrupt service routine."

Best Regards,
Michael Kusch

--- In m..., "Jim Carlson" wrote:
>
> I have an application that requires the storage of some calibration
> information, the tracking of a start and stop time interval, and the
logging
> of data. I am curious if anyone has suggestions on implementation
ideas. My
> current thinking is using a large i2c part for the data logging;
storage of
> the calibration data in the MSP430 INFO region. What I am unsure
about is
> the storage of the start and stop time interval. This data will be
routinely
> changed and I do not want to impact the calibration data. I am
considering
> putting an additional small i2c device just for that information or
> allocation a different region in the MSP430 flash for that
information. The
> additional bit of pondering with this is the info I read in the
users guide
> indicates the 430 suspends operation [assuming the code is just
running out
> of the flash] while a section is being erased. Can anyone advise me
on what
> happens to timers and interrupts during a flash erase?
>
>
>
> Has anyone had issues with having multiple parts on the i2c bus?
>
>
>
> Thanks,
>
> Jim
>
>
>
>
>
>
>

Beginning Microcontrollers with the MSP430

I have been intrigued by the various options presented. I have not had any
experience with the SPI bus. I had not planned on implementing it, but it is
looking like a very good option. I am leaning toward using the FM25L256B,
serial FRAM memory. Having the spi bus configured will let me also look at
adding the ds1302.

Is there any reason why I could not also have an SD Memory Card connected on
the SPI bus?

Thanks,

Jim

_____

From: m... [mailto:m...] On Behalf Of
tintronic
Sent: Friday, December 14, 2007 3:01 PM
To: m...
Subject: [msp430] Re: Flash

1) As for external storing:
- For logging large amout of data, I use serial flash chips, like the
AT25F4096: SPI, 4Mbit, about $1.72 per unit on digi-key. But remember
this is FLASH and not EEPROM.

- For medium amounts of data, it may be preferible to use an I2C
EEPROMs like the 24LC256 (256kbit) for just under $2.

- If you need to store just a few bytes, the 93LC46 (SPI, 1kbit) may
be more suitable for about $0.42

- I you plan to use a low-power SPI real-time clock like the DS1302,
you can use its 31 bytes of battery-backed up RAM. An CR2032 battery
should keep time and RAM data for over 10 years.

- I've never used FRAM, which seem to be a great solution for 0-delay
nonvolatile storage, but their cost/capacity ratio is quite higher
than FLASH or EEPROM. You can find them in newark.com. Just search for
"FM25" and then click on "memory".

*As for using internal flash:
- While erasing flash, timers should go on working as usual, but you
HAVE to disable interrupts by means of the GIE bit. This is also true
when writing.

-I quote MSP430x1xx datasheet:
"All interrupt sources should be disabled before initiating any flash
operation. If an enabled interrupt were to occur during a flash
operation, the CPU would fetch 03FFFh as the address of the interrupt
service routine. The CPU would then execute the JMP PC instruction
while BUSY=1. When the flash operation finished, the CPU would begin
executing code at address 03FFFh, not the correct address for
interrupt service routine."

Best Regards,
Michael Kusch

--- In msp430@yahoogroups. com, "Jim
Carlson" wrote:
>
> I have an application that requires the storage of some calibration
> information, the tracking of a start and stop time interval, and the
logging
> of data. I am curious if anyone has suggestions on implementation
ideas. My
> current thinking is using a large i2c part for the data logging;
storage of
> the calibration data in the MSP430 INFO region. What I am unsure
about is
> the storage of the start and stop time interval. This data will be
routinely
> changed and I do not want to impact the calibration data. I am
considering
> putting an additional small i2c device just for that information or
> allocation a different region in the MSP430 flash for that
information. The
> additional bit of pondering with this is the info I read in the
users guide
> indicates the 430 suspends operation [assuming the code is just
running out
> of the flash] while a section is being erased. Can anyone advise me
on what
> happens to timers and interrupts during a flash erase?
>
> Has anyone had issues with having multiple parts on the i2c bus?
>
> Thanks,
>
> Jim
>
>
>