Continue to Site

Welcome to EDAboard.com

Welcome to our site! EDAboard.com is an international Electronics Discussion Forum focused on EDA software, circuits, schematics, books, theory, papers, asic, pld, 8051, DSP, Network, RF, Analog Design, PCB, Service Manuals... and a whole lot more! To participate you need to register. Registration is free. Click here to register now.

Ultra low power consumption 256Mb SPI memory for MCU

Status
Not open for further replies.

inklen

Full Member level 1
Joined
Oct 18, 2019
Messages
98
Helped
0
Reputation
0
Reaction score
0
Trophy points
6
Activity points
768
Hello,

I'm new to this topic, so please bear with me. I already posted this question to another forum (on another website), hopefully this is the right place to ask.

I'm trying to come up with a prototype which will be writing ~70kB/sec of data using ultra low-power MCU (well, that's that idea). The amount of data is up to 256 Mb. I googled and the best I found is Macronix products, for example - this Serial NOR Flash. But I really have no idea if this is the right tool for the job and what are my options overall.
I have to point out - this should be ultra low power solution (for Vcc 1.65 - 3.3 V or something like that).

I'd appreciate any suggestions - from links to articles to available products.
I prefer TI MCU's but that's just something I have worked with. It could be any other ultra low power MCU in case the memory requires a particular one or it has better characteristics.

Also, SPI is preferred as I understand this is the best interface supported by MCU's.

Thank you.
Alex
 

What kind of data (bus width) are you looking for? Bear in mind those Macronix memories are configurable as 64 Megabytes x 1 bit, 32 Megabytes x 2 bit or 16Megabytes x 4 bits. Is your data requirement in bits or bytes? Even if it is only one bit you need four memories and with SPI you need four select lines, one to each memory device.

Brian.
 

Bus width - I usually think of bytes/kilobytes, etc. Not sure what you're asking. Whatever allows me to keep up with writing speed of 70kb (kilobytes) per sec.

About four select lines - as far as I understand it just means more ... well, traces to MCU, correct? That I think it's fine.
 

70 kB/s is rather slow and can be surely implemented with standard SPI. It's however not clear what's "ultra low power" for you. Is it about specific energy consumption per bit or average power during memory operation. Is 70 kB/s a continuous or burst rate?
 

Hi,

If you have a very strict requirement, then "textual" descriptions like "ultra" are not useful.
You need to give values. Not "as low as posible". Really give the limit you can live with.

Klaus
 

70 kB/s is rather slow and can be surely implemented with standard SPI. It's however not clear what's "ultra low power" for you. Is it about specific energy consumption per bit or average power during memory operation. Is 70 kB/s a continuous or burst rate?

70 kB/s is a continuous rate. Ultra low power means if MCU consumption is about 120uA/MHz (active mode), and I hope 16 MHz would be sufficient, then this Macronix memory write/erase/read operation ~8 mA for 1 chip. I'm sure it's very wide estimate but anyway... The total would be ~16*120 + 8mA*4 chips =~34 mA.
Ideally, I'd prefer to have 1 Gb memory but this would increase Iq to 120 mA which is already huge. IF I'm right in these calculations.

Obviously, I'd prefer this Iq to be up to 30 mA in total for 1 Gb (continuous write) but I'm not sure it exists.
--- Updated ---

Hi,

If you have a very strict requirement, then "textual" descriptions like "ultra" are not useful.
You need to give values. Not "as low as posible". Really give the limit you can live with.

Klaus
Understand. Please see my reply above.
 

Hi,
I'm sure it's very wide estimate but anyway... The total would be ~16*120 + 8mA*4 chips =~34 mA.
Good to have a value. No need to be exact.

But I think your calculation is wrong...which is good for you.
I don't know your schematic...but usually only one chip is active (writing/reading) per time. Thus you don't need to multiply the current.
And - even better - it will only consume power when active (let's ignore the tiny standby current)
Then with 70kBy/s it means about 280 page write/s.
A page write takes typ. 3.2ms in ultra low power mode ...it needs to be active almost 100% of time with about 3.5mA only.
Mind: if you want to overwrite existing data, you need to erase. In ultra low power mode you need interleave access withbtwo chips:
Erase the one while you write the other...thus you need to calculate the average current of two chips...

Do calculations. And please take the high performance mode into consideration. While the (peak) current is higher, the active time is much lower, which may lead to less average current. It's unclear whether you are interested in low peak current or low average current.

In either case the average current will be less than the calculated 34mA :)

Klaus
 

    inklen

    Points: 2
    Helpful Answer Positive Rating
@KlausST , thank you very much! Yes, I'm interested in low average current.
What you said means I can probably easily go to 1Gb! :)👍
 

Hi,

you may also look for SD card timing and current consumption.
Benefit may be:
* removable (may also be a drawback)
* PC readable (no need for time consuming data transfer to PC)
* high speed
* high volume
* wear leave concept
* available FW driver / libraries

They may draw way more peak current - but maybe ony for a short time. I have no experience with this.

Klaus
 

