Suchen

8-Bit-Controller MCUs für kostensensitive Projekte

Autor / Redakteur: Dr. Martin Mienkina, Fraser McHenry* / Holger Heller

Elektronische Geräte setzen elektrische Leistung mit unterschiedlichen Wirkungsgraden um. Der Druck steigt, diese Werte so hoch wie nur möglich anzusiedeln. Gleichzeitig sollen die Lösungen preisgünstig, kompakt und zuverlässig sein. Mikrocontroller wie der MC9S08QG von Freescale helfen dabei.

Firmen zum Thema

( Archiv: Vogel Business Media )

Mehrere Faktoren beeinflussen die Energiebilanz in elektronischen Geräten positiv. Am effektivsten aber erweisen sich der Einsatz moderner Motoren und Leistungshalbleiter, neuartige Motorsteuerungsverfahren sowie Standby- und Wake-up-Modi für die Ansteuerelektronik. Sollen diese Anforderungen umgesetzt und multinationale Standards (IEC) sowie nationale Vorschriften erfüllt werden, müssen Mikrocontroller zur intelligenten Steuerung von Motoren und der restlichen Elektronik zum Einsatz kommen. Nach der bewährten Serie von HCS08-MCUs mit hoher Anschlusszahl bringt Freescale jetzt unter der Bezeichnung MC9S08QG eine neue HCS08-Familie mit nur wenigen Anschlüssen heraus.

Die MCUs der MC9S08QGx-Serie verfügen über einen ausgewogenen Funktionsumfang, der mit dem Angebot an kleinen Gehäusen harmoniert. Die Bausteinen eignen sich für Entwickler moderner elektronischer Geräte, die auf geringe Stromaufnahme, Layoutfläche und Systemkosten achten müssen. Genauer gesagt, gute Leistungsdaten bei geringer Stromaufnahme, ein robuster Flashspeicher, höhere Analogauflösung und bessere Funktionen zur Steuerung von Bewegungsabläufen sind die Vorteile dieser Familie. Der Hauptvertreter dieser MCU-Familie ist der MC9S08QG8 (Bild).

Bildergalerie

Die MCUs arbeiten bis zu einer Frequenz von 20 MHz (10-MHz-Bus) bei einer Betriebsspannung von >2,1 V bzw. bis zu 16 MHz (8-MHz-Bus) bei <2,1 V. Auch bei niedrigen Spannungen gewährleisten sie einen hohen Leistungsdurchsatz. Der HCS08-Kern nutzt den gleichen Befehlssatz wie der HC08-Kern, unterstützt aber darüber hinaus den Background-Debug-Modus (BGND-Befehl) und profitiert daher von den integrierten Background-Debug-Controller-(DBG-) und In-Circuit-Emulations-(ICE-)Funktionen. Der Background Debug Controller (BDG) arbeitet mit nicht-intrusiven Befehlen, d.h., der integrierte Speicher kann ausgelesen beziehungsweise beschrieben werden, ohne die CPU zu unterbrechen. Die ICE-Funktion bietet Breakpoint- und Trace-Funktionen und kann Änderungen in Softwarefluss und -ausführung erfassen.

Integrierte Debuggingfunktion erspart Emulationstool

Das Debuggen erfolgt über eine Eindraht-Kommunikationsschnittstelle, so dass auf dem Baustein dafür nur ein Anschluss (BKGD) reserviert werden muss. Ist das Debuggen abgeschlossen, kann der BKGD-Anschluss im Kundenprojekt als zusätzlicher Universal-I/O-Pin genutzt werden. Anwender können auf teure Emulationstools verzichten, indem sie die auf dem MC9S08QG integrierten Debugfunktionen verwenden, ohne dafür wertvolle Anschlüsse opfern zu müssen. So lassen sich die Kosten für die Entwicklung weiter senken.

