24.10.2014 Views

Семейство STM32

Семейство STM32

Семейство STM32

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

<strong>Семейство</strong> <strong>STM32</strong><br />

Июнь 2010, Москва<br />

Попов Роман<br />

r.popov@compel.ru<br />

Инженер по МК<br />

STMicroelectronics<br />

КОМПЭЛ<br />

www.compel.ru


Ядра Cortex - M<br />

‣ Больше нет традиционной классификации<br />

8/16/32 решений<br />

Похожая архитектура для всех приложений<br />

Оптимизация для ультранизкого потребления и простота<br />

использования<br />

Cortex – M0 Cortex – M3 Cortex – M4<br />

8/16 – битные<br />

приложения<br />

16/32 – битные<br />

приложения<br />

32 – битные/DSP<br />

приложения<br />

Программная и инструментальная<br />

совместимость<br />

2


Программная совместимость Cortex- M<br />

3


<strong>Семейство</strong> МК <strong>STM32</strong><br />

<strong>STM32</strong>L<br />

Ultra Low Power Line<br />

<strong>STM32</strong><br />

Cortex-M3<br />

<strong>STM32</strong>W<br />

ZigBee<br />

<strong>STM32</strong>L151<br />

<strong>STM32</strong>L152<br />

<strong>STM32</strong>W108<br />

<strong>STM32</strong>F1x<br />

General Purpose<br />

<strong>STM32</strong>F2x<br />

General Purpose<br />

Connectivity Line<br />

(<strong>STM32</strong>F105/F107)<br />

Performance Line<br />

(<strong>STM32</strong>F103)<br />

USB Access Line<br />

(<strong>STM32</strong>F102)<br />

Value Line<br />

(<strong>STM32</strong>F100)<br />

Access Line<br />

(<strong>STM32</strong>F101)<br />

Connectivity Line<br />

(<strong>STM32</strong>F207/F217)<br />

Connectivity Line<br />

(<strong>STM32</strong>F205/F215)<br />

4


<strong>Семейство</strong> МК <strong>STM32</strong><br />

<strong>STM32</strong>F07/<strong>STM32</strong>F217<br />

Cortex-M3<br />

120MHz<br />

<strong>STM32</strong>F105/<strong>STM32</strong>F107 «Connectiviti Line»<br />

Up to 64KB<br />

SRAM<br />

<strong>STM32</strong>F103 «Performance Line»<br />

Up to 96KB<br />

SRAM<br />

<strong>STM32</strong>F102 «USB Access Line»<br />

Up to 16КB<br />

SRAM<br />

<strong>STM32</strong>F101 «Access Line»<br />

Up to 8 KB<br />

SRAM<br />

<strong>STM32</strong>F100 «Value Line»<br />

Up to 32KB<br />

SRAM<br />

Up to 256KB<br />

FLASH<br />

Up to 1MB<br />

FLASH<br />

Up to 128KB<br />

FLASH<br />

Up to 1МB<br />

FLASH<br />

Up to 512KB<br />

FLASH<br />

<strong>STM32</strong>L152 «Ultra Low Power Line»<br />

Cortex-M3<br />

32MHz<br />

<strong>STM32</strong>L151 «Ultra Low Power Line»<br />

Cortex-M3<br />

32MHz<br />

up to 128 KB<br />

SRAM<br />

<strong>STM32</strong>F05/<strong>STM32</strong>F215<br />

Cortex-M3<br />

120MHz<br />

Cortex-M3<br />

72MHz<br />

Cortex-M3<br />

72MHz<br />

Cortex-M3<br />

48MHz<br />

Cortex-M3<br />

36MHz<br />

Cortex-M3<br />

24MHz<br />

Up to 128KB<br />

FLASH<br />

Up to 16KB<br />

SRAM<br />

<strong>STM32</strong>W108 «RF(ZigBee) Line»<br />

Cortex-M3<br />

24МHz<br />

Up to 128KB<br />

SRAM<br />

Up to 128KB<br />

FLASH<br />

8KB<br />

SRAM<br />

up to 1MB<br />

FLASH<br />

Up to 1MB<br />

FLASH<br />

Up to 16KB<br />

SRAM<br />

128KB<br />

FLASH<br />

3хADC 12<br />

bit (0,5us)<br />

3хADC 12 bit<br />

(0,5us)<br />

2xADC<br />

(1 us)<br />

2/3x12 DAC<br />

(1 us)<br />

ADC 12 bit<br />

(1 us)<br />

Reset<br />

BOR<br />

PVD<br />

ADC 12 bit<br />

(1 us)<br />

ADC 12 bit<br />

(1.2 us)<br />

Reset<br />

BOR<br />

PVD<br />

ADC<br />

12 bit<br />

2хDAC<br />

12 bit<br />

USB FS<br />

EEPROM<br />

4KB<br />

2хDAC<br />

12 bit<br />

2хDAC<br />

12 bit<br />

2хDAC<br />

12 bit<br />

EEPROM<br />

4KB<br />

2хDAC<br />

12 bit<br />

2хDAC<br />

12 bit<br />

2 timers<br />

motor control<br />

1 timer motor<br />

control<br />

1 timer<br />

motor control<br />

FSMC<br />

RTC<br />

32KHz osc<br />

USCI<br />

(UART/SPI/TWI)<br />

2 timers motor<br />

control<br />

1 timer motor<br />

control<br />

RTC<br />

32KHz osc<br />

AES128<br />

USB 2.0<br />

OTG FS<br />

MSI<br />

64KHz-<br />

4MHz<br />

USB 2.0<br />

OTG FS<br />

USB<br />

FS<br />

MSI<br />

64KHz-<br />

4MHz<br />

USB 2.0<br />

OTG FS/HS<br />

USB 2.0<br />

OTG FS/HS<br />

2xCAN<br />

2.0B<br />

CAN<br />

2.0B<br />

CEC(HDMI)<br />

DMA<br />

DMA<br />

2xCAN<br />

2.0B<br />

2xI2S audio<br />

class<br />

2xI2C SDIO FSMC<br />

ADC 12 bit 1us,<br />

24 channels<br />

IEEE 802.15.14 radio<br />

RF and Baseband<br />

2xCAN<br />

2.0B<br />

FSMC<br />

ADC 12 bit 1us,<br />

24 channels<br />

FSMC<br />

2х DAC<br />

12 bit<br />

Random<br />

Generator<br />

Ethernet<br />

IEEE 1588<br />

Ethernet IEEE 1588<br />

(Only in <strong>STM32</strong>F107)<br />

2х DAC<br />

12 bit<br />

MPU<br />

ETM<br />

MPU<br />

ETM<br />

USB FS<br />

Camera<br />

interface<br />

Crypto/Hash<br />

processor<br />

USB FS<br />

Random<br />

Generator<br />

LCD<br />

8x40<br />

Crypto/Hash<br />

processor<br />

5


Линейка МК <strong>STM32</strong>F1x<br />

Многофункциональная<br />

периферия:<br />

До 5 USART, 3xSPI, 2x I2C<br />

2 канала 12 – бит ЦАП**<br />

Многофункц 16р таймеры<br />

Внешние ист. тактирования<br />

4-16МГц/4–24МГц/3-25МГц**<br />

Connectivity Line <strong>STM32</strong>F105/<strong>STM32</strong>F107<br />

CPU<br />

72 МГц<br />

до 64 КБ<br />

SRAM<br />

до 256 КБ<br />

FLASH<br />

Performance Line <strong>STM32</strong>F103<br />

CPU<br />

72 МГц<br />

до 96 КБ<br />

SRAM<br />

до 1 MБ<br />

FLASH<br />

2x12 – бит<br />

АЦП<br />

(1 мкс)<br />

2/3x12 –<br />

бит АЦП<br />

(1 мкс)<br />

3 фаз.<br />

Таймер<br />

УП<br />

3 фаз.<br />

Таймер<br />

УП<br />

USB 2.0<br />

OTG FS<br />

USB<br />

FS<br />

2xCAN<br />

2.0B<br />

CAN<br />

2.0B<br />

2xI2S<br />

audio<br />

class<br />

2xI2C** SDIO**<br />

Ethernet*<br />

IEEE 1588<br />

FSMC<br />

Встроенные RC генераторы<br />

8 МГц и 40 КГц<br />

RTC c отдельным питанием и<br />

внешним 32 КГц источником<br />

тактирования<br />

2 сторожевых таймера<br />

Встроенная схема сброса<br />

USB Access Line <strong>STM32</strong>F102<br />

CPU<br />

48 МГц<br />

CPU<br />

36 МГц<br />

до 16 КБ<br />

SRAM<br />

до 80 КБ<br />

SRAM<br />

до 128 КБ<br />

FLASH<br />

Access Line <strong>STM32</strong>F101<br />

до 1МБ<br />

FLASH<br />

12 – бит<br />

АЦП<br />

(1 мкс)<br />

12 – бит<br />

АЦП<br />

(1 мкс)<br />

USB FS<br />

FSMC<br />

До 12 каналов DMA<br />

Value Line <strong>STM32</strong>F100<br />

2 – 3.6 В напряжение питания<br />

5В толерантность портов в/в<br />

От – 40 до +85°С или до<br />

+105°С темпер. диапазон<br />

CPU<br />

24 МГц<br />

до 8 КБ<br />

SRAM<br />

до 128 КБ<br />

FLASH<br />

12 – бит<br />

АЦП<br />

(1.2 мкс)<br />

3 фаз.<br />

Таймер<br />

УП<br />

CEC(HDMI)<br />

* только в <strong>STM32</strong>F107<br />

** не во всех МК, более подробно в документации<br />

6


Линейка МК <strong>STM32</strong>F<br />

FLASH<br />

1 МБ<br />

768 КБ<br />

512 КБ<br />

384 КБ<br />

256 КБ<br />

128 КБ<br />

64 КБ<br />

32 КБ<br />

16 КБ<br />

Pin-to-Pin<br />

<strong>STM32</strong>F103TB(20КБ)<br />

<strong>STM32</strong>F101TB(16КБ)<br />

<strong>STM32</strong>F103T8 (20КБ)<br />

<strong>STM32</strong>F101T8 (10КБ)<br />

<strong>STM32</strong>F103T6 (10КБ)<br />

<strong>STM32</strong>F101T6 (6КБ)<br />

<strong>STM32</strong>F103T4 (6КБ)<br />

<strong>STM32</strong>F101T4 (4КБ)<br />

<strong>STM32</strong>F103CB(20КБ)<br />

<strong>STM32</strong>F102CB(16КБ)<br />

<strong>STM32</strong>F101CB(16КБ)<br />

<strong>STM32</strong>F100CB(8КБ)<br />

<strong>STM32</strong>F103C8(20КБ)<br />

<strong>STM32</strong>F102C8(10КБ)<br />

<strong>STM32</strong>F101C8(10КБ)<br />

<strong>STM32</strong>F100C8(8КБ)<br />

<strong>STM32</strong>F103C6(10КБ)<br />

<strong>STM32</strong>F102C6(6КБ)<br />

<strong>STM32</strong>F101C6(6КБ)<br />

<strong>STM32</strong>F100C6(4КБ)<br />

<strong>STM32</strong>F103C4(6КБ)<br />

<strong>STM32</strong>F102C4(4КБ)<br />

<strong>STM32</strong>F101C4(4КБ)<br />

<strong>STM32</strong>F100C4(4КБ)<br />

<strong>STM32</strong>F103RG(96КБ)<br />

<strong>STM32</strong>F101RG(80КБ)<br />

<strong>STM32</strong>F103RF(96КБ)<br />

<strong>STM32</strong>F101RF(80КБ)<br />

<strong>STM32</strong>F103RE(64КБ)<br />

<strong>STM32</strong>F101RE(48КБ)<br />

<strong>STM32</strong>F103RD(64КБ)<br />

<strong>STM32</strong>F101RD(48КБ)<br />

<strong>STM32</strong>F107RC(64КБ)<br />

<strong>STM32</strong>F105RC(64КБ)<br />

<strong>STM32</strong>F103RC(48КБ)<br />

<strong>STM32</strong>F101RC(32КБ)<br />

<strong>STM32</strong>F107RB(48КБ)<br />

<strong>STM32</strong>F105RB(32КБ)<br />

<strong>STM32</strong>F103RB(20КБ)<br />

<strong>STM32</strong>F102RB(16КБ)<br />

<strong>STM32</strong>F101RB(16КБ)<br />

<strong>STM32</strong>F100RB(8КБ)<br />

<strong>STM32</strong>F105R8(20КБ)<br />

<strong>STM32</strong>F103R8(20КБ)<br />

<strong>STM32</strong>F102R8(10КБ)<br />

<strong>STM32</strong>F101R8(10КБ)<br />

<strong>STM32</strong>F100R8(8КБ)<br />

<strong>STM32</strong>F103R6(10КБ)<br />

<strong>STM32</strong>F102R6(6КБ)<br />

<strong>STM32</strong>F101R6(6КБ)<br />

<strong>STM32</strong>F100R6(4КБ)<br />

<strong>STM32</strong>F103R4(16КБ)<br />

<strong>STM32</strong>F102R4(4КБ)<br />

<strong>STM32</strong>F101R4(16КБ)<br />

<strong>STM32</strong>F100R4(4КБ)<br />

<strong>STM32</strong>F103VG(96КБ)<br />

<strong>STM32</strong>F101VG(80КБ)<br />

<strong>STM32</strong>F103VF(96КБ)<br />

<strong>STM32</strong>F101VF(80КБ)<br />

<strong>STM32</strong>F103VE(64КБ)<br />

<strong>STM32</strong>F101VE(48КБ)<br />

<strong>STM32</strong>F103VD(64КБ)<br />

<strong>STM32</strong>F101VD(48КБ)<br />

<strong>STM32</strong>F107VC(64КБ)<br />

<strong>STM32</strong>F105VC(64КБ)<br />

<strong>STM32</strong>F103VC(48КБ)<br />

<strong>STM32</strong>F101VC(32КБ)<br />

<strong>STM32</strong>F107VB(48КБ)<br />

<strong>STM32</strong>F105VB(32КБ)<br />

<strong>STM32</strong>F103VB(20КБ)<br />

<strong>STM32</strong>F101VB(16КБ)<br />

<strong>STM32</strong>F100VB(8КБ)<br />

<strong>STM32</strong>F105V8(20КБ)<br />

<strong>STM32</strong>F103V8(20КБ)<br />

<strong>STM32</strong>F101V8(10КБ)<br />

<strong>STM32</strong>F100V8(10КБ)<br />

<strong>STM32</strong>F103ZG(90КБ)<br />

<strong>STM32</strong>F101ZG(80КБ)<br />

<strong>STM32</strong>F103ZF(96КБ)<br />

<strong>STM32</strong>F101ZF(80КБ)<br />

<strong>STM32</strong>F103ZE(64КБ)<br />

<strong>STM32</strong>F101ZE(48КБ)<br />

<strong>STM32</strong>F103ZD(64КБ)<br />

<strong>STM32</strong>F101ZD(48КБ)<br />

<strong>STM32</strong>F103ZC(48КБ)<br />

<strong>STM32</strong>F101ZC(32КБ)<br />

Connectivity Line<br />

Performance Line<br />

USB Access Line<br />

Access Line<br />

Value Line<br />

Количество<br />

выводов<br />

36 выв<br />

QFN(6x6мм)<br />

48 выв 64 выв 100 выв 144 выв<br />

LQFP(7x7мм)<br />

LQFP(10x10мм)<br />

LQFP(14x14мм)<br />

LQFP(20x20мм)<br />

BGA(5x5мм)<br />

