| 1 |
50 |
olivier.gi |
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
|
| 2 |
166 |
olivier.gi |
<html><head><title>openMSP430 Overview</title></head>
|
| 3 |
|
|
<body>
|
| 4 |
|
|
<table style="text-align: left; width: 100%;" border="0" cellpadding="0" cellspacing="0">
|
| 5 |
|
|
<tbody>
|
| 6 |
|
|
<tr>
|
| 7 |
|
|
<td style="vertical-align: top;">
|
| 8 |
|
|
<h1>Introduction</h1>
|
| 9 |
|
|
The openMSP430 is a synthesizable 16bit microcontroller core written in Verilog. It is
|
| 10 |
|
|
compatible with Texas Instruments' <b><a href="http://www.ti.com/litv/pdf/slau049f">MSP430 microcontroller
|
| 11 |
|
|
family</a></b> and can execute the code generated by any MSP430 toolchain in a near cycle accurate way.<br>
|
| 12 |
|
|
<br>
|
| 13 |
|
|
The core comes with some peripherals (<b>16x16 Hardware Multiplier, </b>Watchdog,
|
| 14 |
202 |
olivier.gi |
GPIO, TimerA, generic templates), with a DMA interface, and most notably with a two-wire <b>Serial
|
| 15 |
166 |
olivier.gi |
Debug Interface</b> supporting the<b> <a href="http://sourceforge.net/apps/mediawiki/mspgcc/index.php?title=MSPGCC_Wiki" target="_blank">MSPGCC</a> GNU Debugger</b> (GDB) for in-system
|
| 16 |
|
|
software debugging. <br>
|
| 17 |
|
|
<br>
|
| 18 |
|
|
While being fully FPGA friendly, this design is also particularly
|
| 19 |
|
|
suited for ASIC implementations (typically mixed signal ICs with strong area and low-power requirements).<br>
|
| 20 |
|
|
In a nutshell, the openMSP430 brings with it:<br>
|
| 21 |
|
|
<ul>
|
| 22 |
|
|
<li>Low area (8k-Gates), without hidden extra infrastructure overhead (memory backbone, IRQ controller and watchdog timer are already included).</li>
|
| 23 |
|
|
<li>Excellent code density.</li>
|
| 24 |
|
|
<li>Good performances.</li>
|
| 25 |
|
|
<li>Build-in power and clock managment options.</li>
|
| 26 |
195 |
olivier.gi |
<li>Multiple times <span style="font-weight: bold;">Silicon Proven</span>.</li>
|
| 27 |
166 |
olivier.gi |
</ul>
|
| 28 |
|
|
</td>
|
| 29 |
|
|
<td style="vertical-align: top;">
|
| 30 |
|
|
<table border="0" cellpadding="0" cellspacing="0">
|
| 31 |
|
|
<tbody>
|
| 32 |
219 |
olivier.gi |
<tr><td style="vertical-align: top;"><a href="https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=MG8M87BXDL3K8"><img alt="donate 32euro" src="http://opencores.org/websvn,filedetails?repname=openmsp430&path=%2Fopenmsp430%2Ftrunk%2Fdoc%2Fhtml%2Fimages%2Fdonate_buttons%2Fchip_no_button_paypal_payment.png" > </a> </td></tr>
|
| 33 |
166 |
olivier.gi |
</tbody>
|
| 34 |
|
|
</table>
|
| 35 |
|
|
</td>
|
| 36 |
|
|
</tr>
|
| 37 |
|
|
</tbody>
|
| 38 |
|
|
</table>
|
| 39 |
135 |
olivier.gi |
<br>
|
| 40 |
50 |
olivier.gi |
|
| 41 |
|
|
<h1>Download</h1>
|
| 42 |
|
|
<h3>Design</h3>
|
| 43 |
135 |
olivier.gi |
The complete tar archive of the project can be downloaded <a href="http://www.opencores.org/download,openmsp430">here</a> (OpenCores account required).<br>
|
| 44 |
|
|
<br>
|
| 45 |
50 |
olivier.gi |
The following SVN command can be run from a console (or <a href="http://www.syntevo.com/smartsvn/index.html">GUI</a>):
|
| 46 |
135 |
olivier.gi |
<br><br>
|
| 47 |
|
|
<table border="0" cellpadding="0" cellspacing="4">
|
| 48 |
|
|
<tbody><tr>
|
| 49 |
|
|
<td width="35"><br>
|
| 50 |
|
|
</td>
|
| 51 |
|
|
<td bgcolor="#d0d0d0" width="3"><br>
|
| 52 |
|
|
</td>
|
| 53 |
|
|
<td width="15"><br>
|
| 54 |
|
|
</td>
|
| 55 |
50 |
olivier.gi |
<td>
|
| 56 |
|
|
<code>svn export http://opencores.org/ocsvn/openmsp430/openmsp430/trunk/ openmsp430</code>
|
| 57 |
|
|
</td>
|
| 58 |
|
|
</tr>
|
| 59 |
135 |
olivier.gi |
</tbody></table>
|
| 60 |
|
|
<br>
|
| 61 |
116 |
olivier.gi |
<h3>ChangeLog</h3>
|
| 62 |
|
|
<ul>
|
| 63 |
135 |
olivier.gi |
<li>The <a href="http://opencores.org/websvn,filedetails?repname=openmsp430&path=/openmsp430/trunk/ChangeLog_core.txt">Core's ChangeLog</a> lists the CPU updates.</li>
|
| 64 |
|
|
<li>The <a href="http://opencores.org/websvn,filedetails?repname=openmsp430&path=/openmsp430/trunk/ChangeLog_tools.txt">Tools' ChangeLog</a> lists the Software development tools updates.</li>
|
| 65 |
|
|
<li>Subscribe to the following <a href="http://opencores.org/websvn,rss?repname=openmsp430&path=/openmsp430/&isdir=1">RSS</a> feed to keep yourself informed about ALL updates.
|
| 66 |
|
|
</li></ul>
|
| 67 |
|
|
<br>
|
| 68 |
|
|
<h3>Documentation</h3>Being fully compatible with the original MSP430 architecture, TI's official documentation is applicable: <a href="http://www.ti.com/lit/ug/slau049f/slau049f.pdf">SLAU049F.PDF</a><br><br>
|
| 69 |
|
|
In addition, the openMSP430 online documentation is also available in <a href="http://opencores.org/websvn,filedetails?repname=openmsp430&path=%2Fopenmsp430%2Ftrunk%2Fdoc%2FopenMSP430.pdf" title="openMSP430 PDF Doc. R1.9">pdf</a>.<br>
|
| 70 |
|
|
|
| 71 |
|
|
<br>
|
| 72 |
|
|
<h1>Features & Limitations</h1>
|
| 73 |
50 |
olivier.gi |
<h2>Features</h2>
|
| 74 |
|
|
<ul>
|
| 75 |
|
|
<li><b>Core:</b>
|
| 76 |
|
|
<ul>
|
| 77 |
135 |
olivier.gi |
<li>Full instruction set support.</li>
|
| 78 |
195 |
olivier.gi |
<li>Interrupts: IRQs (x14, x30 or x62), NMI (x1).</li>
|
| 79 |
|
|
<li>Low Power Modes (LPMx).</li>
|
| 80 |
50 |
olivier.gi |
<li>Configurable memory size for both program and data.</li>
|
| 81 |
116 |
olivier.gi |
<li>Scalable peripheral address space.</li>
|
| 82 |
202 |
olivier.gi |
<li>DMA interface.</li>
|
| 83 |
195 |
olivier.gi |
<li>Two-wire Serial Debug Interface (I<sup>2</sup>C or UART based) with GDB support (Nexus class 3, w/o trace).</li>
|
| 84 |
135 |
olivier.gi |
<li>FPGA friendly (option for single clock domain, no clock gate).</li>
|
| 85 |
|
|
<li>ASIC friendly (options for full power & clock management support).<br>
|
| 86 |
|
|
</li>
|
| 87 |
|
|
|
| 88 |
69 |
olivier.gi |
<li>Small size (Xilinx: 1650 LUTs / Altera: 1550 LEs / ASIC: 8k gates).</li>
|
| 89 |
50 |
olivier.gi |
</ul>
|
| 90 |
|
|
</li>
|
| 91 |
219 |
olivier.gi |
<br>
|
| 92 |
50 |
olivier.gi |
<li><b>Peripherals:</b>
|
| 93 |
|
|
<ul>
|
| 94 |
69 |
olivier.gi |
<li>16x16 Hardware Multiplier.</li>
|
| 95 |
50 |
olivier.gi |
<li>Basic Clock Module.</li>
|
| 96 |
|
|
<li>Watchdog.</li>
|
| 97 |
135 |
olivier.gi |
<li>Timer A (FPGA only).</li>
|
| 98 |
|
|
<li>GPIOs (FPGA only).</li>
|
| 99 |
|
|
<li>Templates for 8 and 16 bit peripherals.</li>
|
| 100 |
50 |
olivier.gi |
</ul>
|
| 101 |
|
|
</li>
|
| 102 |
|
|
</ul>
|
| 103 |
|
|
<h2>Limitations</h2>
|
| 104 |
|
|
<ul>
|
| 105 |
|
|
<li><b>Core:</b>
|
| 106 |
|
|
<ul>
|
| 107 |
|
|
<li>Instructions can't be executed from the data memory.</li>
|
| 108 |
|
|
</ul>
|
| 109 |
|
|
</li>
|
| 110 |
219 |
olivier.gi |
|
| 111 |
50 |
olivier.gi |
</ul>
|
| 112 |
135 |
olivier.gi |
<br><br>
|
| 113 |
50 |
olivier.gi |
<h1>Links</h1>
|
| 114 |
140 |
olivier.gi |
Follow on Google+:
|
| 115 |
50 |
olivier.gi |
<ul>
|
| 116 |
140 |
olivier.gi |
<li><a href="https://plus.google.com/109638736286636311338"><img style="border: 0px solid ; width: 39px; height: 39px;" alt="g+" src="https://lh6.googleusercontent.com/-0wq_FOg_8y8/Tu9AkzyXeOI/AAAAAAAAa1Y/QdtmEyJCPrA/google-plus-pages-logo.png"></a></li>
|
| 117 |
50 |
olivier.gi |
</ul>
|
| 118 |
|
|
Discussion group:
|
| 119 |
|
|
<ul>
|
| 120 |
135 |
olivier.gi |
<li><input name="hl" value="en" type="hidden">
|
| 121 |
|
|
<table style="padding: 5px; background-color: rgb(255, 255, 255);" border="0" cellspacing="0">
|
| 122 |
|
|
<tbody><tr><td>
|
| 123 |
|
|
<img src="http://groups.google.com/intl/en/images/logos/groups_logo_sm.gif" alt="Google Groups" height="30" width="140">
|
| 124 |
72 |
olivier.gi |
</td></tr>
|
| 125 |
135 |
olivier.gi |
<tr><td style="padding-left: 5px;">
|
| 126 |
72 |
olivier.gi |
<b>Subscribe to openMSP430</b>
|
| 127 |
|
|
</td></tr>
|
| 128 |
135 |
olivier.gi |
<form action="http://groups.google.com/group/discuss_openmsp430/boxsubscribe"></form>
|
| 129 |
72 |
olivier.gi |
<tr><td style="padding-left: 5px;">
|
| 130 |
135 |
olivier.gi |
Email: <input name="email" type="text">
|
| 131 |
|
|
<input name="sub" value="Subscribe" type="submit">
|
| 132 |
72 |
olivier.gi |
</td></tr>
|
| 133 |
219 |
olivier.gi |
|
| 134 |
135 |
olivier.gi |
<tr><td align="right">
|
| 135 |
72 |
olivier.gi |
<a href="http://groups.google.com/group/discuss_openmsp430?hl=en">Visit this group</a>
|
| 136 |
|
|
</td></tr>
|
| 137 |
135 |
olivier.gi |
</tbody></table>
|
| 138 |
72 |
olivier.gi |
</li>
|
| 139 |
50 |
olivier.gi |
</ul>
|
| 140 |
140 |
olivier.gi |
Development has been performed using the following freely available (excellent) tools:
|
| 141 |
|
|
<ul>
|
| 142 |
|
|
<li><a href="http://iverilog.icarus.com/">Icarus Verilog</a> : Verilog simulator.</li>
|
| 143 |
|
|
<li><a href="http://gtkwave.sourceforge.net/">GTKWave Analyzer</a> : Waveform viewer.</li>
|
| 144 |
|
|
<li><a href="http://sourceforge.net/apps/mediawiki/mspgcc/index.php?title=MSPGCC_Wiki">MSPGCC</a> : GCC toolchain for the Texas Instruments MSP430 MCUs.</li>
|
| 145 |
|
|
<li><a href="http://www.xilinx.com/ise/logic_design_prod/webpack.htm">ISE WebPACK</a> : Xilinx's free FPGA synthesis tool.</li>
|
| 146 |
|
|
</ul>
|
| 147 |
50 |
olivier.gi |
A few MSP430 links:
|
| 148 |
|
|
<ul>
|
| 149 |
|
|
<li><a href="http://en.wikipedia.org/wiki/MSP430">Wikipedia: MSP430</a></li>
|
| 150 |
|
|
<li><a href="http://www.ti.com/litv/pdf/slau049f">TI: MSP430x1xx Family User's Guide</a></li>
|
| 151 |
135 |
olivier.gi |
<li><a href="http://www.ti.com/lit/an/slaa205c/slaa205c.pdf">TI: MSP430 Competitive Benchmarking</a><br>
|
| 152 |
|
|
</li>
|
| 153 |
|
|
|
| 154 |
72 |
olivier.gi |
<li><a href="http://processors.wiki.ti.com/index.php/Open_Source_Projects_-_MSP430">TI: a list of available MSP430 Open Source projects out there on the web today.</a></li>
|
| 155 |
50 |
olivier.gi |
</ul>
|
| 156 |
135 |
olivier.gi |
<br><br>
|
| 157 |
|
|
<h1>Legal information</h1>MSP430 is a trademark of Texas Instruments,
|
| 158 |
|
|
Inc. This project is not affiliated in any way with Texas Instruments.
|
| 159 |
|
|
All other product names are trademarks or registered trademarks of
|
| 160 |
219 |
olivier.gi |
their respective owners. </body></html>
|