The reason I discarded SD option is because its current consumption in writing mode is 30-100 mA! At least according to specs that I found in the internet. Which is too high, considering continuous write.

I mean nobody really tells how much current SD card consumes, just a wide range.
 

Last edited:

    inklen

    Points: 2
    Helpful Answer Positive Rating
Hi,

the write speed of SD cards is in the range of 10MBytes/s and more... so if you have only 0.07MBytes per second it may be active for only 0.7% of time.
thus the averaged active write current is minimal.
I have no experience of real world SD card average write current values, but they have features to put the SD card to deep sleep consuming way less than 1mA.

I´m sure nowadays SD cards have all the features for very low power consumption, I think it´s rather a firmware problem to use the existing features.

If you write the FW on your own (and do some tests with different SD cards), I assume you easily get less than 20mA average SD card current.
(I even expect less than 5mA).
The key will be to
* have high SPI speed for low transfer time. Use DMA (if available) with highest possible SPI clock.
* set the card into deep sleep as soon as possible
* keep the card in deep sleep as long as possible.
I assume the packet size may also have influence on average current consumption.
Thus I think it´s better to "cache" some data in SRAM then write a rather big block to the FLASH. (instead of frequently writing small number of bytes)

Klaus
 

Interesting. But ultra low power MCU have up to 256kB of memory on-board and it's 32 kB if MSP430 lowest range to consider. Which means ... is it even possible to write with 70kB/sec when you have so low memory? (just thinking out loud here :) ) The data comes from external ADC, so the idea is to use MCU for orchestration only and connect ADC straight to this external flash memory. Seems too easy...

Another question is - the MSP430 is 16 MHz device and the memory is 80MHz. How is this going to work out?
 

Hi,

70kBytes per second:
* you may write 8 bytes every 114us
* you may write 256 bytes every 3.65ms
* you may write 4kBytes every 58.5ms
I assume it makes a big difference in memory current consumption. And all should be doable well with 32kBytes of memory

****
The MSP430 surely is low power.
But if you need (or want) an "overall" low average power consumption ... maybe a faster microcontroller draws more current for a short time, then is in sleep most of the time. ..the benefit may be that the "ON" time of the power consuming memory is reduced and it may compensate for the higher microcontroller current.

I´d use Excel for different use cases, different microcontrollers, packet sizes, different memories .... to find out the best combination.

I´m currently doing a project with STM32F1xx, have ADConversions and digital filtering, continously communicating with several "slaves" on several busses, data archivation on SRAM, EEPROM, FLASH, display update, USB communication, 1MBaud (MODBUS style) communication ..all at once .. really a lot of stuff.
No data will be missed even on heavy traffic.
I expected we need about 80% of processor power...but we optimized, used all features I could find in the datasheet, now we consume less than 5% of processing power.
For sure this is not how one designs every microcontroller software. It more was a challange, because this was the first time we used STM32 and I wanted to get familiar with it´s features.

Klaus
 
Last edited:

    inklen

    Points: 2
    Helpful Answer Positive Rating
Yes, I guess I need to build a prototype and see. Thanks for your help!
Let's order some parts! :)
 

Interestingly, I made some calculations and it turns out this flash memory is a bit slow. Max writing speed is 62 kBytes/sec at worst. Anyway, it's very close to my requirements.

What I don't understand is how they calculate its size:

" 67,108,864 x 1 bit structure or 33,554,432 x 2 bits (two I/O mode) structure or 16,777,216 x 4 bits (four I/O mode) structure".

If I take this 67,108,864 and convert it to Mb:

67,108,864/8/1024/1024 = 1024 Mb (1 Gb). But it's a "64M-BIT" memory. What am I missing?
 

67,108,864/8/1024/1024 = 1024 Mb (1 Gb).
My result is: 8.
8 Mbyte.

Don't know how you get 1024 Mb.

Klaus

Btw: I don't know which Flash and which conditions you refer to.
 

I'm misused a calculator probably 🙄 it's 8 Mb.

I refer to this memory.
--- Updated ---

Or abused 🙂
 

...still no conditions

Klaus

Btw: I've already done some calculations in post#7
In post#16 you talk about "max writing speed" ... I'd rather call it "minimum writing speed"
 

...still no conditions

Btw: I've already done some calculations in post#7
In post#16 you talk about "max writing speed" ... I'd rather call it "minimum writing speed"

Not sure I understand - what conditions?

Yes, you're right, it's a minimum writing speed actually. And if the erase phase is taken into account it's probably even slower. So I guess I'll have to build 2 kind of prototypes - one for the memory I mentioned and for SD card and see which one is "better".

Another crazy idea is to use enough volatile memory, like 256 Mb at least (which is not supported by MSP430...). Then the writing will be fast and hopefully much less power consuming. When a user needs to persist the data, the device can be connected to an external power source and the data is saved to SD card. The risk is to lose everything because of low battery. Well, maybe it's not the best idea but anyway...
 

Status
Not open for further replies.

Similar threads

Part and Inventory Search

Welcome to EDABoard.com

Sponsor

Back
Top