Jump to content
zeke

Best information for those new to the MSP430?

Recommended Posts

These  seem to be pretty good. Just keep in mind I have not watched  more than a few minutes of a couple of videos. But the guy speaks clearly, and starts off talking about binary numbers first, and progresses into talking about which language to use, then finally looks like he walks the user through installing code::blocks, then onto programming in C.

 

Sort those videos by oldest date first, then watch them one by one, and do not skip any. Follow along with his code examples, and try your best to understanding the code you're working with in your head before moving on. Sometimes this can take hours, or even days, but it is the best way to learn programming any language. Understanding the code.

 

Also, here are some MIT opencourseware videos. There are over 2000 videos on that feed I think, including more than just programming, but the instructors from MIT are not boring, and know their stuff. I've watched several MIT programming classes in video myself, and picked up quite a bit from them. Just keep in mind, atleast in the videos I watched, the classes were more about concept, than using an actual language( They taught using python ).

 

 is the opening class to the course I've watched.

Share this post


Link to post
Share on other sites

When I started programming, I started out with something like "QBasic for Dummies", I was 8 then.

Later on I started using Turbo Pascal (the DOS predecessor of Delphi).

I've taken three attempts to start with C, I failed two times when trying to "understand" the parameters of printf. It turned out I use only 3 or 4 of them on a regular basis. And in microcontrollers, I try to avoid printf all along.

I just got a book at the library about C programming and started at the beginning, prograssing through it slowly. I read a fair part of it while on holiday in France (in a tent, while even dailup internet was exceptional) so without making any examples.

At 12 years old I wrote my first C programs.

Share this post


Link to post
Share on other sites

Thanks! I'll look at those both. Since I am 12 years old, I don't have a company nora  university email. How would I order samples from TI since they require you to have a company or University email.

MSP430 launchpad is $4.30 from their web store.  (find eStore link).  I think you can afford that.

Share this post


Link to post
Share on other sites

I am fluent in analog (but not digital) devices and had 2 classes in "C" back in 1993. The "C" used today looks absolutely nothing like the "C" I used to see. Unfortunately, my professors were the type that would say "do this, convince yourself it is true, and move along to the next example" without ever explaining anything. 

I went into university classes not knowing any programming, which was quite unusual for an EE student in 2000.  They taught C, and the textbooks for CS 101 were this one and this one.  There are a lot of negative comments about "Algorithms in C," but I loved that book.  The teaching professor was the author, so that probably helped, but if I had not started C with an algorithm-heavy approach I would never have been interested enough to program anything outside of MATLAB after the course was over.  I like signal processing, analog, RF communications, etc.  Programming without algorithms is just damn-boring for me.  The KN King book was a good C language reference.

Share this post


Link to post
Share on other sites

There is no beginning. One starts where ever they are. Can one use a computer running Linux or Windows? Can one plug in a cable without directions? Can one program in any computer language? There are far too many prerequisites to have a true beginning. I find there is so much to learn I often don't pick up many of the subtleties offered in a particular lesson. Doing them again can lead to new insights as I grow in understanding of the material presented.

 

johnnyb,

 

I partially agree with you, all the way around. At the same time, I partially disagree. An example from my own experience (to support both sides): I learned woodworking from the middle then forwards. Eventually, I got my hands on a book that covered the topic of woodworking oriented toward people with no background of the material, the tools, or the techniques. While I was able to build and repair many things by starting out in the middle, I confess that  going back later to find the beginning - well my entire perspective changed. I was fine all along, but I further improved by going backward and filling in the gaps at a later time.

 

I'm trying to do the same thing as regards MCUs. Partly to better myself (plenty of room for that) and partly to discuss this for the benefit of others who are roaming around and might very well land here pretty much the way I did.

 

Your perspective and approach should (and hopefully will) encourage anyone interested but still on the fence (maybe being aprehensive about not beginning at the beginning) to simply step off the spectator side-line and just 'do something'. Silly thing, but making an LED blink or fade brings a sense of accomplishment.

 

---

 

