MSP430: Difference between revisions

From base48
imported>Rmarko
(Add user guide)
imported>Cubz
No edit summary
 
(4 intermediate revisions by 2 users not shown)
Line 1: Line 1:
[[Category:Articles ]]
== MSP430G2 Launchpad ==
== MSP430G2 Launchpad ==
=== Some links ===
=== Some links ===
Line 4: Line 6:
* http://mspsci.blogspot.cz/2010/07/tutorial-01-getting-started.html
* http://mspsci.blogspot.cz/2010/07/tutorial-01-getting-started.html
* [http://justinstech.org/2010/07/msp430-launchpad-dev-kit-how-too/ How to solder the 32KHz Crystal on to the launchpad]
* [http://justinstech.org/2010/07/msp430-launchpad-dev-kit-how-too/ How to solder the 32KHz Crystal on to the launchpad]
* http://dbindner.freeshell.org/msp430/index.html
* http://www.43oh.com/category/tutorials-2/


==== SPI Interface (USCI) ====
==== SPI Interface (USCI) ====
* http://fortytwoandnow.blogspot.ch/2012/07/msp430g2-usci-spi-interface-1.html
* http://fortytwoandnow.blogspot.ch/2012/07/msp430g2-usci-spi-interface-1.html
==== Code Examples ====
==== Code Examples ====
* http://svn.noccy.com/mspdev/reference/MSP430ware/examples/devices/2xx/MSP430G2xx3%20Code%20Examples/C/
* [http://svn.noccy.com/mspdev/reference/MSP430ware/examples/devices/2xx/MSP430G2xx3%20Code%20Examples/C/ MSP430G2xx3]
* [http://svn.noccy.com/mspdev/reference/MSP430ware/examples/devices/2xx/MSP430G2xx2%20Code%20Examples/C/ MSP430G2xx2]


==== Datasheet ====
==== Datasheets ====
http://www.ti.com/lit/ds/symlink/msp430g2553.pdf
* [http://www.ti.com/lit/ds/symlink/msp430g2553.pdf MSP430G2553]
* [http://www.ti.com/lit/gpn/msp430g2452 MSP430G2452]


==== TI Guides ====
* [http://www.ti.com/lit/ug/slau144i/slau144i.pdf MSP430x2xx Family User's Guide]
* [http://www.ti.com/lit/ug/slau144i/slau144i.pdf MSP430x2xx Family User's Guide]
* [http://www.ti.com/lit/an/slaa330/slaa330.pdf Software I2C Slave Using the MSP430]
* [http://www.ti.com/lit/ug/slau318b/slau318b.pdf LaunchPad Experimenter Board User's Guide]
==== Projects ====
* [http://www.simpleavr.com/msp430-projects/rtc-clock RTC clock]


=== Code Examples ===
=== Code Examples ===
Line 20: Line 33:
Implemented using interrupts
Implemented using interrupts


<pre>#include <msp430g2553.h>
<syntaxhighlight lang="c">
#include <msp430g2553.h>


__attribute__((interrupt(TIMER0_A0_VECTOR)))
__attribute__((interrupt(TIMER0_A0_VECTOR)))
Line 54: Line 68:
     for(;;);
     for(;;);
}
}
</syntaxhighlight>
=== Compiling and flashing ===
You need to have a recent version of [http://mspgcc.sourceforge.net/ mspgcc]. Debian testing has it in the repository, Fedora should have it soon, [http://sourceforge.net/apps/mediawiki/mspgcc/index.php?title=Install:fromsource installation from source] is not that painful.
<pre>
$ msp430-gcc -Os -Wall -g -mmcu=msp430g2553 -o image.elf source1.c source2.c
$ mspdebug rf2500 "prog image.elf"
</pre>
==== Simple Makefile ====
<syntaxhighlight lang="make">
TARGET=clk
MCU=msp430g2553
CC=msp430-gcc
CFLAGS=-Os -Wall -Wno-main -g -mmcu=$(MCU)
all: $(TARGET).elf
%.elf: %.c
    $(CC) $(CFLAGS) -o $@ $<
flash: $(TARGET).elf
    mspdebug rf2500 "prog $(TARGET).elf"
clean:
    rm -fr *.o *.elf
</syntaxhighlight>
=== Debugging ===
The remarkable [http://mspdebug.sourceforge.net/ mspdebug] contains basic (yet still very useful) debugger, however if you want to have a full source-level debugger, you can use (mspgcc-supplied version of) gdb via mspdebug's gdb stub.
<pre>
$ mspdebug rf2500 gdb &
$ msp430-gdb image.elf
(gdb) target remote :2000
</pre>
</pre>

Latest revision as of 14:02, 18 October 2012


MSP430G2 Launchpad

Some links

Tutorials

SPI Interface (USCI)

Code Examples

Datasheets

TI Guides

Projects

Code Examples

Timer and Button Interrupts

Blinking LED swaps on Button click. Implemented using interrupts

<syntaxhighlight lang="c">

  1. include <msp430g2553.h>

__attribute__((interrupt(TIMER0_A0_VECTOR))) void CCR0_ISR(void) {

   P1OUT ^= BIT6 | BIT0;

}

__attribute__((interrupt(PORT1_VECTOR))) void BtnClick(void) {

   if( P1IFG & BIT3 ) {
       P1IFG &= ~BIT3;
       P1DIR ^= BIT6|BIT0;
   }

}

main() {

   WDTCTL = WDTPW + WDTHOLD;
   TACCR0 = 62500 - 1;
   TACCTL0 = CCIE;
   TACTL = TASSEL_2 + ID_3 + MC_1 + TACLR;
   P1REN = BIT3;
   P1DIR = BIT6;
   P1OUT = BIT6|BIT3;
   P1IES |= BIT3;
   P1IFG &= ~BIT3;
   P1IE |= BIT3;
   __enable_interrupt();
   for(;;);

} </syntaxhighlight>

Compiling and flashing

You need to have a recent version of mspgcc. Debian testing has it in the repository, Fedora should have it soon, installation from source is not that painful.

$ msp430-gcc -Os -Wall -g -mmcu=msp430g2553 -o image.elf source1.c source2.c
$ mspdebug rf2500 "prog image.elf"

Simple Makefile

<syntaxhighlight lang="make"> TARGET=clk MCU=msp430g2553

CC=msp430-gcc CFLAGS=-Os -Wall -Wno-main -g -mmcu=$(MCU)

all: $(TARGET).elf

%.elf: %.c

   $(CC) $(CFLAGS) -o $@ $<

flash: $(TARGET).elf

   mspdebug rf2500 "prog $(TARGET).elf"

clean:

   rm -fr *.o *.elf

</syntaxhighlight>

Debugging

The remarkable mspdebug contains basic (yet still very useful) debugger, however if you want to have a full source-level debugger, you can use (mspgcc-supplied version of) gdb via mspdebug's gdb stub.

$ mspdebug rf2500 gdb &
$ msp430-gdb image.elf
(gdb) target remote :2000