BGA(10x10мм)<br />

BGA(10x10 мм)<br />

WLCSP<br />

7


Самый дешевый Cortex – M3<br />

<strong>STM32</strong> Value Line<br />

‣ Высокопроизводительное ядро<br />

ARM® Cortex- M3 нулевым WS и 1.25<br />

DMIPS/MГц, до 30 DMIPS при 24 MГц(макс)<br />

‣ Необходимые свойства для<br />

потребительского и<br />

индустриального оборудования<br />

Семь ШИМ 16 – бит таймеров, включая таймер<br />

управления двигателями,<br />

Быстрый 1.2 мкс 12-бит АЦП, два 12-бит ЦАП<br />

Аппаратный модуль Consumer Electronic<br />

Control (CEC)<br />

FSMC контроллер<br />

‣ От 16КБ до 512КБ<br />

‣ Корпуса от 48 до 100 ножек(LQFP, BGA)<br />

‣ Цена $0.99 самого доступного <strong>STM32</strong> VL


Портфолио <strong>STM32</strong> Value line<br />

Flash<br />

(байты)<br />

512КБ<br />

<strong>STM32</strong>F100RE <strong>STM32</strong>F100VE <strong>STM32</strong>F100ZE<br />

384KБ<br />

<strong>STM32</strong>F100RD<br />

<strong>STM32</strong>F100VD<br />

<strong>STM32</strong>F100ZD<br />

256KБ<br />

<strong>STM32</strong>F100RC<br />

<strong>STM32</strong>F100VC<br />

<strong>STM32</strong>F100ZC<br />

128KБ<br />

<strong>STM32</strong>F100CB<br />

<strong>STM32</strong>F100RB<br />

<strong>STM32</strong>F100VB<br />

64KБ<br />

<strong>STM32</strong>F100C8<br />

<strong>STM32</strong>F100R8<br />

<strong>STM32</strong>F100V8<br />

32KБ<br />

<strong>STM32</strong>F100C6<br />

<strong>STM32</strong>F100R6<br />

16KБ<br />

<strong>STM32</strong>F100C4<br />

<strong>STM32</strong>F100R4<br />

48 pins<br />

LQFP<br />

64 pins<br />

LQFP/BG<br />

A<br />

100 pins<br />

LQFP<br />

144 pins<br />

LQFP<br />

Packages


<strong>STM32</strong> для RF приложений<br />

WWW.ST.COM/<strong>STM32</strong>W


Беспроводная система на кристалле<br />

<strong>STM32</strong>W<br />

ARM Peripheral Bus<br />

ARM Lite Hi-Speed Bus<br />

Matrix / Arbiter (max 24MHz)<br />

(max 24MHz)<br />

Flash I/F<br />

‣ 2,4 ГГц IEEE 802.15.4 MAC<br />

(-100dBm, 7dBm)<br />

‣ Регулировка мощности<br />

Cortex-M3<br />

CPU<br />

24 MHz<br />

128KB<br />

Flash<br />

Memory<br />

Power Supply<br />

Reg 1.8V<br />

POR/PDR/PVD<br />

‣ 24МГц(33 DMIPS) 32 – бит ядро<br />

8 KB SRAM<br />

XTAL oscillators<br />

32KH + 4~16MHz<br />

‣ 128 Кб FLASH, 8 Кб SRAM<br />

‣ АЦП, ЦАП, RTC, SPI, UART, TWI<br />

JTAG/SW Debug<br />

ETM<br />

Nested vect IT Ctrl<br />

Clock Control<br />

Int. RC<br />

oscillators<br />

40KHz + 8MHz<br />

PLL Block<br />

‣ 2.1 – 3.6 В<br />

1 x Systic Timer<br />

RTC / AWU<br />

‣ Энергопотребление менее<br />

1мкА в спящем режиме с сохр.<br />

RAM<br />

DMA<br />

7 Channels<br />

Bridge<br />

ARM Peripheral Bus<br />

Bridge<br />

(max 24MHz)<br />

‣ Библиотеки EmberZnet PRO,<br />

RF4CE, IEEE 802.15.4 MAC<br />

‣ Аппаратное ускорение AES128<br />

‣ VFQFPN40, VFQFPN48<br />

‣ Температурный диапазон от<br />

- 40 до +105°C<br />

Encryption<br />

accelerator<br />

24 I/Os<br />

USCI<br />

(UART/SPI/TWI)<br />

3 x 16-bit Timer<br />

2x Watchdog<br />

(independent &<br />

window)<br />

2x DAC<br />

1 x 12-bit ADC<br />

16 channels<br />

Sigma - Delta<br />

IEEE 802.15.14<br />

radio<br />

RF and Baseband<br />

11


Стандартная<br />

библиотека<br />

Стандартная<br />

библиотека<br />

Стандартная<br />

библиотека<br />

Бесплатные библиотеки для <strong>STM32</strong>W<br />

Клиентское<br />

приложение<br />

Клиентское<br />

приложение<br />

Клиентское<br />

приложение<br />

Клиентский<br />

код<br />

Сетевой уровень<br />

(опционально)<br />

Простейший<br />

15.4 MAC<br />

Сетевой уровень<br />

RF4CE и CERC<br />

профиль<br />

Простейший<br />

15.4 MAC<br />

ZigBee PRO стек<br />

Бесплатные<br />

библиотеки от ST<br />

<strong>STM32</strong>W<br />

<strong>STM32</strong>W<br />

<strong>STM32</strong>W<br />

Аппаратные<br />

средства<br />

Простое MAC<br />

приложение<br />

RF4CE приложение<br />

ZigBee приложение<br />

12


<strong>STM32</strong> с ультранизким энергопотреблением<br />

WWW.ST.COM/<strong>STM32</strong>L<br />

13


<strong>Семейство</strong> <strong>STM32</strong>L<br />

‣ 130 нм технология с<br />

ультранизкими<br />

токами утечки от<br />

STMicroelectronics<br />

‣ Общая технология,<br />

архитектура и<br />

периферия<br />

‣ Pin – to – Pin<br />

совместимость с<br />

<strong>STM32</strong>F1xx<br />

15


ARM Peripheral Bus<br />

ARM ® Lite Hi-Speed Bus<br />

Matrix / Arbiter (max 32MHz)<br />

(max 32MHz)<br />

Flash I/F<br />

Блок – схема <strong>STM32</strong>L15x<br />

• 32-бит ядро ARM Cortex-M3<br />

• Рабочее напряжение:<br />

– VDD = 1.8 В - 3.6(BOR активен)<br />

– VDD = 1.65 V to 3.6 V(BOR отключен)<br />

• Cистема сброса(POR/PDR + BOR + PVD)<br />

• Встроенная память:<br />

– FLASH: до 128 Кб<br />

– Data EEPROM: до 4Кб<br />

– SRAM: до 16 Кб<br />

• Модуль расчета CRC<br />

• 7 каналов DMA<br />

• Программно конфигурируемый встроенный<br />

стабилизатор напряжения<br />

• 7 Low Power Modes с Auto Wake-up<br />

• Низкопотребляющий RTC с 80 байтами регистрами<br />

резервирования<br />

• До 32 MHz (33.3 DMIPS) frequency managed &<br />

monitored by the Clock Control w/ Clock Security<br />

System<br />

– Internal multispeed low power RC, 64 kHz to 4.1 MHz<br />

with a consumption down to 1.5 μA<br />

• Rich set of peripherals & Ios<br />

– LCD 8 × 40 or 4 × 44 with step-up converter<br />

– 2 × 12-bit DACs with output buffers<br />

– 2 ultralow power comparators(Window mode and<br />

wakeup)<br />

– Dual Watchdog Architecture<br />

– 9 Timers w/ advanced control features (including<br />

Cortex SysTick)<br />

– 8 communications Interfaces<br />

– Up to 83 I/Os (100 pin package) w/ 16 external<br />

interrupts/event<br />

– 1x12-bits 1Msps ADC w/ up to 26 channels and<br />

Embedded temperature sensor w/ +/-1.5linearity<br />

with T°<br />

– Temperature range: –40 to 85 °C<br />

CORTEX TM -M3<br />

CPU<br />

32 MHz<br />

With MPU<br />

JTAG/SW Debug<br />

ETM<br />

Nested vect IT<br />

Ctrl<br />

1 x Systic Timer<br />

DMA<br />

7 Channels<br />

Temp Sensor<br />

1 x 12-bit ADC<br />

26 channels /<br />

1Msps<br />

Up to 16 Ext. ITs<br />

1 x SPI<br />

1 x USART/LIN<br />

Smartcard/IrDa<br />

Modem-Control<br />

Bridge<br />

Bridge<br />

64KB-128KB<br />

Flash Memory<br />

Data<br />

EEPROM 4KB<br />

Up to 16KB<br />

SRAM<br />

Reset Clock<br />

Control<br />

CRC<br />

37/51/80 I/Os<br />

ARM Peripheral Bus<br />

(max 32MHz)<br />

2 x Comparators<br />

2 x 12-bit DAC<br />

2 x Watchdog<br />

(ind & window)<br />

2 x 16-bit Basic<br />

Timer<br />

3 x 16-bit Timer<br />

3 x 16-bit Timer<br />

Power Supply<br />

Reg 1.8V/1.5V/1.2V<br />

POR/PDR/PVD/BOR<br />

XTAL oscillators<br />

32KHz + 1~24MHz<br />

Int. RC oscillators<br />

38KHz + 16MHz<br />

Int. RC 64K..4MHz<br />

PLL<br />

RTC / AWU + 80B<br />

Backup Regs<br />

USB 2.0 FS<br />

8x40<br />

Segment LCD<br />

2 x USART/LIN<br />

Smartcard / IrDa<br />

Modem Control<br />

1 x SPI<br />

2 x I 2 C<br />

16


Линейка продукции <strong>STM32</strong>L<br />

Общая периферия в<br />

STM8L и <strong>STM32</strong>L<br />

Многофункциональная<br />

периферия 3xUSART,<br />

2xSPI, 2xI2C<br />

До 8х16-бит таймеров<br />

<strong>STM32</strong>L152<br />

Cortex-M3<br />

32 МГц<br />

До 128КБ<br />

FLASH<br />

До 16КБ<br />

SRAM<br />

Reset<br />

BOR<br />

PVD<br />

Осн.ист<br />

1 - 24<br />

МГц<br />

EEPR<br />

OM<br />

4КБ<br />

RTC<br />

32КГц<br />

клок<br />

MSI<br />

64КГц-<br />

4МГц<br />

DMA<br />

АЦП 12бит<br />

1мкс, 24<br />

канала<br />

2х<br />

ЦАП<br />

12 бит<br />

LCD<br />

8x40<br />

MPU<br />

ETM<br />

USB<br />

FS<br />

Встроенные 16МГц и<br />

32КГц RC источники<br />

RTC<br />

2 Сторожевых таймера<br />

2 компаратора<br />

Схема сброса POR/PDR<br />

<strong>STM32</strong>L151<br />

Cortex-M3<br />

32 МГц<br />

До 128КБ<br />

FLASH<br />

До 16КБ<br />

SRAM<br />

Reset<br />

BOR<br />

PVD<br />

Осн.ист<br />

1 - 24<br />

МГц<br />

EEPR<br />

OM<br />

4КБ<br />

RTC<br />

32КГц<br />

клок<br />

MSI<br />

64КГц-<br />

4МГц<br />

DMA<br />

АЦП 12бит<br />

1мкс, 24<br />

канала<br />

2х<br />

ЦАП<br />

12 бит<br />

MPU<br />

ETM<br />

USB<br />

FS<br />

Температурный датчик<br />

Модуль СRC, 96 - бит<br />

уникальный<br />

идентиф-ор<br />

17


Номенклатура <strong>STM32</strong>L<br />

• Напряжение питания:<br />

• 1.65 - 3.6В<br />

(без BOR)<br />

• 1.8 - 3.6В(с BOR)<br />

• Pin-to-pin совместимость<br />

с серией <strong>STM32</strong>F1х<br />

18


<strong>STM32</strong>L. Режимы энергопотребления<br />

CPU is active<br />

Peripherals are active<br />

Wake up STOP: 8us<br />

POR/PDR ON<br />

RAM context preserved<br />

Backup registers<br />

preserved<br />

19


Новая линейка <strong>STM32</strong>F2x<br />

20


Линейка <strong>STM32</strong>F2x<br />

‣ Производительность 150DMIPS при 120MHz<br />

Adaptive Real Time “ART” Акселератор позволяет<br />

исполнять код из flash c 0 WS на 120MГц, обеспечивая<br />

<strong>STM32</strong> F - 2 одним из лидеров по производительности<br />

среди Cortex M3<br />

Значительно улучшенная 32 – битная матрица шин AHB<br />

для более эффективного одновременного использования<br />

периферийных устройств при обмене данными. Ядро и<br />

некоторая высокоскоростная периферия может работать<br />

параллельно<br />

21


Энергопотребление<br />

‣ Динамическое потребление: менее 23мА на 120MГц<br />

Высокая производительность + малое потребление<br />

Менее 23мА при 120MГц(Coremark, peripherals OFF)<br />

150мкА в Stop Mode<br />

< 1мкА в VBAT Mode и RTC ON, (2мкА с сохранением<br />

контекста SRAM).<br />

2мкА в Standby Mode (3мкА с сохранением SRAM).<br />

1.8В (min) - 3.6В (max)<br />

Подключение внешнего стабилизатора(в 2 корпусах).<br />

22


Акселератор памяти<br />

23


SYSTEM<br />

DMA_P1<br />

DMA_MEM1<br />

DMA_MEM2<br />

DMA_P2<br />

PFQ/BC<br />

Улучшенная матрица шин<br />

with MPU<br />

-M3<br />

120MHz<br />

GP- GP-<br />

DMA1<br />

8 ch 8 c<br />

DMA<br />

GP-<br />

DMA2<br />

8 ch<br />

MAC<br />

ETH<br />

10/100<br />

DMA<br />

USB OTG<br />

HS<br />

DMA<br />

Master’s default<br />

slave connexion<br />

ICODE<br />

DCODE<br />

100Mb/s<br />

12.5MB/s<br />

480Mb/s<br />

60MB/s<br />

IMG SENSOR<br />

USB FS OTG<br />

S0 S1 S2<br />

S3 S4<br />

S5<br />

S6<br />

AES Crypto<br />

S7<br />

48MB/s<br />

12MB/s M6<br />

104 MB/s<br />

M5<br />

FSMC<br />

AHB2 periph<br />

USART<br />

ADC<br />

SPI<br />

SDIO<br />

M4<br />

AHB-APB bridge<br />

7.5Mbit/s<br />

6MS/s M3<br />

30Mbit/s<br />

48MB/s<br />

M2<br />

AHB1 periph<br />

SRAM 16KB<br />

SRAM 112KB<br />

MULTI-AHB 32bit BUS MATRIX 120MHz<br />

M1<br />

M0<br />

480MB/s<br />

480MB/s<br />

D<br />

I<br />

D<br />

I<br />

FLASH<br />

1MB


Улучшенные характеристики<br />

‣ Память<br />

До 1Mб высоконадежной Flash - памяти<br />

128Kб RAM<br />

Ядро Cortex-M3 с MPU и ETM<br />

Flexible Static Memory Interface для внешнего LCD, SRAM,<br />

PSRAM, NOR и NAND flash, CompactFlash до 60MГц<br />

‣ Новая периферия<br />

USB OTG High speed 480Mбит/с с интерфейсом ULPI<br />

Camera interface<br />

Шифрование: DES, 3DES, AES 256-бит, SHA-1 hash -<br />

