Benutzer-Werkzeuge

Webseiten-Werkzeuge


projects:4e4th:start




!!! Achtung: Steck die beiden Jumper für den UART richtig herum !!! Anleitung

4E4th

4E4th ist kleines Forth das auf dem Texas Instruments LaunchPad abläuft. Es steckt in der MCU MSP430G2553.

Du kommunizierst mit dem 4E4th mit Hilfe eines Zeilen Editors der über einen Terminal Emulator betrieben wird.

4E4th basiert auf der MSP430 CamelForth version 0.3 von B. J. Rodriguez, welches er für das TI Tini430 board mit dem MSP430F1611 geschrieben hatte. http://www.camelforth.com/

Es ist ein ANS Forth, und belegt knapp 8K im FLASH der MSP430G2553 MCU. Weitere 8K sind frei für eigene Experimente.

4E4th ist, wie das CamelForth auch, freie Software (GNU General Public License).

Im folgenden Text beziehen sich alle Angaben zur Hardware auf das TI LaunchPad MSP-EXP430G2 Rev.1.5

Hinweis: Es gibt eine 4eth-se „student edition“ die für Schulungen verwendet werden kann. Die Unterschiede sind dort beschrieben.

Urladen

  • Du hast ein LaunchPad mit der TI MSP430G2553 MCU drauf und 4e4th inside. Dann brauchst du nichts weiter zu tun.
  • Du hast ein eigenes LaunchPad mit einem MSP430G2553 drauf. Dann musst du dir das 4e4th Image 4e4th.a43 im Intel Hex Format besorgen und in den chip brennen. Wie das geht steht im Abschnitt Programmer weiter unten.

Neugierige können sich auch das ganze Repository des 4E4TH ansehen:
http://www.forth-ev.de/repos/4e4th/
Dort ist im Release-Verzeichnis die stabile Version abgelegt, und die aktuelle Entwicklung im Debug-Verzeichnis. Letzteres ist jedoch teilweise experimentell, und vor allem nicht vollständig kommentiert. Da muss man sich also an den Quellcode selbst wagen um damit umgehen zu können.

Das LaunchPad richtig einstellen!

Ab Rev1.5 verfügt das LaunchPad über TX und RX Brücken die 90° gedreht werden können. Ausgeliefert wird in der SW UART Stellung. Stelle um auf die HW UART Position (quer), weil 4E4th den Hardware UART des MSP430G2553 benutzt.

Die älteren Versionen Rev1.3 und Rev1.4 benötigen ein kurzes gekreutztes Kabel an Stelle der beiden Jumper.

Welches Terminal nehmen?

Stelle dein Terminal auf 9600 8N1 ein.

 9600 baud
 8N1:     8 Datenbits, kein parity bit, 1 Stoppbit
 hardware flow control: OFF
Windows XP

LaunchPad Windows USB Treiber müssen installiert sein!

Siehe Abschnitt Voraussetzungen.
Vergleiche Dokument slau278h.pdf bei TI.COM, S.139, Hardware Installation Guide. 
  • TeraTerm leistete gute Dienste. http://www.heise.de/download/teraterm-pro.html
  • HyperTerminal leistete ebenfalls gute Dienste. Einstellungen beachten: Kein extra LF am Zeilenende einfügen lassen!
  • Die 4e4th-IDE ist ein Terminal mit Entwicklungsumgebung spezielle für Forth Anwendungen.
Mac OS X

LaunchPad Mac OS X USB Treiber (CDC /VCP) müssen installiert sein!

MSP430LPCDC 1.0.3b.pkg - ab Mac OS X Version 1.5
http://code.google.com/p/msp430lpcdc/downloads/detail?name=MSP430LPCDC%201.0.3b.pkg&can=2&q=
Weitere Infos unter
http://processors.wiki.ti.com/index.php/MSP430_LaunchPad_Mac_OS_X
  • ZTerm
Seetings>Modem Preferences...  Serial Port (uart-40FF42C59D89223A oder ähnlich auswählen)
Settings>Connection... Data Rate 9600
  • Kermit
% kermit
kermit> set line /dev/tty.uart-40FF42C59D89223A  oder ähnlich
kermit> set speed 9600
kermit> connect
  • Screen müsste auch gehen
