Need design/planning guidance - moving from an MSP430

Hey guys,

I'm working on the software for a signal processing project.

Currently the project uses an MSP430. The circuit was designed about 7 years ago. The best MSP430 only has a few kilobytes for storing code, so I'm fighting a lot with it because of this. I'd like to switch to something Atmel based.

Requirements:

  • Low power. Microcontroller currently consumes about 3uA averaged out in a day. The whole project board runs off of a 9V battery.
  • I'm writing software to process signals from an accelerometer. The events last about 5 minutes, occur 5-10 times a day. (this is to get an idea of the averaged power consumption that is possible by placing the controller in a sleep mode).
  • Currently using a 10-bit ADC. Input signal is 0-2V @ 2kHz.
  • 4 outputs, 6mA.
  • The cost of our current controller is $2.05 at 1000. Would like to use an Arduino project for fast development, and translate that into something that is cheap and low power. Up to $4/unit is acceptable.
  • Would be great to have a microcontroller that satisfies these requirements and also interfaces with an SD card for debugging/data logging.

Mostly looking for 1) Which Arduino version would work for software development, 2) What Atmel controller should I be looking at moving to for production?

nycto:
Hey guys,

I'm working on the software for a signal processing project.

Currently the project uses an MSP430. The circuit was designed about 7 years ago. The best MSP430 only has a few kilobytes for storing code, so I'm fighting a lot with it because of this. I'd like to switch to something Atmel based.

Requirements:

  • Low power. Microcontroller currently consumes about 3uA averaged out in a day. The whole project board runs off of a 9V battery. The ATMEGA328 has a max voltage of 5.5V. So you're still going to have to go thru a voltage regulator, which eats up power...do you have the option of switching to 3xAA batteries instead? It would be nice to use a battery voltage that the AVR can use directly.
  • I'm writing software to process signals from an accelerometer. The events last about 5 minutes, occur 5-10 times a day. (this is to get an idea of the averaged power consumption that is possible by placing the controller in a sleep mode).You can definitely put the AVR in sleep mode, but how do you intend to wake it up? A digital interrupt is available on the ATMEGA328, but is it possible to create a 1 signal prior to this event?
  • Currently using a 10-bit ADC. Input signal is 0-2V @ 2kHz.
  • 4 outputs, 6mA.
  • The cost of our current controller is $2.05 at 1000. Would like to use an Arduino project for fast development, and translate that into something that is cheap and low power. Up to $4/unit is acceptable.
  • Would be great to have a microcontroller that satisfies these requirements and also interfaces with an SD card for debugging/data logging. SD card modules are $4 on ebay...but that's with 3 weeks shipping from China.

Mostly looking for 1) Which Arduino version would work for software development, 2) What Atmel controller should I be looking at moving to for production?

arusr,

Yes to both of your questions. So I take it you'd suggest the ATMEGA328 satisfies all the requirements?

I just discovered Energia, an Arduino branch for MSP430. I'm torn between the two now -- not sure which is going to make for easier software development in the long run. I do know that using Energia will save me time in porting the code over to the AVR.

nycto:
arusr,

Yes to both of your questions. So I take it you'd suggest the ATMEGA328 satisfies all the requirements?

I just discovered Energia, an Arduino branch for MSP430. I'm torn between the two now -- not sure which is going to make for easier software development in the long run. I do know that using Energia will save me time in porting the code over to the AVR.

You mention that the reason for switching is to get more memory. Energia isn't going to help you with this.

Other than the SD card (which I didn't look into because I have no experience with this), I would think an UNO would be fine.

If you have a working system with the MSP430, I would suggest you just get a bigger MSP430 so you don't have to rewrite everything.

Also, do you really only use 3uA of current per day? That's an impressive number...

Sorry, I meant that its average consumption over the day is 3uA, so 72uAh in about a day.

The best MSP430 only has a few kilobytes for storing code, so I'm fighting a lot with it because of this

Are you sure? TI comes out with new versions of the MSP430 on what seems to be a daily basis. The "1" series has 60 kB of code space and up to 10 kB of RAM. The "2" series has 120 kB of program memory and 8 kB of RAM.

http://www.ti.com/lsds/ti/microcontroller/16-bit_msp430/2_series/overview.page

It is hard for me to imagine that an 8 bit AVR could even begin to compete with the 16 bit MSP430 for an ultra low power signal processing application.