процессор<br />

25


Улучшенные характеристики<br />

‣ Расширенная периферия<br />

USB OTG Full Speed<br />

АЦП: время преобразования 0.5мкс /2Msps, и до 6Msps в<br />

тройном режиме<br />

АЦП/ЦАП работают при 1.8В<br />

32 - бит random number generator (RNG)<br />

Ethernet с встроенным EEE1588 v2.0<br />

32-бит RTC с календарем<br />

4Kб backup SRAM в области VBAT<br />

Новые 1% RC генераторы (новы дизайн)<br />

2 x 32бит таймера и 8 x 16бит таймера<br />

USART до 7.5Mб/с<br />

SPI до 30Mб/с<br />

‣ Дополнительный уровень защиты памяти(JTAG fuse)<br />

‣ Больше портов I/O в корпусе LQFP176<br />

26


Линейка <strong>STM32</strong> F-2<br />

Периферия во всех МК:<br />

Up to1MB FLASH<br />

6xUSART, 3xSPI,3xI2C<br />

2 x CAN<br />

Multiple 16-bit and<br />

32-bit TIMERS<br />

Advanced timer x 2<br />

Dual DAC<br />

FSMC<br />

2 x I2S<br />

MPU<br />

ETM<br />

Main Osc 8-25MHz<br />

Internal 16 MHz RC<br />

and 32 kHz RC<br />

Real Time Clock<br />

2 x Watchdogs<br />

Reset circuitry<br />

Up to 16 channels DMA<br />

80% GPIO ratio<br />

3x12-bit ADC 0.5µs<br />

Temp sensor<br />

<strong>STM32</strong>F207/217<br />

120MHz<br />

CPU<br />

120MHz<br />

CPU<br />

Up to<br />

128KB<br />

SRAM<br />

Up to<br />

128KB<br />

SRAM<br />

USB 2.0<br />

OTG FS<br />

<strong>STM32</strong>F205/215<br />

1x USB<br />

2.0 OTG<br />

FS/HS<br />

USB 2.0<br />

OTG<br />

FS/HS<br />

RNG<br />

+<br />

Camera<br />

interface<br />

Crypto/Hashpro<br />

cessor*<br />

RNG+<br />

Crypto/Hash<br />

processor*<br />

* Crypto/Hash processor on <strong>STM32</strong>F217x and <strong>STM32</strong>F215x<br />

part #s only<br />

Ethernet<br />

IEEE1588<br />

27


Номенклатура <strong>STM32</strong> F-2<br />

lash Size<br />

bytes)<br />

<strong>STM32</strong>F207VG<br />

<strong>STM32</strong>F207ZG<br />

<strong>STM32</strong>F207IG<br />

1MB<br />

<strong>STM32</strong>F205RG<br />

128 KB RAM<br />

E*<br />

128 KB RAM<br />

<strong>STM32</strong>F205VG <strong>STM32</strong>F205ZG<br />

128 KB RAM<br />

128 KB RAM<br />

128 KB RAM<br />

128 KB RAM<br />

E* E* E*<br />

E* E*<br />

<strong>STM32</strong>F207<br />

Ethernet, 2xUSB OTG,<br />

camera IF<br />

768 K<br />

<strong>STM32</strong>F207VF<br />

128 KB RAM<br />

<strong>STM32</strong>F207ZF<br />

128 KB RAM<br />

<strong>STM32</strong>F207IF<br />

128 KB RAM<br />

<strong>STM32</strong>F205<br />

1xUSB OTG FS/HS<br />

<strong>STM32</strong>F205RF<br />

<strong>STM32</strong>F205VF<br />

<strong>STM32</strong>F205ZF<br />

128 KB RAM<br />

128 KB RAM<br />

128 KB RAM<br />

Encryption peripheral on<br />

E*<br />

512 K<br />

<strong>STM32</strong>F207VE <strong>STM32</strong>F207ZE <strong>STM32</strong>F207IE<br />

128 KB RAM<br />

128 KB RAM<br />

128 KB RAM<br />

E* E* E*<br />

<strong>STM32</strong>F217 and <strong>STM32</strong>F115<br />

256 K<br />

128 K<br />

<strong>STM32</strong>F205RE<br />

128 KB RAM<br />

<strong>STM32</strong>F205RC<br />

96 KB RAM<br />

<strong>STM32</strong>F205RB<br />

E*<br />

<strong>STM32</strong>F205VE<br />

128 KB RAM<br />

<strong>STM32</strong>F207VC<br />

128 KB RAM<br />

<strong>STM32</strong>F205VC<br />

96 KB RAM<br />

<strong>STM32</strong>F205VB<br />

E*<br />

<strong>STM32</strong>F205ZE<br />

128 KB RAM<br />

<strong>STM32</strong>F207ZC<br />

128 KB RAM<br />

<strong>STM32</strong>F205ZC<br />

96 KB RAM<br />

<strong>STM32</strong>F205ZB<br />

E*<br />

<strong>STM32</strong>F207IC<br />

128 KB RAM<br />

Cortex-M3 120MHz with MPU and<br />

ETM<br />

RNG (Random Number<br />

Generator)<br />

6xUSART<br />

8x16-bit timer, 2x32bit timer<br />

2x16-bit PWM<br />

3xSPI, 2xI2C, 2xI2S, 2xCAN<br />

3xADC, 2xDAC,<br />

SDIO, FSMC (100 ,144, 176 pin)<br />

64 KB RAM<br />

64 KB RAM<br />

64 KB RAM<br />

LFQFP 64 pins<br />

LQFP 100 pins<br />

LQFP144 pins<br />

176 pins LQFP/BGA<br />

Pin count<br />

28


<strong>STM32</strong>F207/217<br />

Питание 1.8В - 3.6В<br />

<br />

120 MHz ЦПУ<br />

Ethernet, 2xUSB OTG (1<br />

FS, 1FS/HS*)<br />

<br />

Crypto/Hash processor**<br />

: 3DES, AES256, SHA1,<br />

System<br />

Power supply<br />

1.2 V regulator<br />

POR/PDR/PVD<br />

Xtal oscillator<br />

32 kHz + 8~25 MHz<br />

Internal RC oscillators<br />

32 kHz + 16 MHz<br />

ART<br />

Accelerator<br />

ARM Cortex-M CPU<br />

120 MHz<br />

Nested vector<br />

interrupt<br />

controller<br />

(NVIC)<br />

256-Kbyte up to 1-Mbyte<br />

Flash memory<br />

128-Kbyte SRAM<br />

FSMC/<br />

SRAM/NOR/NAND/CF/LCD<br />

parallel interface<br />

80-byte + 4-kByte backup<br />

SRAM<br />

Connectivity<br />

<br />

RNG<br />

PLL<br />

MPU<br />

Camera Interface<br />

<br />

EMI :NAND Flash, SRAM,<br />

NOR Flash<br />

Clock control<br />

RTC/AWU<br />

JTAG/ SW debug/<br />

ETM<br />

3 x SPI,2 x I 2 S,3 x I2C<br />

Ethernet MAC<br />

10/100 with IEEE 1588<br />

<br />

<br />

Camera interface (CMOS<br />

sensor)<br />

100 - 176 выводов<br />

Systick timer<br />

2x watchdogs<br />

(independent and<br />

window)<br />

51/82/114/140 I/Os<br />

Multi- AHB bus matrix<br />

16-channel DMA<br />

2 x CAN 2.0B<br />

1 x USB 2.0 OTG HS*/FS<br />

1 x USB 2.0 OTG FS<br />

SDIO<br />

<br />

<br />

<br />

-40/+105°C<br />

* HS необходима дополнительные<br />

внешние компоненты для<br />

физического PHY(ULPI<br />

интерфейс)<br />

** Шифрование только в<br />

<strong>STM32</strong>F215<br />

Cyclic redundancy<br />

check (CRC)<br />

Control<br />

2x16-bit motor control<br />

PWM<br />

Synchronized AC timer<br />

10x16-bit timer<br />

Crypto/Hash<br />

processor**<br />

3DES, AES256<br />

SHA-1, MD5,<br />

HMAC<br />

True Random<br />

Number Generator<br />

6x USART<br />

LIN, smartcard, IrDA,<br />

modem control<br />

Analog<br />

2-channel 12-bit DAC<br />

3x12-bit ADC<br />

24 channels<br />

2 Ms/second<br />

2x32-bit timers<br />

30<br />

30<br />

Temperature sensor


DCMI характеристики<br />

‣ Основные параметры Digital Camera Interface:<br />

8-, 10-, 12- или 14-bit параллельный интерфейс<br />

Непрерывный или snapshot режимы съемки<br />

Режим «обрезки» или кадрирования<br />

Поддержка форматов:<br />

8/10/12/14 - бит progressive scan: либо<br />

монохромный или raw<br />

YCbCr 4:2:2 progressive scan<br />

RGB 565 progressive video<br />

Сжатие данных: JPEG<br />

‣ При тактовой частоте 48MГц PIXCLK и 8-бит шине:<br />

До 15fps несжатого потока в SXGA разрешении<br />

(1280x1024) с 16-бит пикселем<br />

До 30fps несжатого потока в VGA разрешении<br />

(640x480) с 16-бит пикселем<br />

31


Развитие <strong>STM32</strong> Connectivity Line<br />

Flash<br />

bytes)<br />

<strong>STM32</strong>F217VG<br />

<strong>STM32</strong>F217ZG<br />

<strong>STM32</strong>F217IG<br />

1MB<br />

<strong>STM32</strong>F215RG<br />

<strong>STM32</strong>F205RG<br />

<strong>STM32</strong>F207VG<br />

<strong>STM32</strong>F215VG<br />

<strong>STM32</strong>F205VG<br />

<strong>STM32</strong>F207ZG<br />

<strong>STM32</strong>F215ZG<br />

<strong>STM32</strong>F205ZG<br />

<strong>STM32</strong>F207IG<br />

768 K<br />

<strong>STM32</strong>F205RF<br />

<strong>STM32</strong>F207VF <strong>STM32</strong>F207ZF <strong>STM32</strong>F207IF<br />

<strong>STM32</strong>F205VF<br />

<strong>STM32</strong>F205ZF<br />

512 K<br />

256 K<br />

<strong>STM32</strong>F215RE<br />

<strong>STM32</strong>F205RE<br />

<strong>STM32</strong>F205RC<br />

<strong>STM32</strong>F107RC<br />

<strong>STM32</strong>F105RC<br />

<strong>STM32</strong>F217VE <strong>STM32</strong>F217ZE <strong>STM32</strong>F217IE<br />

<strong>STM32</strong>F207VE<br />

<strong>STM32</strong>F207ZE<br />

<strong>STM32</strong>F207IE<br />

<strong>STM32</strong>F215VE<br />

<strong>STM32</strong>F215ZE<br />

<strong>STM32</strong>F205VE<br />

<strong>STM32</strong>F205ZE<br />

<strong>STM32</strong>F207VC<br />

<strong>STM32</strong>F205VC<br />

<strong>STM32</strong>F107VC<br />

<strong>STM32</strong>F105VC<br />

Prod Q3 2011<br />

<strong>STM32</strong>F205RB<br />

<strong>STM32</strong>F205VB<br />

128 K<br />

<strong>STM32</strong>F107RB<br />

<strong>STM32</strong>F107VB<br />

<strong>STM32</strong>F105RB<br />

<strong>STM32</strong>F105VB<br />

• Cortex TM -M3 CPU<br />

64 K<br />

<strong>STM32</strong>F105R<br />

<strong>STM32</strong>F105VB<br />

• HW and SW<br />

compatibility<br />

• USB OTG FS/HS<br />

• Ethernet<br />

64 pins<br />

LQFP<br />

100 pins<br />

LQFP<br />

144 pins<br />

LQFP<br />

176 pins<br />

LQFP/BGA<br />

33


Несколько слов о тесте CoreMark<br />

‣ CoreMark benchmark<br />

Замена теста Dhrystone как основного<br />

Свободный тест без влияния со стороны<br />

Официальные результаты на http://www.coremark.org<br />

Ориентирование на 32-бит устройства<br />

34


EEMBC – Coremark


Будущее развитие <strong>STM32</strong><br />

Cortex – M4<br />

32-бит/DSP приложения<br />

Cortex – M3<br />

16/32-бит приложения<br />

<strong>STM32</strong>F1x/<strong>STM32</strong>L<br />

Cortex – M0<br />

8/16-бит приложения<br />

DSP и FPU<br />

Высокая производительность до 180 МГц<br />

<strong>STM32</strong>F4x<br />

Высокая производительность до 120 МГц<br />

<strong>STM32</strong>F2x/<strong>STM32</strong>F3x<br />

Низкая стоимость<br />

До 50МГц, flash от 8 Кб<br />

<strong>STM32</strong>F0xx<br />

… 2011<br />

38


<strong>Семейство</strong> МК <strong>STM32</strong><br />

Прерывания


Прерывания<br />

‣ Каждый источник прерывания имеет 8-бит значение приоритета.<br />

В <strong>STM32</strong>F1x реализованы только 4 бита!<br />

‣ 4-бит разделены на приоритетные(preempting) уровни и<br />

неприоритетные(non pre-empting, “sub-priority”) уровни.<br />

‣ Содержимое регистра PRIGROUP модуля NVIC какое количество 4-бит<br />

используются в качестве приоритетных и какое количество субприоритетных<br />

уровней прерывания.<br />

‣ Суб-приоритетные прерывания не вытесняющие, приоритетные<br />

вытесняющие<br />

‣ Низкие номера имеют более высокий приоритет<br />

Preempting Priority<br />

PRIGROUP Binary Point<br />

Sub-Priority<br />

(Group Priority)<br />

(3 Bits)<br />

(group.sub)<br />

Bits Levels Bits Levels<br />

011 4.0 gggg 4 16 0 0<br />

100 3.1 gggs 3 8 1 2<br />

101 2.2 ggss 2 4 2 4<br />

110 1.3 gsss 1 2 3 8<br />

111 0.4 ssss 0 0 4 16<br />

40


Прерывания в <strong>STM32</strong>, пример<br />

конфигурации<br />

PRIGROUP GROUPs SUB - GROUPs<br />

PRIGROUP = 011 “gggg”<br />

0<br />

16 групп с вытеснением,<br />

0 - высший приоритет<br />

15<br />

0<br />

0<br />

PRIGROUP = 101 “ggss”<br />

3<br />

3<br />

0<br />

4 группы с 4 подгруппами.<br />

Вытеснение только в<br />

группах<br />

3<br />

PRIGROUP = 111 “ssss”<br />

0<br />

15<br />

16 подгрупп без<br />

вытеснения<br />

41


Исключения ядра Cortex-M3<br />

No. Exception Type Priority<br />

Type of<br />

Priority<br />

1 Reset -3 (Highest) fixed Reset<br />

Descriptions<br />

2 NMI -2 fixed Non-Maskable Interrupt<br />

3 Hard Fault -1 fixed Default fault if other hander not implemented<br />

4 MemManage Fault 0 settable MPU violation or access to illegal locations<br />

5 Bus Fault 1 settable Fault if AHB interface receives error<br />

6 Usage Fault 2 settable Exceptions due to program errors<br />

7-10 Reserved N.A. N.A.<br />

11 SVCall 3 settable System Service call<br />

12 Debug Monitor 4 settable Break points, watch points, external debug<br />

13 Reserved N.A. N.A.<br />

14 PendSV 5 settable Pendable request for System Device<br />

15 SYSTICK 6 settable System Tick Timer<br />

16 Interrupt #0 7 settable External Interrupt #0<br />

…… ………………….. ………………….. settable …………………..<br />

