STM8: Unterschied zwischen den Versionen
Aus der Mikrocontroller.net Artikelsammlung, mit Beiträgen verschiedener Autoren (siehe Versionsgeschichte)
K (→Weblinks: Typo) |
|||
(26 dazwischenliegende Versionen von 15 Benutzern werden nicht angezeigt) | |||
Zeile 4: | Zeile 4: | ||
* '''Architektur''': Akkumulatorbasierte, modifizierte Harvard-Architektur mit gemeinsamen Adressraum | * '''Architektur''': Akkumulatorbasierte, modifizierte Harvard-Architektur mit gemeinsamen Adressraum | ||
* '''Busbreite''': Datenbus 32 Bit, Adressbus 24 Bit | * '''Busbreite''': Datenbus Flash 32 Bit / RAM,EEPROM 8 Bit, Adressbus 24 Bit | ||
* '''Hauptspeicher''': 512 Bytes bis 6 kBytes SRAM | * '''Hauptspeicher''': 512 Bytes bis 6 kBytes SRAM | ||
* '''Programmspeicher''': 4 bis 128 kBytes Flash | * '''Programmspeicher''': 4 bis 128 kBytes Flash | ||
* '''EEPROM''': | * '''EEPROM''': 128 Bytes bis 2 kBytes | ||
* '''Spannungsversorgung''': 1, | * '''Spannungsversorgung''': 1,65 bis 3V (STM8L) bzw. 2,95 bis 5,5V | ||
* '''Taktfrequenz''': bis 24 MHz | * '''Taktfrequenz''': bis 16 MHz ohne Wartezyklus (intern) bzw. bis 24 MHz mit Wartezyklus (externer Quartz) | ||
* '''Bauformen''': SDIP, SOIC, TSSOP, LQFP, QFN, UQFPN, WLCSP, Unsawn Wafer. | * '''Bauformen''': SDIP, SOIC, TSSOP, LQFP, QFN, UQFPN, WLCSP, Unsawn Wafer. | ||
* '''Pins''': | * '''Pins''': 8 bis 80 | ||
===Familien=== | ===Familien=== | ||
Zeile 18: | Zeile 18: | ||
* '''STM8L''': Low-Power-Version | * '''STM8L''': Low-Power-Version | ||
* '''STM8A''': Automotive Grade | * '''STM8A''': Automotive Grade | ||
* '''STM8T''': Touch-Sensing | |||
===Register=== | ===Register=== | ||
* '''Akkumulator (A)''': 8 Bit, Allgemeines Arbeitsregister für logische und mathematische Operationen. | * '''Akkumulator (A)''': 8 Bit, Allgemeines Arbeitsregister für logische und mathematische Operationen. | ||
* '''X Indexregister (X)''': 16 Bit, z. | * '''X Indexregister (X)''': 16 Bit, z.B. nutzbar als Speicheroffset oder für 16 Bit Arihmetik. Enthält bei 16/8- und bei 16/16-Division den Dividenden. | ||
* '''Y Indexregister (Y)''': 16 Bit, nutzbar wie X-Indexregister. Divisor bei 16/16-Division. | * '''Y Indexregister (Y)''': 16 Bit, nutzbar wie X-Indexregister. Divisor bei 16/16-Division. | ||
* '''Program Counter (PC)''': 24 Bit, enthält Adresse des nächsten auszuführenden Befehls. | * '''Program Counter (PC)''': 24 Bit, enthält Adresse des nächsten auszuführenden Befehls. | ||
Zeile 47: | Zeile 48: | ||
* '''UID''': 96-bittige, eindeutige Identifikationsnummer | * '''UID''': 96-bittige, eindeutige Identifikationsnummer | ||
* '''SWIM''': Single-Wire Interface Module, erlaubt Programmierung über Eindraht-Schnittstelle. | * '''SWIM''': Single-Wire Interface Module, erlaubt Programmierung über Eindraht-Schnittstelle. | ||
=== Evaluation-Board === | |||
* [http://www.ST.com/stm8l-discovery STM8L-Discovery] mit kleiner LCD-Anzeige | |||
* [https://www.aliexpress.com/wholesale?catId=0&SearchText=STM8S103F3P6 STM8S103F3P6 Breakout Boards] aus China (ca. 0.60 EUR / Stk ), ST-Link wird benötigt (oder alternativ ein [[ESP8266]] mit [https://github.com/rumpeltux/esp-stlink esp-stlink firmware]) | |||
===Weblinks=== | ===Weblinks=== | ||
* [http://www.st.com/ | * [http://www.st.com/st-web-ui/active/en/catalog/mmc/FM141/SC1244 STM8-Familie auf der ST-Website] | ||
* [http://www.st.com/ | * [http://www.emcu.it/STM8.html Schnellübersicht über STM8-Familie und Starter Kits] | ||
* [http://www.st.com/internet/evalboard/product/247087.jsp Evaluation board STM8S-Discovery auf der ST-Website] | |||
* [http://www.mikrocontroller.net/articles/STM8S-Discovery Wiki-Artikel zum STM8S-Discovery auf mikrocontroller.net] | * [http://www.mikrocontroller.net/articles/STM8S-Discovery Wiki-Artikel zum STM8S-Discovery auf mikrocontroller.net] | ||
* [http://www.st.com/internet/evalboard/product/250636.jsp Evaluation board STM8L-Discovery auf der ST-Website | * [http://www.st.com/internet/evalboard/product/250636.jsp Evaluation board STM8L-Discovery (STM8L152C6) auf der ST-Website] | ||
* [https://www.st.com/resource/en/user_manual/cd00278045.pdf UM0970 User Manual zum STM8L-Discovery] | |||
* [http://www.st.com/internet/com/TECHNICAL_RESOURCES/TECHNICAL_LITERATURE/DATA_BRIEF/CD00278044.pdf Evaluation board STM8L-Discovery (STM8L152C6) Device description, pdf] | |||
* [http://www.st.com/internet/com/TECHNICAL_RESOURCES/TECHNICAL_LITERATURE/DATASHEET/CD00240181.pdf STM8L 151/152 x4/x6 Datasheet] | |||
* [http://fun4diy.com/stm8cc.htm C Compiler für STM8S Microcontroller (Freeware)] | |||
* [http://sdcc.sourceforge.net/ SDCC, ein freier C-Compiler mit STM8-backend] | |||
* [http://www.colecovision.eu/stm8/compilers.shtml Vergleich der 4 bedeutendsten Compiler für den STM8] | |||
* [https://github.com/tenbaht/sduino Sduino, Arduino-ähnliche Programmierumgebung mit SDCC-Toolkette] | |||
* [https://github.com/TG9541/stm8ef STM8EF, STM8 Forth mit SDCC-Toolkette] | |||
[[Kategorie:Mikrocontroller]] | [[Kategorie:Mikrocontroller]] |
Aktuelle Version vom 27. März 2019, 23:19 Uhr
Beim STM8 handelt es sich um die neueste 8-Bit-Controllerlinie von ST Microelectronics. Sie zeichnet sich durch schnelle Ausführungszeiten (durchschnittlich 1,6 Takte per Instruktion), 16 MByte linearem Adressraum, umfangreichen Peripherieoptionen (wie integriertem CAN-Controller) und integriertem echtem EEPROM aus.
Übersicht
- Architektur: Akkumulatorbasierte, modifizierte Harvard-Architektur mit gemeinsamen Adressraum
- Busbreite: Datenbus Flash 32 Bit / RAM,EEPROM 8 Bit, Adressbus 24 Bit
- Hauptspeicher: 512 Bytes bis 6 kBytes SRAM
- Programmspeicher: 4 bis 128 kBytes Flash
- EEPROM: 128 Bytes bis 2 kBytes
- Spannungsversorgung: 1,65 bis 3V (STM8L) bzw. 2,95 bis 5,5V
- Taktfrequenz: bis 16 MHz ohne Wartezyklus (intern) bzw. bis 24 MHz mit Wartezyklus (externer Quartz)
- Bauformen: SDIP, SOIC, TSSOP, LQFP, QFN, UQFPN, WLCSP, Unsawn Wafer.
- Pins: 8 bis 80
Familien
- STM8S: Standardversion
- STM8L: Low-Power-Version
- STM8A: Automotive Grade
- STM8T: Touch-Sensing
Register
- Akkumulator (A): 8 Bit, Allgemeines Arbeitsregister für logische und mathematische Operationen.
- X Indexregister (X): 16 Bit, z.B. nutzbar als Speicheroffset oder für 16 Bit Arihmetik. Enthält bei 16/8- und bei 16/16-Division den Dividenden.
- Y Indexregister (Y): 16 Bit, nutzbar wie X-Indexregister. Divisor bei 16/16-Division.
- Program Counter (PC): 24 Bit, enthält Adresse des nächsten auszuführenden Befehls.
- Stack Pointer (SP): 16 Bit, zeigt auf nächsten freien Speicherplatz im Kellerspeicher.
- Condition Code (CC): 8 Bit, enthält die üblichen Flags (Carry, Zero, etc.) und die Interrupt Level Flags.
Peripherie
- Clock System: Takterzeugung aus externem Quarz oder Oszillator, interner 16MHz/128kHz-RC-Oszillator.
- Power Management: Warte-Modus, Aktiver Wartemodus mit aktiviertem internem Spannungsregler, Wartemodus mit deaktiviertem Regler, Halt-Modus.
- Watchdog: Konfigurierbarer "Windowed-Watchdog" und vom Taktsystem unabhängiger "Independent Watchdog".
- Timer: Flexible Timeroptionen: 8 Bit mit Prescaler, 16 Bit Capture/Compare, PWM, Komplementärausgabe,
- ADC: Je nach Familie 10 (STM8S, STM8A) oder 12 (STM8L) Bit Auflösung, SAR, bis zu 25 Kanäle.
- DAC: 12 Bit Auflösung, mit Output Buffer.
- Comparator: Rail-to-Rail, interne oder externe Referenzspannung möglich.
- I2C: Adressierbare serielle Schnittstelle mit bis zu 400kHz Geschwindigkeit, Master-, Slave- und Multimaster-fähig, unterstützt PMBus und SMBus, Hardware-CRC vorhanden.
- SPI: Serielles Peripherie-Interface, bis zu 10 MBit/s, Polarität und Phase frei einstellbar, Hardware-CRC vorhanden.
- U(S)ART: Full featured UART, unterstützt zusätzlich LIN 2.1 als Master und Slave, IrDA-Emulation und Smartcard-Modus
- High Current Ports: Belastbarkeit bis zu 20mA/Pin
- DMA: Erlaubt UART, SPI, I2C, ADC, DAC und Timern direkten Speicherzugriff
- CAN: Geschwindigkeit bis zu 1 MBit/s, unterstützt beCAN 2.0B
- Beeper: Ausgabe eines Buzzer-Signals mit einstellbarer Frequenz von 1, 2 oder 4 kHz.
- LCD: Controller für LCDs mit einer Größe von bis zu 4x28 Pixel, Integrierter Stepup-Converter für Kontrastspannung.
- UID: 96-bittige, eindeutige Identifikationsnummer
- SWIM: Single-Wire Interface Module, erlaubt Programmierung über Eindraht-Schnittstelle.
Evaluation-Board
- STM8L-Discovery mit kleiner LCD-Anzeige
- STM8S103F3P6 Breakout Boards aus China (ca. 0.60 EUR / Stk ), ST-Link wird benötigt (oder alternativ ein ESP8266 mit esp-stlink firmware)
Weblinks
- STM8-Familie auf der ST-Website
- Schnellübersicht über STM8-Familie und Starter Kits
- Evaluation board STM8S-Discovery auf der ST-Website
- Wiki-Artikel zum STM8S-Discovery auf mikrocontroller.net
- Evaluation board STM8L-Discovery (STM8L152C6) auf der ST-Website
- UM0970 User Manual zum STM8L-Discovery
- Evaluation board STM8L-Discovery (STM8L152C6) Device description, pdf
- STM8L 151/152 x4/x6 Datasheet
- C Compiler für STM8S Microcontroller (Freeware)
- SDCC, ein freier C-Compiler mit STM8-backend
- Vergleich der 4 bedeutendsten Compiler für den STM8
- Sduino, Arduino-ähnliche Programmierumgebung mit SDCC-Toolkette
- STM8EF, STM8 Forth mit SDCC-Toolkette