Z8 encore!

Aus der Mikrocontroller.net Artikelsammlung, mit Beiträgen verschiedener Autoren (siehe Versionsgeschichte)
Wechseln zu: Navigation, Suche

Der Z8 encore!, kurz eZ8 von Zilog ist ein flexibler Mikrocontroller mit interessanten Features. Es handelt sich dabei um eine Weiterentwicklung des inzwischen betagten Z8, mit dem sowohl erfahrene Z8- und Z80-Programmierer als auch Neueinsteiger ihre Freude haben können.

Features[Bearbeiten]

  • Architektur: Registerbasierte, modifizierte Harvard-Architektur
  • Hauptspeicher: 256 bis 4096 Bytes SRAM
  • Programmspeicher: 1 bis 64 kBytes Flash
  • Spannungsversorgung: 1,8 - 3,6V, IOs 5V-tolerant
  • Taktfrequenz: bis 20MHz
  • Bauformen: DIP, PLCC, SOIC, SSOP, QFP, LQFP, QFN
  • Pins: 8 bis 80

Peripherie[Bearbeiten]

  • Low Voltage Detector (LVD): Löst bei Unterschreitung einer Versorgungsspannungs-Schwelle einen Reset aus.
  • Watchdog Timer (WDT): Einstellbarer Timer, der einen Reset auslöst, falls er nicht zeitgerecht zurückgesetzt wird.
  • Timer: 16 Bit breit, Bis zu vier Stück, je nach Gehäuse, intern kaskadierbar
  • UART: Asynchrone serielle Schnittstelle
  • PWM: Ausgabe eines pulsweiten-modulierten Signals
  • SPI: Serielle Periphere Schnittstelle, mit Unterstützung aller vier Modi. (CPOL und CPHA frei einstellbar).
  • I²C: Adressierbare serielle Schnittstelle, 400kHz, Master und Slave.
  • ADC: Analog-Digital-Konverter, 10 Bit (single ended) 11 Bit (differenzial) Auflösung, mehrere Kanäle, Sigma-Delta. Werte zum genauen Kalibrieren sind in einem speziellen Flash-Bereich abgelegt. Damit sind 12 Bit Auflösung möglich.
  • DMA: Erlaubt schnellen Speicher-Datentransfer ohne Mitwirkung der CPU. Verschiedene Richtungen möglich, ADC-RAM, RAM-PWM, etc.
  • IrDA: Encoder und Decoder zur drahtlosen Kommunikation via Infrarot
  • LED: Treiber zum direkten Anschluß von Leuchtdioden, LED-Strom von 2mA bis 20mA programmierbar
  • Motor Control (MC): Controller für sensorlose BLDC-Motoren
  • Temperatur-Fühler: Integriert, für Temperaturmessung "on-board", mit Kalibrierwerten im Flash.

Input/Output[Bearbeiten]

Die Ein- und Ausgabepins des eZ8 können einzeln als Ein- oder Ausgabepins konfiguriert werden. Es ist möglich, interne Pull-Up-Widerstände zu aktivieren. High-Current-Pins vorhanden. Die Programmierung der Ein- und Ausgänge erfolgt über die Register PxCTL (Control-Register) und PxADDR (Adress-Register). Das Beschreiben des Adressregisters aktiviert hierbei verschiedene Funktionen des Controlregisters.

Interrupts[Bearbeiten]

Der eZ8 bietet eine flexible Interruptbearbeitung. Alle Interrupts sind priorisiert. Mit den Befehlen EI und DI können Interrupts global (de)aktiviert werde.Mittels den Registern IRQxENL und IRQxENH sind darüber hinaus alle Interrupts (bis auf RESET und TRAP) in drei Stufen priorisierbar und maskierbar. Ausserdem unterstützt der eZ8 Nested Interrupts, das heißt das ein höher priorisierter IRQ einen niedriger Priorisierten Unterbrechen kann. Nach Abarbeitung des höher Priorisierten wird der Unterbrochene abgearbeitet. Natürlich ist es auch möglich Software-Interrupts zu programmieren.

Programmierung[Bearbeiten]

Die Programmierung der Bausteine erfolgt mittels Zilogs "Smart Cable". Dabei handelt es sich um eine Box, welche an den USB oder die serielle Schnittstelle eines PCs angeschlossen wird. Zwischem dem Smart-Cable und der Zielapplikation reicht eine im einfachsten Falle zweipolige (DBG und RESET) Verbindung zur Programmierung aus.

Verweise[Bearbeiten]