256 Interrupt#240 247 settable External Interrupt #240<br />

42


NVIC и контроллер внешних прерываний EXTI<br />

Стандартная<br />

периферия:<br />

GPIO<br />

NVIC + EXTI<br />

Таймеры<br />

АЦП<br />

ЦАП<br />

FSMC<br />

LCD control<br />

‣ Каждое внешнее прерывание содержит несколько<br />

конфигурационных регистров<br />

<br />

<br />

<br />

<br />

Enable/Disable бит<br />

• Разрешение или запрет прерывания<br />

• М.б. установлен, очищен или считан<br />

Pending бит<br />

• Если бит установлен, прерывание находится в статусе<br />

ожидания<br />

• Бит может быть установлен, очищен или считан<br />

Active бит<br />

• Установка бита если произошло прерывание или<br />

находится в очереди(было вытеснено прерыванием с<br />

более высоким прерыванием)<br />

• Может только быть считан<br />

Поле приоритета<br />

• 4 бит поле приоритета для каждого прерывания<br />

43


Модуль EXTI и NVIC<br />

GPIOA_0<br />

GPIOB_0<br />

Channel 0<br />

EXTI<br />

Event<br />

CORTEX M3<br />

GPIOF_0<br />

Wakeup<br />

GPIOA_1<br />

GPIOB_1<br />

Channel 1<br />

GPIOF_1<br />

GPIOA_15<br />

GPIOB_15<br />

Channel 15<br />

ENABLE<br />

Exti_0<br />

Exti_1<br />

NVIC<br />

GPIOF_15<br />

DISABLE<br />

Exti_2<br />

Exti_3<br />

PVD<br />

Exti_4<br />

Exti_9-5<br />

RTC_Alarm<br />

USB Wakeup<br />

Exti_15-10<br />

PVD_IRQ<br />

RTC_IRQ<br />

ETH Wakeup<br />

Interrupt<br />

USB_IRQ<br />

44


<strong>Семейство</strong> <strong>STM32</strong><br />

Тактирование


Система тактирования + PLL<br />

Power<br />

management<br />

Clock system<br />

CSS<br />

2xWDG<br />

7+5 DMA<br />

До 1Мб FLASH<br />

‣ Большое количество источников тактирования для гибкости работы в<br />

RUN/Low Power режимах<br />

<br />

<br />

HSE (High Speed External oscillator): 4МГц - 16MГц основной<br />

генератор, со схемой PLL для обеспечения широкого ряда частот<br />

HSI (High Speed Internal RC): фабрично откалиброванный<br />

встроенный RC генератор 8MГц +/- 1% при 25°C<br />

• Система тактирования после сброса или выход из STOP режима<br />

занимает 2мкс<br />

• Clock Security System; переключение в случае ошибки HSE<br />

<br />

<br />

LSI (Low Speed Internal RC): 40КГц встроенный RC для IWDG и<br />

опционально для RTC, используется для AWU из STOP/STANDBY<br />

режимов<br />

LSE (Low Speed External oscillator): 32.768КГц генератор для<br />

обеспечения точной частоты с ультранизким потреблением (макс<br />

1мкА). Опционально управляет RTC для Auto Wake-Up (AWU) в<br />

STOP/STANDBY режимах<br />

46


Схема тактирования (MD, HD)<br />

System Clock (SYSCLK)<br />

HSI<br />

HSE<br />

PLL<br />

RTC Clock (RTCCLK) sources<br />

LSE<br />

LSI<br />

HSE с предделителем 128<br />

USB Clock (USBCLK)<br />

обеспечивается внутренним PLL<br />

Выход частоты на MCO пин<br />

(PA.08) / макс 50MГц<br />

Clock Security System (CSS) переход на резервный источник в случае сбоя<br />

HSE(переключение на HSI)<br />

Программное включение с прерыванием<br />

HSI RC<br />

8MГц<br />

/2<br />

HCLK<br />

72MHz<br />

PCLK1<br />

До 36MHz<br />

4 -16<br />

MГц<br />

OSC_OUT<br />

OSC_IN<br />

HSE Osc<br />

/2<br />

x2...x16<br />

PLL<br />

PLLCLK<br />

SYSCLK<br />

До 72<br />

MГц<br />

AHB<br />

Prescaler<br />

/1,2…512<br />

APB1<br />

Prescaler<br />

/1,2,4,8,16<br />

If (APB1 pres<br />

=1) x1<br />

Else x2<br />

TIMxCLK<br />

TIM2,3,4<br />

MCO<br />

OSC32_IN<br />

OSC32_OUT<br />

SYSCLK<br />

HSI<br />

HSE<br />

PLLCLK<br />

/2<br />

LSE OSc<br />

LSI RC<br />

/128<br />

32.768KГц<br />

~40KГц<br />

RTCCLK<br />

IWDGCLK<br />

CSS<br />

APB2<br />

Prescaler<br />

/1,2,4,8,16<br />

USB<br />

Prescaler<br />

/1,1.5<br />

If (APB2 pres<br />

=1) x1<br />

Else x2<br />

ADC<br />

Prescaler<br />

/2,4,6,8<br />

PCLK2<br />

До 72MHz<br />

TIM1CLK<br />

ADCCLK<br />

USBCLK<br />

48MГц<br />

47


Управление тактовыми частотами и CSS<br />

‣ Старт после сброса<br />

4 -16<br />

MГц<br />

HSI RC<br />

8MHz<br />

/2<br />

OSC_OUT<br />

OSC_IN<br />

HSE Osc<br />

/2<br />

x2...x16<br />

PLL<br />

PLLCLK<br />

SYSCLK<br />

8 MHz<br />

CSS<br />

‣ Сбои тактовых генераторов и<br />

восстановление<br />

HSI RC<br />

8MHz<br />

/2<br />

OSC_OUT<br />

PLLCLK SYSCLK<br />

x2...x16<br />

HSE Osc<br />

PLL<br />

OSC_IN up to 72<br />

/2<br />

MHz<br />

RCC IRQ<br />

CSS<br />

NMI<br />

TIM1 OC -> HiZ<br />

48


Схема тактирования – Access,<br />

Performance Lines<br />

4-16<br />

MГц<br />

HSI RC<br />

8MГц<br />

OSC_OUT<br />

OSC_IN<br />

HSE Osc<br />

/2<br />

/2<br />

x2...x16<br />

PLL1<br />

SYSCLK<br />

До 72<br />

MHz<br />

MCO<br />

HSE<br />

HSI<br />

SYSCLK<br />

PLL1<br />

/2<br />

CSS<br />

USB<br />

Prescaler<br />

/1,/1.5<br />

USBCLK<br />

48MГц<br />

/128<br />

OSC32_IN<br />

OSC32_OUT<br />

LSE OSc<br />

32.768KГц<br />

RTCCLK<br />

LSI RC<br />

~40KГц<br />

IWDGCLK<br />

49


<strong>Семейство</strong> <strong>STM32</strong><br />

DMA - контроллер


DMA<br />

Системная<br />

периферия:<br />

Power<br />

management<br />

Clock system<br />

CSS<br />

2xWDG<br />

7+5 DMA<br />

До 1Мб FLASH<br />

‣ DMA значительно увеличивает<br />

производительность<br />

‣ Параллельная работа FLASH и DMA, режим работы<br />

RAM - RAM, периферия – память и память -<br />

периферия<br />

‣ Программируемые и независимые источники<br />

информации с конфигурируемым размером – байт,<br />

полуслово и слово<br />

‣ Программное задание приоритетов(4)<br />

‣ 3 флага событий на канал<br />

‣ Программируемое количество данных до 65536 байт<br />

‣ Поддержка циклических буферов<br />

51


DMA1<br />

DMA1<br />

DMA1 поддерживает 7 каналов обмена данными<br />

USART1_TX<br />

ADC1<br />

USART3_TX<br />

USART3_RX<br />

TIM4_CC2<br />

TIM1_CCU<br />

TIM1_UP<br />

USART1_RX<br />

USART2_RX<br />

USART2_TX<br />

TIM2_CC3<br />

TIM4_CC1<br />

TIM2_UP<br />

TIM1_CC1<br />

TIM3_CC3<br />

SPI1_RX<br />

TIM3_CC4<br />

SPI1_TX<br />

TIM1_CC4<br />

TIM1_CC2<br />

TIM3_UP<br />

SPI2_RX<br />

TIM1_TRIG SPI2_TX<br />

I2C2_RX<br />

I2C2_TX<br />

TIM2_CC1<br />

TIM3_CC1<br />

TIM4_CC3<br />

I2C1_TX<br />

TIM2_CC2<br />

TIM1_CC3<br />

TIM4_UP<br />

TIM3_TRIG<br />

TIM2_CC4<br />

I2C1_RX<br />

OR<br />

OR<br />

OR<br />

OR<br />

OR<br />

OR<br />

OR<br />

SW TRIGGER<br />

SW TRIGGER<br />

SW TRIGGER<br />

SW TRIGGER<br />

SW TRIGGER<br />

SW TRIGGER<br />

SW TRIGGER<br />

Канал1 Канал2 Канал3 Канал4 Канал5 Канал6 Канал7<br />

Высокий приоритет запроса<br />

Низкий приоритет запроса<br />

DMA запрос<br />

52


DMA2<br />

DMA2<br />

DMA2 поддерживает 5 каналов обмена данными<br />

SPI/I2S3_RX<br />

TIM8_COM<br />

SPI/I2S3_TX<br />

TIM6_UP/DAC_Channel1<br />

TIM7_UP/DAC_Channel2<br />

TIM5_TRIG<br />

TIM5_СС4<br />

TIM8_CC3<br />

TIM8_UP<br />

TIM8_TRIG<br />

TIM8_CC4<br />

TIM5_UP<br />

TIM5_CC3<br />

TIM8_CC1<br />

UART4_RX<br />

TIM5_CC2<br />

SDIO<br />

UART4_TX<br />

TIM8_CC2<br />

ADC3<br />

TIM5_CC1<br />

OR<br />

OR<br />

OR<br />

OR<br />

OR<br />

SW TRIGGER<br />

SW TRIGGER<br />

SW TRIGGER<br />

SW TRIGGER<br />

SW TRIGGER<br />

Channel1<br />

Channel2<br />

Channel3<br />

Channel3<br />

Channel5<br />

Высокий приоритет запроса<br />

Низкий приоритет запроса<br />

DMA запрос<br />

53


<strong>Семейство</strong> <strong>STM32</strong><br />

Порты ввода – вывода(GPIO)


GPIO<br />

Стандартная<br />

периферия:<br />

GPIO<br />

NVIC + EXTI<br />

Таймеры<br />

АЦП<br />

ЦАП<br />

FSMC<br />

LCD control<br />

‣ Большинство I/O 5В толерантны, с 20мА<br />

‣ Конфигурируемая частота переключения 50MГц<br />

Возможные частоты (2MГц, 10MГц, 50MГц)<br />

‣ Любой I/O м.б. использован как внешнее<br />

прерывание<br />

‣ Атомарные операции установки и сброса бита<br />

‣ Механизм защиты для предотвращения случайного<br />

изменения регистров<br />

‣ Несколько альтернативных функций на один вывод<br />

55


Bit Set/Reset<br />

Registers<br />

Input Data Register<br />

Output Data Register<br />

Pull - UP<br />

Pull - Down<br />

I/O pin<br />

Режимы конфигурации GPIO<br />

Configuration Mode CNF1 CNF0 MOD1 MOD0<br />

Analog Input<br />

Analog Input 0 0<br />

Input Floating<br />

(Reset State)<br />

0 1<br />

Input Pull-Up 1 0<br />

Input Pull-Down 1 0<br />

Output<br />

Push-Pull<br />

Output<br />

Open-Drain<br />

0 0<br />

0 1<br />

AF Push-Pull 1 0<br />

AF<br />

Open-Drain<br />

1 1<br />

00<br />

01: 10 MHz<br />

10: 2 MHz<br />

11: 50 MHz<br />

To On-chip Peripherals<br />

Read / Write<br />

Alternate Function Input<br />

Write<br />

Read<br />

From On-chip Peripherals<br />

0<br />

Input Driver<br />

Output Driver<br />

ON OFF<br />

TTL Schmitt<br />

Trigger<br />

OUTPUT<br />

CONTROL<br />

ON/OFF<br />

ON/OFF<br />

VSS<br />

VDD<br />

VDD<br />

VSS<br />

VDD or VDD_FT (1)<br />

VSS<br />

Push-Pull or<br />

Open Drain<br />

or disabled<br />

Alternate Function Output<br />

56


<strong>Семейство</strong> <strong>STM32</strong><br />

Таймеры


16 бит таймеры<br />

Стандартная<br />

периферия:<br />

GPIO<br />

NVIC + EXTI<br />

Таймеры<br />

АЦП<br />

ЦАП<br />

FSMC<br />

LCD control<br />

‣ Классификация таймеров<br />

‣ Таймеры с расширенными возможностями<br />

‣ Таймеры общего назначения<br />

‣ Таймеры базового типа<br />

‣ Реализация - 16бит счетчик<br />

Авто перезагрузка<br />

Режимы счета «вверх», «вниз» и «выровненный по<br />

центру»<br />

‣ ЗАХВАТ/СРАВНЕНИЕ<br />

‣ ШИМ<br />

‣ DMA - совместимость<br />

‣ Управление приводами(таймеры с расширенными<br />

возможностями)<br />

6 комплементарных выхода<br />

Dead - time<br />

Модуль повтора<br />

Интерфейс энкодера, датчика холла<br />

Источник останова – ножка BKIN и CSS<br />

‣ Синхронизация<br />

58


Классификация таймеров<br />

‣ 2 таймера с расширенными возможностями:<br />

TIM1 и TIM8<br />

‣ 10 таймеров общего назначения: TIM2, TIM3,<br />

TIM4, TIM5, TIM9, TIM10, TIM11, TIM12, TIM13,<br />

TIM14<br />

‣ 2 базовых таймера: TIM6 и TIM7<br />

59


Таймер с расширенными<br />

возможностями<br />

‣ TIM1 на высокоскоростной шине APB2<br />

‣ Внутренне тактирование до 72 MГц<br />

‣ 16-бит счетчик<br />

Режимы счета «вверх», «вниз», и<br />

«выравнивание по центру»<br />

Авто перезагрузка<br />

‣ 4 x 16-бит канала СРАВНЕНИЯ/ЗАХВАТА<br />

Выход «СРАВНЕНИЯ»<br />

ШИМ<br />

Вход ЗАХВАТА, ШИМ ЗАХВАТ по<br />

входу<br />

Режим одиночного импульса<br />

‣ 6 комплементарных выхода: каналы 1,<br />

2 и 3<br />

‣ Выбор полярности независимо для<br />

каждого выхода<br />

‣ Программируемый PWM<br />

счетчик(повтор)<br />

‣ Интерфейс датчика холла<br />

‣ Интерфейс энкодера<br />

‣ 8 независимых генераций IRQ/DMA<br />

Событие обновления<br />

Событие СРАВНЕНИЯ/ЗАХВАТА<br />

Событие триггера<br />

Событие останова<br />

Событие обновления<br />

СРАВНЕНИЯ/ЗАХВАТА<br />

‣ Встроенные свойства безопасности<br />

ETR<br />

CH1<br />

CH2<br />

CH3<br />

CH4<br />

BKIN<br />

Clock<br />

ITR 1<br />

ITR 2<br />

ITR 3<br />

ITR 4<br />

Trigger/Clock<br />

Контроллер<br />

16-бит prescaler<br />

+/- 16-бит счетчик<br />

