Unterrichts- und Lernmaterial für Mikrocontroller
Unterrichts- und Lernmaterial fürMikrocontroller

SPIN2 und Propeller P2

0 - Das Konzept (ein bisschen Theorie muss sein)

 

Die Propeller Hard-, Firm- und Software (SPIN und Propeller Assembly) wurde mit Blick auf den neuen Controller Propeller 2 (P2) von der Fa. Parallax komplett überarbeitet.

Wer den P1 bereits kennengelernt hat, weiß, dass der P1 mit seinen acht Kernen keine Interrupt-Routinen benötigt. Gleiches gilt für den P2. Beide Controller können gleichzeitig (nicht nacheinander, wie bei einem Interrupt-Handling) acht verschiedene asynchrone Ereignisse verarbeiten.

 

Der P2 wird in den Sprachen SPIN2 (High-Level-Sprache) und Propeller Assembly PASM (Low-Level Assemblersprache mit vielen hardwarebasierten Befehlen) programmiert. Das Erlernen dieser beiden Sprachen ist relativ einfach. Wer andere Programmiersprachen bereits beherrscht, wird den Einstieg in SPIN2 schnell bewältigen können..

 

Spin2-Programme werden aus einem oder mehreren Objekten erstellt. Objekte sind Dateien, die mindestens eine öffentliche Methode enthalten, zusammen mit optionalen Konstanten, untergeordneten Objekten, Variablen, zusätzlichen Methoden und Daten.

Objekte werden zu einem Objekt der obersten Ebene mit einer internen Hierarchie von Unterobjekten zusammengefasst. Jede Objektinstanz erhält zur Laufzeit ihren eigenen Variablensatz.

Verschiedene Teile eines Objekts werden innerhalb von Blöcken deklariert, die alle mit 3-Buchstaben-Blockkennungen beginnen.

Insgesamt gibt es sechs verschiedene Blockbezeichner:

  • CON
    Konstantendeklaration
  • OBJ
    Instanziierung von Kind-Objekten
  • VAR
    Variablen Deklaration
  • PUB
    Öffentliche Methode zur Verwendung durch das übergeordnete Objekt und innerhalb dieses Objekts
  • PRI
    Private Methode zur Verwendung innerhalb dieses Objektes.
  • DAT
    Datendeklaration einschließlich PASM-Code (Assembler).

Der Compiler generiert in Abhängigkeit der vorhandenen Blöcke in einer spin2-Datei

  • Assembler--Programme (PASM) bzw.
  • Spin2 + PASM-Programme.

 

Propeller-Code ist Objekt-basiert und kann beliebig mit Assembler kombiniert werden. Jedes Programm enthält mindestens ein Objekt; ein reines Assembler-Programm mindestens zwei Zeilen SPIN-Code, um die Anwendung starten zu können.

Die Programmierumgebungen für einen Propeller P2

Es gibt verschiedene Programmierumgebungen für den Propeller P2, die kostenfrei im Internet angeboten werden. Mit zwei Programmpaketen wird in den hier vorgestellten Übungen gearbeitet.

  • Propeller Tool (Sprachen: SPIN2 und PASM; Betriebssysteme: Windows)
  • FlexProp (Sprachen: SPIN2, PASM, BASIC, C; Betriebssysteme: Windows. Linux)

Beide Pakete können im Internet an dieser Adresse heruntergeladen werden. Dort finden sich auch weitere Hinweise zur Installation. In den hier vorgestellten Übungen werden die meisten Programme in SPIN2 programmiert sein; in wenigen Ausnahmefällen gibt es auch Beispiele in BASIC, C und PASM(Assembler).

1 - Ausgewählte Controllerdaten des P2

 

  • 8x32 Bit Kerne mit 4 kB Dual-Port RAM
  • 512 kB gemeinsam genutzter RAM
  • 64 identische gemeinsam genutzte Smart-I/O-Pins.
  • Taktfrequenz: 180 MHz (typ.), ... 320 MHz
  • HUB-Zugriffsgeschwindigkeit: 720 MB/s/Zahn
  • Max. Ausführung bei 180 MHz: 720 MIPS
  • ADC: 64 x 14 Bit
  • ADC-Modi: Delta-Sigma, SINC1/2/3, Scope
  • DAC: 64 x 16 Bit, 3 ns, 75 Ohm
  • Mathematik: SIN, LOG, TAN, ARC
  • PWM: Dreieck, Sägezahn, SMPS
  • Analoges Video: VGA, HDTV, NTSC, PAL
  • Digitales Video: HDMI 480p/60 fps, HDMI 720p/24 fps

 

2 - Die Hardware

Grundausstattung
  • 1x  P2 Edge Modul mit Prop-Plug
  • 1x  P2 Edge Breadboard mit Steckernetzteil und USB-Verbindungskabel

 

 

 

 

 

 

Abb. 1

P2-Edge-Modul

 

 

 

 

 

 

 

 

Abb. 2

P2-Edge-Breadboard mit Steckplatz für das Prop-Plug

3 - Aufbau des P2 Edge Modul Breadboards

1 - Anschlußbuchse für Steckernetzteil

 

2 - Parallax P2 Edge-Modulsockel

 

3 - Prop-Plug Programmiermodulanschluss

 

4 - Insgesamt acht Servo-Anschlüsse (3 Pin)

 

5 - 8 VIO-Anschlußgruppen á je 8 Buchsen. Darüber lassen sich alle

     Ein-/Ausgangspin des P2 ansprechen.

 

6 - 2 Steckbretter

 

7 - RESET-Taste

4 - Propeller Tool IDE Vers. 2.5 oder höher und Hardware-Identifikation

