**Dies ist eine alte Version des Dokuments!**
Inhaltsverzeichnis
Click here for English Version
Forth MiniMultiTool für deine Embedded Experiments
Das Projekt wurde von Jürgen gestartet und auf den Weg gebracht. Er hat viel Energie hineingesteckt das alles zu entwerfen, zu finanzieren und zu koordinieren. Danke!
Mittels dieser Notizen könnt ihr das Projekt verfolgen. Und dazu beitragen das es gelingt.
Das MMT4ue2
Ganz kurz kann man sagen: „ … nimm' doch das MMT für den Test!“ Oder „ take your T42“ (wie in „tee for two“
Also was ist das denn nun?
Jürgens 1) Vision von einem kleinen, vielseitigen, handlichen und erschwinglichem Werkzeug, mit dem man Hardware testen bzw. ausprobieren kann, führte ihn zur Konzeption eines kleinen Boards, bestückt mit einer Micro-Controler-Unit (MCU) von TI, dem MSP430G2553. Meine 2) Erfahrungen mit dem 4e4th Forth für diese MCU führte uns dann zusammen. Für ihn und andere Interessierte entstand aus dieser Kooperation dann das, was er intern „sein Schweizer Messer“ für die Elektronik taufte. Eine Art Kombi-Werkzeug für Gängiges im Modellbau, klein, leicht, kompakt, vielseitig, quasi im Rucksack und für unterwegs zu allerlei verwendbar, und ausbaufähig.
Und sowas kann man dann mal eben fix damit machen3):
EX6 - Dance of the Servos
EX5 - 4 OUT bits manuell toggeln
EX7 - Servo folgt ADC
Das TI Launchpad wurde nur für die Entwicklung benutzt. Für eine eigene Anwendung nimm lieber das EuroTech MSP430Board, LEDs und Schalter auf dem kleinen Proto-Platinchen, und ein USB-serielles Kable zum PC wenn du möchtet. Das ist alles.
Oder steuer einige der Möglichkeiten allein über die drei Taster - dann braucht man noch eine Batterie (2 AAA Zellen) als Strom-Versorgung.
Gestaltung des elektronischen MiniMultiTool
Juergen kramte in seinem Erfahrungsschatz und erstellte eine Liste von Aufgaben zu denen Werkzeuge gemacht werden sollten. Man könnte auch sagen, es ist eine Sammlung gebräuchlicher grundlegender Anwendungen von MCUs, die als Übungsaufgaben (examples) formuliert und dann in einfach gehaltenen Beispielen programmiert wurden. Gut dokumentiert, damit die Grundlagen nachvollzogen werden können. Es war erstaunlich einfach solche kleinen Werkzeuge aus Forth zu schmieden. Dazu wurden in der MCU angelegt je 4 digitale und 2 analoge Eingänge, 4 digitale Ausgänge, 1 PWM-Ausgang und 1 Frequenz-Ausgang (Rechteckwelle 1:1). Begonnen wurde das Ganze auf einem MSP-LaunchPad von TI. Doch da sollte es nicht bleiben. Jürgen hatte minimalistische Platinchen dafür im Sinn.
Device Pinout: MSP430G2553 20-Pin PDIP (TOP VIEW) VCC-----------------[01 20]---------------------VSS (LED1 LP) AD0 P1.0--[02 19]--P2.6 OUT2 ------------ RXD-----------P1.1--[03 18]--P2.7 OUT3 ------------ TXD-----------P1.2--[04 17]--test ----------------- -----------S2 P1.3--[05 16]--RST S1 -------------- ..........AD4 P1.4--[06 15]--P1.7 S3 ---------SPI* _-_-_-_-_-FRQ P1.5--[07 14]--P1.6 PWM LED2-LP SPI* ----------IN0 P2.0--[08 13]--P2.5 OUT1------------- ----------IN1 P2.1--[09 12]--P2.4 OUT0------------- ----------IN2 P2.2--[10 11]--P2.3 IN3-------------- * SPI optional.
Die Platinchen
Sind schnell beschrieben. Die Eine bestehen eigentlich nur aus der MCU, die Andere ist frei bestückbar. Bei der MCU-Platine sind die Pins herausgeführt wurden, so dass Lötanschlüsse einfach gemacht und immer wieder geändert werden können. Oder es wird eine Pfostenleiste eingelötet, um das Ganze in ein Steckbrett zu stecken (Bild). Beides sollte möglich sein. Auf dieser Platine sind nur noch die allernötigsten Bauteile für den Betrieb der MCU vorhanden. Das Ganze ist schnell bestückt, wiederverwendbar, aber weil extrem billig, kann es auch verbaut, zerbastelt, oder kaputt experimentiert werden.
Aber wer will kann seinen Forth-Computer noch weiter schrumpfen auf einen Chip mit Software, einen Widerstand, wenige Drähte, und das FTDI 3.3VUSB Interface-Kabel - das Ganze auf einem Steckbrett aufgebaut. Oder einen Urchin daraus machen…
Jürgen hat das jüngst als kleine Box aufgebaut. Schau mal was er schon gemacht hat: MicroBox Die Microbox kann man bei ihm beziehen.
Die Werkzeuge im MMT
Unter „Werkzeug“ verstehe ich hier diejenigen Kommandos an die MCU, mit denen man deren eingebaute Peripherie-Module initialisieren, einstellen und benutzen kann. Also den I/O über die Ports, den ADC-Wandler, die PWM-Ausgabe, andere Timer-Ausgaben.
Mit Hilfe dieser Werkzeuge (utillities) sind dann einfach zu bedienende beispielhafte Programmstücke geschaffen worden, um die MCU detaillierte zu erkunden. Damit kann man bereits etliche Experimente machen um mit der MCU und ihrer Verbindung zur Außenwelt vertraut zu werden. Und hat man das geschafft, wird in den interaktiven Modus gewechselt. Von da an kann die MCU mit Hilfe von Kommandos 4) direkt bedient werden.
Es gibt zwei Gruppen von Beispielprogrammen im Paket MMT-I5).
Gruppe A
- EX0 - Leave demo loop, run Forth
- EX1 - Display IN at OUT
- EX2 - Display IN at OUT, set PWM-LED too
- EX3 - Falling edge detector (1)
- EX4 - Falling edge detector with tone (2)
- EX5 - Dance of 4 servos (test servos)
- EX6 - Servo follows analog input on pin ADC4
- EX7 - Get analog input from ADC channel 4
- EX8 - Audio visual display of ADC4 value
- EX9 - Play demo song
- DEMOLOOP - Select an example programm by its nummber.
Gruppe B
- EX11 - Echo any key
- EX12 - Toggle OUT bits manually
Gruppe A kommt mit drei Tastern an der MCU aus. Gruppe B benutzt die interaktive serielle Verbindung der MCU zum Terminal im PC.
Der Werkzeug-Führerschein
Für seine Beutzer-Prüfung hat Jürgen sich einen Schummel-Zettel gemacht. Ob es tatsächlich eine online-Führerscheinprüfung geben wird, ist allerdings noch ungewiss.
Das Handbuch zum MMT
Beschreibt die Werkzeuge im einzelnen. ( tbd )
Bezugsquelle
Der Quellcode6) ist inzwischen recht ordentlich ausgetestet. Und wer sich da dran machen will kann schon mal reinschauen. Man muss sich das aber nicht aus der Vorschau herauskopieren, denn es ist ja imPaket MMT-I enthalten. Im Paket sind:
- Der Quellcode
- Image1: Das Forth erweitert um Werkzeuge für die peripheren Module der MCU
- Image2: Image1 plus Beispiel-Programme, die ohne PC ausführbar sind.
- Image3: Image2 plus zwei weitere Beispielprogramme bei denen die MCU mit einem Terminal zusammen arbeitet, also interaktiv wird.
- Handbuch und Datenblatt der MCU
Im Quellcode kann man die Beispiele studieren, und dann vom Forth aus erproben. Dann erweitern oder verändern. Und schließlich mit Hilfe der Treiber eigene Anwendungen schreiben.
Das MMT wurde zuerst auf dem 4e4th aufgesetzt. 4e4th bedeutet: „for-education-forth“. Es ist aus dem CamelForth (Brad Roriguez) hervorgegangen. Das 4e4th eignet sich ganz gut für den Forth-Studenten weil es praktisch unkaputtbar in der MCU residiert. Man kann wild herumexperimentieren ohne befürchten zu müssen das man sich die MCU so zerschießt, dass schließlich nichts mehr geht. Ein Druck auf die Taster S1+S27) zusammen, und alles ist wieder wie neu.
Geschwister
Ich hoffe ja das es noch professionellere Nachfolger unseres allerersten gebastelten Prototypen geben wird. Die möchte ich dann hier vorstellen.
- MSP430 VFX-Forth lite stand alone version
- 430eForth Version
- ? amforth
Und natürlich Fassungen mit mächtigeren MCUs und dementsprechend noch weiterführenden Programmier-Beispielen auf ebensolchen minimalistischen Platinen.
Viel Vergnügen
Michael
Links
Die Treibfedern hinter dem Projekt
Jürgen Pintaske wie beschreiben, Ralf Lieb der die Platinen entworfen hat, und EuroTech als Hersteller für die Platinen8).
Und Dank an alle hilfreichen Andern die da noch waren.