Выход<br />

триггера<br />

Авто - перезагрузка<br />

Capture Compare<br />

Capture Compare<br />

Capture Compare<br />

ЗАХВАТ/СРАВНЕНИЕ<br />

CH1<br />

CH1N<br />

CH2<br />

CH2N<br />

CH3<br />

CH3N<br />

CH4<br />

60


Таймер общего назначения<br />

‣ TIM2, 3, 4 на на низкоскоростной шине<br />

APB1<br />

‣ Внутренняя частота тактирования до 72<br />

MГц<br />

‣ 16-бит счетчик<br />

Режимы счета «вверх», «вниз», и<br />

«выравнивание по центру»<br />

Авто перезагрузка<br />

‣ 4 x 16-бит канала СРАВНЕНИЯ/ЗАХВАТА<br />

Выход «СРАВНЕНИЯ»<br />

ШИМ<br />

Вход ЗАХВАТА, ШИМ ЗАХВАТ по<br />

входу<br />

Режим одиночного импульса<br />

<br />

Программируемое направления<br />

канала: вход/выход<br />

‣ Синхронизация<br />

<br />

<br />

<br />

Режим Master/Slave<br />

Синхронизация по внешнему<br />

триггеру<br />

Режим триггера<br />

‣ Интерфейс энкодера<br />

‣ 6 независимых генерации IRQ/DMA<br />

<br />

<br />

<br />

Событие обновление<br />

Событие ЗАХВАТ/СРАВНЕНИЕ<br />

Событие триггера по входу<br />

ETR<br />

CH1<br />

CH2<br />

CH3<br />

CH4<br />

Clock<br />

ITR 1<br />

ITR 2<br />

ITR 3<br />

ITR 4<br />

Trigger/Clock<br />

Контролер<br />

16-Bit Prescaler<br />

+/- 16-бит счетчик<br />

Выход<br />

таймера<br />

Рег авто перезагрузки<br />

Capture Compare<br />

Capture Compare<br />

Capture Compare<br />

ЗАХВАТ/СРАВНЕНИЕ<br />

CH1<br />

CH2<br />

CH3<br />

CH4<br />

61


Базовый таймер<br />

‣ TIM6 и TIM7 на низкоскоростной шине<br />

APB1<br />

‣ Тактирование до 72 MГц<br />

TIMxCLK<br />

Trigger/Clock<br />

Контроллер<br />

Выход триггера<br />

на ЦАП<br />

‣ 16-бит счетчик(up)<br />

‣ Авто - перезагрузка<br />

16-Bit Prescaler<br />

‣ Генерирование прерывания/DMA при<br />

обновлении<br />

‣ Схема синхронизации для ЦАП<br />

+/- 16-бит счетчик<br />

Авто - перезагрузка<br />

Событие<br />

обновления<br />

IT & DMA<br />

62


Режимы счета<br />

‣ Существуют 3 режима счета:<br />

Режим Up counting<br />

Режим Down counting<br />

Режим Center-aligned<br />

Center Aligned Up counting Down counting<br />

RCR = 0<br />

UEV<br />

RCR = 2<br />

UEV<br />

63


Dead - time<br />

Dead-time disabled<br />

Dead-time enabled<br />

OCx REF<br />

OCx REF<br />

OCx<br />

OCx<br />

OCxN<br />

OCxN<br />

t<br />

t<br />

delay<br />

64


Режим одиночного импульса<br />

‣ Режим одиночного импульса –<br />

частный случай ШИМ<br />

‣ Данный режим позволяет<br />

генерировать одиночный<br />

импульс с конфигурируемой<br />

начальной задержкой и<br />

конфигурируемой<br />

длительностью<br />

‣ Возможны 2 варианта режима,<br />

конфигурируется программно:<br />

Одиночный импульс<br />

TI2<br />

OC1 REF<br />

OC1<br />

TIM_ARR<br />

TIM_CCR1<br />

t Delay t Pulse t<br />

Повторяющийся<br />

импульс<br />

65


Интерфейс энкодера<br />

‣ Энкодер используется для определения<br />

позиции и скорость движения<br />

(линейной или угловой)<br />

Контроллер<br />

триггера<br />

Контроллер<br />

‣ Счетчик предоставляет о текущей<br />

позиции (угловую позицию<br />

электрического ротора мотора)<br />

Интерфейс<br />

энкодера<br />

‣ Получение динамической информации<br />

(скорость, ускорения), возможность<br />

измерения количества импульсов между<br />

двумя периодическими событиями,<br />

генерируемыми другим таймером<br />

TI1<br />

TI2<br />

Выбор полярности & Фронт<br />

Контроллер<br />

Выбор полярности & Фронт<br />

Контроллер<br />

66


Синхронизация таймеров<br />

‣ 4 таймера могут быть объединены вместе для синхронизации или<br />

объединения в определенные последовательности.<br />

TIM1CLK<br />

TRG2<br />

TRG3<br />

TRG4<br />

TIM1<br />

Trigger<br />

Controller<br />

TRGO<br />

TRG1<br />

TIM2CLK<br />

TRG1<br />

TRG3<br />

TRG4<br />

TIM2<br />

Trigger<br />

Controller<br />

TRGO<br />

TRG2<br />

TI1FP1<br />

TI2FP2<br />

TI1FP1<br />

TI2FP2<br />

TIM3CLK<br />

TRG1<br />

TRG2<br />

TRG4<br />

TIM3<br />

Trigger<br />

Controller<br />

TRGO<br />

TRG3<br />

TIM4CLK<br />

TRG1<br />

TRG2<br />

TRG3<br />

TIM4<br />

Trigger<br />

Controller<br />

TRGO<br />

TRG4<br />

TI1FP1<br />

TI2FP2<br />

TI1FP1<br />

TI2FP2<br />

67


Синхронизация – пример конфигурации (1/3)<br />

‣ Режим каскада:<br />

‣ TIM1 как главный таймер для TIM2, TIM2 конфигурируется как slave для TIM1 и master<br />

для TIM3.<br />

MASTER(делитель)<br />

CLOCK<br />

prescaler<br />

Timer 1<br />

Trigger<br />

Controller<br />

TRG 1<br />

counter<br />

Update<br />

SLAVE / MASTER(счетчик)<br />

ITR<br />

1<br />

ITR 3<br />

ITR 4<br />

Timer 2<br />

prescaler<br />

counter<br />

Trigger<br />

Controller<br />

Update<br />

TRG 2<br />

ITR1<br />

SLAVE(контроллер запуска)<br />

Timer 3<br />

ITR2<br />

ITR 4<br />

prescaler<br />

counter<br />

68


Синхронизация – пример конфигурации (2/3)<br />

‣ Один master и несколько slave<br />

MASTER<br />

CLOCK<br />

prescaler<br />

counter<br />

Timer 1<br />

Update<br />

Trigger<br />

Controller<br />

TRG1<br />

ITR1<br />

ITR 3<br />

ITR 4<br />

SLAVE 1<br />

Timer 2<br />

prescaler<br />

counter<br />

SLAVE 2<br />

ITR 1<br />

Timer 3<br />

ITR 2<br />

ITR 4<br />

prescaler<br />

counter<br />

SLAVE 3<br />

ITR1<br />

TIM4<br />

ITR 2<br />

ITR 3<br />

prescaler<br />

counter<br />

69


Синхронизация – пример конфигурации (3/3)<br />

‣ Таймеры и внешняя синхронизация<br />

TIM1<br />

TIM2<br />

TIM3<br />

Trigger<br />

Controller<br />

TRGO<br />

Trigger<br />

Controller<br />

TRGO<br />

Trigger<br />

Controller<br />

TRGO<br />

Внешний триггер<br />

70


<strong>Семейство</strong> <strong>STM32</strong><br />

Аналоговая периферия


12 – бит АЦП<br />

Стандартная<br />

периферия:<br />

GPIO<br />

NVIC + EXTI<br />

Таймеры<br />

АПЦ<br />

ЦАП<br />

FSMC<br />

LCD control<br />

‣ Общие характеристики:<br />

Разрешение 12 - бит<br />

До 21 внешних каналов (АЦП1+ АЦП2+АЦП3)<br />

1Mс/с (в одиночном режиме) и 2Mс/с (в двойном<br />

режиме АПЦ1,2)<br />

‣ Доступно до 3х АЦП в семействе <strong>STM32</strong>F:<br />

АЦП1 => <strong>STM32</strong>F101, <strong>STM32</strong>F102<br />

АЦП1, АЦП2 => <strong>STM32</strong>F103_MD, <strong>STM32</strong>F105,<br />

<strong>STM32</strong>F107<br />

АЦП1, АЦП2 + АЦП3 => <strong>STM32</strong>F103_HD<br />

72


Параметры АЦП<br />

‣ Скорость преобразования 1 MГц и 12-бит разрешение<br />

1мкс время преобразования на 56 MГц<br />

1.17мкс на 72 MГц<br />

‣ Диапазон преобразования: 0 - 3.6В<br />

‣ ADC требование по питанию: 2.4 - 3.6В<br />

‣ ADC входной диапазон: VREF- ≤ VIN ≤ VREF+ (VREF+ и VREF- доступны<br />

только в LQFP100 корпусе)<br />

‣ Двойной режим (в МК с 2 АЦП): 8 режимов преобразования<br />

‣ До 18 мультиплексированных каналов:<br />

16 внешних каналов<br />

2 внутренних канала: температурный датчик и встроенное опорное<br />

напряжение<br />

‣ Группы преобразования:<br />

До 16 каналов в регулярной группе<br />

До 4 канала в инжектированной группе<br />

‣ Одиночный и повторяющиеся режимы преобразования<br />

73


Блок схема АПЦ1<br />

VREF+<br />

VREF-<br />

VDDA<br />

VSSA<br />

ADCCLK<br />

ADC Prescalers:<br />

Div2, Div4, Div6 and Div8<br />

PCLK2<br />

ADC_IN0<br />

ADC_IN1<br />

.<br />

.<br />

.<br />

ADC_IN15<br />

GPIO<br />

Ports<br />

Темп датчик<br />

VREFINT<br />

TIM1_TRGO<br />

TIM1_CC4<br />

TIM1_TRGO<br />

TIM2_CC1<br />

ANALOG MUX<br />

До 4<br />

До<br />

16<br />

Старт<br />

триггера<br />

(инжетиров<br />

анная<br />

группа)<br />

ADC1<br />

Инжектированные<br />

каналы<br />

Регулярные<br />

каналы<br />

Аналоговый Watchdog<br />

Регистр верхнего порога<br />

(12бит)<br />

Регистры данных регулярной<br />

группы (12бит)<br />

Завершение<br />

преобразования<br />

Событие<br />

аналогового<br />

watchdog<br />

Регистры данных инжектированной<br />

группы(4x12бит)<br />

Завершение<br />

преобразования<br />

DMA запрос<br />

Шина адреса/данных<br />

Ext_IT_15<br />

TIM3_CC4<br />

TIM4_TRGO<br />

JEXTRIG бит<br />

JEXTSEL[2:0] бит<br />

Регистр нижнего порога<br />

(12бит) AWD EOC JEOC<br />

Флаги<br />

TIM1_CC1<br />

AWDIE<br />

EOCIE JEOCIE<br />

Биты разрешения<br />

прерывания<br />

TIM1_CC2<br />

Ext_IT_11<br />

TIM1_CC3<br />

TIM2_CC2<br />

TIM3_TRGO<br />

TIM4_CC4<br />

Старт<br />

триггера(регуляр<br />

ная группа)<br />

EXTSEL[2:0] бит<br />

EXTRIG бит<br />

Прерывание АЦП в<br />

NVIC<br />

74


Блок схема двойного режима АЦП1,2<br />

VREF+<br />

VREF-<br />

VDDA<br />

ADCCLK<br />

ADC Prescalers:<br />

Div2, Div4, Div6 and Div8<br />

PCLK2<br />

VSSA<br />

ADC_IN0<br />

ADC_IN1<br />

.<br />

.<br />

.<br />

ADC_IN15<br />

GPIO<br />

Ports<br />

Темп датчик<br />

VREFINT<br />

ANALOG MUX<br />

До 4<br />

До 16<br />

До 4<br />

До 16<br />

ADC2 (slave)<br />

ADC1 (master)<br />

Инжектированные<br />

каналы<br />

Регулярные<br />

каналы<br />

Инжектированные<br />

каналы<br />

Регулярные<br />

каналы<br />

Регистры данных регулярной<br />

группы (12бит)<br />

Регистры данных регулярной<br />

группы (12бит)<br />

Регистры данных инжектированной<br />

группы(4x12бит)<br />

DMA запрос<br />

Регистры данных инжектированной<br />

группы(4x12бит)<br />

Шина адреса/данных<br />

Ext_IT_15<br />

TIM1_TRGO<br />

TIM1_CC4<br />

TIM1_TRGO<br />

TIM2_CC1<br />

TIM3_CC4<br />

TIM4_TRGO<br />

Старт<br />

триггера<br />

(инжетиров<br />

анная<br />

группа)<br />

JEXTRIG бит<br />

JEXTSEL[2:0] bits<br />

Dual mode<br />

control<br />

Аналоговый Watchdog<br />

Завершение<br />

преобразования<br />

Событие<br />

аналогового<br />

watchdog<br />

AWD EOC JEOC<br />

Завершение<br />

преобразования<br />

инжектированной<br />

группы<br />

Флаги<br />

TIM1_CC1<br />

TIM1_CC2<br />

TIM1_CC3<br />

TIM2_CC2<br />

TIM3_TRGO<br />

TIM4_CC4<br />

Старт<br />

триггера(регуляр<br />

ная группа)<br />

EXTRIG юит<br />

Регистр верхнего порога<br />

(12бит)<br />

Регистр нижнего порога<br />

(12бит)<br />

AWDIE<br />

EOCIE JEOCIE<br />

Биты разрешения<br />

прерывания<br />

Ext_IT_11<br />

EXTSEL[2:0] биты<br />

Прерывание АЦП в<br />

NVIC<br />

75


Схема АПЦ3(<strong>STM32</strong>_HD)<br />

VREF+<br />

VREF-<br />

VDDA<br />

VSSA<br />

ADCCLK<br />

ADC Prescalers:<br />

Div2, Div4, Div6 and Div8<br />

PCLK2<br />

ADC_IN4<br />

ADC_IN5<br />

.<br />

.<br />

.<br />

ADC_IN8<br />

GPIO<br />

Ports<br />

Темп датчик<br />

VREFINT<br />

ANALOG MUX<br />

До 4<br />

До<br />

16<br />

ADC3<br />

Инжектированные<br />

каналы<br />

Регулярные<br />

каналы<br />

Аналоговый Watchdog<br />

Regular data register<br />

(12бит)<br />

Завершение<br />

преобразования<br />

Регистры данных инжектированной<br />

группы (4x12бит)<br />

Завершение<br />

преобразования<br />

Запрос DMA<br />

Шина адреса/данных<br />

TIM1_TRGO<br />

TIM1_CH4<br />

TIM3_CH3<br />

TIM8_CH2<br />

TIM8_CH4<br />

TIM5_TRGO<br />

TIM5_CH4<br />

TIM3_CH1<br />

TIM2_CH3<br />

TIM1_CH3<br />

TIM8_CH1<br />

TIM8_TRGO<br />

TIM5_CH1<br />

TIM5_CH3<br />

Старт<br />

триггера<br />

(инжектиро<br />

ванная гр)<br />

JEXTRIG до<br />

JEXTSEL[2:0] бит<br />

Старт триггера<br />

(регулярная<br />

группа)<br />