% screen /dev/tty.uart-40FF42C59D89223A 9600

o.ä. Beenden via Ctrl+<a> , <k>

Linux

Scheint ohne spezielle Treiber zu gehen auf:

 Debian squeeze, auf i386 und auf PPC (Gerald).
 Ubuntu 10.04 LTS - Lucid Lynx i686 Desktop PC (Martin)
 Ubuntu 11.04 - Natty Narwhal i386 Laptop HP Compaq 615 (Martin)

Je nach Terminalprogramm:

% gtkterm -p /dev/ttyACM0
% screen /dev/ttyACM0 9600
% minicom -D /dev/ttyACM0 -b 9600 -o -w 

(evtl. flow control noch per Menü deaktivieren)

Oder gleich e4thcom-0.3.3.tar.gz nehmen. Bedienung und Eigenschaften des e4thcom-Terminals wurden neulich im Forth Magazin „Vierte Dimansion“, Heft 4/2013, besprochen - VD 2013-04

Starten

Schließ das Launchpad mit dem USB Kabel an den Rechner an. Die USB Verbindung versorgt das LaunchPad mit Strom und ist gleichzeitig die serielle Schnittstelle zu deinem Terminal.

[Das es auch drahtlos geht zeigte Vitaly neulich (30.03.2016)]

Dein 4e4th im LaunchPad startet von selbst, sobald der Strom eingeschaltet wird (beide LEDs gehen an). Du kannst 4e4th erneut starten durch drücken des Reset Tasters.

4e4th startet automatisch im zuletzt gesicherten Zustand. Um den Lieferzustand zu erzwingen halte Taster S2 gedrückt und drücke dann Reset. Die USB-Verbindung dient auch dazu den Prozessor neu zu FLASHen.

Achtung: USB kann manchmal trickreich sein. Es ist wichtig, dass die USB-Verbindung vom Rechner erkannt wird. Bei Windows ist es so, dass es eine Klangfolge gibt, wenn eine neue Verbindung erkannt wird, und eine Klangfolge, wenn der USB-Stecker abgezogen wird. Wenn darauf nicht geachtet wird, klappt die Verbingung nicht, weil das Terminalprogramm die USB-Schnittstelle dann nicht erkennt. Das gilt auch fuer den USB Treiber von Texas Instruments MSP-FET430UIF. Also: Lautsprecher einschalten und auf die Klangfolge achten, und danach erst Terminal starten!

Mit dem 4E4th kommunizieren

Stelle dein Terminal auf 9600Baud 8N1 ein. Drücke einige male die Eingabe Taste <ret>. 4E4th antwortet mit ok. (Jede Eingabe muss immer mit drücken der Eingabetaste beendet werden.)

Um mit dem 4e4th vertraut zu werden tippe mal ein:

 red cclr
 red cset

oder

 green cclr
 green cset

und natürlich <Enter> auch. Die rote oder grüne LED wird leuchten, je nach dem.

Gebe ein

 11 22 33

Die Antwort ok zeigt, dass die Eingabe auf den Datenstack erfolgt ist - sobald du <Enter> gedrückt hast.

Gebe .S ein (ein Punkt und ein großes „S“). 4e4th antwortet mit der Anzahl der eingegebenen Daten, und zeigt was nun auf dem Stack liegt.

4E4th beherrscht verschiedene Zahlenbasen. Es startet in DECIMAL, d.h. alle Zahleneingaben werden dezimal interpretiert. Willst du Zahlen im Hexalsystem haben, kannst du mit HEX darauf umschalten. DECIMAL schaltet zurück. Man kann die Eingaben in Grossbuchstaben oder klein geschreiben machen.

Hier ein weiterer Test:

 : TEST ." Ich bin da " ; 

ok zeigt wie mmer an, das deine Eingabe angenommen wurde. Du hast soeben einen neuen Befahl erzeugt. Und dieser wurde dem dem Forthsystem hinzugefügt.

Nun tippe

TEST <enter> 

und schau was dieser Befehl macht. Du hast gerade gelernt, dass ein neuer Befehl mit : beginnt und mit ; beendet wird.

