Mikrocontroller-Familie Motorola 9S08GB/GT - All

Transcription

Mikrocontroller-Familie Motorola 9S08GB/GT - All
EBV Elektronik präsentiert die MCU-Familie 9S08GB/GT von
Motorola – Hohe Leistungsfähigkeit und geringer Strombedarf für
eine lange Batterielebensdauer
Verfasser: Edi Schneider, Application Manager EBV Elektronik Osteuropa
Die neue 8-Bit-Mikrocontroller-Familie von Motorola und neue Methoden des seriellen On-Chip-Debugging
Entwickler preiswerter batteriebetriebener Produkte, die z. B. in zahlreichen drahtlosen Geräten eingesetzt werden, wissen, wie wichtig eine lange Batterielebensdauer ist, die jedoch nicht auf Kosten einer guten Prozessorleistung erzielt
werden darf. Auf Grundlage dieser Überlegungen hat Motorola eine neue Produktfamilie 9S08 (HCS08) an 8-Bit-FlashMikrocontrollern auf den Markt gebracht, die bei einer niedrigen Spannung arbeiten und einen geringen Stromverbrauch
haben. Die 9S08-Familie stellt eine Weiterentwicklung der HC08-Familie dar und garantiert eine längere Batterielebensdauer.
Sogar bei Spannungswerten von nur 1,8 V können diese Mikrocontroller die maximale Leistung erzielen. Sie verfügen
über branchenführende Flash-Technologie und innovative On-Chip-Entwicklungsunterstützung.
Die neuen 9S08-Mikrocontroller verfügen über mehrere Energieverwaltungsknoten, einen Power-Down-Modus mit 20 nA
sowie eine automatische Weckfunktion aus dem Stop-Modus. Dank dieser Funktionen wird die Batterieleistung von den
neuen 9S08-MCUs optimal genutzt. Weitere Leistungsmerkmale der MCUs sind ein schneller Anlauf und flexible Multifrequenztaktquellen, wie etwa ein integrierter programmierbarer Taktgenerator ohne zusätzliche Komponenten mit
Busfrequenzen zwischen 4 MHz und 20 MHz.
Mit einem internen Zyklus von 50 ns bei einer Versorgungsspannung von 2,1 V und einer Busfrequenz von 20 MHz (125 ns
bei einer Versorgungsspannung von 1,8 V und einer Busfrequenz von 8 MHz), sind die 8-Bit-Modelle mit einer Leistung
von bis zu 20 MIPS vielen 16-Bit-Modellen überlegen.
Die MCUs verfügen über die 0,25-µ-Flash-Technologie der dritten Generation, die die Umprogrammierung in der Schaltung bzw. die Speicherung von Daten und Codes auf dem Flash-Speicher ermöglicht.
Der Flash-Speicher ist in Konfigurationen mit 16 Kbyte bis 60 Kbyte verfügbar. RAM ist in Arrays mit 1 Kbit, 2 Kbit und
4 Kbit verfügbar.
Weitere Funktionen sind ein 8-kanaliger, 10-Bit auflösender AD-Wandler, ein 16-Bit-Timer/PWM-Modul mit bis zu 8 Kanälen
sowie ein interner Taktgenerator. Der Mikrocontroller verfügt über einen Spannungsregulator und einer automatischen
Reset bei Unterspannungen, zwei asynchrone, serielle E/A-Anschlüsse, SPIund I2C-Schnittstellen, einen 8-Bit-Tastatur-Interrupt-Anschluss, bis zu 56 General-Purpose-E/A-Kanäle mit Pull-ups, die über die Software programmiert
werden können, sowie verschiedene Packaging-Optionen.
Zudem ist der Objektcode der 9S08-Familie für eine einfache Migration mit
dem der 68HC05- und 68HC08-Modelle kompatibel.
Ein umfassendes Dienstleistungsangebot sowie Hardware- und SoftwareTools werden angeboten, um die Integration der 9S08-Mikrocontroller in Lösungen zu beschleunigen.
Zu diesen Diensten gehören ein 9S08-Developer Kit, Online-Lehrgänge, eine
umfassende Bibliothek mit Anwendungshinweisen, mehrere Beispiellösungen und der Metrowerks CodeWarrior(tm) Development Studio für 9S08,
Special Edition.
Innovationen im seriellen On-Chip-Debugging
Neue Methoden verwenden weniger Steuerungsleitungen und bieten eine umfassendere Testabdeckung
Das Entwickeln und Testen von Software ist zu einer festen Größe im Budget für das Entwickeln vieler Embedded Systems geworden. Da verwundert es kaum, dass Methoden erarbeitet wurden, die diese Tätigkeit vereinfachen sollen.
Es wurden z. B. hochentwickelte non-intrusive Debugging-Systeme auf dem Chip integriert. Nähere Informationen zu
dieser Methode finden Sie weiter unten in diesem Artikel. Zunächst werden jedoch einige konventionellere Tools vorgestellt, die Entwickler von Embedded Systems zum Debuggen verwenden.
Konventionelle Debugging-Methoden
Eine konventionelle Methode zum Debuggen von Anwendungscode für Mikrocontroller-Einheiten (MCUs) besteht in
der Verwendung von Überwachungsprogrammen. Mit einem Bootstrap-Modus kann ein Teil des Codes in den Arbeitsspeicher geladen, gestartet und nach Fehlern durchsucht werden. Ein Nachteil dieser Methode besteht in der intrusiven Arbeitsweise, da die Speicherzuordnungstabelle und einige Eingangs- bzw. Ausgangsfunktionen (E/A) versehentlich ausgewechselt werden können.
Außerdem wurden In-Circuit-Emulatoren entwickelt, um einen einfachen Zugriff auf die Register und die Speicherzuordnungstabelle der Zentraleinheit (CPU) zu ermöglichen. Diese Emulatoren ermöglichen z. B. eine einfache Implementierung
von Hardware-Breakpoints und einer Trace-Funktionalität. Mit dem In-Circuit-Emulator können Sie ein Target-Kabel über
einen Header bzw. eine Socket-Schnittstelle mit der Platine verbinden. Der Header entspricht im Prinzip dem PackagePinout der MCU. Der konventionelle Ansatz des In-Circuit-Debugging zieht einige Probleme nach sich.
Diese Technologie stößt an ihre Grenzen, da Mikrocontroller immer mehr Funktionen auf einem einzelnen Chip integrieren, die Mikrocontroller mit jeder neuen Version schneller arbeiten und immer mehr Pins verwendet werden. Kabel und Target-Verbindungen werden komplexer, teurer und empfindlicher, während der begrenzte Platz auf der Target-Platine eine Hookover-Verbindung oft unmöglich macht.
On-Chip-Debugging
Um diese Problem zu lösen, wurde etwas Platz auf den MCUs für Schaltungen reserviert, die für die Entwicklung und
das Debugging von Software vorgesehen sind. Dies stellt eine Alternative zu Überwachungsprogrammen und In-Circuit-Emulatoren dar.
Unter seriellem Debugging versteht man eine Hardware- und Software-Konfiguration, die es einem Host-System (z. B.
einem PC) ermöglicht, mit einem anderen integrierten Chip zu kommunizieren. Es wird zwischen verschiedenen Me-
thoden des seriellen Debugging unterschieden. Bei allen Methoden wird jedoch eine begrenzte Anzahl Pins für die Kommunikation zwischen der Target-MCU und einem Host-Computer verwendet.
Serielle Debugging-Systeme werden häufig für 32-Bit-MCUs verwendet und immer häufiger auch für 8-Bit-Modelle, wie
etwa die Mikrocontroller der 9S08-Familie von Motorola. Die logische Weiterentwicklung des seriellen Debugging besteht darin, schaltungsinterne Ressourcen von der Testfunktion zu trennen, um so einen mehr oder weniger normalen
Betrieb der getesteten Schaltung zu ermöglichen.
Abbildung 1 zeigt ein typisches Mikrocontroller-basiertes System, das für diesen Typ des Background-Debug-Zugriffs ausgelegt ist. Der Host-PC ist über eine BDM-Schnittstelle (Background Debug Mode) mit dem Target-System verbunden.
Abbildung 1: Mit Hilfe einer BMD-Schnittstelle können Funktionen und Pins getestet werden, wenn der Mikroprozessor in vollem Betrieb ist.
Bei dem BDC (On-Chip Background Debug Controller) handelt es sich um eine festverdrahtete Schaltung, so dass kein
Überwachungsprogramm in der MCU benötigt wird. Dadurch ist es möglich, ein Benutzerprogramm im Target-System
zu debuggen, ohne die CPU oder ihre Befehle zu verwenden. Dies ermöglicht es dem Benutzer, von dem Host-PC aus
auf den internen Speicher auf der MCU zuzugreifen, während das Benutzerprogramm ausgeführt wird.
Der Vorteil des Debugging während des Ausführens des Host besteht darin, dass die Betriebsbedingungen mit dem alltäglichen Gebrauch identisch sind. Der Entwickler kann auf diese Weise sämtliche Störimpulse beim Betrieb erkennen.
Der Host-PC ist über die BDM-Schnittstelle mit Hilfe eines parallelen Kabels oder eines USB-Anschlusses (Universal Serial Bus) mit dem Target-System verbunden.
Mit Hilfe einer LPC-Verbindung (Low-Pin-Count) steuert die BDM-Schnittstelle das serielle Kommunikationsprotokoll,
das wiederum mit dem Target-System kommuniziert. Auf dem Target-System gehören Verbindungen für den BackgroundPin, Reset, Power und Ground zu einer Basisschnittstelle.
Die Reset-Verbindung ist zwar optional, jedoch sehr nützlich, da sie es ermöglicht, dass die Target-Platine per Tastendruck auf dem Host zurückgestellt wird. Die ebenfalls optionale Power-Verbindung ermöglicht es der BDM-Schnittstelle,
Strom vom Host abzunehmen. Der Background-Pin wird verwendet, um den Modus für das serielle Debugging einzuschalten.
Nur der Background-Pin ist zwingend erforderlich. Er wird außerdem für die bidirektionale serielle Kommunikation verwendet. Nur einen einzelnen Pin zum Auswählen des Background-Modus zu verwenden hat den Vorteil, dass alle anderen Pins auf der MCU für ihre vorgesehenen In-Circuit-Funktionen verwendet werden können.
Ein auf diese Weise aufgebautes System ermöglicht die aktive Steuerung der Mikroprozessor-Register, um schrittweise Befehle zu erhalten und die Wirkung dieser Befehle auf die Register der MCU zu überprüfen. Die non-intrusive
Steuerung ermöglicht das Lesen und Schreiben von Befehlen auf den Benutzerspeicher oder periphere Steuerungsregister.
Außerdem können Hintergrundsteuerungsregister, die nicht zur Speicherzuordnungstabelle gehören, geändert werden.
Da non-intrusive Befehle auf den Speicher zugreifen können, wenn die CPU nicht im Normalbetrieb ausgeführt wird,
ist die Debugging-Kapazität wesentlich höher als bei herkömmlichen Debugging-Ansätzen, die auf Überwachungsprogrammen basieren.
Wenn die BDM-Schnittstelle auf einem Target-System implementiert wurde, kann sie zum Programmieren und Umprogrammieren des Flash-Speichers der MCU verwendet werden, wenn ein Software-Upgrade oder ein Bugfix erforderlich
ist. Sie kann auch für Diagnosezwecke verwendet werden. Entwickler von Embedded Systems profitieren von der kürzeren Entwicklungsdauer und den geringeren Kosten.
ON-CHIP DEBUG-SCHNITTSTELLE – Übersicht über die Funktionen der 9S08-Familie
• Einkabeliger Background-Debug-Modus
• On-Chip-Trace-Buffer mit neun flexiblen Trigger-Modi und mehreren Hardware-Breakpoints
• Non-intrusive Emulation
• Echtzeit-Emulation der MCU-Funktionen bei maximaler Betriebsspannung und einem Frequenzbereich, der nicht wie
bei herkömmlichen Emulatoren eingeschränkt ist
• On-Chip-Trigger- und Buffer-Hardware ersetzt den teuren Bus-Status-Analysator eines Emulators
• Non-intrusives Debugging über einen einzelnen, festgelegten Pin macht teure und umständliche Emulatorkabel
überflüssig
• Anzeige und Änderungen von internen Registern und Speichern während des Ausführens von Anwendungen möglich
Verfasser:
Edi Schneider, Application Manager EBV Elektronik Osteuropa
A-1150 Wien
Diefenbachgasse 35/1
Über EBV Elektronik
EBV Elektronik, ursprünglich ein deutsches Unternehmen, wurde 1969 gegründet und ist heute Europas größter monolithischer Halbleiter-Spezialist mit besonderem Fokus auf Kundenzufriedenheit und Qualität in allen Belangen.
230 technische Verkaufs-Spezialisten konzentrieren sich auf eine begrenzte Anzahl weltweit führender Halbleiter-Hersteller, mit denen langfristige Kooperationen bestehen. 100 Anwendungs-Spezialisten bieten umfassende ApplikationsErfahrung und Design-Know-How. Zugang zu den besten Dienstleistungen wie Logistik,Value Added Services, Supply
Chain Management und Produktveredelung garantiert Avnet Logistics, der interne logistische Dienstleister und Europas größtes Servicezentrum. EBV unterhält 50 Büros in 23 Ländern in Europa, Israel und Südafrika.