Bei batteriebetriebene Anwendungen ist entscheidend, dass die Stromaufnahme der MCU möglichst gering ist und doch ausreichend Rechenleistung bereitsteht. Die MC9SS08QG-Bausteine wurden daher mit einem speziellen Wait- sowie drei zusätzlichen Stop-Modi (Stop3, Stop2 und Stop1) ausgestattet (Stromsparmodi).

Die Taktaufbereitung ist für jede Systementwicklung ein kritisches Element. Das integrierte ICS-Modul (Internal Clock Source) der Bausteine zahlreiche Optionen für die Taktversorgung und stellt eine flexible und preiswerte Lösung speziell für Bausteine mit wenigen Anschlüssen dar. Es beinhaltet FLL- (Frequency-Locked Loop), IRC- (Internal Reference Clock), XOSC- (External Oscillator) und CSL-Module (Clock Selection Logic). Über eine einfache Digitallogik entsteht in der FLL das 512-fache der Referenzfrequenz. Zusätzliche externe Komponenten, wie sie für eine PLL erforderlich sind, können entfallen.

Der interne Referenztakt (IRC) ist einstellbar (31,25 bis 39,06 kHz) und kann als Referenz für die FLL oder direkt als Taktquelle für die CPU und den Bustakt dienen. Die Feinabgleich erfolgt mit einer Auflösung von 0,1%. Für den externen Oszillator (XOSC) sind drei Betriebsarten möglich: Als Niederfrequenz-Oszillator ist er für den Einsatz mit Quarzen und Resonatoren von 32 bis 38,4 kHz konzipiert. Zweitens kann er als Hochfrequenz-Oszillator mit Quarzen und Resonatoren bei Frequenzen zwischen 1 und 16 MHz arbeiten. Im dritten Modus wird er mit einem externen aktiven Takt von bis zu 20 MHz betrieben.

Der CSL-Anschluss dient zur Auswahl der Taktquelle für die CPU und andere Funktionsblöcke im Mikrocontroller sowie das Herunterteilen des Takts. Als Taktquellen für CPU und Bus können FLL, IRC oder XOSC ausgewählt werden. Die Ausgangsfrequenz kann jederzeit durch 2, 4 oder 8 geteilt werden, um die CPU bzw. die Peripheriefunktionen langsamer zu takten und so die Batterielebensdauer zu erhöhen, ohne den Mikrocontroller in einen der Stromsparmodi zu schalten.

Auf dem Chip integrierter Speicher

Die Familie bietet zwei Speicherkonfigurationen mit Flash und RAM. Der Entwickler kann sich für den MC9S08QG8 mit 8 KByte Flash und 512 Byte RAM oder für den MC9S08QG4 mit 4 KByte Flash und 256 Byte RAM entscheiden. Der Flashspeicher basiert auf Freescales dritter Technologiegeneration (0,25 µm) und erlaubt eine Programmierung bis herunter zu 1,8 V über den gesamten Betriebstemperaturbereich (–40 bis 85 °C).

Er lässt sich byteweise programmieren und seitenweise löschen (512 Byte) – bei Zimmertemperatur sind für den Flash 100.000 Programmier-/Löschzyklen möglich, 10.000 Zyklen werden über den gesamten Temperatur- und Betriebsspannungsbereich garantiert. Die Datenerhaltung beträgt mindestens 15 Jahre und darüber hinaus, je nach Systembedingungen. Durch geeignete Partitionierung des Flashs und schnelle Programmierung können Anwender eine EEPROM-Emulation realisieren.

Der MC9S08QG beinhaltet eine Schaltung, die unautorisierte Zugriffe auf Flash und RAM verwehrt und so den potenziellen Diebstahl von Anwendungscode verhindert. Das Verfahren gewährleistet hohe Sicherheit. Ein solcher gesicherter Baustein kann er nur entsperrt werden, indem der richtige 8-Byte-Schlüssel eingegeben wird. Wichtige, im nicht-flüchtigen Speicher abgelegte Daten und Code wie Anwendungskonstanten und Bootloader lassen sich optional ebenfalls gegen unbeabsichtigte Schreib- und Löschzyklen schützen.