Weitere Beispiele sind im Forth Tutorial „Starting Forth online edition“ gegeben. http://www.forth.com/starting-forth/

Alle Forthworte dort in den Beispielen sind GROSS geschrieben. Dem 4e4th ist egal ob du GROSSE oder kleine Buchstaben verwendest. Dieses Verhalten wird case insensitiv genannt. So kann man dieses Verhalten umschalten: 0 CAPS ! macht 4et4h case sensitiv, und -1 CAPS ! macht es case insensitiv.

Dein Programm sichern

Tippe einfach SAVE um dein Programm zu sichern. Es bleibt dann permanent im MSP430G2553 FLASH gespeichert.

Mit Hilfe eines Programmers kann man das Flash auslesen, und das Image davon auf dem PC in eine Datei sichern.

Tippe WIPE um dein Programm wieder zu entfernen. Es kann auch entfernt werden indem man die Taste S2 gedrückt hält und dann die Reset-Taste drückt. Dabei werden alle neuen Definitionen, also die eigenen Programme, gelöscht.

Es gibt eine Besonderheit im Umgang mit dem FLASH in MSP430 MCUs: Das FLASH kann immer nur 1x beschrieben werden! Ist also nicht so komfortabel wie RAM oder FRAM. Praktisch gesehen bedeutet das Programmabstürze, wenn man es übersieht das FLASH sauber zu löschen bevor man dort erneut speichert (compiliert). Oder anders ausgedrückt: Wenn ab IHERE kein $FF steht, kann man nichts dorthin speichern. Benutze WIPE um in frisches FLASH compiliern zu können.)

Wenn nichts mehr geht

Dann hilft nur noch den Forthkern erneut zu brennen. Das Ur-Image deines Forth hast du ja noch.

In Windows braucht es dazu nichts weiter als den Programmer aufzurufen und die dort schon eingestellte Quelle erneut in den chip zu brennen. zB mit AUTOPROG beim FET-Pro430 Programmer. Es muss nichts umgesteckt werden.

Der Programmer benutzt den Port USB HID00xx als Verbindung zum LaunchPad, die über die gleiche USB Verbindung realisiert ist wie die serielle zum Terminal. Das Terminal kann einfach geöffet bleiben.

Beende den Brennvorgang im FET-Pro430 mit einem klick auf den „Reset“ Knopf dort. Dann wird die MCU freigegeben und dein 4e4th bootet sofort.

Forth Kern selbst erstellen

Wer den 4e4th Kern selbst bearbeiten will, kann das Projekt im IAR „kickstart“ anlegen. http://www.ti.com/tool/iar-kickstart

Im Repository 4e4th liegt das aktuelle Projekt. Die Beschreibungen (readme.430) wie man das Forth selbst herstellen kann, und der dazu gehörende gesammte Quellcode (*.s43) um das Projekt im IAR „kickstart“ anzulegen sind dabei.

Glossar

Speicher

SAVE ( -- )  Sichert den hinzugetippten Stand. Stacks unverändert. Aktuelle uarea gesichert.
WIPE ( -- )  Zurück auf den Lieferzustand. Stacks unverändert. uarea im Lieferzustand.
APP  ( -- adr )  Adresse in der user area in die das execution token einer Applikation gelegt werden kann.
                 Default APP ist NOOP.

Peripherie - Port1

CSET        m adr --            set bits im byte an der Adresse mittels Bit-Maske 
CCLR        m adr --            clear bits im byte an der Adresse mittels Bit-Maske
RED         -- m adr            red LED Bit-Maske und Port1 Adresse 
GREEN       -- m adr            green LED Bit-Maske und Port1 Adresse
S2?         -- f                test Schalter S2, true ist Schalter gedrückt 

Das vollständige Wörterbuch deines Forth findest du im: http://www.forth-ev.de/repos/4e4th/Glossary.pdf

Ein gute Quelle um mit den bits vertraut zu werden ist: http://www.forth.org/svfig/Len/bits.htm

Wie schaltet man eine LED an und wieder aus?

Beide LEDs sind am Port1 der MCU angeschlossen.

P1.0 = LED1 = rot
P1.6 = LED2 = grün

