
Lesson 5: The MSP430 architecture - adamnemecek
http://simplyembedded.wordpress.com/tutorials/lesson5/
======
zorked
Three things about the MSP430:

* it's a very clean/beautiful/regular architecture, so people who want to do low-level stuff will find it a very good place to start

* Matasano made a security CTF that is based on hacking software on a MSP430 using a debugger and a disassembler, which is a really fun way to learn about the MSP430. It may be one of the best games you have ever played: [https://microcorruption.com/](https://microcorruption.com/)

* TI sells their MSP430 dev boards, called Launchpad, really cheap on their website - $9.99 for the basic board. They will even 2-day ship it worldwide for free.

~~~
solistice
There's also, even though I'm not sure whether its still going, TI Deals[1]
where they will sometimes throw out dev boards for next to nothing, as well as
other products such as the Chronos for well below their actual retail price.
They also offer free international 2 day shipping on those items, or have done
so in the past.

[1][http://www.ti.com/ww/en/tideals/](http://www.ti.com/ww/en/tideals/)

------
CalRobert
I bought a Launchpad about 6 years ago (maybe more, actually) because I was a
dirt broke student at the time and it was cheaper than Arduino. The lack of
dev tools on Linux was really annoying, though, as was the much smaller
community - none of my friends had any interest in it. I eventually just
bought a bunch of Arduinos and have been really happy with them.

That being said, is there anything neat I can do with that old MSP430 I still
have instead of an Arduino?

~~~
moron4hire
I have a large box full of MSP430s that i make into stuff all the time. There
are a lot more tools now, including a simple editor like Arduino has called
Energia. You can make pretty much anything you can make with an Arduino. I've
made a number of different music makers and various toys. I often find the
most fun with taking a specific kind of sensor, figuring out how to use it,
and then making some sort of game or toy out of it.

------
ausjke
MSP430 was famous for its extremely low power in the 8051 days etc. Now ARM is
doing the same with 32-bit on the power consumption side. I'm not positive
about the 16-bit MSP430's future because people normally 'follows the trend',
ecosystem rules when other things are equal.

~~~
jwr
I switched from MSP430 to the Freescale Kinetis line (ARM Cortex M0+ and M4)
for larger projects. But these ARM chips are incredibly complex compared to
the MSP430 microcontrollers. So for simpler projects where I really need to
get results quickly, I still prefer the MSP430.

I'd argue that if you want to learn about microcontrollers, the MSP430
(especially the G2 value line) is a very good place to start. I am not very
fond of Arduino, because if you really want to know how a microcontroller
works, you will not learn that with Arduino. It hides everything from you,
presenting an overly-simplified API.

~~~
minthd
What your opinion about the Stm32Cube libraries, that try to have high level
api's while still offering low level api's as needed - while still saving you
some effort in learning the device?

~~~
jwr
I am not familiar with those. But I will offer a general comment: most vendors
completely miss the boat as to the code they provide.

What I'm looking for is a way to quickly build numerous applications which
will be maintained for a long time. To really utilize the microcontroller I
will need to get low-level anyway, so there is no point in "high-level
abstractions": they always come back and bite you in the end. Give me
libraries, but make them low-level libraries, and maintain them well. Give me
a way to easily upgrade those libraries in my projects (e.g. code templates,
code generated from an IDE are no-nos). Don't give me a "universal abstraction
layer for cross-device portability". Give me good bootloaders, clock
management libraries, simple APIs for switching energy modes, low-level
libraries for comms.

So far I found nothing of the kind, which is sad. I think it's one of the
reasons the software world is really lagging behind the hardware.

~~~
minthd
Good answer.

Instead of using the templates,can't you just read the docs and use the
libraries yourself? this will help with upgrading - although it won't solve
the issue of compatibility breaking changes.

What's wrong with "universal abstraction layer for cross-device portability"
\- aren't they using the same peripherals through the family ?