Intelligente Timer für Steuerung oder Koordination

Auf den Bausteinen der MC9S08QG-Familie stehen zwei voneinander unabhängige Timermodule zur Verfügung. Diese können als Timer, zur Steuerung von Bewegungsabläufen oder für die Koordination von Softwareaufgaben eingesetzt werden. Beim programmierbaren 16-Bit-Timer/PWM-Modul (TPM) mit zwei Kanälen kann jeder der TPM-Kanäle unabhängig in einer der Betriebsarten „Input Capture“, „Output Compare“ oder PWM (Pulsbreitenmodulation, Flanke oder mittig, gepuffert) arbeiten. Dank der beiden angebotenen PWM-Betriebsarten, insbesondere der mittengesteuerten, können Systeme mit leistungsstarken Funktionen zur Steuerung von Bewegungsabläufen aufwarten. Darüber hinaus werden die Timerregister konsistent mit einem 16-Bit-Intervall aktualisiert, was die Erzeugung undefinierter Pulsbreiten verhindert.

Das zweite Timermodul ist ein 8-Bit-Modulo-Timer-Interrupt-Modul (MTIM) mit mehreren möglichen Eingangsquellen für den Takt und einer programmierbaren Interruptfunktion. Der Timer kann als freilaufender oder als Modulo-Timer arbeiten, beim Überlaufen des Timers können optional periodische Interrupts ausgegeben werden.

Die MC9S08QG-Familie verfügt über einen integrierten 8-Kanal/10-Bit-A/D-Wandler und bietet damit eine Schnittstelle für den Anschluss von Sensoren mit analogem Ausgangssignal. Der ADC kann einzelne oder kontinuierliche Wandlungen am selektierten Kanal vornehmen. Jede Wandlung kann per Software oder über einen Echtzeit-Interrupt (RTI = Real Time Interrupt) angestoßen werden. Der ADC kann mit dem Bustakt, dem halben Bustakt oder seinem internen Takt betrieben werden. Er lässt sich so konfigurieren, dass er kontinuierlich eine gemessene Spannung mit einem oberen oder unteren Grenzwert vergleicht und einen Interrupt auslöst, sobald die entsprechende Schwelle über- oder unterschritten wird. Diese Funktion kann dazu genutzt werden, die MCU aus dem Stromsparbetrieb aufzuwecken, vorausgesetzt der ADC wird mit seinem internen Takt betrieben.

Mit einem Analogkomparator-Modul (ACMP) lassen sich zwei analoge Eingangsspannungen oder eine analoge Eingangsspannung mit einer internen Bandgapreferenz vergleichen. Der Ausgang des Moduls ist mit integrierten Peripheriefunktionen sowie einem externen Anschluss verbunden. Dadurch können die Peripheriefunktionen wie auch externe Systeme auf das Ausgangssignal des Komparators zugreifen und dieses überwachen oder weiterverarbeiten. Optional lassen sich Komparator-Interrupts mit der steigenden, der fallenden oder beiden Flanken der Komparatorausgänge auslösen. Solch ein Interrupt kann z.B. dazu dienen, die MCU aus einem der Stromsparmodi aufzuwecken.

Daneben enthält der Baustein auch noch einen Temperatursensor, dessen Ausgang mit einem der reservierten Eingangskanäle (AD26) verbunden ist. Der Anwender ist so in der Lage, die Temperatur des Siliziumchips zu messen, ohne dafür einen analogen Eingangskanal zu opfern. Auf die gleiche Weise lässt sich die interne Bandgapreferenz und die Versorgungsspannungen messen, um die korrekte Funktion des integrierten Bandgap-Spannungsreglers bzw. der externen Stromversorgung zu verifizieren.