[i'm unable to figure out 'multiquoting' from IPB, so from here forward I will be manually winging it]

 

---

 

jpnorair,

 

Thanks for the links you provided. I hope I discover that I have the same level of interest in algorithms as you have. It will probably take some time for me to digest and then follow-up further. I guess we'll see where I end up.

 

---

 

yyrkoon,

 

I have options, when it comes to which computer I could use. I have passed Linux by for now, and chose a Win7x64 PC from my collection. I re-installed fresh and then added CCS 5.3, Energia 009, TI Getting Started Workshop, Grace, and a few other things were also installed but as yet are still unused. I'm not sure if I should have chosen Win7x32 instead. The PC hardware is overkill (8 core AMD 32GB RAM and so forth). Once I have determined which way I will go (IAR, CCS, Energia, etc), I plan on choosing the appropiate OS to host it all, then rebuild it all on a dual or quad core laptop that can stay at my bench (again, staying away from Linux for a while).

 

Those links you posted most recently are just the sort of thing I was looking for at this very moment. No doubt, I'll discover more things that bring more questions. Which is a good thing. Thanks again. I'll be owing you 6 pop-tops pretty soon.

 

---

 

roadrunner84,

 

If that book ends up being much help to you, would you post the title later?

 

---

 

[ending replies to recent posts]

 

I'm not sure which I should focus on more, at the moment. Should I proceed with studying 'C' in more depth? Should I turn my attention to figuring out how to use the compiler to talk to the hardware?

 

At the moment, I can't use CCS for anything except pasting code from other people's projects - simply because I don't know how to tell CCS to tell the LaunchPad what I want it to do.  An example would be the crystal I soldered to one of the boards (Is that PSEL or WD or something else entirely?). Another example is the Real-Time-Clock module I want to use (If I put it on P2_2 it doesn't appear that telling CCS to look at P2_2 will get me anything productive).

 

I realize I will need to be more fluent with 'C' and also will need to know about communicating with the hardware. I know enough to turn pins on/off and to read analog values from input pins using Energia, but not enough to use the low power features using CCS or Energia (Grace was about as clear as mud). Anyone have a suggestion regarding which I should choose first? A brief explanation for any suggestions would likely be helpful.

Share this post


Link to post
Share on other sites

If you want to do some thing on the launchpad which does not involve low power or interrupts, try building a PC application first (no GUI required, just a command window). This will help you to discern the difficulties of C programming from the difficulties of using the MSP430.

If it's kind of working, try to move your code to the MSP430 (change a keypress routine with a digitalRead, or a print routine with digitalWrite, or a value input with analogRead)

Energia helps you a lot to figure out how to do stuff, but when trying all this fancy low power stuff, energia is more of a roadblock. I prefer to use IAR, but CCS will do just as fine. Energia essentially offers the same flexibility, but by default it's doing stuff in the background that you cannot see.

I suggest you don't start on low power stuff until you have figured out how C and microcontrollers work. The low power stuff is really cool and can even help you when doing timed or parallel stuff, but you must really know what's happening, or it'll smack you in the face.

Share this post


Link to post
Share on other sites

roadrunner, FWIW, you can use Energia without the framework, just as you would use mspgcc/G++. I like it a lot because its "free", and it does it's job quite well. All you have to do is create main.c or main.cpp yourself, and then you're on your own( just like in CCS or using gcc ). mspgcc will link against the Energia framework, even if you do not #include <Energia.h>, but with Energia's default options set as they are, seems to have no impact on code size at all. I've used the toolchain myself through Visual Studio in recent tests/experiments, and the code size on target for the same project is exactly the same.

 

The only problem I see personally with Energia is that the IDE is quite plain, and has little features compared to other options like CCS. That said, you can tell Energia you want to use another text editor ( like I use sublime text 2 ) then use Energia only to compile and upload the code for you. It even uses the TI SBW drivers.

 

vicvelcro, as far as OS goes, it really matters little. Pick what you feel most comfortable in. Myself, I use Windows 7 x64 too, and not because I do not know how to use Linux. It is a personal preference. One that will not change in the near future. Like roadrunner said though, pick up a compiler, or compiler + IDE and just start learning how to write stuff on the PC. If you want to keep things on a more even keel, make sure that compiler is based on gcc. Microsoft's compiler while good for Windows platforms does some things differently. Which may not lends it's self towards your end goal.

 

As stated above, I think Pelles C, and code::blocks are both good compiler/IDE tools that do use GCC. Pelles C also supports the C11 standard. Not sure about code::blocks.

 

EDIT:

 

More correctly, Pelles C uses a C11 compliant compiler. But you can toggle that on and off as you please.

Share this post


Link to post
Share on other sites

Having made some satisfying progress thanks to the answers to my questions about programming, I've discovered (in hindsight, I guess it should have been obvious) that I need to know more about the hardware before the programming part even matters.

 

To truly "GET STARTED" with an MSP430, we have to go back farther than post #1. We need to know other things, first.

 

Where would I go, or what would I buy, to find out what the following things ARE as relates specifically to MicroControllers(not monkey-cut-paste-copy-code):

  • register
  • interrupt
  • timer
  • clock
  • port
  • UART
  • FTDI
  • SPI
  • I2C
  • pulling a pin low (seriously, everyone knows what this means but nobody says what it means - so how the hell did you all learn about it)
  • setting a pin high
  • what a low pin does
  • what a high pin does