EXTSEL[2:0] бит<br />

EXTRIG бит<br />

Регистр верхнего порога<br />

(12бит)<br />

Событие<br />

аналогового<br />

watchdog<br />

Регистр нижнего порога<br />

(12бит) AWD EOC JEOC<br />

AWDIE<br />

EOCIE JEOCIE<br />

Флаги<br />

Прерывание АЦП<br />

NVIC<br />

Биты разрешения<br />

прерывания<br />

76


Время семплирования<br />

‣ ADCCLK, до 14MГц, источник PCLK2 через предделитель(Div2, Div4,<br />

Div6 и Div8)<br />

‣ 3 бита программируемого времени семплирования для каждого<br />

канала:<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

1.5 цикла<br />

7.5 циклов<br />

13.5 циклов<br />

28.5 циклов<br />

41.5 циклов<br />

55.5 циклов<br />

71.5 циклов<br />

239.5 циклов<br />

PCLK2<br />

ADC Prescalers:<br />

Div2, Div4, Div6 and Div8<br />

ADCCLK<br />

ADC<br />

1.5 cycles<br />

7.5 cycles<br />

13.5 cycles<br />

28.5 cycles<br />

41.5 cycles<br />

55.5 cycles<br />

71.5 cycles<br />

239.5 cycles<br />

Sample Time Selection<br />

SMPx[2:0]<br />

77


АЦП. Последовательность преобразования<br />

‣ До 16 преобразований в любом порядке, различное время<br />

семплирования<br />

Пример: - Каналы преобразования: 1, 2, 8, 4, 7, 3 и 11<br />

- Различное время преобразования.<br />

- Оверсемпл канала 7<br />

Channel1 Channel2 Channel8 Channel4 Channel7 Channel7 Channel7 Channel3 Channel11<br />

1.5 cycles 13.5 cycles 7.5 cycles 7.5 cycles<br />

71.5 cycles<br />

28.5 cycles 1.5 cycles<br />

78


АПЦ. Режимы преобразования<br />

‣ 4 режима преобразования:<br />

Старт<br />

Старт<br />

CHx<br />

CHx<br />

Стоп<br />

Старт<br />

Старт<br />

Один канал<br />

Режим одиночного<br />

преобразования<br />

CHx<br />

.<br />

Один канал<br />

Режим непрерывного<br />

преобразования<br />

CHx<br />

.<br />

CHn<br />

CHn<br />

Стоп<br />

Многоканальный<br />

(сканирование)<br />

Режим одиночного<br />

преобразования<br />

Многоканальный(сканиров<br />

ание)<br />

Режим непрерывного<br />

преобразования<br />

79


АЦП. Возможности DMA<br />

‣ DMA(АПЦ1 и АЦП3)<br />

‣ Запросы DMA генерируются по каждому каналу по<br />

событию завершения преобразования регулярной группы<br />

(не для инжектированной группы)<br />

DMA<br />

запрос<br />

DMA<br />

запрос<br />

DMA<br />

запрос<br />

DMA<br />

запрос<br />

DMA<br />

запрос<br />

DMA<br />

запрос<br />

DMA<br />

запрос<br />

DMA<br />

запрос<br />

DMA<br />

запрос<br />

Канал 0 Канал 1 Канал 2 Канал 3 Канал 4 Канал 5 Канал 6 Канал 7 Канал 8<br />

Пример: - преобразование каналов: 0, 1, 2, 3, 4,<br />

Канал8 результат преобразования<br />

5, 6, 7 и 8<br />

ADC1 DR регистр<br />

.<br />

.<br />

.<br />

Канал 7 результат преобразования<br />

Канал 6 результат преобразования<br />

Канал 5 результат преобразования<br />

Канал 4 результат преобразования<br />

Канал 3 результат преобразования<br />

- Данные преобразования размещаются в<br />

памяти<br />

- DMA передача разрешена(автоинкрементирование<br />

данных)<br />

Канал 2 результат преобразования<br />

Канал 1 результат преобразования<br />

Канал 0 результат преобразования<br />

80


АЦП. Аналоговый watchdog<br />

‣ 12-бит программируемый верхний и низкий пороги<br />

‣ Генерация прерывания по обоим порогам<br />

ADC_IN0<br />

ADC_IN1<br />

.<br />

.<br />

.<br />

АналоговыйWatchdog<br />

Верхний порог<br />

Регистр статуса<br />

AWD<br />

ADC_IN15<br />

Низкий порог<br />

Температурный датчик<br />

VREFINT<br />

81


12-бит ЦАП<br />

Стандартная<br />

периферия:<br />

GPIO<br />

NVIC + EXTI<br />

Таймеры<br />

АЦП<br />

ЦАП<br />

FSMC<br />

• Два ЦАП – по 1 каналу на каждый<br />

• 8 или 12 бит выход<br />

• Левое или правое выравнивание данных в 12-бит<br />

режиме<br />

• Генерация шумового и треугольного сигналов<br />

LCD control<br />

• Двойной ЦАП канал с независимым преобразованием<br />

• DMA возможности для каждого канала<br />

• Требования питания ЦАП: 2.4 - 3.6В<br />

• Диапазон преобразования: 0 - 3.6В<br />

82


<strong>Семейство</strong> <strong>STM32</strong><br />

Инструменты разработчика


<strong>Семейство</strong> <strong>STM32</strong><br />

Инструменты разработчика<br />

Среды разработки/компиляторы


Keil, MDK - ARM<br />

‣ Средства разработки ПО:<br />

Передовая среда Keil uVision4 IDE<br />

Лучшие в классе инструменты компиляции<br />

ПО для ARM(MicroLib библиотека для<br />

максимальной компактности кода)<br />

Простое в изучении и<br />

использовании(Configuration Wizard, startup<br />

Code и примеры проектов)<br />

Встроенное RTX ядро<br />

‣ Отладка и оптимизация:<br />

Передовые средства анализа<br />

ETM инструкции трассировки(ULINKpro)<br />

Поцикловая история исполнения кода<br />

Данные трассировки – напрямую в ПК<br />

Тест и оптимизация вашего кода<br />

‣ www.keil.com


IAR, Embedded Workbench<br />

Ограниченная версия по объему<br />

кода 32K или полноценная на 30<br />

дней, доступны на<br />

www.iar.com/downloads<br />

IAR EW for ARM<br />

• С/С++ инструменты<br />

разработки и отладки<br />

• Поддержка всех МК<br />

<strong>STM32</strong><br />

IAR visualSTATE<br />

• Дизайна и отладка<br />

кода(UML)<br />

• Интеграция с IAR EW for<br />

ARM<br />

IAR KickStart Kits<br />

• Оценочные киты<br />

• Большинство МК <strong>STM32</strong><br />

Поддержка ПО/RTOS сторонних<br />

производителей<br />

IAR J-Link<br />

• Не дорогой JTAG/SWD<br />

программатор - отладчик<br />

IAR J-Trace<br />

• Программатор-отладчик с<br />

широким спектром возмождностей<br />

• Трассировка, ARM ETM v3/CoreSight


TrueSTUDIO/<strong>STM32</strong> (1/2)<br />

‣ Eclipse IDE с GNU C/C++ компилятором/отладчиком<br />

Адаптация к <strong>STM32</strong><br />

‣ Широкий спектр возможностей:<br />

PRO<br />

PRO<br />

PRO<br />

PRO<br />

PRO<br />

ARM Cortex – M3 компилятор/отладчик<br />

Компилятор/отладчик для ПК<br />

UML редакторы для графического моделирования<br />

Контроль версий (GUI клиент)<br />

База данных ошибок(GUI)<br />

Анализ кода программы<br />

‣ Не дорогой инструментарий:<br />

<br />

<br />

<br />

Версия Lite – без ограничений по<br />

размеру кода и времени!<br />

Используется ST – Link!<br />

Версия Professional – не дорогой<br />

инструментарий, поддержка<br />

дополнительных свойств!<br />

‣ Дополнительные пакеты:<br />

TrueANALYZER/<strong>STM32</strong> –<br />

динамический анализ кода на<br />

плате<br />

<br />

Подробнее на www.atollic.com


TrueSTUDIO/<strong>STM32</strong> (2/2)<br />

‣ ST-LINK программаторотладчик<br />

У STMicroelecronics и у<br />

дистрибьюторов<br />

Цена $25<br />

‣ Среда разработки Atollic<br />

TrueSTUDIO<br />

Загрузка с<br />

http://www.atollic.com/index.p<br />

hp/download<br />

Цена €995 для<br />

TrueSTUDIO/<strong>STM32</strong> Pro<br />

Бесплатное использование<br />

TrueSTUDIO/<strong>STM32</strong> Lite


ПО от Raisonance<br />

‣ Бесплатная среда Ride7<br />

‣ Пакет RKit-ARM с бесплатным<br />

компилятором GCC С/C++<br />

(ограничение в отладке),<br />

SIMICE симулятор<br />

‣ Большое количество<br />

оценочных наборов<br />

‣ Доступно на<br />

www.raisonance.com<br />

STX - RLINK


Обобщение средств разработки<br />

Производитель<br />

Keil<br />

IAR<br />

Среда<br />

разработки<br />

uVision4(M<br />

DK-ARM)<br />

Embedded<br />

Workbench<br />

С/С++<br />

компилятор<br />

ARM<br />

RealView<br />

C/C++<br />

IAR С/C++<br />

Atollic TrueSTUDIO Eclipse GNU<br />

C/C++<br />

Raisonance Ride7 +<br />

RKIT-ARM<br />

GNU C/C++<br />

Hitex HiTOP Altium/Taskin<br />

g VX C/C++<br />

Hitex GNU<br />

C/C++<br />

Ограничение<br />

на бесплатную<br />

версию<br />

32 Кб по<br />

компилируемо<br />

му коду<br />

32Кб и полная<br />

версия на 30<br />

дней<br />

Ограничение<br />

по<br />

функционалу<br />

Ограничение<br />

по<br />

отлаживаемом<br />

у коду(32Кб)<br />

Программатор<br />

- отладчик<br />

ULINK-ME<br />

ST-Link<br />

J-Link<br />

ST-Link<br />

ST – Link<br />

R-Link<br />

Tantino<br />

JTAG<br />

Website<br />

www.keil.com<br />

www.iar.com<br />

www.atollic.com<br />

www.raisonance.<br />

com<br />

www.hitex.com


Широкий спектр инструментов разработки<br />

Компиляторы и IDE<br />

Программаторы -<br />

отладчики<br />

IDE и отладчики, GNU компиляторы


Программа семинара<br />

‣ Семейства <strong>STM32</strong>, общий обзор<br />

МК общего применения - <strong>STM32</strong>F1x<br />

МК для беспроводных приложений - <strong>STM32</strong>W<br />

МК для низко - потребляющих приложений – <strong>STM32</strong>L<br />

‣ МК общего применения - <strong>STM32</strong>F1x<br />

Ядро ARM Cortex – M3<br />

Системная периферия<br />

Стандартная периферия<br />

Коммуникационная периферия<br />

‣ Инструментарий разработчика<br />

Среды разработки/компиляторы<br />

Отладочные наборы<br />

Библиотеки/RTOS<br />

Заключение<br />

96


<strong>Семейство</strong> <strong>STM32</strong><br />

Инструменты разработчика<br />

Отладочные наборы


<strong>STM32</strong> Primer 1 и Primer 2(Raisonance)<br />

‣ <strong>STM32</strong> Primer – не дорогой отладочный набор<br />

‣ Что входит:<br />

Primer 1 – отладочный модуль на основе<br />

<strong>STM32</strong>F10xB(128КБ flash), USB коннектор, 128<br />

х 128 цветной LCD, MEMS датчик, IrDA,<br />

зуммер(buzzer), светодиоды и кнопка<br />

Primer 2 – универсальный отладочный модуль<br />

на основе <strong>STM32</strong>F10xE(512КБ flash), 128 х 160<br />

цветной сенсорный экран, основанные на<br />

кодеке запись и воспроизведение аудио, Micro<br />

CD карта, IrDa, 20 – пин коннектор с<br />

выыеденными на него SPI, I2C, USART и<br />

свободные порты В/В<br />

Свободный инструментарий(GCC + Ride7),<br />

набор примеров<br />

www.raisonance.com<br />

98


<strong>STM32</strong> Performance Stick (Hitex)<br />

‣ <strong>STM32</strong> Performance Stick<br />

Все включено в комплект<br />

Встраиваемое ПО, приложения, руководства<br />

пользователя, диск<br />

Электропитание от USB<br />

‣ Демонстрация и оценка параметров <strong>STM32</strong><br />

Приложение для сравнения производительности<br />

Cortex – M3 и ARM7TDMI<br />

Режимы пониженного энергопотребления, питание<br />

от батарей RTC, автопробуждение<br />

‣ Полный комплект средств разработки от<br />

Hitex*<br />

Нет ограничений по размеру кода<br />

Полный спектр возможностей – редактирование,<br />

GNU компиляция, программирование flash и<br />

отладка средствами HiTOP, включая GNU и<br />

компилятор задач<br />

‣ Доступ ко всем ножкам в/в<br />

Разъем расширения<br />

Дополнительные платы – MEMS акселерометры,<br />

ZigBee, разнообразные датчики, камера…<br />

www.hitex.com<br />

* Для использования с Performance Stick после регистрации<br />

99


<strong>STM32</strong> ComStick (Hitex)<br />

‣ <strong>STM32</strong> ComStick<br />

Все включено в комплект<br />

Встраиваемое ПО, приложения, руководства<br />

пользователя, CD - диск<br />

Электропитание от USB<br />

‣ Демонстрация и оценка Ethernet, USB OTG,<br />

соединение:<br />

WEB – сервер с TCP/IP<br />

USB – мышь, USB - устройство<br />

‣ Полный комплект средств разработки от<br />

Hitex*<br />

Нет ограничений по размеру кода<br />

Полный спектр возможностей – редактирование,<br />

GNU компиляция, программирование flash и<br />

отладка средствами HiTOP<br />

‣ Доступ ко всем ножкам в/в<br />

Разъем расширения<br />

АЦП, ШИМ, GPIO<br />

$49<br />

* Для использования с ComStick после регистрации<br />

100


<strong>STM32</strong>10xx – EVAL от ST<br />

‣ Аппаратная платформа для исследования<br />

всех интерфейсов во всех линейках:<br />

<strong>STM32</strong>10B – EVAL<br />

<strong>STM32</strong>10C – EVAL<br />

<strong>STM32</strong>10E – EVAL<br />

<strong>STM32</strong>100B - EVAL<br />

‣ Возможен коннект ко всем ножкам в/в и<br />

всей периферии<br />

‣ Загрузка flash из встроенного ПО и демо –<br />

проекты для USB, CAN, SD карт, WEB –<br />

сервер и т.д.<br />

‣ Примеры проектов доступны с сайта<br />

www.st.com\mcu<br />

‣ Нет зависимости под определенную<br />

программную платформу, возможность<br />

использования с любой средой разработки<br />

и отладчиком<br />

101


Варианты <strong>STM32</strong>10xx – EVAL от ST<br />

Характеристики<br />

Оценочный набор<br />

<strong>STM32</strong>100B-EVAL <strong>STM32</strong>10B-EVAL <strong>STM32</strong>10C-EVAL <strong>STM32</strong>10E-EVAL<br />

МК <strong>STM32</strong><br />

<strong>STM32</strong>F100VB<br />

(128KБ)<br />

<strong>STM32</strong>F103RB<br />

(128KБ)<br />

<strong>STM32</strong>F107VCT<br />

(256KБ)<br />

<strong>STM32</strong>F103ZE<br />

