ST7
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.