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