(512KБ)<br />

20 – пин JTAG коннектор + + + +<br />

20-пин SWD/Viewer коннектор - - + +<br />

USART коннеторы 2 3 1 2<br />

SPI 1 1 1 1<br />

I2C 1 1 1 1<br />

CAN коннектор - 1 2 1<br />

USB коннектор - 1(device) 1, mini AB(OTG) 1(device)<br />

Ethernet коннектор - - 1 -<br />

I2S аудио ЦАП - - 1 1<br />

IrDa 1 1 1 1<br />

240 x 320 цветной LCD<br />

дисплей<br />

2.4” 2.4” 3.2”, сенсорный 2.4”<br />

SD/MMC коннектор 1ГБ или больше 512МБ или больше 512МБ 512МБ или больше<br />

RTC с батарейным питанием 1 1 1 1<br />

Внешняя FLASH 16МБ 8МБ - 64 или 128МБ<br />

Внешняя SRAM - - - 512КБ х 16<br />

Внешняя NAND - - - 512МБ или 1ГБ<br />

Внешняя NOR - - - 128МБ<br />

102


Оценочный набор - <strong>STM32</strong>10С – EVAL(1/2)<br />

Micro-AB коннектор<br />

Host<br />

OTG<br />

USB MP3 MSC demo<br />

USB HOST started<br />

Demo : Device Connected<br />

Initializing mass storage device<br />

Nbr of Sector : 1599662<br />

Sector Size : 512<br />

Parsing MP3 files …<br />

Playing xxx.mp3<br />

Device<br />

PLAY<br />

Micro SD или USB mass<br />

storage device<br />

Кнопки и джойстик<br />

103


Оценочный набор - <strong>STM32</strong>10С – EVAL(2/2)<br />

‣ USB OTG демо:<br />

базируется на uC/OS-II RTOS и uC/USB стек от Micrium (доступен<br />

бинарный формат)<br />

USB host:<br />

• HID - мышь и клавиатуры<br />

• Mass storage поддерживает USB flash диски. Музыкальный плеер,<br />

поддержка mp3 и wav, файлы расположены на USB flash диске<br />

‣ USB OTG – host и device<br />

‣ USB device демо<br />

Базируется на бесплатной USB библиотеке от ST(доступны исходники)<br />

Mass storage использует Micro SD flash карту а качестве диска<br />

HID – эмуляция компьютерной мыши<br />

CDC – виртуальный COM - порт<br />

104


Управление двигателями – <strong>STM32</strong>10B - MCKIT<br />

‣ <strong>STM32</strong>10B - MCKIT<br />

‣ Набор включает<br />

<br />

<br />

<br />

<br />

Плата управления <strong>STM32</strong><br />

Плата инвертора<br />

Моторы<br />

JTAG адаптер и плата развязки<br />

‣ Бесплатная библиотека управления двигателями<br />

<br />

<br />

<br />

PMSM и AC индукционными моторами<br />

Field-oriented управление<br />

Датчики<br />

‣ Определенный кит для управления<br />

моторами и поддержкой PFC<br />

STEVAL-IHM022V1 демонстрация<br />

двух моторов<br />

STEVAL-ISF002V1 для<br />

PFCдрайвера<br />

105


Micrium µC-OS/III и <strong>STM32</strong>F107 оценочная плата<br />

‣ Новый пакет RTOS µC-OS/III от Micrium : книга(2 части) и оценочная плата<br />

на <strong>STM32</strong>F107<br />

1 часть - описание µC/OS-III<br />

2 часть – примеры использования µC/OS-III с популярным семейством<br />

<strong>STM32</strong><br />

‣ Доступно на Amazon, цена - $179.95<br />

‣ На сайте ST: <strong>STM32</strong>CMICOS-EVAL


Micrium µC/TCP-IP книга и μC/Eval-<strong>STM32</strong>F107<br />

оценочная плата<br />

‣ Новая книга µC/TCP-IP от Micrium - использование TCP/IP стека<br />

Первая часть включает обзор основ Internet протокола, также затрагивает<br />

различные аспекты реализации и использования стека μC/TCP- IP<br />

Вторая часть посвящена использованию оценочной платы μC/Eval-<strong>STM32</strong>F107 с<br />

ПО Micrium(IAR EW,анализатор сети wireshark ), примеры для отладочной платы,<br />

возможно использовать совместно с книгой μC/OS-III<br />

‣ Книга доступна с сайта ST под part # <strong>STM32</strong>CMICTCP-BK Цена - $99<br />

‣ Доступна на Amazon.com


TE-<strong>STM32</strong>F107 «Барракуда»<br />

ТЕРРАЭЛЕКТРОНИКА – www.terraelectronica.ru<br />

TE-<strong>STM32</strong>F107 «Барракуда»<br />

~ 70$<br />

• <strong>STM32</strong>F107VCT6(72МГц, 64Кб/256Кб)<br />

• Ethernet разъем c драйвером<br />

• mini USB 2.0 FS OTG<br />

• 2 разъема UART<br />

• 2 разъема CAN с драйвером<br />

• аудиоусилитель и динамик<br />

• 31 линия портов В/В на разъеме<br />

• JTAG 2x10<br />

• разъем питания +7.5…9.0В<br />

• Проект демонстрационной программы в<br />

среде IAR Workbench<br />

• Документация на компоненты<br />

• Схемы на плату<br />

• Установочные файлы IAR Workbench и<br />

Flash Loader Demonstrator<br />

108


TE-<strong>STM32</strong>F103 «Махаон»<br />

ТЕРРАЭЛЕКТРОНИКА – www.terraelectronica.ru<br />

TE-<strong>STM32</strong>F103 «Махаон»<br />

~ 70$<br />

• <strong>STM32</strong>F103RET3(72МГц, 64Кб/512Кб)<br />

• micro SD слот<br />

• mini USB USB 2.0 FS<br />

• mini USB мост USB-UART<br />

• JTAG 2x10<br />

• CAN-порт<br />

• кнопка RESET<br />

• разъем питания +5В<br />

• Проект демонстрационной программы в<br />

среде IAR Workbench<br />

• Драйвер моста USB - UART<br />

• Документация и схемы на плату<br />

• Установочные файлы IAR Workbench и<br />

Flash Loader Demonstrator<br />

• Установочные файлы ECLIPSE/GCC и<br />

руководство по установке<br />

109


<strong>STM32</strong> Discovery kit<br />

‣ Поддерживается инструментариями<br />

<br />

ECLIPSE Dev Tools : Free Atollic TrueSTUDIO®<br />

Lite version – без ограничений по времени и<br />

размеру кода<br />

<br />

<br />

IAR EWARM<br />

KEIL MDK-ARM<br />

‣ Большое количество примеров и<br />

документация на www.st.com/stm32-<br />

discovery для быстрого старта и работы с<br />

семейством <strong>STM32</strong> Value line<br />

‣ Официальное наименование<br />

– <strong>STM32</strong>VLDISCOVERY<br />

Цена:<br />

$9.90<br />

Самый простой и дешевый путь начать работу с <strong>STM32</strong>!


Плата - <strong>STM32</strong>VLDISCOVERY<br />

‣ Встроенный ST-LINK с внешним<br />

коннектором SWD<br />

‣ Разработан для электропитания<br />

от USB или внешнего источника<br />

5В или 3.3В<br />

‣ Возможность применения как<br />

встраиваемого модуля<br />

‣ Два пользовательских<br />

светодиода (зеленый и голубой)<br />

‣ Одна пользовательская кнопка<br />

‣ Свободные выводы выведены на<br />

внешний разъем<br />

ST-LINK<br />

SWD connector<br />

<strong>STM32</strong>F100RBT6B<br />

User button<br />

Led Blue<br />

Led Green<br />

84mm<br />

42mm


Программа семинара<br />

‣ Семейства <strong>STM32</strong>, общий обзор<br />

МК общего применения - <strong>STM32</strong>F1x<br />

МК для беспроводных приложений - <strong>STM32</strong>W<br />

МК для низко - потребляющих приложений – <strong>STM32</strong>L<br />

‣ МК общего применения - <strong>STM32</strong>F1x<br />

Ядро ARM Cortex – M3<br />

Системная периферия<br />

Стандартная периферия<br />

Коммуникационная периферия<br />

‣ Инструментарий разработчика<br />

Среды разработки/компиляторы<br />

Отладочные наборы<br />

Библиотеки/RTOS<br />

Заключение<br />

114


<strong>Семейство</strong> <strong>STM32</strong><br />

Инструменты разработчика<br />

Библиотеки ПО/RTOS


Бесплатные программные решения от ST<br />

Стандартная<br />

библиотека ПУ<br />

USB device<br />

библиотека<br />

Библиотека<br />

управления<br />

двигателями<br />

Самотестирование<br />

EN/IEC 60335-1<br />

Class B<br />

DSP Библиотека<br />

SPEEX кодеки<br />

Библиотека<br />

шифрования


Библиотеки ПО – быстрый выход на рынок<br />

‣ Библиотеки от ST доступны на www.st.com/mcu<br />

‣ Исходные коды на C - для облегчения работы и быстрого<br />

выхода на рынок любого приложения<br />

‣ Стандартная библиотека - драйвера для всей<br />

периферии <strong>STM32</strong>(HAL), MISRA C, поддерживается всеми<br />

компиляторами<br />

‣ Библиотека управления двигателями - безсенсорное<br />

векторное управление 3-фазными бесщёточными моторами<br />

