ST7

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

Bei der Familie ST7 handelt es sich um eine 8-Bit-Controllerlinie von ST Microelectronics. Die Serie ist besonders im industriellen Umfeld und in den Bereichen Radio und TV beliebt. Es handelt sich dabei um eine typische Akkumulator-orientierte Architektur mit einem kleinen aber effektiven Befehlssatz. Ältere Semester erwartet ein modernisiertes 6502-Pendant mit anderen Befehlsbezeichnungen, aber mit Schmankerln wie RSP oder JRF.

Features

  • Architektur: Akkumulatorarchitektur, Gemeinsamer Code/Datenadressraum (Von-Neumann)
  • Busbreite: Datenbus 8 Bit, Adressbus 16 Bit
  • Hauptspeicher: 128 bis 2048 Bytes SRAM
  • Programmspeicher: 1 bis 60 kBytes Flash
  • Spannungsversorgung: 2,4 bis 5,5V
  • Taktfrequenz: bis 16MHz
  • Bauformen: DIP, SDIP, SOIC, LQFP, TQFP, QFN
  • Pins: 8 bis 80

Peripherie

  • Low Voltage Detector (LVD): Löst bei Unterschreitung einer Versorgungsspannungs-Schwelle einen Reset aus.
  • Multi-Oscillator (MO): Erlaubt Taktversorgung durch externen Oszillator, Quarz, externen oder internen RC-Oszillator.
  • Clock Security System (CSS): Filter Taktspitzen und erlaubt die Ausführung von Operationen bei Ausfall des Taktsystems.
  • Watchdog Timer (WDT): Einstellbarer Timer, der einen Reset auslöst, falls er nicht zeitgerecht zurückgesetzt wird.
  • Timer: 16 Bit breit, mit Möglichkeit der PWM-Ausgabe.
  • SPI: Serielle Periphere Schnittstelle, mit Unterstützung aller vier Modi. (CPOL und CPHA frei einstellbar).
  • I²C: Adressierbare serielle Schnittstelle, 400kHz, Master und Slave, Adressen frei programmierbar. Multiple Adressen möglich.
  • ADC: Analog-Digital-Konverter, je nach Ausführung 8 oder 10 Bit Auflösung, mehrere Kanäle, schnelles SAR.
  • USB: Low-, Full- und High-Speed erhältlich.
  • DiSEqC: DiSEqC-Decoder zur Steuerung von TV-Satellitenausrüstung.
  • CAN: Aktives und passives CAN2.0B
  • Motor Control (MC): 3-phasige PWM, Back-EMF-Erkennung und Ansteuereinheit für sensorlose BLDCs.
  • SCR: Version zur Verwendung in Lesegeräten für intelligente Prozessorkarten (Smartcards).

Interrupts

16 Vektoren, manche Modelle sind in 3 Ebenen priorisierbar.

  • Externe Interrupts: Auf steigende oder fallende Flanke eines interruptfähigen Pins.
  • Periphere Interrupts: Timer, CSS, SPI, I²C, etc.
  • Softwareinterrupts.

Power Saving Modes

  • Normaler Modus (RUN): Energiesparfunktion deaktiviert, CPU läuft mit vollem Systemtakt (=f_osc/2).
  • Langsamer Modus (SLOW): Erlaubt Division des Systemtakts durch 2,4,8 oder 16.
  • Warte-Modus (WAIT): Peripherie bleibt aktiv, CPU wartet auf Interrupt oder Reset.
  • Halte-Modus (HALT): Peripherie und Oszillator Deaktiviert, CPU wartet auf Interrupt oder Reset.

Input/Output

Die Ein- und Ausgabpins der Reihe ST7 können einzeln als Push-Pull- oder Open-Drain-Pins 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 Data Direction Register (DDR) und Option Register (OR). Das DDR entscheidet dabei darüber, ob es sich um einen Ein- oder Ausgang handelt, das OR dient zur Konfiguration von Open Drain, Push-Pull, Pull-Ups, etc.

Programmierung

Die Programmierung der Bausteine erfolgt mittels des offenen ST-Protokolls In-Circuit Communication (ICC). Dazu gibt es von Raisonance das Programmier- und Debuggerät RLINK, welches via USB an den Computer angebunden wird. Die Verbindung zum Baustein erfolgt dabei über mindestens vier Signale: Reset, GND, ICCCLK und ICCDATA. Darüber hinaus kann RLINK dem Controller auch Versorgungsspannung und Oszillatortakt bereitstellen. RLINK unterstützt die Programmierung aller ICC-Kompatiblen Bausteine, das sind alle ST7-Familienmitglieder (auch ST7FLITE, ST7FOX, etc.) außer:

  • ST7xCxxx - Diese müssen über das ältere ICP-Verfahren programmiert werden.
  • ST7xTxxx - Dies sind die OTP-Typen.
  • ST7xExxx - Diese Typen besitzen einen UV-löschbaren EPROM.

Verweise