Neues 32-Bit-ARM7 Lehr- und Übungssystem mit Cortex M3 an der HTL Hollabrunn

 

Im Bild von links nach rechts:

Kransteuerung       Diplomanden Ferdinand Wimmer, Daniel Höfenstock und Wolfgang Kratky

 

 

 

 

 

 

 

 

 

In der Elektronik Abteilung der HTL Hollabrunn wird  seit Jahren neben 8051-Derivaten auch mit  32-Bit Mikrocontrollern (MIPS32, Blackfin) gearbeitet. Im 32-Bit Bereich setzt sich Cortex M3  zurzeit immer mehr als neuer Industrie-Standard durch. STMicroelectronics ist als europäischer Anbieter neben  20 anderen Herstellern ein Lizenznehmer von ARM.   http://www.st.com/mcu/familiesdocs-110.html

 Ab Herbst (Schuljahr 2010/11)  wird  nun im 3-ten Jahrgang statt des bisher verwendeten 8bit Systems, von jedem Schüler ein steckbrettfähiger 32-Bit Cortex-M3-DIL Adapter (mit einem STM32F103RBT6 im  64LQFP Gehäuse) gefertigt.

 Im Bild der Prototyp des Steckbrettadapters.

Die durchkontaktierte Leiterplatte wurde in der HTL - Hollabrunn produziert.

 

 

Der Adapter besitzt eine JTAG-Schnittstelle und kann wie ein IC auf eine Grundplatine oder Steckbrett  aufgesteckt und ISP-geflasht und debuggt  werden. Er bietet leichte Zugänglichkeit zu digitalen und analogen I/Os. Ebenso sind  ein LC-Display eine zusätzliche USB-Schnittstelle, PWM, Timer, mehrere SPI, I2C und  UART Schnittstellen sowie 128k Flash und 20k SRAM Speicher verfügbar.

Bild: Realisierung der Leiterplatten mit Altium Designer

Zur Evaluierung der in Zukunft verwendeten Hard- und Software  wurde eine 3 - achsige Schrittmotorsteuerung (die ursprünglich mit einem  8-bit 8051 Controller realisiert  war) auf einen Steuerungsrechner mit ARM-32 bit Controller umgebaut. Es sollte damit erprobt  werden, inwieweit das neue an der HTBLA Hollabrunn entwickelte ARM7-Lehr und Übungssystem für den Cortex M3  mit einem STM32F103RBT6 (CM3) für solche Einsätze  geeignet ist.

JTAG

Bevor es das On-Chip-Debugging gab, setzten die meisten Software-Entwickler teure In-Circuit-Emulatoren (ICE) zum Testen von Applikationen auf Mikrocontrollern ein. Diese Emulatoren basierten oft auf speziellen Bond-out-Bausteinen die im Vergleich zu normalen Mikrocontrollern sehr teuer waren. Die  hohen Taktfrequenzen moderner Mikrocontroller (CM3 mit 72 MHz) und die miniaturisierten Gehäuse mit Unmengen von Anschlüssen machen dies mittlerweile unmöglich. Moderne Mikrocontroller sind mit JTAG-On-Chip-Debugging-Logik ausgestattet, die den Speicher, die CPU-Register und die Programmverarbeitung seriell über ein Schieberegister einer Beobachtung zugänglich macht.  

Harvard- und Von-Neumann-Architektur

