USB-Tool-Stick Embedded-Entwicklung zum Mitnehmen

Autor / Redakteur: Wolfgang Lutsch* / Holger Heller

Die rasanten Veränderungen am Markt erfordern mehr denn je einen schnellen Einstieg in neue Entwicklungsumgebungen für Mikrocontroller-Systeme. Am Anfang jeder Applikation steht das Entwicklungswerkzeug. Ein USB-Stick als Tool definiert den Begriff „Ease-Of-Use“ neu: es ist klein, handlich und doch ein komplettes Entwicklungssystem.

Firmen zum Thema

( Archiv: Vogel Business Media )

Wer behauptet, dass ein Entwicklungswerkzeug für Mikrocontroller aus einem langweiligen, grauen Kästchen, einer Menge Kabel, überdimensionalen, ortsfesten Netzteilen und einem Haufen eigenartig anmutender Softwareprogramme bestehen muss – ganz zu Schweigen von dem hohen Preis? Zumindest können wir sagen, dass es keinen zwingenden Grund für ein solches Szenario geben muss. Ein kleines, voll funktionsfähiges Entwicklungswerkzeug von Texas Instruments löst dieses Problem: das eZ430-F2013 im USB-Stick-Format. Hier steht „eZ“ für „Easy“, ‘„430“ für die Strom sparende MSP430-MCU von TI und „F2013“ für einen der kleinsten MSP430-MCUs. Das gesamte Paket besteht aus einer CD, einem USB-Stick und dem Quick Start Guide, auf dem in fünf Schritten beschrieben wird, wie man die mitgelieferte Software und Hardware installiert.

Werfen wir zunächst einen Blick zurück in die Vergangenheit: Viele von uns werden sich daran erinnern, welche Weiterentwicklung die Emulation im letzten Jahrzehnt durchlaufen hat. Dies führte dazu, dass Entwicklungen im Embedded-Bereich nicht nur einfacher, sondern auch kostengünstiger wurden. Ursprünglich verband man Echtzeit-Emulation mit einem Testadapter, mit dessen Hilfe die Funktionalität des eigentlichen Prozessors in einer separaten elektronischen Blackbox nachgebildet wurde, dem In-Circuit-Emulator (ICE). Dadurch ließ sich vorübergehend ein Fenster öffnen, um einen Blick in die Funktionalität des in der Endapplikation eingebauten Prozessors zu erhaschen.

Bildergalerie

Obwohl Echtzeit-Emulatoren auf der einen Seite eine hohe Funktionalität in Bezug auf Fehlersuche und Analysemethoden boten, waren sie verhältnismäßig teuer, unhandlich und lieferten darüber hinaus immer noch keine 100% genaue Abbildung der Einsatzumgebung. Dies kam besonders dann zum Tragen, wenn empfindliche analoge Peripheriemodulen wie A/D- und D/A-Wandler, Komparatoren, Oszillatoren und Spannungsreferenzen mit im Spiel waren.

Pro und Contra Echtzeit-Emulatoren

Ein solcher ICE verwendete z.B. einen ASIC, einen FPGA oder eine spezielle Bond-Out-Version des eigentlichen Prozessors, um die gewünschte Debug-Funktionalität zur Verfügung zu stellen. Der Mikrocontroller auf der Leiterplatte der Endapplikation wird durch einen Chip-Adapter ersetzt, der wiederum durch ein Kabel mit dem ICE verbunden ist. Mit einem weiteren Kabel muss der ICE mit dem PC verbunden werden, um mit dem emulierten Prozessor zu kommunizieren und ihn zu kontrollieren. Zusätzlich erfordert der komplette Aufbau noch eine weitere Spannungsversorgung.

Wie erwähnt, besteht das Hauptproblem des ICE darin, dass er niemals die exakt gleichen Eigenschaften der eigentlichen MCU in der elektrischen Schaltung imitieren kann. Der Schritt von der Entwicklung hin zur Produktion lässt dann in vielen Fällen Probleme zu Tage treten. Mit zunehmend kleiner und vor allem portabel werdenden Geräten wurde es schlicht unmöglich, den Chip-Adapter des ICE in die Schaltung einzusetzen. Hinzu kommen Störfaktoren durch zusätzliche Kabellängen im Zusammenhang mit den analogen Bauteilen.