Mit den Forth Worten cset und cclr kann der Port1 bit-weise bedient werden. cset erwartet eine Bit-Maske auf dem Stack. cclr ebenso. So eine Maske ist ein Byte in dem die Bits gesetzt sind. Die Forth Worte red und green sind solche Masken die zusätzlicxh auch die Adresse auf den Daten Stapel (stack) legen.

red mask   0x01 = 00000001 
green mask 0x40 = 01000000

Hier einige Beispiele wie die LEDs damit ein und ausgeschaltet werden können. (Den Umgang mit Forth auf der Kommandozeile kennst du schon? Sonst mach erst einige grundlegende Übungen. http://www.forth.com/starting-forth/ online edition)

RED CCLR      --> rote LED geht aus.
GREEN CCLR    --> grüne LED geht aus. 
RED CSET      --> rote LED geht an.
GREEN CSET    --> grüne LED geht an.

Um die LEDs blinken zu lassen kannst du so etwas machen:

DECIMAL
: BLINK   
    BEGIN 
      RED CSET GREEN CCLR 100 MS
      RED CCLR GREEN CSET 100 MS
    KEY? UNTIL ; 

Um deine blink Applikation nach einem reset des LaunchPad automatisch zu starten mache folgendes:

' BLINK APP ! SAVE

Man tut gut daran irgend einen Ausstieg aus der app zu programmieren um ins Forth zurück zu kommen. Sonst ist ein WIPE fällig: S2+reset drücken.

Beispiele und Experimente

Es braucht nicht viel um mit dem LaunchPad zu experimentieren...Eine Sammlung von hübschen Beispielen in 4e4th auf dem LaunchPad entsteht hoffentlich nun so nach und nach. Ihr könnt Eure Beispiele dort anfügen.

Experimente mit booster packs können sich hier versammeln, käufliche wie eigene.

Falls du mit der MCU auf deinem LaunchPad vertrauter werden möchtes, könnten dir grundlegende Experimente mit dem MSP430G2553 wertvolle Einsichten bringen.

Voraussetzungen

Um mit der MCU auf dem LaunchPad überhaupt kommunizieren zu können, muss auf deinem Rechner ein Terminal Emulator („Terminal“) vorhanden sein. Auch ein Programmer ist nötig, wenn der chip neu geflasht werden muss. Diese Programme benötigen die richtigen Treiber für das LaunchPad. Diese müssen zuvor in deinem Betriebssystem installliert worden sein.

Texas Instruments (TI) geht davon aus, das man seine MCUs auf dem LaunchPad in C oder Assembler programmiert. Dafür gibt es integrierte Entwicklungsumgebungen (IDE). TI hat bisher (3/2012) keine eigene kostenlose IDE. TI nennt den IAR „Kickstart“ und den CodeComposer als Werkzeuge. Beide Systeme sind proprietär und man kann sie kaufen. Es gibt von beiden kostenlose limitierte Versionen zum runterladen. Der CodeComposer hat eine Zeitbegrenzung. IAR kickstart hat eine Mengenbegrenzung auf 4K große Projekte.

Im Kickstart kann man aber das komplette Projekt entwicklen und dann mit einem anderen Programmer in die MCU bringen.

Treiber

Windows 7

TI bietet in einem Projekt für den Launchpad eine exe für die Installation an. http://www.ti.com/litv/zip/slac490 Holt man sich diesen Ordner ist darin der Unterordner LaunchPad_Driver mit den drei Dateien 430cdc.cat, 430cdc.inf und LaunchPad_Driver.exe. Führe diese exe in dem Ordner aus (Doppelklick). Die exe meldet nichts und ist sofort fertig, aber danach wird das LaunchPad richtig erkannt und ist betriebsbereit. Die exe funktioniert für 32 und 64 bit Systeme. [Der Link zum slac490 ist wohl tot (1.10.2014). Alternative Vorgehensweise: s.unten. Windows7 hat bei mir hier selbst gemerkt welcher Treiber gebaucht wird und den automatisch installiert. mk]

Mit dieser Vorgehensweise kann man es umgehen die Entwicklungsumgebung IAR „Kickstart“ installieren zu müssen.

Stöpsel ein LaunchPad an den USB, es sollte sich nun betriebsbereit melden. Im Gerätemanager nachsehen. Dort sollte nun unter den Anschlüssen ein COMx-Port aufgeführt sein der „MSP430 Application UART“ heißt.

Quelle: http://e2e.ti.com/support/microcontrollers/msp43016-bit_ultra-low_power_mcus/f/166/t/105756.aspx

Alternative Quelle
 LaunchPad_Driver.zip im www.forth-ev.de download Bereich unter sonstiges.
 http://www.forth-ev.de/filemgmt/singlefile.php?lid=410
Alternativer Weg
  1. Unten links auf dem Windows 7 Desktop auf das Windows Icon klicken. Das öffnet die Systemsteuerung.
  2. Geräte und Drucker öffnen
  3. Launchpad einstöpseln (Es erscheint ein neues Icon mit gelbem Ausrufezeichen.)
  4. Klick dadrauf. Ein Fenster: „Eigenschaften von Texas Instruments MSP-FET430UIF“ öffnet sich.
  5. Dessen Reiter „Hardware“ öffnen und unten rechts den Button Eigenschaften anklicken.
  6. Ein weiteres Fenster: „Eigenschaften von HID-konformes Gerät“ öffnet sich.
  7. NICHT sofort auf den Reiter „Treiber“ klicken, sondern zuerst den
  8. Button „Einstellungen ändern“ anklicken. Jetzt öffnet sich (fast) das gleiche Fenster nochmals.
  9. dort jetzt „Treiber“ auswählen.
  10. Treiber aktualisieren, auf dem Computer nach Treibersoftware suchen, zum Ordner gehen, der die *inf Datei enthält, weiter!
  11. Dann geht alles wie von selbst. (Martin)

Hinweis: Diese inf Datei enthält lediglich ein Skrip darüber, was Windows zu tun hat, damit ein virtueler COM Port für das LauchPad an einer USB Schnittstelle eingerichtet wird. Ein inf Datei kann man nicht direkt ausführen.

Windows XP

Mit dem Hardware Wizard oder dem Geräte-Manager die Datei WinDriver_for_TI-LaunchPad_USB_serial.inf suchen und ausführen lassen. Damit wird ein USB-serieller virtueller COM Port für das Launchpad bereit gestellt wird. Diese inf Datei ist hier verfügbar: http://www.forth-ev.de/repos/CF430G2553/

Es soll auch mit der exe gehen die oben in Win7 genannt ist.

Siehe auch Dokument slau278h.pdf bei TI.COM, S.139, Hardware Installation Guide.

Mit dieser Vorgehensweise kann man es umgehen die Entwicklungsumgebung IAR „Kickstart“ installieren zu müssen.

Linux

Die Verbindung von TI LaunchPad und 4e4th lief ohne weiteres auf einer Reihe von Plattformen.

Mac OS X (Intel)

(Es liegen bisher keine erfolgreichen Erfahrungen vor. Stand: 25.02.2012 mk)

Programmer

Das Image vom 4e4th findest du im Repository der Forth-Gesellschaft http://www.forth-ev.de/repos/ - siehe Abschnitt „Urladen“. Es ist eine Datei im intel hex Format, die mit einem geeigneten Programmer in die MCU geladen werden muss.

Windows XP und Windows 7

FET-Pro430 Lite version FREE. http://www.elprotronic.com/fetpro430.html

Stelle das gewünschte Image ein (open code file) und den Pafd dorthin, wähle die richtige MCU aus (Microcontroller Type). Aktiviere das Kästchen reload code file. Wähle dann im Menue setup connections die passende Verbindung aus. Ebenfalls muss setup, memory options passend eingestellt sein. Für die MSP430G2553-MCU ist ganz wichtig, INFO-A Flash darf nicht überschrieben werden. Also das Kästchen bei Retain Data in Flash, DCO constants in INFO-A aktivieren. Wichtig wäre auch noch in setup connections die Option Final Target Device action, reset and start the application program zu aktivieren. Dann muss man das nicht mehr manuell auf der Hauptseite machen. Denn ohne den reset nach dem flashen läuft 4e4th nicht los. Ok, aber nun zurück zur Hauptseite, klicke dort AUTOPROG - fertig. FET-Pro430 merkt sich die Einstellung. Und wenn das Selbe nochmal geflasht werden soll, genügt fortan der einfache Klick auf AUTOPROG.

Hier screen shots davon:

FET-pro430 Hauptseite FET-pro430 Memory Options FET-pro430 Reset Option

Linux

Lade das Image (HEX-Datei) mit dem Flasher-Programm mspdebug auf das Launchpad (Version 0.19 oder später, http://mspdebug.sourceforge.net/).

$ sudo mspdebug rf2500 "prog 4e4th.a43"

Unter Linux meldet sich das TI Launchpad meist unter /dev/ttyACM0 jedoch kann es sein, das bei modernen Linux Systemen Hintergrundprogramme (wie der ModemManager) sofort diese Schnittstelle belegen und versuchen das LaunchPad als Modem anzusprechen (Siehe Linux today: too much plug and play; http://fedetft.wordpress.com/2011/01/07/linux-today-too-much-plug-and-play/). (cas)

Mac OS X (Intel)

Es gibt eine Gruppe die tools zusammen stellt. http://processors.wiki.ti.com/index.php/MSP430_LaunchPad_Mac_OS_X

Quelltext Upload via Terminal

Zu den Terminal-Programmen wurde weiter oben schon einiges geschrieben. Neben den allgemeinen Terminals sind derzeit Forth spezifische Terminals in der Entwicklung.

  • Unter Windows gibt es das TeraTerm. Es ist in der Lage auch Makros auszuführen. Mit einem Forth spezifischen Macro wird erreichen, Quelldateien mit Rücksicht auf das 4e4th im Micro zu senden. Dabei wir zeilenweise gesendet und dann gewartet bis das Forth mit der Übersetzung fertig ist. Erst danach kommt die nächste Zeile.
    TeraTerm macro für Forth
  • Unter Linux gibt es das minicom. Via Ctrl+<A>, <S> öffnet man den „Send file“ (Datei senden) Dialog. Für das Senden kann man beliebige Hilfsprogramme verwenden, die via Ctrl+<A>, <O>, Eintrag „File transfer protocols“ konfiguriert werden. Ein kleines Tcl-Script ermöglicht das Senden von Forth-Quellen mit Flusskontrolle:
    Quellenupload-Script für minicom.
    Die zugehörigen Einstellungen müssen so aussehen:
      J  4e4th      /path/to/minicom-4e4th-up   Y    U    N       Y       Y  

    Außerdem müssen unter Ctrl+<O>, „Serial Port Setup“ die Flow-Control Optionen deaktiviert sein, ansonsten werden die XON-Zeichen von minicom aufgegessen, bevor das Skript sie sehen kann.

  • Sowohl unter Linux, Windows und Mac kann folgendes Tcl-Script zum Hochladen von Quelltexten genutzt werden:
    #! /usr/bin/tclsh
    set uart /dev/ttyACM0
     
    set h [open $uart r+]
    fconfigure $h -mode 9600,n,8,1 -handshake none -timeout 1000 \
        -translation cr -buffering none
     
    foreach name $argv {
        foreach line [split [read [open $name r]] "\r\n"] {
    	puts -nonewline $h "$line\r"
    	while {[string compare [set c [read $h 1]] "\x11"]} {
    	    puts -nonewline stderr $c
    	}
        }
    }


    Der Name des Seriellen Ports unter set uart muss unter Windows oder Mac jeweils noch angepasst werden (Windows: com123, Mac: ??).
    Die Nutzung ist denkbar einfach:

     $ ./4e4th-up sourcefile...

    (Unter Linux das chmod a+x nicht vergessen!)

Speicher auslesen und kopieren

Vervielfältige dein fertiges Programm ohne immer wieder den Quellcode compilieren zu müssen.

Windows XP und Windows 7

Die FET-Pro430 Lite version FREE http://www.elprotronic.com/fetpro430.html kann auch eine Kopie des kompletten Flash machen.

Klicke im FET-Pro430 in der rechten Spalte unten auf den Knopf READ/COPY. Das ist schon alles.

Es wird der komplette Speicher der MCU ausgelesen und in einem neuen Fenster als Text gezeigt, in Form eines Hex-dump. Der Speicherinhalt - das „image“ - wird dabei zeilenweise dargestellt. Zuerst die Adresse in hexadecimaler Form, dann 2×8 Bytes Speicherinhalt, ebenfalls in hexadecimal, und dann noch der Ascii-Wert der Speicherinhalte.

... da liegt der READ/COPY Button So sieht ein Hex-Dump vom Speicherinhalt aus - also das "image"

Das neue Fenster mit dem Hex-Dump hat einige Knöpfe in der unteren Reihe. Damit kann der Flashspeicherinhalt dann auch gleich in eine Datei gesichert werden.

TI_hex_(*.txt) sichert den Hex-dump im TI-Format. Damit können dann später weitere MCUs geflasht werden. Diese Datei enthält Ascii-Text und kann in dieser Form leicht weiter gegeben werden. Der Programmer kann dieses Format einlesen und eine MCU damit flashen. Auch andere TI-Werkzeuge und IDEs können damit dann was anfangen.

COPY legt eine ebensolche Datei an, aber übernimmt darüber hinaus die Datei sofort in den Schreibpuffer des FET-Pro430, damit der nächste chip unmittelbar gebrannt (pardon: geflasht bzw programmed) werden kann - ein Klick auf AUTO PROG reicht dann für die Serienfertigung.

INTEL_(*.hex) sichert den Speicherinhalt im gängigeren Intel-hex-Format, damit der Inhalt auch an andere Programmer weiter gegeben werden kann, in Linux z.B. Hierbei wird der Inhalt im Intel-Hex-Format in den NOTEPAD geschrieben. Dort kann man dann bestimmen wohin und unter welchem Namen die Datei abgelegt werden soll. Windows 7 fügt dabei leider immer .TXT an, so dass dann die Datei MYNAME.HEX.TXT heißt, und mit dieser Endung vom FET-Pro430 nicht mehr eingelesen werden kann. Du musst also doch noch mal ran und die Datei umbenennen in MYNAME.HEX - also das .TXT wieder entfernen, dann gehts.

Der Knopf NOTEPAD übernimmt den angezeigten Hex-Dump in den Editor gleichen Namens. So kann man den Dump kommentieren und dokumentieren.

EXIT - nun ja, damit wird diese Anwendungsebene verlassen und der ausgelesene Speicherinhalt einfach nur verworfen.

!!Achtung!! Es wird der komplette Flash-Speicher ausgelesen, also auch der Bereich Info-A. Der darf aber NICHT in die nächste MCU gebrannt werden, denn dort sind ja die Chip-spezifischen Eichdaten hinterlegt. Aber keine Sorge, der FET-Pro430 fragt nach ob Info-A tatsächlich überschrieben werden soll. Da wird der Info-A Bereich dann wieder ausgeklammert.

Eingestellt wird das im FET-Pro430 Setup unter Memory Options. Wer will kann dort auch den Read Address Range selbst bestimmen. Statt All Memory gibt es dort verschiedene Optionen und auch die Möglichkeit einzelne Segmente auszuwählen.

Tip & Tricks

POR Test

Verbinde zwei Mingnon 1,5V Batterien zu 3V als externe Stromversorgung. An der Brücke J3 die jumper VCC, TEST und RST abziehen. Stecke dein 3V Batteriepack an die externe Versorgung des LaunchPad (J6). Danach kann man POR (power on/off) TestsTests machen ohne das der USB 'aussteigt'.

Problembehandlung

Endlos-Reset

Martin Bitter schreibt:

Unter nicht ganz erklärlichen Umständen kann es vorkommen, dass das Forth im Launchpad nicht tut was es soll. Das kann sich darin äußern, dass es in einer Endlosschleife seine Startmeldung ausschickt. Unter Windows ist das sehr schön im z.B. TerraTerm zu sehen. minicom unter Linux kann dies auch anzeigen, gelegentlich verweigert es auch völlig seine Mitarbeit und bricht mit der Meldung: „Datei oder Verzeichnis nicht gefunden“ schon beim Verbindungsaufbau ab. Hier haben bisher folgende Maßnahmen geholfen: ein Hardreset d.h. Drücken von S2 und dem Resetknopf gleichzeitig oder sehr langes Drücken (1 Minute) des Resetknopfes.

Antwort: Der Fehler trat auf nach flashen der MCU mittels mspdebug. Dieser Endlos-reset passierte, weil die user area im infoB nicht mit dem code im user flash (ab 0xC000) übereinstimmte. Der „Hardreset“, bei dem erst S2 gedrückt und gehalten wird, und dann S1 reset betätigt wird, behebt das Problem - es zwingt 4e4th in den Lieferzustand.

Es scheint mspdebug kann das flash im infoB nicht schreiben, wenn infoA geschützt ist.

Einstellung für das mspdebug (folgt noch)

Geisterzeichen

In meinem Terminal erscheinen Geisterzeichen. Wie kommt das? Geisterzeichen

A: Du hast den debug-mode in deinem Terminal an geschaltet. Dann werden auch Steuerzeichen dargestellt. Das kleine Kästchen mit dem 0011 drin besagt das 0x11 von 4e4th an dein Terminal gesendet worden ist. 0x11 bedeutet XON.

Der debug-mode in TeraTerm wird durch shift-esc aktiviert. Drücke nochmal shift-esc um die Ausgabe im hex dump zu sehen. Und nochmal um die ausgabe ab zu schalten. Und nochmal um wieder zur normalen Darstellung der Ausgabe zu gelangen.

 debug-mode in TeraTerm
 1x shift-esc = Steuerzeichen sichtbar:   11 22 33 . . .  33 22 11 ok ^Q^M^J ok ^Q^M^J ok
 2x shift-esc = hex dump der Ausgabe:     11 22 33 . . . 20 33 33 20 32 32 20 31 31 20 6F 6B 20 11 0D 0A  ok

Kein Reaktion im Terminal

TeraTerm

Windows XP stellt dem Terminal die USB Verbindung nicht bereit.

Wenn der PC zusammen mit dem LaunchPad gestartet wird (LaunchPad noch eingestöpselt am USB), hält Windows das LaunchPad zunächst für eine Maus. Erst nach einer Weile bemerkt es seine Irrtum und gibt den ComPort wieder her. Das führt dazu, dass man vom Terminal aus zunächste keine Verbindung zum LaunchPad bekommt, nach einer Weile dann aber doch. Abhilfe: LaunchPad erst an den USB anstecken wenn der PC schon läuft.

 A Verbindungsaufbau
   1. LaunchPad an den USB anstöpseln. Den Antwortton von Windows abwarten.
   2. TeraTerm öffnen. 
 B Verbindungsabbau
   1. TeraTerm schließen.
   2. LaunchPad abstöpseln.
 

Wenn ich das LaunchPad vom USB abstöpsel während TeraTerm noch läuft, bleibt die Verbindung der beiden gestört. Hotplug geht also nicht. Da hilft bisher nur TeraTerm schließen. Danach (!) LaunchPad vom USB abziehen, Tonfolge abwarten, wieder dran stecken, Tonfolge abwarten, dann Terminal öffnen.

In Verbindung mit dem FET-Pro430 Programmer ist es ebenso, Reihenfolge beachten. Ich hab gute Erfahrungen damit gemacht, erst das Terminal zu verbinden und dann den Programmer. Die MCU ließ sich dann anstandslos flashen auch bei laufendem Terminal. mk

Danksagung

Ich danke Brad Rodriguez für seine grundlegende Arbeit des CamelForth. Und Dirk Brühl für seine unermüdliche und selbstlose Förderung des 4E4th Projektes, indem er die Hardware beschaffte für viele Tester in der Forth Gesellschaft, und mit seinen Ideen und Tips ermutigte weiter zu machen bis das CamelForth auf dem LaunchPad stabil lief. mk 14.03.2012

Und allen die seit der Forthtagung 2012 Anfang März halfen das 4e4th zu debuggen. mk 30.03.2012

Links

Übersetzungen dieser Seite:
projects/4e4th/start.txt · Zuletzt geändert: 2016-03-30 23:25 von mka