Kommunikationsmodule

Auf den Bausteinen MC9S08QG8 (8- und 16 Pin) und MC9S08QG4 (16 Pin) stehen drei Kommunikationsmodule zur Verfügung: das SCI (Serial Communication Interface) ermöglicht eine Standard-UART-Kommunikation, die eine asynchrone serielle Vollduplex-Kommunikation (NRZ) zwischen der MCU und externen Bausteinen ermöglicht. Das SPI (Serial Peripheral Interface) erlaubt eine schnelle SPI-Verbindung in Master- (bis zu 5 MBit/s) bzw. Slave-Konfiguration (bis zu 2,5 MBit/s) mit weiteren MCUs und Peripheriefunktionen wie ZigBee-Transceivern (MC13192), Schrittmotortreibern (MC33991), verschiedenen I/O-Expandern und Smart-Media-Card-Controllern.

I²C (Inter-Integrated Circuit) erlaubt den Datenaustausch zwischen verschiedenen Bausteinen. Die Schnittstelle ist so konzipiert, dass sie bei maximaler Buslast und Worst-Case-Timing mit bis zu 100 KBit/s arbeitet. Für den Entwickler bietet sich so eine unkomplizierte Schnittstelle zu LCD-Controllern, RTCs, DACs und zusätzlichen externen EEPROMs.

Mit den Bausteinen der MC9S08QGx-Baureihe stößt Freescale mit seiner HCS08-Architektur in den Bereich von Bausteinen mit geringer Anschlusszahl vor, bietet aber gleichzeitig ein Mehr an Funktionaliät bei niedrigen Spannungen. Zunächst werden 10 Bausteine verfügbar sein. Sie unterscheiden sich in der Menge des auf dem Chip integrierten Flash- und RAM-Speichers, in den Anschlüssen und Gehäuseversionen. Über alle Gehäusevarianten hinweg wird die Pinkompatibilität zwischen Bausteinen mit 8 und 4 KByte Flash unterstützt. Die zur MC9S08QG-Baureihe gehörenden Bausteine sind in Tabelle 1 aufgeführt.

Kostenlose Entwicklungstools für bis zu 16 KByte

Die CodeWarrior Toolchain für HC(S)08-Mikrocontroller unterstützt eine effiziente und rasche Programmierung der MC9S08QG-MCUs. Für Codegrößen bis zu 16 KByte steht eine kostenlose CodeWarrior Special Edition zur Verfügung – diese beinhaltet u.a. einen C-Compiler, Debugger, Linker, Assembler, Simulator, eine IDE (Integrated Development Environment).

Jede Embedded-Anwendung setzt eine Initialisierung und die Verwendung der auf dem Chip integrierten Peripheriefunktionen voraus. Deshalb hat Freescale den Auto-Code-Generator Processor Expert lizenziert und in die CodeWarrior-Umgebung integriert. Dieser sorgt für eine einfachere und schnellere Anwendungsentwicklung. Darüber hinaus erlaubt er dem Anwender, die auf dem Chip integrierten Peripheriefunktionen ohne tief greifendes Wissen um ihre interne Struktur zu programmieren.

Um einen Entwicklungsstart zu ermöglichen, bevor die endgültige Anwendungshardware zur Verfügung steht, steht das Evaluierungsmodul DEMO9S08QG8 zur Verfürung. Es unterstützt die rasche und unkomplizierte Applikationsentwicklung über eine USB-BDM-Debugger-Schnittstelle. Auch diverse Softwarebeispiele werden mitgeliefert, anhand derer die Programmierung der integrierten Peripheriefunktionen demonstriert wird.

Freescale, Tel. +49(0)89 92103559

*Martin Mienkina ist Technical Marketing Engineer bei Freescale in Tschechien, Fraser McHenry ist Product Marketing Engineer bei Freescale UK.

(ID:194487)