Documentation For TI MSP430x1xx Tutorial SeriesPosted: October 12, 2009
First off thank you for your interest in this page and hopefully the successive posts. I want to start off saying that I have absolutely no experience with the MSP430 microprocessor and relatively little experience with microprocessors/controllers in general. But I’m writing these articles as a set of MSP430 tutorials to hopefully help others. When I started researching the MSP430 I found a lack of tutorials or at least tutorials that were offering what I was looking for. I didn’t want to just be given some sample code and call that the tutorial as I watch an LED flash. TI’s documentation alone did that for me and they even gave me the sample code. Instead I wanted to know what I needed to look for in the documentation and where to find it. If you google “MSP430 Tutorial,” there is one site that stands out and all the forums point to it as well. But that tutorial seemed very elementary and answered very few of my questions. On top of that the tutorial is drastically incomplete even though the page buttons refer to additional pages and topics. But as you can find in the “forums” the author is looking for additional help and resources and maybe some day theses texts will be mature enough to contribute.
With this preface I guess I might should offer a warning? This text and the ones to follow will not likely give you a sample code download. If the future posts can be reflective of the next post I have already started, they will be overly lengthy and full of rather verbose explanations and pointers to where the individual documentation references will be found. That’s why my first points explicitly to all the documentation I am using. That way you can follow along and you can reader even deeper than the explanation I’ve already given. I don’t know if this style of tutorial is in demand, but if you read my “about” page then you will learn that’s not why I’m writing these posts…
So in short these are my personal notes and as the series progresses and I become more familiar with the stucture and commonly used routines I imagine that they will become shorter and less verbose. In that sense, these are meant to be read one after another and as such I hope that my pace will meet that of yours as we both learn together.
With that said, there is a gap between this post and the next. The next post will expect you to have already become somewhat orientated with the documentation, you’ve already installed Code Composer Essentials v. 3.x and that you have successfully run the first piece of example code from the TI documentation (flashing LED).
For the sake of clarity this document is primarily based on the Texas Instruments MSP430F169. At times you may see references in my documentation to the MSP430F149 and other variants. These references are probably unintentional and just were not appropriately changed when development switched solely to the F169. For the most part these processors are “pin” compatible and often the code is as well. If you find any sections of this document that are ambiguous or you find errata pertaining to such differences I would encourage that you leave a publicly viewable comment so that I and others can be aware of the issues. Time and interest permitting I would appreciate the opportunity to correct such errors in my documentation.
Resources and References
Before development can begin I sought out several pieces of documentation for my equipment. I’ve done my best to document all the resources I’ve obtained. I will try to point out from which documents I’ve gathered which bits of information throughout my write-ups but the accuracy and frequency of such citings cannot be guaranteed.
- MSP430F16x Mixed Signal Microcontroller Datasheet (Rev. F)(PDF 1384 KB)
- MSP430F15x/16x/161x Device Erratasheet (Rev. B) (PDF 284 KB)
- MSP430x1xx Family User’s Guide (Rev. F) (PDF, 1544 KB)
- MSP430 Optimizing C/C++ Compiler v 3.1 (Rev. C)(PDF, 1434 KB)
Tools & Software
- Code Composer Studio Integrated Development Environment (IDE) – v4.x
- Code Composer Essentials v3.1 Service Release (Updates v3 and v3.1 to v3.1 SR1) (Rev. F)
- IAR Embedded Workbench KickStart – Free IDE
- MSP430F16x C Examples (IAR and CCE) (Rev. M)(ZIP 144 KB )
- MSP430F16x Assembly Examples (IAR) (Rev. J)(ZIP 169 KB )
- Software Code Examples for the MSP430F169 (Rev. A)(ZIP 26 KB )
- MSP430 Parallel Port Debugging Interface
- MSP430 USB Debugging Interface
- MSP430 64-Pin Target board
Above I included several links to resources that I am not personally using. These are pertinent more to the FET (Flash Emulation Tool) and the development environment.
Currently I am using the following setup.
- MSP430F169 (Processor)
- MSP-TS430PM64 (Target Board)
- MSP-FET430PIF (Parallel Port FET)
- Code Composer Essentials v 3.x (Development Environment)
I believe I should probably take a moment to explain why I am using Code Composer Essentials v. 3.x (CCE3). The primary reason I’m using CCE3 is that at the time my development was starting I was developing on the MSP430F149. The particular variant I had only had 16KB RAM. The free version of CCE allowed my code to be 16KB in size without any limitation. A lot of my classmates at the University are using IAR and I typically do not advise doing what my class mates do. That may sound pompous but in general, I don’t believe they give their options the necessary consideration. I consulted my professors on this and they directed me to speak with Dr. Brian Nutter. Dr. Nutter was relatively indifferent but in the end we decided that CCE would probably be the better investment of time even if some things were a little more difficult or intricate in configuration and deployment. Third, I didn’t own a computer with a parallel port at the time and I only had a parallel port FET. But I did have access to computer lab which already had Code Composer Essentials v. 2. Even though this was a dated version it instantly allowed me to start developing. I’ll explain in the following section why I then chose CCE3 over other available versions.
Problems, Differences and Drivers
Code Composer Studio (general)
Several of the computers in the Lab that I have access to already had Code Composer Studio of some version installed (typically v. 3). Since this was a TI product I initially thought that the version would just be a fully licensed version of Code Composer Essentials. This turned out to be a false assumption Code Composer Studio prior to version 4 was for different families of microprocessors and DSPs. Later versions of Code Composer Studio, including the above link to version 4, include resources for multiple platforms including the MSP430. Code Composer Essentials v. 4 essentially merged several development resources for multiple product lines into a single product.
Code Composer Studio v. 4
After obtaining administrative access to one of the Lab computers I tried installing Code Composer Studio v. 4. During installation I made certain to select the parallel port drivers for my parallel port FET. After installation I discovered that these drivers did not properly install. It turned out that while there was an option to install said drivers no such drivers existed in the installer. This may have since been corrected in successive releases. At the time though, I did find the original manufacturer’s driver page. But the drivers were still in beta and in the end did not work for me.
Code Composer Essentials v. 2
CCE2 appeared to work for my needs and was publicly available to me in a lab. After having some difficulties with my code I discovered that “pragma directives” were not supported by CCE2. According to the MSP430 Optimization guide, “pragma directives tell the compiler how to treat a certain function, object, or section of code.” At the time, I was essentially just running sample programs and such as provided in the above links. The example code used pragma directives rather frequently. It took me a while to find the TI CCE2 user’s guide and I was able to find the method for implementing similiar functionality in CCE2. Apparently IAR has supported pragma directives for some time.
Code composer Essentials v. 3
I don’t really have anything particular to say about CCE3 at this time other than it turned out to be my ideal solution at the time. CCE3 runs stable and rather quickly on my old P4 with 1GB RAM, supports USB and Parallel FETs and generally gets the job done.
I guess there is one more thing to mention about all the “Code Composers.” They are essentially a version of Eclipse IDE.
While we didn’t get into any code or other examples this is all that I have time to post at the moment. Regardless, I do believe that these resources are the proper place to begin your experience with the MSP430. In future posts I hope to release information relevant to my particular developments.