Upload
others
View
8
Download
0
Embed Size (px)
Citation preview
Высокопроизводительные
STM32F2
Попов Роман + ST
Декабрь 2011
8
Улучшенная производительность 1/2
Очень высокая производительность: 150MIPS на 120МГц
Запатентованный акселератор ускорения памяти (ART accelerator
- Adaptive Real Time) позволяет выполнять код с 0
задержками(wait-state) на 120МГц, обеспечивающий STM32 F-2
наивысшую производительность среди всех ядер Cortex M3 на
рынке - 150DMIPS на 120МГц.
Совместно с Branch Cache, производительность и потребление
значительно улучшены.
9
Улучшенная производительность 2/2
Низкое динамическое потребление: менее 23мА при 120МГц
Комбинация высокой производительности и низкое
потребление в динамике
150мкA в режжиме Stop
< 1мкA в режиме VBAT при RTC ON, (2мкA с backup SRAM ON).
2мкА в режиме Standby(3мкА с backup SRAM ON).
1.8В (мин) - 3.6В (макс) напряжение питания
Опция Regulator Bypass(в 2х корпусах)
32-бит матрица шин (7 уровней) для параллеллизма
CPU и некоторая высокоскоростная периферия могут
работать параллельно
51/82/114/140 I/Os
USB 2.0 OTG
FS/HS
Encryption**
Camera Interface
3x 12-bit ADC 24 channels / 2Msps
3x I2C
Up to 16 Ext. ITs
Temp Sensor
2x16-bit PWM Synchronized AC Timer
2x Watchdog (independent & window)
5x 16-bit Timer
2x DAC + 2 Timers
2 x USART/LIN
1 x SPI
1 x Systic Timer
Clock Control
RTC / AWU
4KB backup RAM
Ethernet MAC
10/100, IEEE1588
USB 2.0 OTG FS
4x USART/LIN
1x SDIO
XTAL oscillators 32KHz + 8~25MHz
Power Supply Reg 1.2V
POR/PDR/PVD
PLL
Int. RC oscillators 32KHz + 16MHz
3 x 16bit Timer
2x 32-bit Timer
2x CAN 2.0B
2 x SPI / I2S
Для USB HS необходим внешний PHY, соединенный через интерфейс ULPI ,
** Шифрование доступно только в STM32F217
10
Функциональная схема STM32F2xx Cortex-M3 с MPU и ETM
Память
До 1Mб FLASH
128Kб RAM
FSMC до 60МГц
Новая периферия
USB OTG HS с ULPI интерфейсом
Интерфейс камеры
HW кодирование**: DES, 3DES, AES
256-бит, SHA-1 hash, RNG.
Расширенная периферия
USB OTG Full Speed
АЦП: 0.5мкс(2Msps), до 6Msps в
тройном режиме работы
АЦП/ЦАП функционируют до 1.8В
Выделенный PLL для I2S
Ethernet с HW IEEE1588 v2.0
32-бит RTC с календарем
4Kб backup SRAM в VBAT domain
Улучшенные 1% RC
2 x 32бит и 8 x 16бит таймеры
USART до 7.5Mбит/с
SPI до 30Mбит/с
RDP (JTAG fuse)
Больше I/O в 176 корпусе
Bridge
Bridge APB1 (max 30MHz)
AR
M ®
32
-bit m
ulti-A
HB
bus m
atr
ix
Arb
iter
(max 1
20M
Hz)
Fla
sh I/F
CORTEX M3 CPU+ MPU 120 MHz
128KB SRAM
JTAG/SW Debug
DMA
16 Channels
Nested vect IT Ctrl
ETM
512kB- 1MB Flash Memory
External Memory Interface
AHB1
(max 120MHz)
AHB2 (max 120MHz)
AP
B2
(m
ax 6
0M
Hz)
11
Линейки STM32F-2
3x12-bit ADC 0.5µs
Temp sensor
Up to
128KB
SRAM
120MHz
CPU
Все варианты включают:
6xUSART, 3xSPI,3xI2C
Main Osc 8-25MHz
Up to 16 channels DMA
2 x Watchdogs
Multiple 16-bit and 32-
bit TIMERS
80% GPIO ratio
Up to1MB FLASH
Internal 16 MHz RC
and 32 kHz RC
Reset circuitry
Real Time Clock
Dual DAC
ETM
Ethernet
IEEE1588
V2
MPU
120MHz
CPU
Up to
128KB
SRAM
1x USB
2.0 OTG
FS/HS
2 x CAN
2 x I2S
Advanced timer x 2
USB 2.0
OTG FS
USB 2.0
OTG
FS/HS
FSMC
RNG
+Crypto /
Hash
processor*
STM32F207
STM32F205
Camera
interface
RNG
+ Crypto /
Hash
processor*
* Crypto/Hash сопроцессоры доступны только в STM32F217x и STM32F215x
STM32F217
STM32F215
12
Flash Size
(байт)
512 K
768 K
LQFP 100 pins LFQFP 64 pins LQFP 144 pins
1MB
Cortex-M3 120МГц с MPU и ETM
RNG (Random Number Generator)
6 x USART
8 x16бит таймера, 2 x32бит таймера
2 x 16 – бит ШИМ
3 x SPI, 2 x I2C, 2 x I2S, 2 x CAN
3 x АЦП, 2 x ЦАП,
SDIO, FSMC (100 ,144, 176 ножек)
UFBGA 176*
STM32F205VE
128 KB RAM
STM32F205VF
128 KB RAM
STM32F205ZE
128 KB RAM
STM32F205ZF
128 KB RAM
STM32F205RE
128 KB RAM
STM32F205ZG
128 KB RAM
STM32F205VG
128 KB RAM
STM32F205RF
128 KB RAM
STM32F205RG
128 KB RAM
STM32F207ZG
128 KB RAM
STM32F207VG
128 KB RAM
STM32F207IG
128 KB RAM
STM32F207VF
128 KB RAM
STM32F207ZF
128 KB RAM
STM32F207IF
128 KB RAM
STM32F207VE
128 KB RAM
STM32F207ZE
128 KB RAM
STM32F207IE
128 KB RAM
STM32F207
Ethernet, 2xUSB OTG,
интерфейс кмеры
STM32F205
1xUSB OTG FS/HS
STM32F205VB
64 KB RAM
STM32F205VC
96 KB RAM
STM32F205ZC
96 KB RAM
STM32F205RB
64 KB RAM
STM32F205RC
96 KB RAM
STM32F207VC
128 KB RAM
STM32F207ZC
128 KB RAM
STM32F207IC
128 KB RAM
Линейка портфолио STM32F-2
256 K
128 K
Кол-во ножек
E* E* E*
E* E* E*
E* E* E*
E* E* E*
Периферия шифрования в
STM32F217 и STM32F115 E*
Системная архитектура
Бутлоадер
Матрица шин
DMA – контроллер
FLASH память
Производительность
16
Бутлоадер поддерживает(cut2.0 или rev B)
USART1(PA9/PA10)
USART3(PC10/PC11 или PB10/PB11)
CAN2(PB6/PB5)
USB OTG FS режиме Device (PA9/PA11/PA12) через
DFU (device firmware upgrade)
Примечание
DFU/CAN могут работать с различными внешними
источниками тактирования в диапазоне от 4 до 25
МГц, модуль USART использует внутренний HSI
Бутлоадер использует те же протоколы USART, CAN и
DFU как и в STM32F10x
Бутлоадер
Режим загрузки
Выбранные ножки Режим загрузки Комментарии
BOOT1 BOOT0
x 0 User Flash
Встроенная Flash - загрузочная область
0 1 System Memory Системная память - загрузочная область
1 1 Embedded SRAM Встроенная SRAM - загрузочная область
Системная память: содержит
бутлоадер, используемый для перепрограммирования FLASH-памяти через USART1 или USART2 (одинаковая конфигурация ножек для всего семейства STM32).
Загрузка из SRAM: при инициализации кода можно перенести таблицу векторов прерываний в SRAM используя таблицу исключений NVIC и регистр смещения
17
Режим загрузки через I/D шины
BOOT/REMAP in
Main Flash memory
BOOT/REMAP in
Embedded SRAM
BOOT/REMAP in System
memory REMAP in FSMC
0x2001 C000 - 0x2001 FFFF SRAM2 (16kB) SRAM2 (16kB) SRAM2 (16kB) SRAM2 (16kB)
0x2000 0000 - 0x2001 BFFF SRAM1 (112kB) SRAM1 (112kB) SRAM1 (112kB) SRAM1 (112kB)
0x1FFF 0000 - 0x1FFF 77FF System memory System memory System memory System memory
0x0810 0000 - 0x0FFF FFFF Reserved Reserved Reserved Reserved
0x0800 0000 - 0x080F FFFF FLASH (1MB ) FLASH (1MB ) FLASH (1MB ) FLASH (1MB )
0x04000000 - 0x07FF FFFF Reserved Reserved Reserved FSMC NOR/SRAM 2 Bank1 (Aliased)
0x0000 0000 - 0x000F FFFF FLASH (1MB ) Aliased SRAM1 (112kB)
Aliased
System memory (30KB)
Aliased FSMC NOR/SRAM 1 Bank1 (Aliased)
STM32F2xx позволяет выполнять код из 3 различных областей памяти, отображаемых на
шины I-Code/D-Code более быстрое исполнение кода чем с System Bus
Реализуется программно через регистр SYSCFG_MEMRMP, 2 бита используются для
выбора физического ремапа, через ножки BOOT. 00: Main Flash memory отображается с 0x0000 0000
01: System Flash memory отображается с 0x0000 0000
10: FSMC (NOR/SRAM bank1 NE1/NE2) отображается с 0x0000 0000
11: Embedded SRAM (112Кб) отображается с 0x0000 0000
Акселератор памяти
Буфер предвыборки по принципу кэша
Содержит первые инструкции, адреса переходов и прерывания
Помещение информации в очередь предвыборки без задержек при переходах
25
Тест
0
50
100
150
200
250
EEMBC Coremark v1.0 score
STM32F2xx (228.6@ 120MHz
+30% vs LPC1768
LPC1768
(175.25@100MHz)
CoreMark [Iter/Sec]
MHz
PIC32
(183.68@80MHz)
PIC32
(77.97@30MHz)
PIC24
(74.48@40MHz)
M16
(11.208@24MHz)
ColdFire
(62.28@60MHz)
CortexM0
(33.77@24MHz)
CortexR4
(52@24MHz)
STM32F2xx (190.30@ 100MHz)
+8% vs LPC1768
Все данные с www.coremark.org
32-bit multi-AHB bus matrix
27
DMA - контроллер
Передача через DMA1
Периф. шина DMA1 не соединяется с Матрицей Шин
DMA1 не может адресовать периферию на AHB1/AHB2
DMA1 может только использовать APB1 для обмена с памятью
Передача через DMA2
DMA2 может использоваться для всех типов обмена
Обе шины DMA2_periph и DMA2_mem соединены с Матрицей
Шин
Системная шина делится при операциях совместных чтения и
записи
Используйте DMA как можно больше для разгрузки
CPU.
EEMBC – Coremark Certification
FLASH - память
Системная периферия
50
Основные характеристики flash
До 1 Mбайт
Шина доступа - 128 бит
Запись – байт, полуслово, слово, двойное слово
512 байт OTP (One Time Programmable)
Очистка по секторам или полностью
Время записи 32-бит слова: 12мкс(тип)
Время очистки сектора:
16Kб: 400мкс (тип)
64Kб: 700мкс (тип)
128Kб: 1с (тип)
1Mб: около 2с (тип)
10 000 на сектор / 20 лет сохранность
Защита
2 RDP уровня, посекторная
Block Name Block base address Size
Main Memory
Sector 0 0x0800 0000 - 0x0800 3FFF 16 Kbyte
.
. .
.
. .
.
. .
Sector 3 0x0800 C000 - 0x0800 FFFF 16 Kbyte
Sector 4 0x0801 0000 - 0x0801 FFFF 64 Kbyte
Sector 5 0x0802 0000 - 0x0803 FFFF 128 Kbyte
.
. .
.
. .
.
. .
Sector 11 0x080E 0000 - 0x080F FFFF 128 Kbyte
System memory 0x1FFF 0000 - 0x1FFF 77FF 30 Kbyte
OTP 0x1FFF 7800 - 0x1FFF 7A0F 528 bits
Option bytes 0x1FFF C000 - 0x1FFF C00F 16 bytes
Интерфейс чтения
Предвыборка инструкций
Кэш инструкций – 64 кэш-линий по 128 бит
Кэш данных - 8 кэш-линий по 128 бит
Очистка/запись flash - памяти
Запись: байт, полуслово, слово и двойное слово
Посекторная и полная очистка
Типы защиты
Защита от чтения
Level0
Level1
Level2 (JTAG fuse)
Защита от записи
Option Bytes
51
Обзор flash - интерфейса
Конфигурация flash
Flash user-specific блок состоит из:
30 Kбайт системной памяти (бутлоадер)
512 бит OTP (one-time programmable)
Блок конфигурации пользователя (option bytes), 16 байт:
Защита от чтения
Защита от записи
Конфигурация сторожевого таймера (software/hardware)
Сброс при входе в режимы stop/standby
Конфигурация уровня BOR
Регистр контроля option bytes, программная защита с ключем
Для модификации option bytes:
Запись 2х ключей в регистр
Запись задуманных опций в регистр FLASH_OPTCR
Затем установка бита OPTSTRT и ожидание сброса бита BSY
55
Защита от чтения (1/2) Область пользователя во flash может быть защищена от
операций чтения от «пиратского» кода.
Level 0: Защита от чтения отключена
Активация через запись значения 0xAA в регистр RDP
Все операции с flash памятью или backup SRAM разрешены в любой конфигурации
загрузки(boot).
Level 1: Защита от чтения включена
Активация через запись любого значения (кроме 0xAA и 0xСС) в регистр RDP
В режиме отладки, доступ ко всей flash памяти или backup SRAM отключен
Отладка доступна из системной SRAM
Level 2: Устройство заблокировано(locked-up)
Активация через запись значения 0xCC в регистр RDP
Вся защита от Level 1
Отладка запрещена (CPU JTAG и single-wire)
Изменение option bytes невозможна
Деактивация невозможна
56
57
Защита от чтения (2/2)
Level 2
RDP=0xCC
Level 0
RDP=0xAA
Level 1
RDP ≠ 0xCC
RDP ≠ 0xAA
Опция записи, включая RDP = 0xCC
Опция записи, включая RDP = 0xCC Опция записи, включая
RDP ≠ 0xAA and RDP ≠ 0xCC
Опция записи, включая RDP = 0xAA
RDP = 0xAA Другие опции могут модифицироваться
RDP ≠ 0xAA и RDP ≠ 0xCC Другие опции могут модифицироваться
Запись в option byte (Увеличение уровня RDP) включая: Очистка option byte и новое программирование option byte Запись в option byte (Уменьшение уровня RDP) включая: Очистка option byte и новое программирование option byte и полная очистка памяти Запись в option byte (RDP level постоянный) включая: Очистка option byte и новое программирование option byte
Управление питанием (PWR)
Системная периферия
Схема питания
VSS
VBAT
VDDA
VSSA
VREF-
VREF+
A/D converter
D/A converter
Temp. sensor
Reset block
PLLs
VDDA domain
Core
Memories
Digital
peripherals
VCore (1.2V) domain
VDD domain
STANDBY circuitry
(Wake-up logic,
IWDG) VDD
Схема питания STM32F-2
VDD = 1.8 В - 3.6 В. Внешние ножки питания
для портов в/в и встроенного регулятора
VDDA = 1.8 В - 3.6 В : вншнее аналоговое
питания для АЦП, ЦАП, схемы сброса,
тактирования - RC и PLL.
VCAP = внешний конденсатор для регулятора
напряжения(также 1.2 В в определенном
режиме)
VBAT = 1.65 В - 3.6 В: напряжение питания для
области резервирования
Подключение ножек:
VDD и VDDA должны быть подключены к одинаковому источнику
VSS, VSSA - необходимо соединить с GND
2.4V ≤ VREF+ ≤ VDDA при VDDA ≥ 2.4
VREF+ = VDDA при VDDA < 2.4
64
RTC and BKP reg
LSE crystal 32K osc
RCC BDCR
BKP SRAM
Voltage Regulator
I/O Rings
FLASH Memory
Backup domain
VCAP
Low voltage detector
Ограничения производительности в зависимости от
напряжения питания
65
Ограничения в зависимости от рабочего напряжения питания
Диапазон питающего
напряжения
АЦП, макс время
преобразования
Максимальная частота CPU (fCPUmax)
Порты ввода-вывода FSMC - контроллер Возможные операции с
FLASH
VDD = 1.8В - 2.1В До 1 Msps – 120 MГц с 7ws flash - памяти – 16 MГц без задержек
– деградация скорости до 30 MГц
Только 8-бит операции очистки и записи
VDD = 2.1В -2.4В До 1 Msps – 120 MГц с 6ws flash - памяти – 18MГц без задержек
– деградация скорости до 30 MГц
16-бит операции очистки и записи
VDD = 2.4В-2.7В До 2 Msps – 120 MГц с 4ws flash - памяти – 24MГц без задержек
– деградация скорости до 48 MГц
16-бит операции очистки и записи
VDD = 2.7В-3.6В До 2 Msps – 120 MГц с 3ws flash - памяти – 30MГц без задержек
– нет деградации
– до 60 MГц при Vdd = 3.0В-3.6В – до 48 MГц при Vdd =2.7В-3.0В
32-бит операции очистки и записи
Регуляторы напряжения
2 встроенных регулятора напряжения
Основной регулятор – питает все цифровые схемы, исключая схемы
Standby и область резервирования(Backup domain). Выходное
напряжение VCORE = 1.2 В и может выдавать до 200мA.
Регулятор низкого напряжения – только для резервной памяти
(backup RAM) в режиме VBAT
Основной регулятор напряжения имеет 3 режима работы:
Режимы Run и Sleep (максимально 200мA)
Режим Low Power для работы в режиме STOP (максимально 5мA)
Режим Regulator OFF для режима работы STANDBY/VBAT.
Режим Regulator Bypass
В этом режиме запитывать внешний источник напряжением 1.2 В
через ножки VCAP_1 и VCAP_2
68
Power On Reset (POR)/Power Down Reset (PDR)
VDD
POR
PDR
Сброс
VPOR
VPDR
Стабилизация tRSTTEMPO
VPDR = VPOR = 1.8В
72
Встроенная схема POR / PDR :
Микроконтроллер имеет встроенную
схему POR/PDR, которая позволяет
работать без внешней схемы выше
1.8 В
Модули POR и PDR имеют
гистерезис 40мВ
Brown Out Reset (BOR)
Во время подачи питания, модуль BOR
удерживает микроконтроллер в состоянии сброса
пока напряжения питания не достигнет
определенного порога VBOR .
Нет необходимости во внешней схеме сброса
Модуль BOR имеет гистерезис 100мВ
Уровни BOR конфигурируются в option bytes:
BOR OFF: 2.1 В – power on и 1.62 В at power down
BOR LOW (DEFAULT) : 2.4 В - power on и 2.1 В
power down
BOR MEDIUM: 2.7 В - power on и 2.4 В - power down
BOR HIGH: 3.6 В - power on и 2.7 В - power down
73
VDD
VBORH
VBORL
100мВ гистерезис
Сброс
VBORH
VBORL
Стабилизация tRSTTEMPO
Программируемый детектор напряжения (PVD)
74
PVD:
Разрешение работы программно
Мониторинг напряжения VDD и
сравнение с порогом.
Конфигурируемый порог от 2 В до 2.9В
с шагом в 100мВ
Генерирование прерывания через
внешнее прерывание EXTI Line16 при
VDD < Порог и/или VDD > Порог
Может использоваться для генерации
сообщения и/или вводить
микроконтроллер в безопасное
состояние
VDD
100мВ гистерезис
PVD
Output
Пороги PVD
Область резервирования Backup Domain (1/2)
Область резервирования
Модуль RTC и 4Kб Backup RAM
LVR для RAM
Опция отключения
Независимое напряжение VBAT
Автоматическое переключение на VBAT при уровне VDD ниже уровня PDR
Нет потребления VBAT при питании от VDD
Сохранение данных
1 ножка для wakeup и 2 альтернативных функции RTC на ножках RTC_AF1 и RTC_AF2
75
Backup domain
LP Voltage
Regulator
RTC 80 byte
data
VBAT
VDD
BKP SRAM
power switch
RCC BDCR
reg
32KHz OSC
(LSE)
77
Низкотребляющие режимыSTM32F2x
В STM32F2xx, как и в STM32F1xx 3 низкопотребляющих режима
SLEEP
STOP
STANDBY
Режим VBAT.
В STM32F2xx уменьшается потребление в режимах низкого потребления:
Тактирование периферии останавливается автоматически во время
режимов sleep
Режим отключения памяти flash (Flash Power Down mode)
Опция отключения LVR и Backup RAM
В STM32F2xx много источников пробуждения из режимов низкого потребления:
Wakeup pin (PA0) / NRST pin
RTC Alarm (Alarm A и Alarm B)
Прерывание RTC Wakeup Timer
Событие RTC Tamper
Событие RTC Time Stamp
Событие IWDG Reset
Система сброса и контроля
тактирования (RCC)
Системная периферия
Система сброса
System RESET
Сброс всех регистров, исключая
некоторые регистры RCC и Backup
Domain
Источники
Низкий уровень на NRST
(External Reset)
Конец счета WWDG
Конец счета IWDG
Программный сброс(через NVIC)
Сброс LPM
Power RESET
Сброс всех регистров, исключая Backup Domain
Источники
Power On/Power down Reset (POR/PDR)
BOR
При выходе из режима STANDBY
Backup domain RESET
Сброс Backup Domain: регистры RTC+ регистры Backup Domain + регистр RCC BDCR
Источники
Бит BDRST в регистре RCC BDCR
POWER Reset
Примечание: BKPSRAM не очищается
85
Filter
VDD /VDDA
RPU
PULSE
GENERATOR
(min 20µs)
SYSTEM RESET
NRST
WWDG RESET IWDG RESET
Software RESET
Power RESET
Low power management RESET
External RESET
BOR
RESET
POR/PDR
RESET
Схема тактирования
87
HSI
HSE
PLLCLK MCO1 /1..5
LSE
SYSCLK
HSE
PLLCLK MCO2 /1..5
PLLI2S
LSI RC
32.768KHz /2, to 31
LSE OSc
OSC32_IN
OSC32_OUT
~32KHz IWDGCLK
RTCCLK
TIM5 IC4
HSE
/
2,
20
MACTXCLK
MACRXCLK MACRMIICLK
USB HS
ULPI clock
/ P
/ Q
/ R
x N
PLLI2S
I2SCLK
Ext. Clock SPI2S_CKIN
PLLI2SCLK
VCO
PCLK1 up to 30MHz
If (APB2 pres =1)
x1 Else
x2
If (APB1 pres
=1) x1
Else x2
PCLK2 up to 60MHz
TIMxCLK
TIM2..7,12..14
APB1
Prescaler
/1,2,4,8,16
TIMxCLK
TIM1,8..11
APB2
Prescaler
/1,2,4,8,16
HCLK up to 120MHz
AHB Prescaler
/1,2…512
/8 SysTick
PLL48CLK (USB FS, SDIO & RNG)
CSS
HSE Osc OSC_OUT
OSC_IN
4 -25 MHz
PLLCLK
HSI RC 16MHz
/ M HSE
HSI
SYSCLK
120 MHz max
/ P
/ Q
/ R
VCO
x N
PLL
Ethernet
PHY
USB2.0
PHY
Конфигуратор системной частоты
Контроллер прямого доступа к
памяти (DMA)
Системная периферия
Новый модуль
Параметры DMA
Двойная архитектура шины AHB(master), один контроллер для доступа к памяти,
второй для доступа к периферии
8 потоков на каждый DMA контроллер, до 8 каналов(запросов) на поток (2 DMA
контроллера в линейке STM32F2xx). Программно конфигурируемый выбор
каналов для каждого потока
4 x 32-бит память FIFO для каждого потока(FIFO м.б. вкл или откл).
Независимый размер источника и получателя информации(байт, полуслово,
слово): когда источник и приемник имеют разную конфигурацию, DMA
автоматически упаковывает/распаковывает данные для оптимизации скорости
обмена ( доступно только при включенном FIFO)
Режим двойной буферизации (двойной буфер м.б. активирован/деактирован).
Поддержка программного триггера для режима обмена память-память (доступно
только в DMA2)
106
Параметры DMA
Количество передаваемых данных может конфигурироваться либо DMА
контроллером либо самим периферийным модулем:
Смена на «лету» DMA: количество передаваемых данных от 1 до 65535
Независимый инкремент или не инкрементируемая адресация для
источника/приемника информации.
Поддержка инкрементального обмена фреймами, 4, 8 или 16. Размер фрейма
задается программно, обычно эквивалент половине буфера FIFO
периферийного модуля
Каждый поток поддерживает циклические буферы(FIFO).
5 флагов событий (половина буфера заполнена, заполнение буфера, ошибка
передачи, ошибка FIFO, ошибка направления передачи данных)
Приоритеты между потоками конфигурируются программно (4 уровня - very high,
high, medium, low) и аппаратный в случае эквивалентна
107
Контроллер DMA1
108
DMA1
Высокий приоритет Низкий приоритет
Stream 0
SPI3_RX
I2C1_RX
TIM4_CH1
--
UART5_RX
--
TIM5_CH3
TIM5_UP
--
Stream 1
--
--
--
TIM2_UP
TIM2_CH3
USART3_R
X
--
TIM5_CH4
TIM5_TRIG
TIM6_UP
Stream 2
SPI3_RX
TIM7_UP
--
I2C3_RX
UART4_RX
TIM3_CH4
TIM3_UP
TIM5_CH1
I2C2_RX
Stream 3
SPI2_RX
--
TIM4_CH2
--
USART3_T
X
--
TIM5_CH4
TIM5_TRIG
I2C2_RX
Stream 4
SPI2_TX
TIM7_UP
--
I2C3_TX
UART4_TX
TIM3_CH1
TIM3_TRIG
TIM5_CH2
USART3_T
X
Stream 5
SPI3_TX
I2C1_RX
--
TIM2_CH1
USART2_R
X
TIM3_CH2
--
DAC1
Stream 6
--
I2C1_TX
TIM4_UP
TIM2_CH2
TIM2_CH4
USART2_T
X
--
TIM5_UP
DAC2
Stream 7
SPI3_TX
I2C1_TX
TIM4_CH3
TIM2_UP
TIM2_CH4
UART5_TX
TIM3_CH3
--
I2C2_TX
Ch0
Ch1
Ch2
Ch3
Ch4
Ch5
Ch6
Ch7
OR OR OR OR OR OR OR OR
Контроллер DMA2
109
DMA2
Высокий приоритет Низкий приоритет
Stream 0
ADC1
--
ADC3
SPI1_RX
--
--
TIM1_TRIG
--
Stream 1
--
DCMI
ADC3
--
--
USART6_R
X
TIM1_CH1
TIM8_UP
Stream 2
TIM8_CH1/2
/3
ADC2
--
SPI1_RX
USART1_R
X
USART6_R
X
TIM1_CH2
TIM8_CH1
Stream 3
--
ADC2
--
SPI1_TX
SDIO
--
TIM1_CH1
TIM8_CH2
Stream 4
ADC1
--
--
--
--
--
TIM1_CH4/_
TRIG/_COM
TIM8_CH3
Stream 5
--
--
CRYP_OUT
SPI1_TX
USART1_R
X
--
TIM1_UP
--
Stream 6
TIM1_CH1/2
/3
--
CRYP_IN
--
SDIO
USART6_T
X
TIM1_CH3
--
Stream 7
--
DCMI
HASH_IN
--
USART1_T
X
USART6_T
X
--
TIM8_CH4/_
TRIG/_COM
Ch0
Ch1
Ch2
Ch3
Ch4
Ch5
Ch6
Ch7
OR SW_Trigger OR SW_Trigger OR SW_Trigger OR SW_Trigger OR SW_Trigger OR SW_Trigger OR SW_Trigger OR SW_Trigger
Конфигурация потоков и каналов
Каждый канал DMA включает в себя 8 каналов (запросов)
Только один канал может быть активен на потоке
Запрос с периферийного модуля может соединяться более чем 1
каналом DMA
Программный запрос используется в режиме память-память и доступен
только в контроллере DMA2
110
FIFO – упаковка/распаковка данных
112
При использовании режима FIFO, DMA управляет форматом данных между источником и
получателем.
Поддерживаемые операции:
8-бит / 16-бит 32-бит / 16-бит (упаковка)
32-бит / 16-бит 8-бит / 16-бит (распаковка)
Данное свойство позволяет снизить программные издержки и загрузку CPU.
A1
B1
C1
D1
A1 B1 C1 D1
A2
B2
C2
A2 B2 C2 D2
A1 B1 C1 D1
T1
T2
T4
T3
T5
T6
T7
T1
T2 A2 B2 C2
D2
T8
DMA FIFO
D2
A1 B1 C1 D1
A2 B2 C2 D2
A1 B1 T1
T2
T4
T3
T1
T2
Ширина данных источника = 8-бит
Ширина данных для приемника = 32-бит
8 трансферов FIFO DMA
2 трансфера FIFO DMA получатель
DMA FIFO
Пример упаковки (8-бит 32-бит) Распаковка данных (32-бит 16-бит)
A1 B1 C1 D1
A2 B2 C2 D2
C1 D1
A2 B2
C2 D2
Ширина данных источника = 32-бит
Ширина данных приемника = 16-бит
2 трансфера источник FIFO DMA
4 трансфера FIFO DMA получатель
FIFO – пороги и режим burst
113
Порог: Уровень порога определяет, когда данные FIFO должны передаться в/из памяти.
Реализовано 4 пороговых уровня:
¼ FIFO Full,1/2 FIFO Full, ¾ FIFO Full, FIFO Full
Когда достигается уровень порога FIFO, буфер заполняется/опустошается из/в память
Режим single/burst: Режим burst доступен только при разрешенном FIFO (прямой режим доступа отключен)
Режим burst позволяет конфигурировать количество данных для передачи без прерывания CPU/DMA
Доступные режимы burst: INC4: 1 burst = 4 beats (4 слова, 8 полуслов или 16 байт)
INC8: 1 burst = 8 beats (8 полуслов или 16 байт)
INC16: 1 burst = 16 beats (16 байт)
При активном режиме burst, порог FIFO должен быть совместим с размером Burst:
Memory Data Size Burst Size Allowed Threshold levels
Byte
4-Beats (INC4) ¼, ½, ¾ and Full
8-Beats (INC8) ½ & Full
16-Beats (INC16) Full
Half-Word 4-Beats (INC4) ½ & Full
8-Beats (INC8) Full
Word 4-Beats (INC4) Full
Примечание: Для размера памяти полуслово, INC16 не доступен Для размера памяти слово, INC16 и INC8 не доступен
Режим циклической двойной
буферизации
114
Циклический режим:
Все параметры FIFO и DMA события (TC, HT, TE) доступны в данном режиме.
Количество The number of data items is automatically reloaded and transfer restarted
This mode is NOT available for Memory-to-Memory transfers .
Режим двойной буферизации: (только в циклическом режиме)
Доступны два регистра адреса(DMA_SxM0AR и DMA_SxM1AR)
Возможность переключения между буферами, управление аппаратно
Режим память-память не доступен
Флаг контроля(CT) доступен для анализа
Флаг TC устанавливается в случае смены буфера(завершение заполнения одного из буферов)
Peripheral Data Register
DMA_SxM0AR
DMA_SxM1AR
CT TC HT
Memory location 0 Memory location 1
CT = 1
CT = 0
DMA_SxPAR
Интерфейс цифровой камеры (DCMI)
Системная периферия
Новый модуль
121
Параметры DCMI
Основные параметры DCMI Интерфейс 8/10/12/14 - бит
Постоянный режим или режим фотоаппарата
Обрезка фотографий
Поддержка следующих форматов данных:
8/10/12/14- бит прогрессивный скан – монохромный или raw
Прогрессивный скан - YCbCr 4:2:2
Прогрессивное видео - RGB 565
Сжатие данных - JPEG
На частоте тактирования модуля 48MГц(PIXCLK) и параллельных входных 8-бит данных возможно принять:
До 15 fps несжатого потока данных в разрешении SXGA(1280x1024), 16-бит на пиксель
До 30 fps несжатого потока данных в разрешении VGA(640x480), 16-бит на пиксель
122
Блок-диаграмма DCMI
Модуль DCMI – синхронный параллельный интерфейс который принимает поток данных и состоит из:
DCMI_D[0..13] – лини данных
DCMI_PIXCLK – тактирование пикселей с программируемой полярностью и фронтами
Максимальный коэффициент AHB/PIXCLK = 2.5, максимальное знач PIXCLK = 48 MГц
DCMI_HSYNC – горизонтальная синхронизация, индикация начала/конца линии
DCMI_VSYNC - вертикальная синхронизация, индикация начала/конца фрейма
5 флагов прерывания, 1 глобальная линия
IT_LINE – конец линии
IT_FRAME – захват фрейма
IT_OVR – переполнение приемных данных
IT_VSYNC – синхронизация фрейма
IT_ERR – возникновение ошибки синхронизации
DCMI
DCMI_D[0..13]
DCMI_PIXCLK
DCMI_HSYNC
DCMI_VSYNC AH
B B
us
DCMI Interrupt to NVIC
DCMI Request to DMA
Пример обмена данными через DCMI
123
FSMC
DMA
DCMI
LCD STM32F2xx
DCMI_PIXCLK
DCMI_D[0..13]
DCMI_HSYNC
DCMI_VSYNC
Camera
Данные записываются в 32-бит регистр DCMI_DR, соединенным с высокоскоростной шиной AHB
4x32-бит FIFO + DMA
126
Режим обрезки DCMI Интерфейс DCMI может выбирать прямоугольное окно из принятого изображения
Координаты старта и размера задаются через два 32-бит регистра, DCMI_CWSTRT и DCMI_CWSIZE.
Размер окна задается в количестве пикселей тактирования(горизонтальный размер) и количества линий(вертикальный размер)
Вертикальное смещение (линии)
Горизонтальное смещение(пиксели)
Количество л
иний
Захват(пиксели)
АЦП (ADC)
Аналоговая периферия
146
Параметры АЦП (1/3)
3 АЦП : АЦП1 (master), AЦП2 и AЦП3 (slaves).
Максимальная частота модуля АЦП = 30МГц.
Конфигурируемое разрешение 12-бит, 10-бит, 8-бит или 6-бит
Скорость преобразования АЦП при разрешении 12 бит:
2 Мсемл/с в одиночном режиме
3,75 Mсемпл/с в двойном режиме работы
6 Мсемпл/с в тройном режиме работы
Диапазон преобразования: 0 - 3.6 В
Требования по питанию: VDDA = 2.4 В - 3.6 В для достижения полной
скорости и снижение до 1.65В для низкой скорости
До 24 внешних каналов
3 внутренних канала АЦП1:
Температурный датчик,
Встроенное опорное напряжение - VREFINT (1.2 В),
Мониторинг VBAT
147
Параметры АЦП (2/3)
Внешние триггера для двух групп преобразований.
Одиночный и постоянные режимы преобразований
Режим сканирования для автоматического преобразования группы каналов
Выравнивание по левому и правому краю
Конфигурируемое время сеэмплирования для каждого канала
Двойной и тройной режимы( АЦП1+АПЦ2 или все 3 АЦП) с возможностями:
Инжектированный синхронный режим (Injected simultaneous mode)
Регулярный синхронный режим (Regular simultaneous mode)
Вложенный режим (Interleaved mode)
Режим поочередного триггера (Alternate trigger mode)
Injected simultaneous mode + Regular simultaneous режим
Regular simultaneous mode + Alternate trigger режим
148
Параметры (3/3)
Поддержка DMA:
Генерация запроса DMA во время преобразования регулярного канала в одиночном режиме
Режим “ADC-DMA mode 1” используется в синхронном двойном/тройном режиме работы АЦП
Режим “ADC-DMA mode 2” используется во вложенном двойном/тройном режиме работы АЦП
и так же в регулярном синхронном двойном режиме работы АЦП
Режим “ADC-DMA mode 3” используется во вложенном двойном/тройном режиме работы АЦП
с разрешением 6-бит и 8-бит
Аналоговый сторожевой таймер
Генерация прерываний:
Окончание преобразования(регулярной группы каналов)
Окончание инжектированного преобразования
Аналоговый сторожевой таймер
Переполнение
149
Производительность
AHBCLK APB2CLK ADC_CLK СкоростьADC (15 циклов)
120MГц (a)
60MГц (1)
30MГц
0.5 мкс 2 Mсэмл/с
112MГц(a)
56MГц (1)
28MГц
0.536мкс 1.866 Мсэмпл/с
108MГц(a)
54MГц (1)
27MГц
0.555мкс 1.8 Mсэмл/с
96MГц(a)
48MГц (1)
24MГц
0.625мкс 1.6 Mсэмпл/с
60MГц (b)
60MГц (1)
30MГц
0.5мкс 2 Mсэмпл/с
(1). ADC_PRESC = /2
(a) APB_PRESC = /2
(b) APB_PRESC = /1
SYSCLK
(120MГц макс)
AHB_PRESC
/1,2,..512
APB2_PRESC
/2, 4, 8,16
ADC_PRESC
/2,4,8
ADC_CLK
(30MГц макс)
AHBCLK
(120MГц макс)
APB2CLK
(60MГц макс)
150
ADCCLK до 30MГц, приходит от PCLK через предделитель
2/4/6/8
Время сэмплирования для каждого канала:
3 цикла
15 цикла
28 цикла
58 цикла
84 цикла
112 цикла
144 цикла
480 цикла
Время сэмлирования (TSampling)
ADCx
ADCCLK Prescaler
/2, /4, /6 or /8 PCLK
112 cycles
15 cycles
144 cycles
84 cycles
28 cycles
58 cycles
3 cycles
480 cycles
Sa
mp
le T
ime
S
ele
ctio
n
SMPx[2:0]
151
Общее время преобразования
Общее время преобразования TTotal = TSampling + TConversion
Если время сэмплирования = 3 цикла и ADC_CLK = 30MГц Общее время
преобразования равно:
Разрешение TConversion
12 бит 12 Циклов
10 бит 10 Циклов
8 бит 8 Циклов
6 бит 6 Циклов
Разрешение TTotal
12 бит 12 + 3 = 15 циклов 0.5 мкс 2 Mс/с
10 бит 10 + 3 = 13 циклов 0.433 мкс 2.30 Mc/c
8 бит 8 + 3 = 11 циклов 0.366 мкс 2.72 Mc/c
6 бит 6 + 3 = 9 циклов 0.3 мкс 3.33 Mc/c
3 ADC_CLK 6 9 12 15 18 21 24 27 30
0
-2
+2
Одиночный режим АЦП (разрешение 12 - бит)
3
Выборка
Преобразование 12 3 12
1я выборка 2я выборка
Пример канала с
выборкой каждые 15
циклов тактирования
АЦП
Скорость
преобразования в
приведенном
примере:
30MГц/15 = 2Mс/с
30МГц максимальная
частота тактирвоания
АЦП в линейке
STM32F2xx
3я выборка
ADC1
153
Регулярные и инжектированные группы
Конфигурируемое количество регулярных каналов до 16
Конфигурируемое время сэмплирования и последовательность
Старт преобразования:
Программный: через старт - бит
Внешний триггер, генерируемый:
EXTI IT11,
15 сигналов с 6 таймеров,
Конфигурируемое количество инжектированных каналов до 4х
Конфигурируемое время сэмплирования и последовательность каналов
Старт преобразования:
JAUTO – автоматический старт инжектированной группы после регулярной
группы преобразований
Программный – через старт – бит
Внешний триггер, генерируемый:
EXTI IT15,
15 сигналов с 6 таймеров
154
Последовательность АЦП
До 16 регулярных каналов и до 4 инжектированных каналов с
программируемым порядком, временем сэмплирования и
возможностью оверсэмплинга
Пример: - Преобразование каналов - 0, 2, 8, 4, 7, 3, 3 ,3 и 11
- Различное время сэмплирования.
- Оверсэмплинг 3 канала
Канал 0 Канал 2 Канал 8 Канал 4 Канал 7 Канал 3 Канал 3 Канал 3 Канал 11
15 циклов 3 цикла
28 циклов
3 цикла
28 цикла 28 x 3
циклов
58 циклов
155
Режимы преобразования АЦП
5 режимов преобразования:
CHx Один канал
Режим одиночного
преобразования
CHx
. . .
CHn Многоканальный (Scan)
Режим одиночного
преобразования
CHx
. . .
CHn
Многоканальный (Scan)
Режим непрерывного
преобразования
CHx
Один канал
Режим непрерывного
преобразования
………….. CHa Постоянный режим
преобразования
(discontinuous)
CHb CHc CHx CHy CHz
156
Постоянный режим преобразования
Разделение каналов на подгруппы
Доступно для обеих групп преобразований:
До 8 преобразований для регулярной группы
До 3 преобразований для инжектированной группы
Пример:
- Преобразование регулярных каналов: 0, 1, 2, 4, 5, 8, 9, 11, 12, 13, 14 и 15
- Непрерывный режим, количество каналов – 3
Ch.0 Ch.1 Ch.2 Ch.4 Ch.5 Ch.8 Ch.9 Ch.11 Ch.12
Ch.13 Ch.14 Ch.15
1st триггер 3rd триггер
4th триггер
Окончание преобразования
Ch.0 Ch.1 Ch.2
5th триггер
…
Примечание: нельзя использовать
дискретный режим для обоих
групп преобразований. Данный
режим может использоваться
только для одной группы
2st триггер
157
Аналоговый сторожевой таймер
12-бит конфигурируемые высокий и низкие пороги
Разрешает работу одного или всех каналов: 1 регулярный и/или 1
инжектированный канал, инжектированные и/или регулярные
группы каналов
Генерация прерывания по обоим порогам
Status Register
Analog Watchdog
Low Threshold Temp Sensor
VREFINT
ADC_IN0
ADC_IN1
ADC_IN15
.
.
.
AWD
High Threshold . . .
158
Температурный датчик и мониторинг VBAT
Датчик температуры внутренне соединен с каналом ADC1_IN16 i
Датчик температуры может использоваться для измерения
внутренней температуры микроконтроллера (TJ).
Точность порядка +/- 1.5°C.
Вход VBAT может быть преобразован с канала ADC1_IN18 для
мониторинга питания батарейки
Также напряжение на VBAT может быть выше чем VDDA, для
гарантирования корректной работы АЦП, входное напряжение
VBAT необходимо поделить на 2
159
Функциональная схема АЦП
160
Двойной режим работы АЦП
AЦП1 как мастер и АЦП2 как слейв, АПЦ3 работает независимо
Старт преобразования начинается поочередно или синхронно, где
АЦП1 выступает как master а АЦП2 как slave, в зависимости от
режима работы
6 различных режимов работы
AD
C_
IN
0
AD
C_
IN
15
GPIO Ports
Tem
p S
en
sor
VR
EFIN
T
До 4х энжектир
каналов
До 16 регулярных каналов
ANALOG MUX
…
AD
C_
IN
1
АЦП1 АЦП2
Master Slave
Внешнее событие синхронизации
Внешнее событие (регулярная группа)
Регистр данных
EOC/JEOC
…
Com
mon
part
Du
al/
Trip
le m
od
e c
on
trol
EOC/JEOC
Внешнее событие синхронизации
Регистр данных
Внешнее событие (инжектированная группа)
161
Тройной режим работы АЦП (1/7)
GPIO Ports
Tem
p S
en
sor
VR
EFIN
T
До 4х инжектированных
До 16ти регулярных каналов
AD
C_
IN
0
ANALOG MUX
…
AD
C_
IN
1
AD
C_
IN
15
ADC1 Analog
АЦП2
Digital Master Slave
Внешнее событие синхронизации
Внешнее событие (регул группа)
Внешнее событие (инжектир группа) Регистр данных
EOC/JEOC
…
Com
mon
part
Du
al/
Trip
le m
od
e c
on
trol
EOC/JEOC
Внешнее событие синхронизации
Регистр данных
АЦП3
Slave
AЦП1 как master, ADC2 и ADC3 как slaves.
Старт преобразования начинается поочередно или синхронно АЦП1
далее АЦП2 и АЦП3 в зависимости от режима работы
6 различных режимов работы
Тройной режим работы АЦП (2/7)
Преобразование инжектированной группы
Внешний источник запуска, запускающий преобразование, приходит с
АЦП1 (синхронный запуск предоставляется АЦП2 и АЦП3 как slaves).
Окончание преобразования генерируется одновременно всеми
каналами АЦП
Результаты сохраняются в регистрах данных инжектированной группы
каждого АЦП
Инжектированный синхронный режим по 4м каналам:
CH0 CH1 CH2 CH3
CH2 CH3 CH4 CH0
AЦП1
AЦП2
Выборка
CH1 CH4 CH3 CH2 AЦП3
Событие триггера инжектированных
каналов
Окончание преобразований каналов АЦП1, АЦП2 и АЦП3
Преобразование
Примечание: нельзя преобразовывать одинаковые каналы на 3х АЦП
Инжектированный синхронный режим
Тройной режим работы АЦП (3/7)
Преобразование регулярной группы каналов
Внешний источник старта, приходит от АЦП1 (синхронный старт для
АЦП2 и АЦП3).
Окончание преобразования регулярной группы генерируется по
окончанию преобразования всех каналов.
Результат сохраняется в общем регистре ADC_CDR.
Регулярный синхронный режим по 16 каналам:
CH0 CH1 CH2 CH3
CH15 CH14 CH13 CH12
АЦП1
АЦП2
CH10 CH12 CH8 CH5 АЦП3
… CH15
… CH0
… CH2
Регулярный синхронный режим
Примечание: нельзя преобразовывать одинаковые каналы на 3х АЦП
Выборка
Преобразование
Окончание преобразований каналов АЦП1, АЦП2 и АЦП3 Событие триггера
регулярных каналов
Тройной режим работы АЦП (4/7)
Преобразование регулярной группы каналов(обычно один канал).
Внешний источник старта, начинающий преобразование – приходит от АЦП1:
Старт АЦП1 незамедлительно
Старт АЦП2 после задержки в 5 циклов тактирования АЦП
Старт АЦП3 после задержки в 5 циклов тактирования АЦП после старта преобразования АЦП2
Критерий оценки скорости "Tsampling + 2 цикла АЦП“ – минимальная задержка
Результат сохраняется в общем регистре ADC_CDR.
Вложенное преобразование 1 регулярного канала в непрерывном режиме:
CH0 AЦП1
AЦП2
5 ADCCLK циклов
…
… CH0
CH0 CH0
CH0
CH0 … CH0 CH0
Запрос DMA после каждых 2 преобразований
CH0
AЦП3
Конец преобразования АЦП2
Конец преобразования АЦП1
Конец преобразования АЦП3
Выборка
Преобразование
Вложенный режим
Событие от триггера
3 ADC_CLK 6 9 12 15 18 21 24 27 30
0
-2
+2
Преобразование в тройном вложенном режиме разрешение 12 бит
3 12
3 12
1й сэмпл
2й сэмпл
Выборка сигнала
происходит каждые 5
циклов тактирвоания
АЦП.
Скорость времени
сэмплирования в этом
случае эквивалентна:
30MГц/5 = 6Mс/сек
30MГц –
максимальная частота
тактирования для
линейки STM32F2xx
3й сэмпл
AЦП1
5
5 циклов
15
3 12
4й сэмпл
25
3 12
3 12
AЦП2
AЦП3
10
5 5
5й сэмпл
20
6й сэмпл
5 5
3 12
Выборка
Преобразование
167
Тройной режим работы АЦП (5/7)
CHх
Преобразование инжектированной группы каналов.
Внешний источник старта от АЦП1:
1 триггер, преобразование первой инжектированной группы каналов АЦП1
2 триггер, преобразование первой инжектированной группы каналов АЦП2
3 триггер, преобразование первой инжектированной группы каналов АЦП3
4 триггер, преобразование первой инжектированной группы каналов АЦП1 …
Флаг окончания преобразования генерируется в конце преобразования
Результаты сохраняются в регистрах данных инжектированной группы
каждого АЦП
AЦП1
AЦП2
Режим поочередного триггера 4 инжектированных каналов:
CHх
CHх
CHх CHх
CHх CHх
1st триггер
4th триггер
7th триггер
10th триггер
CHх
JEOC on ADC1 JEOC JEOC JEOC
JEOC JEOC JEOC JEOC on ADC2
AЦП3 CHх CHх CHх CHх
JEOC JEOC JEOC JEOC on ADC3
2nd триггер
3th триггер
5th триггер
6th триггер
8th триггер
9th триггер
11th триггер
12th триггер
Выборка
Преобразование
Режим поочередного триггера
Тройной режим работы АЦП(6/7) Combined Regular + Injected simultaneous режим
Преобразование инжектированной и регулярной группы
Внешние источники триггера – начала преобразований, приходят от АЦП1
(синхронный запуск АЦП2 и АЦП3): инжектированный синхронный режим
может прерывать все остальные преобразования
Результаты преобразований инжектированной группы сохраняются в
регистрах каждого АЦП, а регулярной группы в общем регистре ADC_CDR
Комбинированный регулярный + инжектированный синхронный режим, 4 регулярных
канала и 2 инжектированных канала:
CH0 CH1 CH1 CH2
CH3 CH2 CH2 CH1
AЦП1
AЦП2
Триггер для регулярных
каналов
CH0 CH1
CH2 CH4
AЦП1
AЦП2
Конец инжектированного преобразования AЦП1, AЦП2 и АЦП3.
CH3
CH0
CH1 CH3 CH3 CH0 CH2 AЦП3
CH3 CH0 AЦП3
Выборка
Преобразование
Примечание: нельзя преобразовывать
одинаковые каналы на 3х АЦП
Триггер для инжектированных каналов
Конец регулярных преобразований AЦП1, AЦП2 и АЦП3.
Прерывание регулярной группы инжектированной группой
Тройной режим работы АЦП(7/7) Combined Regular simultaneous + Alternate Trigger режим
Преобразование инжектированной и регулярной группы
Внешние источники триггера – начала преобразований, приходят от АЦП1
(синхронный запуск АЦП2 и АЦП3): альтернативный триггерный режим
может прерывать все остальные преобразования.
Результаты преобразований инжектированной группы сохраняются в
регистрах каждого АЦП, а регулярной группы в общем регистре ADC_CDR
Комбинированный регулярный синхронный + режим поочередного
триггера:
CH0 CH1 CH1 CH2
CH3 CH0 CH0 CH1
AЦП1 reg
AЦП2 reg
Триггер регулярных
каналов
AЦП1 inj
AЦП2 inj
Синхронный режим регулярной группы прерывается
CH10 2nd инж триггер
CH11
CH2
CH1
Конец преобразования АЦП1
1st инж триггер
CH1 CH2 CH2 CH3 AЦП3 reg CH3
CH3
CH12
CH3
CH2 CH2
CH0 CH0
АЦП3 inj
3th инжект триггер
Конец преобразования AЦП1, AЦП2 и АЦП3.
Конец преобразования АЦП2
Конец преобразования АЦП3
170
АЦП и DMA(1/4): одиночный режим
Запросы DMA генерируются каждым АЦП по завершению
преобразования только регулярной группы
Пример:
- Преобразование регулярной группы: 0, 2, 3, 4, 2, 5,
9, 7 и 8
- Преобразованные данные ConvertedValue_Tab[10]
- Сохранение через DMA (адрес назначения
автоинктерментируется)
Канал 0 Канал 2 Канал 3 Канал 4 Канал 2 Канал 5 Канал 9 Канал 7 Канал 8
DMA запрос
Результат преобразования Сh0
Результат преобразования Сh2
Результат преобразования Сh3
Результат преобразования Сh4
Результат преобразования Сh2
Результат преобразования Сh5
Результат преобразования Сh9
Результат преобразования Сh7
Результат преобразования Сh8
Регистр ADC_DR .
.
.
DMA запрос
DMA запрос
DMA запрос
DMA запрос
DMA запрос
DMA запрос
DMA запрос
DMA запрос
ConvertedValue_Tab[10]
Примечание:
Каждый раз DMA читает регистр ADC_DR, флаг
EOC очищается автоматически
174
Флаги и прерывания АЦП
OVRIE
EOCIE
JEOCIE
AWDIE
Биты разрешения прерываний
ADCx
Глобальное прерывание
(NVIC)
STRT
JSTRT
OVR
EOC
JEOC
AWD
Флаги
OVR : Переполнение, предыдущие данные потеряны
JEOC : «Окончание преобразования инжектированного
канала» показывает окончание преобразование
ГРУППЫ
STRT: «Старт регулярного канала» показывает когда
начинается преобразование регулярного КАНАЛА
JSTRT: «Старт регулярного канала» показывает начало
преобразования инжектированной ГРУППЫ
EOC : «Окончание преобразования регулярного канала»
показывает(зависит от бита EOCS) окончание :
регулярного преобразования КАНАЛА
последовательности регулярной ГРУППЫ
AWD : «Аналоговый ватчдог», показывает выход сигнала
за значение одного из порогов
Флаги регулярной группы
Флаги инжектированной группы
Общие флаги АЦП
CAN
Периферия обмена
данными
Аналог STM32F1
Параметры CAN
Двойной CAN 2.0 A/B, Active, скорость обмена до 1Mбит/с, на шине APB1
Поддержка Time Triggered Communication
Три почтовых ящика (mailboxes) с конфигурированным приоритетом
Два буфера FIFO на прием с тремя with three уровнями и 28ю банками фильтров, объединенных между CAN1 и CAN2
Прием и передача Time Stamp on SOF
Маскируемые прерывания
Программное распределение почтовых ящиков по уникальным адресам
4 выделенных вектора прерывания: передача, FIFO0, FIFO1 и изменение статуса
Два модуля CAN используют выделенную 512-байт SRAM память и совместимы с параллельной работой USB OTG FS
178
Блок - диаграмма – двойной CAN
179
CA
N 2
.0B
Activ
e C
ore
CAN1(Master) с 512 байтами SRAM
Control/Status/Configuration Registers
CA
N 2
.0B
Activ
e C
ore
Master Tx Mailboxes
Mailbox 2
Mailbox 1
Mailbox 0
Master Receive FIFO 0
Mailbox 2
Mailbox 1
Mailbox 0
Mailbox 2
Mailbox 1
Mailbox 0
Memory Access Controller
• CAN 2: Slave BxCAN – начальный банк фильтров n[27:1] конфигурируется программно
•CAN1: Master BxCAN управляет обменом между Slave BxCAN и 512-байтами SRAM памяти
CAN2(Slave)
Master Control Master Status
Tx Status
RxFIFO1 Status Interrupt Enable
Error Status Bit Timing
Filter Mode
Filter Bank x[27:0]
Filter Master Filter Scale
Filter FIFO Assignment
Filter Activation
RxFIFO0 Status
Control/Status/Configuration Registers
Master Control Master Status
Tx Status
RxFIFO1 Status Interrupt Enable
Error Status Bit Timing
RxFIFO0 Status
Transmission
Scheduler
Transmission
Scheduler
Slave Tx Mailboxes
27
.. n
.. 1
Filter 0
Master Receive FIFO 1
Mailbox 2
Mailbox 1
Mailbox 0
Slave Receive FIFO 0
Mailbox 2
Mailbox 1
Mailbox 0
Slave Receive FIFO 1
Mailbox 2
Mailbox 1
Mailbox 0
Acceptance Filters Master filter: 0 .. n-1
Slave filter: n..27
FSMC (Flexible Static Memory Controller )
Аналог STM32F1
181
Параметры FSMC Основные параметры:
4 банка для поддержки внешней памяти
Максимальная частота 60MГц в случае HCLK = 120MГц
Независимый «chip select» для каждого банка
Независимая конфигурация для каждого банка
Интерфейс включает :
Static Random Access Memory (SRAM)
Read-Only memory (ROM)
NOR/ OneNAND Flash memory
PSRAM
Интерфейс к параллельному LCD: Intel 8080 и Motorola 6800
Поддержка режима burst для синхронных типов (NOR Flash и PSRAM)
NAND Flash и 16-бит PC Cards
Программируемый тайминг для поддержки большого типа устройств
Внешний асинхронный «wait control»
Более высокая производительность чем в STM32F10x
182
Блок-диаграмма FSMC
FSMC состоит из 4х основных блока:
Интерфейс шины AHB (включая регистры конфигурации)
Контроллер памяти NOR Flash/PSRAM
Контроллер памяти NAND Flash/PC
Внешний интерфейс
A
HB
Bu
s Configuration
Registers
NOR Memory
Controller
NAND/PC Card
Memory
Controller
NOR Signals
PC Card Signals
NAND Signals
Shared Signals
FSMCCLK from RCC
FSMC Interrupt to NVIC
183
Память FSMC Вся память FSMC делится на 4 банка по 4 x 64 Mб :
Банк 1 используется для адресации NOR Flash, OneNAND или PSRAM .
Банки 2 и 3 используются для адресации NAND
Банк 4 используется для адресации PC Card
Bank 1
4x64 MB
Bank 2
256 MB
Bank 3
256 MB
Bank 4
256 MB
0x6000 0000
0x7000 0000
0x8000 0000
0x9000 0000
0x6FFF FFFF
0x7FFF FFFF
0x8FFF FFFF
0x9FFF FFFF
Поддерживаемые типы данных
NOR/PSRAM/SRAM/CRAM/OneNAND
NAND Flash
PC Card
186
Подключение LCD
NOR/SRA
M Bank
NOR Memory
Controller
FSMC_NE[4:1]
FSMC_Ax
FSMC_D[15:0]
FSMC_NOE
FSMC_NWE
LCD Intel 8080
Controller
LCD /CS
LCD RS
LCD D[15:0]
LCD /RD
LCD /WR
AN2790: TFT LCD interfacing with the High-density STM32F10xxx FSMC
FSMC_Ax: где x может быть от 0 до 25
STM32F2xx FSMC vs STM32F10x
Улучшенная производительность и возможность использования
памяти FSMC c нулевого адреса (более быстрое выполнение кода vs.
System bus)
WAIT для асинхронных типов памяти не поддерживается( для NOR и
PSRAM)
Поддержка памяти OneNAND, синхронный и асинхронный доступ.
Поддержка только 16-бит PCCARD, формат NIOIS16 больше не
поддерживается
192
Таймеры (TIM)
Аналог STM32F1
214
Обзор таймеров в STM32F2x
Разрешение
Режим счетаПредделитель
DMAКаналы Захвата/
Сравнения
Комплементарные выводы
Синхронизация
Master Slave
С расширенными возможностями TIM1 и TIM8
16 битвверх, вниз и вверх/вниз
1..65536
ДА 4 3 ДА ДА
Общего назначения (1) TIM2 и TIM5
32 битвверх, вниз и вверх/вниз
1..65536
ДА 4 0 ДА ДА
Общего назначения TIM3 и TIM4
16 битвверх, вниз и вверх/вниз
1..65536
ДА 4 0 ДА ДА
Базовые TIM6 и TIM7
16 бит вверх1..6553
6ДА 0 0 ДА НЕТ
1-канальные TIM10..11 и TIM13..14
16 бит вверх1..6553
6НЕТ 1 0 ДА НЕТ
2 –канальные TIM9 и TIM12
16 бит вверх1..6553
6НЕТ 2 0 НЕТ ДА
(1) Новые 32-бит таймеры
I2C
Аналог STM32F1
Периферия обмена
данными
STM32F2x I2C и STM32F10x I2C
Максимальное количество I2C = 3 ( 2 в
линейке STM32F10x)
Одна ошибка исправлена в STM32F2x:
“Несколько программных событий должны быть
управляемы до того, как текущий байт должен
передаться”
260
USART
Аналог STM32F1
Периферия обмена
данными
Различия STM32F2x vs STM32F10x
Применение оверсэмплинга по основанию 8 позволяют достичь
7.5Mбит/с для USART1/6 и 3.75Mбит/с для USART2/3/4/5 (против
3.75Mбит/с и 1.87M бит/с в STM32F1x).
Количество USART = 6 (2 USART на выкоскоростной шине APB2)
Режим «One Sample Bit» позволяет исключить ложные
срабатывания для приложений, работающих в сложных условиях
Ошибка: “Parity Error flag (PE) устанавливается снова после
программной очистки” [CAT2] устранен в STM32F2xx
272
SPI
Аналог STM32F1
Периферия обмена
данными
Параметры SPI(1/2)
Два SPI: SPI1 на HS шине APB2 и SPI2 на LS шине APB1
Полно дуплексный синхронный режим на 3 линиях
Синхронный симплекс на 2 линиях с или без двунаправленной
линией данных
Конфигурируемый размер фрейма данных – 8 бит или 16 бит
Конфигурируемый порядок данных - MSB-first или LSB-first
Поддержка режимов работы ведущего(master) и ведомого(slave)
Программируемая скорость обмена - до 30 МГц в режимах
master/slave
Аппаратное или программное управление NSS(CS) для обоих
режимов – master/slave: динамическая смена операций
master/slave
277
SDIO STM32F2x vs STM32F10x
Клок SDIOCLK в STM32F2xx соединен с фиксированной
частотой PLL48CK (48MГц) , вместо HCLK на STM32F10x.
Одна ошибка SDIO исправлена в STM32F2xx:
“Ограниченная мультибайтовая поддержка SDIO карт”
Эта ошибка устранена модификацией бита DTMODE в регистре
SDIO_DCTRL[2] :
Bit 2 DTMODE: Data transfer mode selection 1: Stream or SDIO multibyte
data transfer.
0: Block data transfer
1: Stream or SDIO multibyte data transfer
312
USB 2.0 OTG HS
Новая периферия
Периферия обмена
данными
Основные параметры
Полная совместимость на уровне регистров с USB OTG FS
High-Speed (480 Mбит/с), Full-Speed и Low-Speed операции в режиме Host и High-Speed/Full-Speed режиме Device
Три опции интерфейса PHY Встроенный физический уровень FS PHY
I2C интерфейс для FS I2C PHY
Интерфейс ULPI для HS PHY
Поддержка DMA с выделенным 4Kб FIFO
Параметры режима Device
Тоже самое, что и режим FS с некоторыми изменениями:
До 5 IN bulk, interrupt или isochronous endpoints ( 3 в FS)
До 5 OUT bulk, interrupt или isochronous endpoints ( 3 in FS)
Отдельный вектор в NVIC для EP1_IN
Отдельный вектор в NVIC для EP1_OUT
Посылка подтверждения NYET
В режиме HS, после приема пакета, ядро отправляет NYET в
случае отсутствия свободного места в RxFIFO
Параметры режима HOST
Такие же как и в режиме FS с некоторыми изменениями
До 12 каналов ( 8 в FS )
Специфичные свойства HS протокола Протокол PING: когда HS device не готов принять новый пакет,
отправляется NYET или NAK. В этом случае Host прекращает
пересылку данных, но периодически происходит проверка, готово ли
устройство принимать пакеты PING - протокола
Протокол SPLIT: в случае, если Host соединен с HS HUB, к которому
также подключены устройства FS и LS, Host не будет ожидать отклика
от устройства, он продолжит транзакции с другими HS устройствами.
Но периодически будет проверять, есть ли отклик от менее скоростного
устройства
Мульти-транзакции во время одного микро-фрейма (125мкс) для
изохронных трансферов, использующих DATA0, DATA1, DATA2 и
MDATA PID
Соединение ULPI High Speed PHY
Криптографический сопроцессор (CRYP)
Новая периферия
Периферия обмена
данными
343
Принцип алгоритма CRYP
Отправитель
Исходные
данные
Шифрованные
данные Шифрация
Симметричный
ключ
Получатель
Исходные
данные
Шифрованные
данные Дешифрация
Отправитель имеет:
Сообщение для посылки
Секретный ключ (симметричный)
Адресат имеет
Секретный ключ
Clear
Data
Симметричный
ключ
344
Параметры модуля CRYP (1/2)
Предназначен для шифрования и дешифрования AES, DES и TDES
Работа модуля на частоте тактирования ядра, до 120 MГц.
DES/TDES:
Прямая реализация простого алгоритма DES (используется один ключ
K1)
Поддержка алгоритмов ECB and CBC
Поддержка ключей 64, 128 и 192-бит (включая паритет)
В режиме CBC используется 64 вектора инициализации
16 HCLK циклов для одного 64-бит блока для DES
48 HCLK циклов для одного 64-бит блока для TDES
345
Параметры модуля CRYP (2/2)
AES
Поддержка алгоритмов ECB, CBC и CTR
Поддержка ключей 128, 192 и 256-бит
В режиме CBC и CTR используются 128-бит вектора инициализации(IV)
14, 16 или 18 HCLK цикла (в зависимости от ширины ключа) для 128 –
бит блока для AES
Общие параметры DES/TDES и AES
Входной и выходной FIFO (каждый по 8-слов по 32 бит, соответственно
4 DES блока или 2 AES блока)
Автоматический контроль размерности данных с поддержкой DMA (2
канала, 1 для входящих данных, второй для обрабатываемых)
Подкачка данных для поддержки 1, 8, 16 или 32-бит данных
348
Обзор алгоритмов шифрации
AES DES TDES
Размер ключа 128, 192 или 256 бит 64* бит
* 8 бит паритета
192***, 128** или 64* бит * 8 бит паритета : Keying option 1
** 16 бит паритета: Keying option 2
***24 бит паритета: Keying option 3
Размер блока 128 бит 64 бит 64 бит
Time to process
one block
14 HCLK циклов ключ 128
16 HCLK циклов ключ192
18 HCLK циклов ключ 256
16 HCLK циклов 48 HCLK циклов
Тип Зашифрованный блок Зашифрованный
блок Зашифрованный блок
Структура Substitution-permutation
network Feistel network Feistel network
Первая
публикация 1998
1977
(стандартизирова
н в январе 1979)
1998 (ANS X9.52)
349
Flags
Блок – диаграмма CRYP
Key: 128-, 192- and 256-bit
Key: 64-bit
Key: 64-, 128- and 192-bit
TDES
AES
DES
CRYPTO Processor
Inp
ut
FIF
O
Ou
tpu
t F
IFO
Data
sw
ap
pin
g
Data
sw
ap
pin
g
ECB CBC CTR
Запрос DMA
для входящих
данных
Запрос DMA для
выходящих
данных
BUSY OFFU OFNE IFNF IFEM
ECB CBC
ECB CBC
OUTRIS INRIS
CRYPTO Global interrupt
(NVIC)
OUTIM INIM OUTMIS INMIS
Пропускная способность CRYP
AES-128 AES-192 AES-256 DES TDES
HW
Theoretical 137.14 120.00 106.67 60.00 20.00
HW Without
DMA 51.89 51.89 44.65 30.97 11.43
HW With
DMA 128.00 120.00 106.67 60.00 20.00
Pure SW 0.99 0.82 0.69 0.53 0.18
Пропускная способность в Mб/с на 120 MГц
Генератор случайных чисел (RNG)
Новая периферия
375
Параметры RNG
32-бит случайные числа, генерируемые на основе аналогового
генератора (аналоговый шум)
Тактирование от отдельной линии (PLL48CLK)
Необходимо 40 тактов PLL48CLK для формирования случайного числа
Может быть отключен для снижения потребления
Генерация случайных чисел более 85% по стандарту FIPS 140-2 (Federal
Information Processing Standards Publication 140-2), тест порядка 20
000 бит.
5 флагов
1 флаг – данные готовы для чтения
2 флага – «не нормальная» последовательность
2 флага ошибки частоты (частота PLL48CLK ниже необходимой).
1 прерывание
Индикация о ошибке («не нормальная» последовательность или ошибка тактирования)
376
Блок – диаграмма RNG
RNG
RNG_CLK
Флаги Бит разрешения
прерывания
RNG iпрерывание к NVIC
IM DRDY
LFSR
(Linear Feedback
Shift register)
Analog Seed
32bit random
data register Clock checker
Fault detector
CEIS SEIS SECS CECS
Error management
HASH сопроцессор (HASH)
Новая периферия
379
Определение
Функция HASH – определенная процедура, которая из блока
информации генерирует и возвращает фиксированный блок
данных – зашифрованное HASH - значение, которое
представляет собой некий зашифрованный сокращенный образ.
Сообщение
(данные для
кодировки)
Блок данных
Фиксированная строка бит
Digest Hash function
380
Определения
SHA-1 : Secure Hash Algorithm
MD5 : Message-Digest algorithm 5
HMAC : (keyed-Hash Message Authentication Code)
HASH : Кодирование алгоритмами SHA-1 и MD5 произвольного
блока данных, максимальное значение (264 – 1) бит
Алгоритм HMAC обеспечивает аутентификацию сообщения
Алгоритм HMAC содержит SHA-1 или MD5 hash – функции с
секретным ключём
381
Параметры HASH (1/2)
Предназначен для проверки и аутентификации приложений,
совместимой с:
FIPS PUB 180-2 (Federal Information Processing Standards Publication
180-2)
Secure Hash Standard specifications (SHA-1)
IETF RFC 1321 (Internet Engineering Task Force Request For Comments
number 1321) specifications (MD5)
Периферийный модуль на шине AHB
Быстрое выполнение алгоритмов SHA-1 и MD5 :
66 HCLK циклов на SHA-1
50 HCLK циклов MD5
5 × 32-бит слов (H0, H1, H2, H3 и H4) для профиля сообщения
(digest)
383
Flags
Блок – диаграмма HASH
MD5 SHA-1
HASH
HASH Processor
Inp
ut
FIF
O
Data
sw
ap
pin
g
DMA request
BUSY DMAS DCIS DINIS
HASH Global interrupt
(NVIC)
DCIM
DINIM
HMAC
Message
Digest
H0..H4
5x32bit
16 x
32b
it
385
Алгоритм HMAC
Алгоритм HMAC используется для аутентификации сообщения, безвозвратное связывание сообщения с ключем
Для спецификации HMAC, можно прочитать “HMAC: keyed-hashing for message authentication, H. Krawczyk, M. Bellare, R. Canetti, February 1997.
По существу, алгоритм содержит две hash - операции:
pad
key
Concat
0x5C
concat
message
HASH HMAC Concat
HASH
0x36
MD5 SHA1
Теоретическая HW 116.36 93.66
HW без DMA 55.25 51.20
HW с DMA 75.29 65.08
Программно 8.23 3.68
Производительность Mб/s при 120 MГц для
алгоритмов SHA-1 и MD5 с различной
реализацией
Производительность HASH
Ethernet MAC 10/100
Аналог STM32F1
Основные параметры
Поддержка 10/100 Mбит, режимы Half/Full-duplex
Физический интерфейс MII/RMII
Несколько опций для фильтрации адресов MAC
Проверка контрольной суммы IPv4 во время приема/передачи
Выделенный DMA с двумя FIFO (Rx/Tx) по 2Kб каждый Соединяется как AHB – мастер к матрице шин
Поддержка Ethernet Time Stamping - IEEE1588 version 2
Управление питанием: пробуждение по LAN по специальному фрейму
Управление счетчиками MAC для статистики
Обратная связь MII для целей отладки
Блок – диаграмма Ethernet
MMC: MAC Management Counters
PMT: Power Management
PTP: Precision Time Protocol
Media
Access Control
MAC 802.3
MAC Control
Registers
MMC PMT
PTP
IEEE1588
Checksum
Offload
RMII
interface
Select
MDC
MDIO
External PHY
Operation
Mode
Register
2KB
RX FIFO
2KB
TX FIFO
DMA
Control
Registers
Ethernet DMA
AH
B B
us
AH
B S
lave
In
terfa
ce
AH
B M
aste
r
In
terfa
ce
RMII: Reduced MII
MII: Media Independent Interface
MII
Bu
sM
atr
ix
SRAM 112K
Ext SRAM
SRAM 16K
Интерфейс физического уровня
Поддержка MII и RMII
Для RMII необходимо меньше ножек:
MII = 16 ножек (8 данные и 8 контроль)
RMII = 7 ножек (4 данные и 3 контроль)
80
2.3
MA
C
TXD[1:0]
TX_EN
RXD[1:0]
RX_ER
CRS_DV
MDC
MDIO
REF_CLK
External
PHY
PHY_CLK
TX _CLK
TXD[3:0]
TX_ER
TX_EN
RX _CLK
RXD[3:0]
RX_ER
RX_DV
CRS
COL
MDC
MDIO
External
PHY
80
2.3
MA
C
PHY_CLK
ST
M3
2F
2x
7
ST
M3
2F
2x
7
RMII mode MII mode
Подключение Ethernet (1/4)
Режим MII использует 25MГц кварц
MCU
Ethernet MAC 10/100
Ethernet PHY 10/100
PLL HCLK
XT1 PHY_CLK 25MHz
MII_RX_CLK
MII_RXD(3:0)
MII_RX_DV
MII_RX_ER
MII_TX_CLK
MII_TX_EN
MII_TXD(3:0)
MII_CRS
MII_COL
MDIO
MDC
HCLK*
*HCLK должно быть более 25MГц
PPS_OUT *
* Pulse Per Second для IEEE1588 PTP, опционально
XTAL 25MГц
STM32F2x7
OSC
TIM2 Time Stamp Comparator
Timer Input Trigger
IEEE1588 PTP
MII = 15 pins
MII+MDC = 17 pins
MCO
Подключение Ethernet (2/4)
RMII с 50MГц генератором
RMII_RXD(1:0)
RMII_CRS_DV
RMII_TX_EN
RMII_TXD(1:0)
MDIO
MDC
MCU Ethernet MAC 10/100
Ethernet PHY 10/100
HCLK *
/2 or /20 synchronous
2.5 or 25MHz 50MHz
RMII_REF_CLK
PLL HCLK OSC 50MГц
XT1 PHY_CLK 50MHz 50MHz
STM32F2x7
TIM2 Time Stamp Comparator
IEEE1588 PTP Timer Input Trigger
RMII = 7 pins
RMII+MDC = 9 pins
*HCLK должно быть более 25MГц
Подключение Ethernet (3/4)
RMII с одним 25MГц кварцем и модулем PHY с PLL
RMII_RXD(1:0)
RMII_CRS_DV
RMII_TX_EN
RMII_TXD(1:0)
MDIO
MDC
MCU Ethernet MAC 10/100
Ethernet PHY 10/100
HCLK *
/2 or /20 synchronous
2.5 or 25MHz 50MHz
RMII_REF_CLK
PLL HCLK
XT1 PHY_CLK
25MГц
50MHz
PLL
REF_CLK
XTAL 25MГц
STM32F2x7
OSC
TIM2 Time Stamp Comparator
IEEE1588 PTP Timer Input Trigger
RMII = 7 pins
RMII+MDC = 9 pins
MCO
*HCLK должно быть более 25MГц
Подключение Ethernet (4/4)
RMII с 25MГц кристаллом
RMII_RXD(1:0)
RMII_CRS_DV
RMII_TX_EN
RMII_TXD(1:0)
MDIO
MDC
RMII = 7 pins
MCU Ethernet MAC 10/100
HCLK*
50MHz
Ethernet PHY 10/100
RMII_REF_CLK
RMII+MDC = 9 pins
50MHz
PLL
NS DP83848 *
XT1/XT2
* NS DP83848 рекомендован для использования, т.к. входной джиттер сопоставим с выходным джиттером MCU
XTAL 25MГц
STM32F2x7
OSC
TIM2 Time Stamp Comparator
IEEE1588 PTP Timer Input Trigger
MCO /2
100MHz
*HCLK должно быть более 25MГц
Фильтрация MAC
Контроллер Ethernet может иметь до 4х MAC адресов:
1 адрес по умолчанию: MACAddr0
3 дополнительных адреса: MACAddr1, MACAddr2 и MACAddr3.
Дополнительные адресы могут быть:
Включены или отключены.
Использоваться источником или получателем для рассылки по
уникальному адресу, так и для широковещательной
Блок фильтрации MAC позволяет:
Принимать или блокировать широковещательные или иные фреймы
Принимать все входящие фреймы – мониторинг сети
Использовать Hash – таблицу фильтрации для широковещательной
или рассылки по уникальному адресу
Блок управления питанием
Блок управления питанием позволяет вводить Ethernet
контроллер в режим глубокой спячки (power down mode)
2 возможных опции пробуждения через прием:
AMD magic Packet
Wakeup frame
Событие пробуждения Ethernet соединено с линией EXTI_Line19
и может использоваться для вывода микроконтроллера из
режима STOP
MAC management counters: MMC
MMC поддерживает статистику сети посредствам счетчиков:
Переданные безошибочные фреймы
Переданные безошибочные фреймы с более чем 1 коллизией
Переданные безошибочные фреймы с более 1 коллизией
Принятые безошибочные уникальные фреймы
Принятые фреймы с ошибкой выравнивания
Принятые фреймы с ошибочной CRC
Error
Good
IEEE 1588 Precision Time Protocol
Протокол PTP используется для широковещательной рассылки по сети
точного времени для синхронизации системных часов с минимальными
ресурсами сети
Точность версии протокола PTP IEEE1588-2002 V1 в микросекундном
диапазоне
Улучшения в IEEE1588 V2:
Наносекундная точность
Более быстра синхронизация, сообщения SYNC
Более короткие сообщения PTP, обращение по уникальному
адресу, новые сообщения
«Прозрачные часы»
Обработка ошибок
STM32 поддерживает IEEE1588: коррекция времени
MAC поддерживает 2 метода корректировки
системного времени:
«Грубый»: часы корректируются за один цикл
тактирования, это используется для корректировки
времени во время фазы инициализации
«Точный»: часы корректируются за период
времени после сложной синхронизации через
аппаратный алгоритм, это используется для
коррекции дрейфа частоты
Спасибо