Im Gegensatz zum ARM7 mit seiner Von-Neumann-Architektur und dem Flaschenhals des gemeinsamen Daten und Befehlsbusses, vereint der Cortex-M3 die Vorteile der Von-Neumann-Architektur mit dem gemeinsamen linearen 4-Gbyte-Adressraum und besitzt trotzdem die getrennten Busse der Harvard-Architektur. Während beim gemeinsamen Bus sowohl das Lesen der Befehle, die Datentransfers von CPU- und DMA-Controllern als auch die Steuerung der Peripherie auf einen Bus konzentriert sind, ist beim Cortex-M3 der Flash-Speicher an einen gesonderten Instruction-Bus angeschlossen, der ausschließlich für das Lesen der Befehle reserviert ist. Der STM32 hat, wie jeder Cortex-M3-Controller – einen ARMv7-M-Befehlssatz. Dieser Befehlssatz geht zurück auf den Thumb-Befehlssatz des ARM7 (16-bit), der mit Thumb2-32-bit-Befehlen erweitert wurde. Damit vereint die CPU mit dem Thumb2-Befehlssatz die Vorteile eines leistungsfähigen 32-bit-Befehlssatzes mit den Vorteilen der kleinen Code-Größe des 16-bit-Thumb-Befehlssatzes. Neben dem optimierten Befehlssatz wurde die ALU auch mit DSP-ähnlichen Befehlen erweitert, damit Multiplikationen in einem Zyklus und Divisionen in zwei bis sieben Zyklen durchgeführt werden können. Zur direkten Bearbeitung von einzelnen Bits wurden die Bit-Banding-Adressbereiche geschaffen, die den direkten schnellen Zugriff auf einzelne Bits ohne read/modify/write-Zyklen zulassen.

 

#define PA0 (*((volatile unsigned long *) 0x42210100 ))                      // Einzel-Portpin im Bitbandbereich festlegen

#define PB8 (*((volatile unsigned long *) (PERIPH_BB_BASE + (32*(GPIOB_ODR_OFFSET-PERIPH_BASE)) +8*4)))

PB8=PA1;                                                                                             //Einzelbitzugriff  Led_Out=Schalter_gelesen

 

Schnelle Interrupt-Latenzzeit

Eine deutliche Verbesserung gegenüber den ARM7-Controllern ist die Interrupt-Verarbeitung des Cortex-M3. Sie wurde beschleunigt, besser durch Hardware unterstützt und ist damit insbesondere für echtzeitkritische Systeme optimal verwendbar, da die Interrupt-Latenzzeit nun deterministisch geworden ist. Beim Cortex-M3 ist mit dem Nested Vector Interrupt Controller (NVIC) nun eine deutlich bessere Anbindung an den Core gegeben. Die Vektortabelle kann bis zu 256 Einträge enthalten, und jede Interrupt-Quelle hat  einen festen Vektor mit einem Eintrag der entsprechenden Interrupt-Service-Routine. Der direkte Vergleich zwischen ARM7 und Cortex-M3 bezüglich Interrupt-Bearbeitung ergibt eine Interrupt-Latenz bei ARM7 von 24 bis 42 Zyklen, bei Cortex-M3 von nur zwölf Zyklen. Der CM3 ist auch optimal für den Einsatz in batteriebetriebenen Geräten geeignet (0,5mA/MHz). Ebenfalls gibt es mehrere Low Power Modi. Die Stromaufnahme im Standby beträgt 2uA.

Hard-und Softwareentwicklung:

Es gibt unterstützende IDEs von mehreren Anbietern. Auch  Open Source Produkte mit Eclipse werden angeboten. Bei uns erfolgt die  Softwareentwicklung  mit dem Keil RealView Mikrocontroller Development Kit (MDK) uVision4  in Verbindung mit dem Keil ULINK-ME USB-JTAG Adapter. Der μVision Debugger kann Speicherinhalte und Variablen in mehreren Daten-Formaten darstellen. Da während der Programmausführung die Speicherinhalte und Variablen laufend aktualisiert werden, hat der Anwender stets den Überblick über den jeweiligen Programmstatus.  Die Kommunikation zwischen PC und CM3  erfolgt dabei  über eine USB-Schnittstelle. Der ULINK-ME  ermöglicht die Flash-Programmierung sowie das Hardware-Debugging. Zusätzlich können Breakpoints gesetzt werden. Wenn kein USB zur Verfügung steht kann  die Europakarte optional auch von einem Steckernetzgerät versorgt werden. Fürs nächste Schuljahr sind Touch Screen Bedienung, Ethernet und CAN Anbindungen geplant.