‣ DSP библиотека – набор функций для приложений с ЦОС(ПИД<br />

–регуляторы, БПФ, КИХ и БИХ фильтры (бесплатно, подпись<br />

лицензии)<br />

‣ USB – библиотека(device, OTG в Q1 2011):<br />

Стандартный ANSI – C, поддержка большинства<br />

USB классов(mass storage, HID, DFU, CDC, audio)


Библиотеки <strong>STM32</strong><br />

Программное<br />

обеспечение<br />

Описание<br />

доступ<br />

ность<br />

Standard library От ST: Исходные файлы реализации всей стандартной периферии ДА<br />

USB software library<br />

От ST: Пакет ПО для простой реализации операций обмена<br />

данными USB, сертифицирован www.usb.org<br />

USB OTG Library От партнеров: micrium ДА<br />

Motor Control library<br />

Ethernet software<br />

Encryption library<br />

DSP Library<br />

От ST: безсенсорное векторное управление 3-фазными<br />

бесщёточными моторами<br />

От ST: Бесплатный TCP/IP стек «NicheLite» от Interniche<br />

От партнеров: разнообразные решения<br />

От ST: Оптимизированная библиотека шифрования с DES, TDES и<br />

AES-ECB 128бит симметричным ключом<br />

От ST: Оптимизированная DSP библиотека с PID контроллером,<br />

БПФ, БИХ и КИХ фильтрами<br />

Touch Sensing Suite От ST: Touch sensing библиотека ДА<br />

SPEEX Speech Codec<br />

Bluetooth software<br />

Graphic Library<br />

EN/IEC 60335-1<br />

Class B<br />

От ST: Аудио - кодек SPEEX , высокая степень сжатия, хорошее<br />

качество звука<br />

От ST: Bluetooth, <strong>STM32</strong> и STLC2500D, поддержка HID и обмен<br />

данными<br />

От партнеров: SEGGER emWin, графическая библиотека, ANSI<br />

"C" для <strong>STM32</strong><br />

От ST: библиотека самотестирования для использования в<br />

бытовой аппаратуре<br />

ДА<br />

ДА<br />

ДА<br />

ДА<br />

ДА<br />

ДА<br />

ДА<br />

ДА<br />

ДА


Библиотека - IEC60335, Class B<br />

‣ IEC60335-1 Ed4 предназначен для гарантирования<br />

безопасности пользования домашней<br />

аппаратурой(бытовой):<br />

Риски от пожара(чрезмерная температура мотора)<br />

Механические повреждения(чрезмерная<br />

разбалансировка машины)<br />

Электрические повреждения<br />

‣ Решения по большинству аспектов:<br />

Механика<br />

Материалы<br />

PCB дизайн<br />

Электронные компоненты<br />

120


Аудио – решения для <strong>STM32</strong> от STMicro<br />

‣ <strong>STM32</strong> Spirit DSP библиотека для MP3 кодека, WMA<br />

декодера, дополнительные функции – эквалайзеры,<br />

контроль громкости и приглушения звука<br />

Для приложений – авто радио, домашнего аудио, высокое<br />

качество воспроизведения или записи с сжатием<br />

‣ <strong>STM32</strong>F10xxx Speex библиотека<br />

Для приложений – VoIP устройства, цифровая запись или<br />

воспроизведение голоса(podcast)<br />

‣ Аудио – решения от 3х производителей ПО


Библиотека шифрования для <strong>STM32</strong><br />

‣ Encryption library - AES-ECB 128 шифрование для<br />

<strong>STM32</strong>F103x<br />

Оптимизированная библиотека шифрования для <strong>STM32</strong><br />

Решение реализовано для шифрования данных<br />

AES-ECB – алгоритм на основе симметричного ключа 128 бит с <strong>STM32</strong> Cortex-M3<br />

обеспечивает отличную производительность и серьезную защиту данных<br />

The AES-ECB 128 бит для <strong>STM32</strong> доступна под запрос для инструментариев от<br />

Keil, IAR и Hitex у регионального представителя


Возможности <strong>STM32</strong> DSP - библиотеки<br />

‣ <strong>STM32</strong> DSP – библиотека обеспечивает:<br />

ПИД – регулятор на “C” и ассемблере<br />

16-бит БПФ: по основанию 4-, 64-, 256- и 1024-точки,<br />

реализация на ассемблере<br />

КИХ - фильтры: 16-бит, 32-коэффициента<br />

БИХ - фильтры:<br />

• 16 - бит каноническая форма, 4 порядок<br />

• 16 – бит прямая форма, 8 порядок<br />

‣ API описан в User Manual<br />

‣ Поддерживается IAR, Keil, Raisonance


Библиотека речевого кодека <strong>STM32</strong> SPEEX<br />

Вход с микрофона,<br />

частота<br />

семплирования 8KГц<br />

через встроенный<br />

12-бит 1мкс АЦП<br />

Декодирование речи на<br />

16-бит ШИМ таймере<br />

Динамик<br />

Микрофон<br />

Конвертирование,<br />

кодирование и компрессия с<br />

коэффициентом 16:1 на<br />

8Кбит/c<br />

• SPEEX – кодирование, декодирование. И<br />

компрессия с открытыми исходными<br />

кодами<br />

• Высокий уровень компрессии с хорошим<br />

качеством звука<br />

• Применение - автоответчики,<br />

промышленные и бытовые системы<br />

безопасности, медицинское<br />

оборудование….<br />

Кодер Размер FLASH 32Kб<br />

Размер RAM<br />

Кодирование на<br />

72MHz, загрузка ЦПУ<br />

6.5Кб<br />

52%<br />

Декодер Размер FLASH 32KB<br />

Размер RAM<br />

Декодирование на<br />

72MГц, загрузка ЦПУ<br />

3.7KB<br />

8%


«Размер» RTOS<br />

RTOS Разработчик Website ROM RAM<br />

CMX – RTX CMX http://www.cmx.com/ < 10Кб < 1Кб<br />

eCosPro eCosCentric http://www.ecoscentric.com/ 2Кб < 1Кб<br />

ThreadX Express Logic http://www.rtos.com/ 2Кб - 20Кб<br />

FreeRTOS FreeRTOS http://www.freertos.com/ 4.2Кб 1Кб<br />

PowerPac IAR http://www.iar.com/ 2Кб - 4Кб 51 байт<br />

ARTX-ARM Keil / ARM http://www.keil.com/arm/ 6Кб 0.5Кб<br />

uC/OSII Micrium http://www.micrium.com/ 16Кб 2Кб<br />

SMXARM Micro Digital http://www.smxrtos.com/ < 20Кб < 5Кб<br />

SMXFS Micro Digital http://www.smxrtos.com/<br />

RTXCQuadros<br />

Quadros<br />

Systems<br />

33Kб(17Кб<br />

)<br />

24Кб(3Кб<br />

)<br />

http://www.quadros.com/ < 20Кб < 4Кб<br />

emWIN Segger http://www.segger.com/ 2Кб 52 байта<br />

emBOS Segger http://www.segger.com/ 2Кб<br />

20<br />

байт/окно<br />

‣ http://www.st.com/internet/com/software/operating_systems.jsp#<strong>STM32</strong>


FreeRTOS и <strong>STM32</strong><br />

Уровень приложения<br />

Задача 1 Задача 2<br />

Задача n<br />

HAL<br />

FreeRTOS<br />

Portable Layer<br />

ST Standard Library<br />

v3.0.0


Пояснения перед использованием<br />

библиотеки стандартных устройств<br />

‣ Библиотека написана на ANSI – C<br />

На ANSI – C написаны все примеры и вся библиотека<br />

‣ Термин PPP используется для обобщения любого периферийного<br />

устройства, например TIM для таймера<br />

‣ Регистры и структуры<br />

Имена регистров <strong>STM32</strong>F10x «отражают» адресное пространство МК<br />

• Регистры библиотека стандартных устройств имеют такие же<br />

имена, как в документации/app notes на МК <strong>STM32</strong>F10x<br />

Доступ ко всем регистрам производится через С структуры:<br />

• Работа только с одним базовым адресом и косвенной адресацией<br />

• Улучшенное повторное использование кода, например одинаковая<br />

структура для работы с 3 USARTs


Архитектура библиотеки стандартных устройств<br />

Исходные коды драйверов периферии<br />

Исходные файлы CMSIS<br />

Исходные файлы разработчика<br />

Микроконтроллер <strong>STM32</strong>


Использование библиотеки стандартных<br />

устройств (1/4)<br />

‣ Для использования периферийного модуля:<br />

stm32f10x_ppp.h и stm32f10x_ppp.c файлы должны быть<br />

добавлены в проект<br />

Отредактируйте файл stm32f10x_conf.h и разкомментируйте<br />

следующие строки<br />

• #include “stm32f10x_ppp.h”<br />

‣ Включите строку в вашу программу(main.c):<br />

• #include “stm32f10x.h”<br />

• Отредактировать файл stm32f10x.h – выберите микроконтроллер<br />

‣ Включите исходные файлы CMSIS в ваш проект<br />

‣ Для установки частот тактирования используйте <strong>STM32</strong>F10x системный<br />

файл “system_stm32f10x.c” из библиотеки CMSIS<br />

‣ В основном файле проекта main.c, необходимо объявить структуру<br />

PPP_InitTypeDef: PPP_InitTypeDef PPP_InitStructure<br />

• PPP_InitStructure – рабочая переменная, расположенная в RAM и<br />

позволяет вам инициализировать один или более экземпляров PPP<br />

130


Использование библиотеки стандартных<br />

устройств (2/4)<br />

‣ Заполните переменную(поля структуры) PPP_InitStructure<br />

соответствующими значениями<br />

Конфигурация всей структуры:<br />

• PPP_InitStructure.member1 = val1;<br />

• PPP_InitStructure.member2 = val2;<br />

• ….<br />

• PPP_InitStructure.member1 = valN;<br />

Или сделать это так:<br />

• PPP_initTypeDef PPP_InitStructure = {val1, val2,…, valN}<br />

Это сократит и оптимизирует ваш конечный код<br />

Конфигурация нескольких полей структуры:<br />

• PPP_StructInit(&PPP_InitStructure);<br />

• PPP_InitStructure.memberX = valX;<br />

• PPP_InitStructure.memberX = valY;<br />

131


Архитектура библиотеки стандартных устройств


Использование библиотеки стандартных<br />

устройств (3/4)<br />

‣ Для инициализации периферийного модуля PPP необходимо вызвать<br />

функции PPP_Init(…):<br />

• PPP_Init(PPPx, &PPP_InitStructure);<br />

‣ На этой стадии периферийный модуль PPP проинициализирован, далее<br />

необходимо разрешить его работу функцией PPP_Cmd(…);<br />

• PPP_Cmd(PPPx, ENABLE);<br />

‣ Для доступа к функциям периферийного модуля PPP, необходимо<br />

использовать определенные для него специфичные функции. Функционал<br />

необходимо смотреть в руководстве «<strong>STM32</strong>F10x Firmware Library User<br />

Manual».<br />

‣ Примечание:<br />

Перед конфигурированием периферии, вам необходимо разрешить<br />

тактирование шин:<br />

• RCC_AHBPeriphClockCmd(RCC_AHBPeriph_PPPx, ENABLE);<br />

• RCC_APB2PeriphClockCmd(RCC_APB2Periph_PPPx, ENABLE);<br />

• RCC_APB1PeriphClockCmd(RCC_APB1Periph_PPPx, ENABLE);


Использование библиотеки стандартных<br />

устройств (2/4)<br />

Функцию PPP_DeInit(…) можно использовать для сброса значений<br />

периферийного модуля PPP:<br />

• PPP_DeInit(PPPx);<br />

Если периферийный модуль PPP уже сконфигурирован, вы можете<br />

модифицировать одно или более значений следующим образом:<br />

• PPP_InitStructure.memberX = valX;<br />

• PPP_InitStructure.memberY = valY;<br />

• PPP_Init(PPPx, &PPP_InitStructure);


ПО от сторонних производителей и RTOS<br />

lwIP<br />

Широкий выбор решений:<br />

– ОС реального времени<br />

– Стеки USB Host/OTG и Ethernet<br />

– Графические библиотеки


USB решения


Библиотека USB OTG<br />

• Бесплатная USB Device библиотека от ST (Ansi-C),<br />

поддержка большинства USB классов:<br />

– Mass storage, HID, DFU, CDC, Audio<br />

• Бесплатное USB Host Mass storage решение от ST<br />

Fee USB device<br />

library from ST<br />

“uC/USB OTG” Micrium<br />

stack Architecture<br />

USB OTG классы от<br />

сторонних производителей,<br />

например от Micrium с<br />

собственным “μC/USB-<br />

OTG” стеком


<strong>STM32</strong>F10x USB developer Kit<br />

<strong>STM32</strong>F10x USB Library<br />

- USB 2.0 full speed<br />

- Соблюдение ANSI-C<br />

- Независима от инструментария<br />

разработчика<br />

- Все документировано<br />

<strong>STM32</strong>F10x USB Developer Kit<br />

demos<br />

- Покрывает все типы обмена<br />

данными USB<br />

- Не зависит от инструментария<br />

разработчика<br />

- Работа и тест на отладочной плате<br />

от ST - <strong>STM32</strong>F10x-EVAL и может<br />

быть просто портирован на любую<br />

другую платформу


Программные решения USB OTG<br />

Logo<br />

Company Product Website<br />

HCC-Embedded<br />

USB<br />

www.hcc-embedded.com, /www.hccembedded.com/en/solution/st_micro<br />

IAR PowerPac USB www.iar.com, www.iar.com/st<br />

Micrium<br />

Micro Digital<br />

µC/USB Host<br />

µC/USB OTG<br />

smxUSBH<br />

smxUSBO<br />

www.micrium.com,<br />

www.micrium.com/st/index.html<br />

www.smxrtos.com,<br />

www.smxrtos.com/stmicro.htm<br />

Quadros Systems RTXCusb www.quadros.com<br />

Segger emUSB www.segger.com


Ethernet решения


Ethernet демо на <strong>STM32</strong>10C-EVAL<br />

Демонстрационное ПО состоит:<br />

– NicheLite TCP/IP стек<br />

– DHCP клиент<br />

– Простой HTTP сервер<br />

– TFTP клиент и сервер<br />

– Виртуальная файловая система<br />

– NicheTask ОС ядро<br />

Webserver demo


Программное обеспечение Ethernet<br />

‣ Ethernet пакет для Connectivity<br />

Line доступен с офиц сайта ST<br />

Низкоуровневый драйвер.<br />

Беспл демо версии на NicheLite стеке:<br />

DHCP клиент, TFTP клиент/сервер,<br />

вебсервер, UDP/TCP клиент/сервер и<br />

NicheFile VFS.<br />

Распространение с офиц сайта<br />

niche, ссылка с сайта ST<br />

Бесплатный демо веб-сервер<br />

базирующийся на uIP v0.9 стеке:<br />

AN3000 “Configuring the NicheLite<br />

TCP/IP stack for the <strong>STM32</strong>F107xx<br />

microcontroller”:<br />

Сконфигурированный NicheLite<br />

стек для Connectivity Line: управление<br />

памятью, производительность...<br />

‣ ПО от 3х сторон<br />

Другие TCP/IP также поддерживаются<br />

Connectivity line (Keil, Micrium, IAR,<br />

Segger, CMX, Quadros, MicroDigital…)<br />

142


Open Source решения Ethernet<br />

‣ lwIP и uIP – портированы для <strong>STM32</strong><br />

“Connectivity line”<br />

‣ Поддерживаются GCC - Eclipse, IAR IDE и<br />

CrossStudio IDE<br />

‣ WEB сервер демо базируется на lwIP(v1.3),<br />

уже доступно


Ethernet Software solutions from Micrium<br />

‣ Micrium µC/TCP-IP<br />

Базируется на RFCs<br />

ANSI C<br />

‣ Приложения:<br />

DHCP (client), DNS (client),<br />

FTP (client and server), TFTP<br />

(client and server)<br />

HTTP (web server), SMTP (client),<br />

POP3 (client),<br />

SNTP (client), Telnet (server),<br />

Shell, Clock<br />

From Third Parties:<br />

SNMP v1, v2, v3<br />

VoIP<br />

‣ И даже больше на<br />

www.micrium.com<br />

‣ Простота портирования<br />

Совместим с любой RTOS<br />

Совместим с большинством<br />

32 бит ЦПУ<br />

Бесплатные драйвера<br />

‣ Малый объем памяти<br />

(конфигурируется от 75 до<br />

120 Kб)<br />

‣ Эффективность<br />

Минимум критических секций<br />

Маленькие и большие буфера<br />

пакетов<br />

• Эффективное<br />

использование памяти<br />

• Большая гибкость


Аппаратные решения Ethernet PHY от ST<br />

Ethernet PHY<br />

Производитель<br />

Part#<br />

I/F<br />

поддержка Корпус<br />

Размер<br />

ST<br />

ST802RT1A<br />

http://www.st.com/stonline/products/literature/b<br />

d/15166/st802rt1.pdf<br />

MII/RMII/SMII TQFP48 7x7<br />

ST<br />

E-STE100P<br />

http://www.st.com/stonline/products/literatu<br />

re/ds/6806.pdf<br />

MII TQFP64 10x10<br />

Другие производители PHY: National, Realtech, SMSC,Micrel, Marvell..


<strong>STM32</strong>F107+ST802RT1A Ethernet PHY<br />

STEVAL-PCC010V1 демо плата<br />

STEVAL-PCC010V1 демо плата:<br />

RRP 70EUR<br />

MII/RMII<br />

System clock 25/50 MHz


Power over Ethernet (PoE) Solution from<br />

STEVALPM8800A-HP Eval board<br />

Data+Power<br />

Data<br />

<strong>STM32</strong>10C-Eval<br />

или<br />

Любая плата с Ethernet<br />

коннектором (RJ45)<br />

Power


Решения Ethernet от 3х лиц<br />

Logo<br />

Company<br />

Product<br />

Website<br />

IAR PowerPac TCP/IP www.iar.com, www.iar.com/st<br />

Interniche NicheLite www.iniche.com, www.st.com/mcu<br />

Keil RL-TCPnet www.keil.com<br />

Micrium µC/TCP-IP www.micrium.com, www.micrium.com/st/index.html<br />

Micro Digital smxNS www.smxrtos.com, www.smxrtos.com/stmicro.htm<br />

Quadros Systems RTXC QuadnetRTXC Quark www.quadros.com<br />

Segger embOS/IP www.segger.com


Вся информация на www.st.com/stm32<br />

‣ Более 40 AppNotes<br />

‣ Все Datasheets, Manuals, Errata<br />

‣ Все ПО<br />

‣ Вся документация на отладочные<br />

наборы<br />

‣ И даже больше


Программа семинара<br />

‣ Семейства <strong>STM32</strong>, общий обзор<br />

МК общего применения - <strong>STM32</strong>F1x<br />

МК для беспроводных приложений - <strong>STM32</strong>W<br />

МК для низко - потребляющих приложений – <strong>STM32</strong>L<br />

‣ МК общего применения - <strong>STM32</strong>F1x<br />

Ядро ARM Cortex – M3<br />

Системная периферия<br />

Стандартная периферия<br />

Коммуникационная периферия<br />

‣ Инструментарий разработчика<br />

Среды разработки/компиляторы<br />

Отладочные наборы<br />

Библиотеки/RTOS<br />

Заключение<br />

150


Защита и безопасность<br />

‣ Резервное тактирование<br />

‣ Два WDG<br />

‣ Защита Flash<br />

‣ Anti-tamper<br />

‣ CRC 32 - бит<br />

‣ Уникальный ID<br />

‣ Резервные регистры<br />

‣ Детектирование<br />

аварийных ситуаций<br />

‣ Блокировка<br />

портов В/В<br />

‣ Pin to Pin


Минимальное количество внешних<br />

компонент<br />

‣ Встроенный супервизор<br />

Filtered reset input, Power-On reset, Low-Voltage Detect, Brown-<br />

Out Detect, Watchdog Timer с независимым источником<br />

тактирования<br />

‣ One main crystal drives entire system (with<br />

help from PLL)<br />

Inexpensive 4-16 MHz crystal drives CPU, USB, all peripherals<br />

‣ Встроенный 8 MГц RC может использоваться<br />

как основной источник<br />

Опциональный 32КГц источник необходим для RTC, но также<br />

может тактироваться от встроенного 40КГц RC<br />

‣ Только 7 внешних пассивных компонентов<br />

для LQFP100 корпуса!!!


<strong>STM32</strong> – реализация ваших решений<br />

‣ Разработка приложений на современном ARM Cortex – M3 ядре и<br />

архитектуре <strong>STM32</strong> c 2007 года<br />

‣ Новые <strong>STM32</strong> VL и XLD расширяют возможности семейства <strong>STM32</strong><br />

‣ <strong>STM32</strong> –одно из самых больших портфолио на ARM Cortex-M3<br />

‣ 110 номенклатурных единиц, 5 линеек, разнообразная периферия<br />

‣ Масштабируемость<br />

‣ <strong>Семейство</strong>м <strong>STM32</strong> привносит новые возможности, комбинируя:<br />

‣ 32-бит производительность(ARM Cortex-M3) и превосходные<br />

характеристики реального времени<br />

‣ Превосходные параметры энергопотребления<br />

‣ Первоклассная периферия<br />

‣ Максимальная интеграция<br />

‣ Широкий выбор инструментов разработки и ПО<br />

‣ STMicroelectronics изменяет рынок МК


Полная информация о <strong>STM32</strong><br />

Вся документация <strong>STM32</strong>,<br />

программные и аппаратные решения<br />

Вы можете найти на :<br />

www.st.com/stm32

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!