Durch die Verwendung spezieller On-Chip-Emulationslogik und schnellem Flash-Speicher wurde der Weg für die Embedded-Emulation geebnet. Hiermit lässt sich der Applikationscode auf der Zielhardware selbst entwickeln, was deutlich Entwicklungszeit einspart, da sich die Entwicklung unter den selben elektrischen Bedingungen durchführen lässt, die letztendlich auch der fertigen Anwendung entsprechen. Der Programmcode wird mit Höchstgeschwindigkeit und unter reellen Bedingungen ausgeführt. Durch den Zugriff auf die MCU über speziell dafür vorgesehene Testpins, entstehen keine Einschränkungen in der Verwendung von Systemressourcen für die eigentliche Anwendung, da keine derselben zum Debuggen benötigt werden. Alle MSP430-MCUs bieten daher integrierte Emulationslogik.

Evaluierung in kürzester Zeit

Der eZ430-F2013 geht in Sachen Embedded-Emulation noch einen Schritt weiter. Neben seiner Kosteneffizienz ist er auch noch sehr klein und einfach zu handhaben. Was wie ein im durchsichtigen Gehäuse verbauter USB-Memory-Stick aussieht, bietet bei genauerer Betrachtung alles was ein Neueinsteiger braucht, um die MSP430-MCU-Familie in kurzer Zeit zu evaluieren. Aber auch aus Sicht eines professionellen Entwicklers steht der vollen Funktionsumfang zur Verfügung, um ein komplettes MSP430F20xx-Projekt fertigzustellen.

Der ESD-geschützte Tool-Stick besteht aus zwei Leiterplatten: der eZ430U-Emulatorplatine und der abnehmbaren eZ430D-Applikationsplatine, die beide über einen 4-Pin-Stecker verbunden sind. Die Emulatorplatine ist mit einem USB-Stecker und allen erforderlichen Schaltkreisen ausgestattet, um die Entwicklungssoftware (IDE) über den PC-USB-Anschluss mit dem MSP430 zu verbinden. Für die USB-Schnittstelle wird ein TUSB3410-Baustein verwendet. Ein TPS77301-Spannungsregler liefert 3,6 V Versorgungsspannung für die Applikationsplatine. In einem EEPROM sind für das USB Protokoll nichtflüchtige Enumerationsdaten gespeichert. Auf der Rückseite der Emulatorplatine findet sich ein MSP430F1612, über den die Schnittstelle hin zum Zielprozessor realisiert ist.

Auf der Applikationsplatine befindet sich eine MSP430F2013-MCU mit entsprechender RESET-Beschaltung, bestehend aus einem Pull-up-Widerstand und Entstörkondensator. Eine LED dient zur direkten Debug-Rückmeldung. Alle 14 MSP430F2013-Pins sind über genormte (2,56 mm) Durchkontaktierungen erreichbar und können mit externen Signalen oder anderen Bauteilen verbunden werden. Emulator- und Applikationsplatine sind über zwei Spy-Bi-Wire-Signale SBWTCK (TEST) und SBWTDIO (RESET), einer 3,6-V-VCC und einer gemeinsamen Masse verbunden. Die Emulatorplatine lässt sich über die neu eingeführte Spy-Bi-Wire-Schnittstelle mit jedem anderen Derivat der MSP430F20xx-Familie verbinden.

Mit dem Ziel, I/O-Anschlüsse einzusparen, unterstützt die MSP430F20xx-Familie die 2-drahtige Spy-Bi-Wire-Debug- und Programmierschnittstelle. Zur Realisierung wurden zwei Chip-Anschlüsse gewählt, die im normalen Anwendungsbetrieb nicht verwendet werden: der TEST- und RESET-Pin (SBWTCK und SBWTDIO). Die Schnittstelle erlaubt ohne Einschränkung die Verwendung aller vorhandenen, On-Chip-Emulationsmöglichkeiten, da die Spy-Bi-Wire-Signale intern in das standardmäßig implementierte JTAG-Protokoll dekodiert werden und darüber die MSP430-Emulationslogik zum Einsatz kommt.

Integrierte Entwicklungsumgebung

Auf der mitgelieferten MSP430 Tools CD-ROM befindet sich die IDE-Software „IAR Kickstart Embedded Workbench for MSP430“ zusammen mit mehreren Demo- und Tutorial-Projekten. Neueste IAR Kickstart Updates sowie zahlreiche Code-Beispiele und weiterer Support steht kostenlos auf der TI-Homepage zur Verfügung. Da der eZ430 die gleiche IAR-IDE verwendet wie alle anderen MSP430, muss keine neue Software erlernt werden. IAR und weitere MSP430-IDE-Drittanbieter nutzen eine von TI bereitgestellte gemeinsame Softwarebibliothek, um die entsprechenden Debug- und Programmieradapter von TI zu unterstützen.