I know the meaning of some of those words in other environments. But those terms applied in the context of microcontrollers have entirely different meaning, it seems. I've never before encountered some of those terms. I'm pretty sure I'm not the only one in this boat. So, I'm still trying to actually "GET STARTED" and looking for another clue, for my own benefit and for the benefit of others.

 

[edit to add]

 

I found a couple of hints here. But still nothing 'solid'.

Share this post


Link to post
Share on other sites

Google + keyword, Google + wiki + keyword. Search amazon.com for books related to the platform in question, just on basic embedded design. The IRC channel for this community, these forums . . .

 

The first two pinned threads in this specific part of the forums is a good starting place. Whatever the case, be creative, and search the web with specific keywords, in various order if that helps. There is tons of information out there.

Share this post


Link to post
Share on other sites

yrrkoon,

 

I've been Googling these things and much more for a few months. Google gives too many results, therefore I end up sifting through a great number of those results to discover that the results I've been reviewing apply to something else entirely.

 

Is there not a book that collects all of these relevant things together and only relates these things specifically to the MSP430? Reading about something and then discovering it is for a PIC device is really no help. Every once in a while, Google will have something useful on the 13th page of results. I'm looking for a more efficient way to conduct my learning activity. I called several universities and colleges in my area (we have more than I can shake a stick at) to see what classes might be available - the answer is "NONE".

 

When I am making progress, it's great and it's cool. But 95% of the past several months have been unproductive and frustrating. I've got 3 degrees in other areas - I'm not inherently an idiot. I do not know enough about this particular subject to even form a decent and proper question about it. At this time, I must be vague because THAT is all I CAN be. I intend to get past the 'for dummy' stage, then I'll be able to ask questions that relate to specific facets and I will then ask Google because I will be ABLE to narrow my search terms and get RELEVANT results.

 

I guess I can't clearly express what I'm wanting to ask because I simply don't yet know enough to know what to ask. I'm like a cave man yanked suddenly into a future where I will be stuck from this point forward and must learn these modern things. A cave man that learns quickly when pushed in the right direction.

Share this post


Link to post
Share on other sites

Do you want to know how all this works internally? I think you just need to know enough about the I/O, all the rest you mentioned is just logic and if you read the datasheet you should know enough to make it work correctly.

Share this post


Link to post
Share on other sites

vicvelcro, welcome to the club. There is no recipe for instant success.  There is only read, read, and read more. Followed by doing, learning a little, and even more reading still. Its the way it works, and I do not know what else to say.

Share this post


Link to post
Share on other sites

yrrkoon and semicolo,

 

I see what you are saying and I don't disagree or believe you are telling it less true that it really is. However, reading reading reading stuff and looking at data sheets only goes so far. The data means nothing when the reader doesn't have a pre-existing background or basis from which to deduce or digest. I've been afflicted with a lack of background and basis. It is the missing first bits that make the rest of it all fit together. Like a box full of puzzle piece with no lid on it. If I don't have an idea what the final object is (at least a vague clue) I won't make much progress looking at the individual pieces and deducing which ones fit together with which other ones.

 

As it is, I've spent weeks soaking up hundreds of pages of data which has no meaning for me. Then, there's the rare and abrupt moment when somebody says the one or two tidbits that make it all clear very suddenly. By that method, I do eventually get the relief I have been seeking, but the empty weeks are very discouraging and the sudden mass-enlightenment is a bit uncomfortable in a different way.

 

That is why I am quiet on here for extended periods. I'm not gone away. I'm lurking and scavenging. Then I get frustrated enough to ask annoying stupid questions. I choose my words carefully and try not to be rude. I can say that I have observed that some people are quick to offer tidbits that are vague (apparently to make the asker 'work' for it, which is sometimes the right thing to do and other times the wrong thing to do) while other people must be subtly and discretely insulted or shamed or goaded into giving up anything at all but when they do - they spew chapters of just the perfect verbiage for the moment and the circumstance.

 

A 'for dummies' book would be the best thing for me, but not for everyone. Many people have said that there is not 'beginning' as regards MCUs. Well bunk and hokum. There is a beginning to everything. Maybe some people didn't start at the beginning and did just fine, but that doesn't mean there is no beginning or that somebody else would have the same success by not starting at the beginning. I can say that for myself, the beginning is the best place to start. Chapter 1 - this is what's in the box. Chapter 2 - these are the physical needs to make it work. Chapter 3 - this is how you talk to it. Chapter 4 - this is the software that tells this thing what you were just talking about. Chapter 5 - this is where the ears are on the thing.

 

Pedantic to some, vital to others.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×