Nach der Installation und dem Laden der Software Propeller Tool erscheint die Oberfläche der IDE. Wähle aus dem Hauptmenü Run - Identify Hardware ....

Die Software identifiziert das angeschlossene Board und gibt bei Erfolg eine entsprechende Meldung auf den Bildschirm aus:

 

 

 

 

 

Abb. 3

Nach erfolgreicher Identifikation des Boards erscheint diese Information auf dem Bildschirm.

Das Board ist jetzt einsatzbereit. Wir beginnen mit einer ersten Übung.

SPIN2-Übung 0 - Der klassische LED-Blinker

 

Was passiert in dieser Übung?

Das Objekt setzt die Ausgangspins P56 und P6 des Controllers P2 gleichzeitig und wiederholt auf HIGH (1) und LOW (0). Eine weiße LED ist über einen Vorwiderstand von 470 Ohm mit P56 auf dem P2-Edge-Modul vom Hersteller bereits  fest verdrahtet; separat wird auf dem P2-Edge-Steckbrett eine rote LED mit Vorwiderstand R = 470 Ohm mit P6 verbunden. Die LEDs sind so beschaltet, dass sie leuchten, sobald der entsprechende Pin (hier P56 bzw. P6) auf HIGH gezogen wird.

 

 

 

 

 

 

 

Abb. 4

P56 (Bild: Mitte oben) auf dem P2-Edge-Modul ist mit einer weiss leuchtenden LED fest verdrahtet.

Versuchsaufbau

 

 

 

 

 

 

 

 

 

 

Abb. 5

Eine LED rot wird auf dem P2-Edge-Breadboard über einen 470 Ohm Vorwiderstand an P6 angeschlossen.

Übung 0

SPIN2 - Übung 0 - LED Blinker
Aufgabe
  • Baue auf dem P2-Edge-Breadboard eine LED-Schaltung mit einem Vorwiderstand von 470 Ohm auf. Die Anode der LED liegt an P6.
  • Starte die Software Propeller Tool und übertrage das Programm Umschalten.spin2. in den Editor.
  • Achte darauf, dass dieSchlüsselworte PUB und CON ganz links in Spalte 1 beginnen und nicht eingerückt sind. Bei Nichtbeachtung gibt es eine Fehlermeldung.
  • Beachte auch die jeweiligen Einzüge in den Programmzeilen.
  • Reservierte Worte werden automatisch fett gedruckt; auf Groß- und Kleinschreibung muss nicht geachtet werden.
  • Beim Abspeichern des Programms achte darauf, dass es unter File - Save As ... als Dateityp spin2 abgespeichert wird.
  • Starte anschließend das Programm aus dem Hauptmenü über Run - Compile Current - Load RAM oder einfach mit F10 und überprüfe das Verhalten der beiden LEDs. Blinken sie gleichzeitig im Sekundentakt?

Das Programm Umschalten.spin2

 

 

 

 

 

 

 

Abb. 6a

SPIN2 Programm für den Propeller P2 mit Hilfe von Propeller Tool. Zwei LEDs werden wechselseitig ein- bzw. ausgeschaltet.

Eine BASIC Version mit FlexProp

 

 

 

 

 

 

 

 

 

 

 

 

 

Abb. 6b

BASIC Programm für den Propeller P2 mit Hilfe von FlexProp. Zwei LEDs werden wechselseitig ein- bzw. ausgeschaltet.

Die Programmzeilen 5 und 8 können weggelassen werden.

Erläuterungen zum Programm Umschalten.spin2

  • Das Programm besteht aus den beiden Blöcken: CON und PUB.

Programmzeile 7

Im CON-Block wird die Taktfrequenz festgelegt. Typischerweise liegt sie bei 160 MHz. Die nachfolgend eingerückte Zeile macht deutlich, dass sie Teil des CON-Blocks ist.

Programmzeile 9

Diese Zeile, PUB Umschalten() weist auf eine "öffentliche" Methode mit dem eindeutigen Namen Umschalten hin. Die nachfolgend eingerückten Programmzeilen machen deutlich, dass sie Teil der Methode sind.

Eine Methode ist der objektorientierte Begriff für "Prozedur" oder "Routine". Der Name  beschreibt, was die Methode tut und er darf kein reserviertes Wort sein. Jedes Objekt muss mindestens eine öffentliche Methode(PUB) enthalten.

Programmzeile 11ff

Es wird mit dem Schlüsselwort REPEAT eine Schleife erstellt, die die folgenden drei Zeilen 12 ... 14 umfasst. Die Einrückung der nachfolgenden Zeilen ist hier zwingend und macht optisch sofort deutlich, welche Befehle zu dieser Struktur gehören,

Wie im vorliegenden Fall kann die Blockgruppen-Indikator-Funktion auf dem Bildschirm mit STRG-I sichtbar gemacht werden.

Der Befehl

  • pintoggle oder pint

schaltet den Zustand der I/O Pins 56 bzw. 6 nacheinander auf  HIGH bzw,. LOW. Anschließend wird 1000 ms oder 1s gewartet (Programmzeile 14).

Jetzt kommst du!

Ändere das Programm Umschalten.spin2 so ab, dass die beiden LEDs wechselseitig ein- und ausgeschaltet werden. Speichere das Programm unter dem Namen wechselblinker.spin2 ab.

In der folgenden Übung wird die P2-Eval CONTROL-Platine vorgestellt, näher betrachtet und über SPIN2-Programme angesprochen. Interessiert? Dann geht es hier weiter ->

Druckversion Druckversion | Sitemap
© Reinhard Rahner - Gettorf