Wenn Sie also bereits mit einer anderen IDE besser vertraut sind als mit IAR, beschaffen Sie sich lediglich die aktuelle Version der Software Ihrer Wahl, die dann problemlos Ihren eZ430-F2013 unterstützt. Die IAR-IDE beinhaltet neben C/C++ Compiler und Assembler einen Debugger und Echtzeit-Emulator. Sie können sich im Chip schrittweise durch den Code klicken oder den Programmablauf durch Setzen von Hardware Breakpoints kontrolliert unterbrechen. Ein Blick in die CPU ist ebenfalls möglich, um sich die CPU-Register anzeigen lassen oder diese zu ändern. Die einzige Einschränkung der IAR-Kickstart-Software besteht darin, dass das Linker-Tool auf die Ausgabe von maximal 4 KByte Objektcode, kompiliert aus C/C++ Quelltext, limitiert ist. Die Ausgabe aus Assembler-Quelltext ist unlimitiert. Zur Sorge besteht aber kein Grund: der mitgelieferte MSP430F2013 hat sowieso nur 2 KByte Flash-Speicher.

Die MSP430F2013-MCU ist Teil der MSP430F20xx-Serie, die bis zu 16 MIPS ohne externe Komponenten bietet und sich äußerst robust verhält. Die Vertreter dieser Baureihe besitzen ein frei programmierbares sowie temperatur- und spannungsstabiles Taktsystem. Dieses ermöglicht nicht nur einen niedrigen Stromverbrauch von 500 nA im Standby-Modus, sondern auch schnelle Wechsel in den Aktiv-Modus in weniger als 1 µs bei einem Stromverbrauch von 200 µA/MIPS. In Verbindung mit der hohen Rechenleistung können Applikationen lange Zeit im Standby-Modus betrieben werden. Über der Zeit ergibt sich somit eine Stromeinsparung, die wiederum zu kleineren und preiswerteren Batterien führen kann.

Lange Lebensdauer mit nur einer Batterie

Die MSP430F20xx-MCUs können dank ihres Betriebsspannungsbereichs von 1,8 bis 3,6 V direkt von einer Batterie betrieben werden und sind in 14-poligen pinkompatiblen Gehäusen erhältlich, dessen kleinste Variante nur 4 mm × 4 mm Grundfläche misst. Die Kombination aus geringem Platzbedarf und niedrigem Stromverbrauch bietet zahlreiche Vorteile für Anwendungen wie z.B. Feuer- oder Bewegungsmelder, da nun Produkte mit permanent eingelöteter Batterie entwickelt werden können, die eine Lebensdauer von bis zu 10 Jahren aufweisen. Die Bürde des Batteriewechselns wird eliminiert durch das Design eines Einwegprodukts.

Die Baureihe enthält auch Derivate mit einem Analog-Komparator (F20x1) für kostensensitive Applikationen, mit einem A/D-Wandler mit 200 KSamples/s und 10 Bit Auflösung zur Echtzeit-Signalverarbeitung (F20x2) oder mit einem 16-Bit-Sigma-Delta-ADC (F20x3) für hochpräzise Systeme. Alle Bausteine haben einen erweiterten Watchdog-Timer für hohe Zuverlässigkeit, einen 16-Bit-Multifunktionstimer sowie einen In-Circuit-programmierbaren Flash-Speicher für hohe Flexibilität und der Möglichkeit zu späteren Software-Updates. Dank 128 Byte RAM, der 16-Bit-RISC-CPU und kompletter Projektumsetzung in C, können Entwickler auf die bisher bestehende Befehlssatzarchitektur (ISA) sowie deren Bibliotheken zurückgreifen und damit die Entwicklungszeit reduzieren. Um weiter Kosten zu sparen, verfügen alle zehn GPIO-Pins aller Derivate über programmierbare interne Pull-up/Pull-down-Widerstände, was die Anzahl externer Komponenten verringert. Zudem bieten de MSP430F20x2 und MSP430F20x3 ein Universal Serial Interface (USI), das sich für I²C oder SPI Master oder zur Slave-Kommunikation konfigurieren lässt.

*Wolfgang Lutsch ist MSP430 Tools Engineer bei Texas Instruments in Freising.

(ID:207624)