89
Добро пожаловать! Вячеслав Прокопий [email protected] Тренинг STM32F0

Практическая работа №1 – GPIO, контроллер прерываний...Практическая работа. Устройство USART Синхронный

  • Upload
    others

  • View
    9

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Практическая работа №1 – GPIO, контроллер прерываний...Практическая работа. Устройство USART Синхронный

Добро пожаловать!

Вячеслав Прокопий [email protected]

Тренинг STM32F0

Page 2: Практическая работа №1 – GPIO, контроллер прерываний...Практическая работа. Устройство USART Синхронный

Тренинг STM32F0

ST-LINK

FS USB-DEVICE

LD3

LD5

LD6

LD4

B1

USART1

PC8

PC9

PC6

PC7

PA0

PA9-TX PA10-RX

План GPIO и прерывания DMA и последовательный интерфейс Реализация USB-Device

1. Установлен ли софт? 2. Есть ли USB-кабель?

USART3 PC4-TX

PC11-RX

Page 3: Практическая работа №1 – GPIO, контроллер прерываний...Практическая работа. Устройство USART Синхронный

Подготовка

Установка библиотек для STM32F0 в STM32CubeMX

Скопировать файлы

Page 4: Практическая работа №1 – GPIO, контроллер прерываний...Практическая работа. Устройство USART Синхронный

Подготовка Установка библиотек для STM32F0 в STM32CubeMX

Page 5: Практическая работа №1 – GPIO, контроллер прерываний...Практическая работа. Устройство USART Синхронный

Управление GPIO и прерывания

Тренинг STM32F0

Page 6: Практическая работа №1 – GPIO, контроллер прерываний...Практическая работа. Устройство USART Синхронный

GPIO и прерывания

ST-LINK

LD3

LD6

B1

PC8

PC9

PC6

PC7

PA0

Устройство GPIO

Основы обработки прерываний

Практическая работа

LD5

LD4

Page 7: Практическая работа №1 – GPIO, контроллер прерываний...Практическая работа. Устройство USART Синхронный

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

OUTPUT

Push-Pull

Open drain (Pull-up, Pull-down)

INPUT

Floating (Pull-up, Pull-down)

Analog

2MHz

10MHz

50MHz

................... .....

к / от ПЕРИФЕРИИ

PIN

Без конфликтов

АЦП / ЦАП Touch

IDR ODR

BSRR

до 16

стандартные / 5V-устойчивость

ESD (5VT)

Гибкость

Быстрое переключение каждые два такта

Механизм блокировки состояний выводов

Битовая запись ЧТЕНИЕ/ЗАПИСЬ GPIO

25mA max

Page 8: Практическая работа №1 – GPIO, контроллер прерываний...Практическая работа. Устройство USART Синхронный

Особенности GPIO До 55 многофунциональных двунаправленных линий доступно в 64-выводном корпусе (86%, в STM32F1 – 80%)

Практически все выводы толерантны к 5В (кроме входов АЦП)

Все стандартные выводы доступны на 5 портах : GPIOA [0..15], GPIOB[0..15], GPIOC[0..15], GPIOD[2], GPIOF[0,1,4..7]

Атомарная установка и сброс через регистры BSRR и BRR

Подключены к шине AHB - макс. частота переключения – 12 МГц

Блокировка состояния выводов на портах A и B (GPIOx_LCKR)

Настраиваемая скорость нарастания – до 50 МГц

55 выводов могут быть источником внешнего прерывания для вывода МК из сна

Page 9: Практическая работа №1 – GPIO, контроллер прерываний...Практическая работа. Устройство USART Синхронный

Управление GPIO

Регистры настройки

GPIOx_MODER

GPIOx_OTYPER

GPIOx_OSPEEDR

GPIOx_PUPDR

Регистры данных

GPIOx_IDR

GPIOx_ODR

Регистр установки/сброса

GPIOx_BSRR

У всех портов

Дополнительно у портов А и В

Регистр блокировки

GPIOx_LCKR

Выбор альтернативного режима

GPIOx_AFRH

GPIOx_AFRL

У STM32F07x и STM32F09x есть на портах C, D, E

Порт Е доступен только у STM32F07x и STM32F09x

Page 10: Практическая работа №1 – GPIO, контроллер прерываний...Практическая работа. Устройство USART Синхронный

Структура вывода GPIO

Page 11: Практическая работа №1 – GPIO, контроллер прерываний...Практическая работа. Устройство USART Синхронный

MODER(i) [1:0]

OTYPER(i) [1:0]

Режим работы PUPDR(i)

[1:0]

11 Analog

x Analog mode x

01 Output

0

0 0 0 1 1 0

1

Output Push Pull Output Push Pull with Pull-up Output Push Pull with Pull-down

10 Alternate

0

1 0 0 0 1 1 0

0 0 0 1 1 0

Alternate Function Open Drain Alternate Function OD Pull-up Alternate Function OD Pull-down

00 Input

x 0 0 0 1 1 0

* В режиме выхода скорость I/O настраивается регистром OSPEEDR: 2МГц, 10МГц или 50МГц

Режим работы GPIO

0 0 0 1 1 0

Output Open Drain Output Open Drain with Pull-up Output Open Drain with Pull-down

Input floating Input with Pull-up Input with Pull-down

Alternate Function Push Pull Alternate Function PP Pull-up Alternate Function PP Pull-down

Page 12: Практическая работа №1 – GPIO, контроллер прерываний...Практическая работа. Устройство USART Синхронный

Режим I/O: General Purpose Сброс и сразу после сброса: I/O настроены на вход в режиме floating.

Отладочные выводы после сброса находятся в альтернативном режиме с подтяжкой:

PA14: SWCLK – pull-down PA13: SWDIO – pull-up

При настройке порта на выход: - регистр GPIOx_ODR – на выходные пины - выходной буфер включен - тригер Шмитта включен - состояние выходных пинов доступно для чтения в GPIOx_IDR

При настройке порта на вход: - данные в регистр GPIOx_IDR защелкиваются на каждый такт шины AHB - тригер Шмитта включен - выходной буфер отключен

Регистр GPIOx_PUPDR: подключение подтягивающего резистора (up/down)

Page 13: Практическая работа №1 – GPIO, контроллер прерываний...Практическая работа. Устройство USART Синхронный

I/O: Альтернативный режим Через мультиплексор к каждому выводу I/O vможет быть подключено до 16 периферийных сигналов (AF0..AF15)

Настройка: выводы 0…7 - GPIOx_AFRL выводы 8…15 - GPIOx_AFRH

По умолчанию после сброса: все выводы I/O подключены к AF0 выводы DEBUG – настроены на режим отладки

Детальная карта подключений AF0…15 – в документации

При настройке порта на альтернативный режим: - выходной буфер управляется сигналами от периферийного модуля - выходной буфер может работать в режиме open-drain или push-pull - тригер Шмитта включен - могут быть подключены подтягивающие резисторы - состояние выходных пинов доступно для чтения в GPIOx_IDR

AF0 (SPI1_MISO)

AF1 (TIM3_CH1)

AF2 (TIM1_BKIN)

AF7 (COMP1_OUT)

Pin x (0…7)

Page 14: Практическая работа №1 – GPIO, контроллер прерываний...Практическая работа. Устройство USART Синхронный

I/O: Аналоговый режим

При настройке порта в аналоговый режим: - выходной буфер выключен - тригер Шмитта выключен, что приводит к нулевому потреблению энергии - выход тригера Шмитта переведен в состояние «0»

- подтягивающие резисторы запрещены - чтение регистра GPIOx_IDR возвращает нули

Page 15: Практическая работа №1 – GPIO, контроллер прерываний...Практическая работа. Устройство USART Синхронный

I/O: внешние прерывания

Все порты могут быть источником внешнего прерывания

GPIO НЕ должен быть в аналоговом режиме (АЦП, ЦАП) или тактирующим входом

Page 16: Практическая работа №1 – GPIO, контроллер прерываний...Практическая работа. Устройство USART Синхронный

Особые режимы GPIO

• Использование выводов генераторов HSE или LSE как GPIO – Когда HSE или LSE отключены ( состояние по умолчанию после сброса),

соответствующие выводы могут использоваться как GPIO.

– Когда генератор работает в режиме внешнего тактирующего сигнала, только OSC_IN или OSC32_IN зарезервированы, а OSC_OUT или OSC32_OUT могут использоваться как GPIO.

• Использование выводов GPIO блока RTC – GPIO функционал выводов PC13/PC14/PC15 сбрасывается в режиме

Standby. В случае если настройка данных выводов не выполнена модулем RTC, эти выводы устанавливаются в режим аналогового входа.

Прерывания

Page 17: Практическая работа №1 – GPIO, контроллер прерываний...Практическая работа. Устройство USART Синхронный

NVIC: прерывания и события

Основные характеристики: - 32 канала прерываний (не считая 16 прерываний ядра Cortex-M0) - 4 уровня приоритета прерываний - низкая задержка обработки прерываний и исключений - управление питанием

CPU Cortex-M0

NVIC

EXTI

DMA

ADC

I2C

SPI …

GPIO

Nested vectored interrupt controller

Одновременные прерывания

Page 18: Практическая работа №1 – GPIO, контроллер прерываний...Практическая работа. Устройство USART Синхронный

PUSH POP ISR 1 PUSH POP ISR 2

PUSH ISR 1 POP ISR 2

26 16 26 16

16

IRQ1

IRQ2

ARM7 Ассемблерный код обработки прерываний

Cortex-M0 Аппаратная обработка

16

42 ТАКТА

Приоритет

Tail-chaining

ARM7 • 26 тактов на переход от IRQ1 к ISR1

•до 42 тактов в худшем случае •42 такта на переход от ISR1 к ISR2 •16 тактов для возврата из ISR2

Cortex-M0 • 16 тактов на переход от IRQ1 к ISR1 • 6 тактов на переход от ISR1 к ISR2 •16 тактов на выход из ISR2

6

Обработка одновременных прерываний

Позднее прерывание

Page 19: Практическая работа №1 – GPIO, контроллер прерываний...Практическая работа. Устройство USART Синхронный

ISR 2

IRQ1

IRQ2

ISR 2

Tail-Chaining

ISR 1 PUSH PUSH POP POP

PUSH POP

ARM7

Cortex-M0

Cortex-M0 • Сохранение стека перед ISR 2 прерывается • Сохранение продолжается, но для нового вектора • Задержка перед ISR1 зависит от этапа PUSH, для чтения таблицы векторов нужно 4 цикла • Переход к ISR 2

ARM7 • 26 тактов на вход ISR2 • Запрос IRQ1 требует еще 26 тактов для входа в ISR 1 • 16 тактов на возврат из SR 1 к ISR 2

26 16 16 26

16 6

ISR 1

16

Обработка смещенных прерываний

Приоритет

Page 20: Практическая работа №1 – GPIO, контроллер прерываний...Практическая работа. Устройство USART Синхронный

EXTI: прерывания и события

Основные характеристики: - разрешение и настройка внешних прерываний - генерация до 32 запросов прерываний/событий в NVIC - маскирование на каждой линии прерывания/события - независимый триггер для линии внешнего прерывания/события - выделенный статусный бит для линии внешнего прерывания - эмуляция всех запросов внешних событий

CPU Cortex-M0

NVIC

EXTI

DMA

ADC

I2C

SPI …

GPIO

Extended interrupts and events controller

Обслуживает внутренние и внешние асинхронные события/прерывания

Формирует запросы в NVIC, CPU и Power Manager

Структура EXTI

Page 21: Практическая работа №1 – GPIO, контроллер прерываний...Практическая работа. Устройство USART Синхронный

EXTI: структура

Page 22: Практическая работа №1 – GPIO, контроллер прерываний...Практическая работа. Устройство USART Синхронный

• Управляет внешними и внутренними асинхронными событиями/прерываниями, формирует запросы к CPU/NVIC и wake-up-запросы менеджеру питания

• Некоторая периферия (UART, I2C, CEC, comparators) может формировать события не только в режиме run/sleep, а также в режиме stop для вывода МК из сна.

• Эти модули могут формировать как асинхронные так и синхронизированные с (APB clock) версии события.

• Другие функции такие же или похожие на STM32F1x

До 32 запросов Прерываний / Событий : До 55 выводов GPIO могут быть подключены к EXTI (0..15) EXTI 16 - PVD output EXTI 17 - RTC Alarm event EXTI 18 – USB wake up EXTI 19 - RTC tamper and Timestamps EXTI 20 - RTC tamper and Timestamps . . . . . . . . .

EXTI

[15

:0]

Interrupt Mask Register

Pending Request Register

Software Interrupt Event Register

Rising Trigger Selection Register

To NVIC

Edge Detect Circuit

Pulse Generator

Falling Trigger Selection Register

Event Mask Register

EXTI: расширенный контроллер прерываний и событий

Подключение GPIO к EXTI

Page 23: Практическая работа №1 – GPIO, контроллер прерываний...Практическая работа. Устройство USART Синхронный

EXTI: подключение GPIO Все входы GPIO подключены к 16 линиям EXTI следующим образом

Работа

Page 24: Практическая работа №1 – GPIO, контроллер прерываний...Практическая работа. Устройство USART Синхронный

Практическая работа №1 GPIO и прерывания

ST-LINK

LD5

LD4

B1

PC9

PC6

PA0

External Interrupt

RUN_Status

Interrupt_Status

Page 25: Практическая работа №1 – GPIO, контроллер прерываний...Практическая работа. Устройство USART Синхронный

Практическая работа №1 Создание проекта в CubeMX

Page 26: Практическая работа №1 – GPIO, контроллер прерываний...Практическая работа. Устройство USART Синхронный

Практическая работа №1 Создание проекта в CubeMX

Page 27: Практическая работа №1 – GPIO, контроллер прерываний...Практическая работа. Устройство USART Синхронный

Практическая работа №1 Ключевые моменты: настройка выводов

Page 28: Практическая работа №1 – GPIO, контроллер прерываний...Практическая работа. Устройство USART Синхронный

Практическая работа №1 Ключевые моменты: тактирование – Clock Configuration

Page 29: Практическая работа №1 – GPIO, контроллер прерываний...Практическая работа. Устройство USART Синхронный

Практическая работа №1 Ключевые моменты: настройка PA0 как внешнего прерывания

Page 30: Практическая работа №1 – GPIO, контроллер прерываний...Практическая работа. Устройство USART Синхронный

Практическая работа №1 Ключевые моменты: настройка PA0 как внешнего прерывания

Page 31: Практическая работа №1 – GPIO, контроллер прерываний...Практическая работа. Устройство USART Синхронный

Практическая работа №1 Ключевые моменты: настройка PA0 как внешнего прерывания

Page 32: Практическая работа №1 – GPIO, контроллер прерываний...Практическая работа. Устройство USART Синхронный

Практическая работа №1 Ключевые моменты: настройка PA0 как внешнего прерывания

Page 33: Практическая работа №1 – GPIO, контроллер прерываний...Практическая работа. Устройство USART Синхронный

Практическая работа №1 Сохранение проекта

1

2

3

4

Page 34: Практическая работа №1 – GPIO, контроллер прерываний...Практическая работа. Устройство USART Синхронный

Практическая работа №1 Открытие проекта

Page 35: Практическая работа №1 – GPIO, контроллер прерываний...Практическая работа. Устройство USART Синхронный

Практическая работа №1 Главный файл программы main.c

Инициализация

Page 36: Практическая работа №1 – GPIO, контроллер прерываний...Практическая работа. Устройство USART Синхронный

Практическая работа №1 Главный файл программы main.c

Светодиод Run_Status

Page 37: Практическая работа №1 – GPIO, контроллер прерываний...Практическая работа. Устройство USART Синхронный

Практическая работа №1 Файл описания прерываний stm32f0xx_it.c

Обработчик прерывания EXTI0_1

Page 38: Практическая работа №1 – GPIO, контроллер прерываний...Практическая работа. Устройство USART Синхронный

Практическая работа №1 Файл описания прерываний stm32f0xx_it.c

Переход к функции обработчика прерывания

Page 39: Практическая работа №1 – GPIO, контроллер прерываний...Практическая работа. Устройство USART Синхронный

Практическая работа №1 Файл описания прерываний stm32f0xx_it.c

Переход к функции CallBack прерывания

Page 40: Практическая работа №1 – GPIO, контроллер прерываний...Практическая работа. Устройство USART Синхронный

Практическая работа №1 Файл stm32f0xx_hal_gpio

Копируем объявление CallBack прерывания

Page 41: Практическая работа №1 – GPIO, контроллер прерываний...Практическая работа. Устройство USART Синхронный

Практическая работа №1 Главный файл программы main.c

Вставляем объявление функции CallBack. Добавляем управление светодиодом InterruptStatus.

Page 42: Практическая работа №1 – GPIO, контроллер прерываний...Практическая работа. Устройство USART Синхронный

Практическая работа №1 Компилируем и запускаем отладку.

Проверяем работу программы.

Page 43: Практическая работа №1 – GPIO, контроллер прерываний...Практическая работа. Устройство USART Синхронный

Периферия передачи данных USART и DMA

46

Тренинг STM32F0

Page 44: Практическая работа №1 – GPIO, контроллер прерываний...Практическая работа. Устройство USART Синхронный

Последовательный интерфейс и DMA

ST-LINK

LD3

LD5

LD6

LD4

B1

USART1

PC8

PC9

PC6

PC7

PA0

PA9-TX PA10-RX

Устройство USART

Организация DMA

Практическая работа

Page 45: Практическая работа №1 – GPIO, контроллер прерываний...Практическая работа. Устройство USART Синхронный

Устройство USART

Синхронный и асинхронный режимы

Программируемый генератор - скорость до 6 Мбит/c

LIN, IrDA, SmartCard, Modbus

Поддержка CTS/RTS для RS-485

Два домена тактирования: - работа и пробуждение по USART из режима STOP - удобная настройка скорости независимо от перестройки PCLK

Автоопределение скорости

Потоковый обмен данными с использованием DMA

Возможность перестановки выводов TX/RX – однопроводный интерфейс

14 прерываний

Режим оверсэмплинга 8x и 16x

Page 46: Практическая работа №1 – GPIO, контроллер прерываний...Практическая работа. Устройство USART Синхронный

Кадр • 8, 9 бит данных • 1, 1.5, 2 стоповых бит • Четность (Even, odd, none) • Oversampling /8 и /16 (по умолч.)

Режимы • Асинхронный LIN SmartCard (T=0, T=1) IrDA Базовый MODBUS Multiprocessor communication Полудуплекс

• Синхронный ( вывод CLK line)

Прочее • Поддержка DMA • Аппаратное управление потоком (RTS, CTS) • Автоопределение скорости • Выбор порядка данных (MSB/LSB) • Переключаемые выводы Tx/RX • Пробуждение из STOP (!!! Без потерь !!!)

NO data loss on wakeup

6Mbps

Устройство USART

Page 47: Практическая работа №1 – GPIO, контроллер прерываний...Практическая работа. Устройство USART Синхронный

50

Tx

Rx

SCLK

nRTS /DE

nCTS

Transmit Data Register

Receive Data Register

Transmit. Receiver

IrDA SIR Encoder / Decoder

Апапаратное управление

потоком

Запросы DMA

Запросы IRQ Пробуждение из STOP

Управление DMA

Прерывания Управление/

Статус

Baud Rate

Generator

SCLK Control

Адрес узла

Модуль пробуждения

Управление приемом

Управление передачей

USART peripheral

Такт PCLK SYSCLK HSI LSE

USART – Блок-схема

Page 48: Практическая работа №1 – GPIO, контроллер прерываний...Практическая работа. Устройство USART Синхронный

51

Типовое пробуждение из режима STOP:

После пробуждения, бит WUF = 1

Переход в режим STOP

Выбор «пробуждающего» события

RXNE Start bit Address Match

Установка бита UESM

Выбор тактирования USART HSI LSE

bit

WUSTOP

TM

tDWU

10

Дополнительная девиация, из-за

времени пробуждения:

M = 0 для 8 бит, 1 для 9 бит

tWUSTOP время на выход из STOP ( 4.2 мкс

тип.)

Первый байт корректно принимается,

если эта задержка учитывается в общем

отклонении

Выход из режима STOP

Page 49: Практическая работа №1 – GPIO, контроллер прерываний...Практическая работа. Устройство USART Синхронный

USART: передатчик

Прием слова 7/8/9 бит

Разрешение передачи: бит TE в регистре USARTx_CR1

Разрешение DMA: бит DMAT в регистре USARTx_CR3

Регистр передачи: USARTx_TDR

USART: приемник

Передача слова 7/8/9 бит

Разрешение приема: бит RE в регистре USARTx_CR1

Разрешение DMA: бит DMAR в регистре USARTx_CR3

Регистр передачи: USARTx_RDR

4 режима автоматического определения скорости

Page 50: Практическая работа №1 – GPIO, контроллер прерываний...Практическая работа. Устройство USART Синхронный

USART: прерывания

Page 51: Практическая работа №1 – GPIO, контроллер прерываний...Практическая работа. Устройство USART Синхронный

USART: использование DMA

Запросы для Rx и Tx буфера формируются независимо

Передача

Адрес регистра USARTx_TDR записывается как приемник DMA

Адрес RAM-области записывается как источник DMA

Данные из RAM в USARTx_TDR переносятся автоматом при каждом событии TXE

Указывается количество байт для пересылки через DMA

Прерывание DMA устанавливается на полную/половинную передачу

Прием

Адрес регистра USARTx_RDR записывается как источник DMA

Адрес RAM-области записывается как приемник DMA

Данные из USARTx_RDR переносятся в RAM автоматом при каждом событии RXNE

Указывается количество байт для пересылки через DMA

Прерывание DMA устанавливается на полную/половинную передачу

По прерыванию DMA новые данные для передачи помещаются в RAM

По прерыванию DMA принятые данные извлекаются из RAM

Page 52: Практическая работа №1 – GPIO, контроллер прерываний...Практическая работа. Устройство USART Синхронный

DMA: блок-схема

Page 53: Практическая работа №1 – GPIO, контроллер прерываний...Практическая работа. Устройство USART Синхронный

DMA: основные свойства

До 7 независимых настраиваемых каналов передачи (на STM32F09x + еще 5)

4 уровня ручного приоритета + приоритет по номеру запроса

Независимые размеры источника и приемника данных

Поддержка цикличного режима работы

3 флага: передача половины буфера, передача окончена, ошибка передачи

Передача данных: память-память, память <-> периферия и периферия-периферия

Количество пересылок – до 65535

Доступ к FLASH, SRAM, периферии AHB и APB как к источнику и приемнику

Page 54: Практическая работа №1 – GPIO, контроллер прерываний...Практическая работа. Устройство USART Синхронный

DMA: прерывания

Передача данных память-память, память <-> периферия и периферия-периферия

Page 55: Практическая работа №1 – GPIO, контроллер прерываний...Практическая работа. Устройство USART Синхронный

DMA: мультиплексор

Page 56: Практическая работа №1 – GPIO, контроллер прерываний...Практическая работа. Устройство USART Синхронный

59

D

MA

SW TRIGGER

DMA REQUEST

OR

SW TRIGGER

OR

SW TRIGGER

OR

SW TRIGGER

OR

Высокий приоритет Низкий приоритет

Channel3 Channel1 Channel2 Channel5

SW TRIGGER

OR

Channel4

ADC TIM2_CH3 TIM17_CH1 TIM17_UP

ADC SPI1_RX USART1_TX I2C1_TX TIM1_CH1 TIM2_UP TIM3_CH3 TIM17_CH1 TIM17_UP

SPI1_TX USART1_RX I2C1_RX TIM1_CH2 TIM2_CH2 TIM3_CH4 TIM3_UP TIM6_UP DAC TIM16_CH1 TIM16_UP

SPI2_RX USART1_TX I2C2_TX USART2_TX TIM1_CH4 TIM1_TRIG TIM1_COM TIM2_CH4 TIM3_CH1 TIM3_TRIG TIM16_CH1 TIM16_UP

SPI2_TX USART1_RX I2C2_RX USART2_RX TIM1_CH3 TIM1_UP TIM2_CH1 TIM15_CH1 TIM15_UP TIM15_TRIG TIM15_COM

Прим: Запросы, выделенные синим привязываются к каналу в зависимости от значения бита настройки в регистре SYSCFG_CFGR1

DMA: мультиплексор

Передача одного запроса

Page 57: Практическая работа №1 – GPIO, контроллер прерываний...Практическая работа. Устройство USART Синхронный

60

Request1 sample &

arbitration phase

Bus access Address computation Acknowledgement phase

1 такт 1 такт 2 такта 1 такт

Запрос 1

5 тактов на каждый запрос в лучшем случае

(источник и приемник находятся на шине AHB, CPU остановлен)

Request2 sample &

arbitration phase

Запрос 2

• Различные параметры могут влиять на время доступа к шине:

If the CPU is running

If source or destination is an APB Peripheral, it introduce a bridge latency. If CPU is competing with DMA to

access the APB Peripheral. (AHB frequency bigger than APB)

AHB and APB are same frequency

APB frequency is the half of AHB frequency

+ 2 cycles +3 cycles +5-6 cycles +4 cycles

STM32F0xx Training Day 1

DMA: 1 канал

Передача двух запросов

Page 58: Практическая работа №1 – GPIO, контроллер прерываний...Практическая работа. Устройство USART Синхронный

61

DMA: 2 канала

Для увеличения производительности новый запрос обслуживается во время

выполнения первого

• if source or destination is on APB, the transfer will take more cycles (+ 2 cycles for APB:AHB = 1:1)

HCLK

Ch. 1

Request

sample

& arb.

phase

Addr.

compu

tation

Ch. 2

Bus access Bus access Ack. phase

Bus access

Request

sample

& arb.

phase

Addr.

compu

tation

Ack. phase

Request

sample

& arb.

phase

Addr.

compu

tation

STM32F0xx Training Day 1

Page 59: Практическая работа №1 – GPIO, контроллер прерываний...Практическая работа. Устройство USART Синхронный

Практическая работа №2 – USART+DMA (30 мин)

ST-LINK

B1

USART1

PA0

PA9-TX PA10-RX

USART3 PC4-TX

PC11-RX

Буфер_TX

Буфер_RX

Байт 1

Байт 2

Байт 3

Байт 4 Байт 1

Байт 2 Байт 5

Байт 6

Байт 7

Байт 8

Page 60: Практическая работа №1 – GPIO, контроллер прерываний...Практическая работа. Устройство USART Синхронный

Практическая работа №2 – USART+DMA Разрешение UART

Page 61: Практическая работа №1 – GPIO, контроллер прерываний...Практическая работа. Устройство USART Синхронный

Практическая работа №2 – USART+DMA Настройка USART1

Page 62: Практическая работа №1 – GPIO, контроллер прерываний...Практическая работа. Устройство USART Синхронный

Практическая работа №2 – USART+DMA Параметры передачи USART1

Page 63: Практическая работа №1 – GPIO, контроллер прерываний...Практическая работа. Устройство USART Синхронный

Практическая работа №2 – USART+DMA Доавление DMA: USART1-TX

Page 64: Практическая работа №1 – GPIO, контроллер прерываний...Практическая работа. Устройство USART Синхронный

Практическая работа №2 – USART+DMA Настройка USART3

Page 65: Практическая работа №1 – GPIO, контроллер прерываний...Практическая работа. Устройство USART Синхронный

Практическая работа №2 – USART+DMA Параметры приема USART3

Page 66: Практическая работа №1 – GPIO, контроллер прерываний...Практическая работа. Устройство USART Синхронный

Практическая работа №2 – USART+DMA Доавление DMA: USART3-RX

Page 67: Практическая работа №1 – GPIO, контроллер прерываний...Практическая работа. Устройство USART Синхронный

Практическая работа №2 – USART+DMA Генерация проекта из Cube32MX

Page 68: Практическая работа №1 – GPIO, контроллер прерываний...Практическая работа. Устройство USART Синхронный

Практическая работа №2 – USART+DMA Объявление приемного (char RX) и передающего (char TX) буферов в памяти

Page 69: Практическая работа №1 – GPIO, контроллер прерываний...Практическая работа. Устройство USART Синхронный

Практическая работа №2 – USART+DMA Запуск DMA передачи и приема. Индикация выполнения программы.

Page 70: Практическая работа №1 – GPIO, контроллер прерываний...Практическая работа. Устройство USART Синхронный

Практическая работа №2 – USART+DMA Проверка аппаратного подключения

ST-LINK

USART3 PC11-RX

USART1 PA9-TX

Page 71: Практическая работа №1 – GPIO, контроллер прерываний...Практическая работа. Устройство USART Синхронный

Практическая работа №2 – USART+DMA Загрузка программы в МК и запуск отладки

Page 72: Практическая работа №1 – GPIO, контроллер прерываний...Практическая работа. Устройство USART Синхронный

Практическая работа №2 – USART+DMA Вывод переменных RX и TX в окно для наблюдения

Page 73: Практическая работа №1 – GPIO, контроллер прерываний...Практическая работа. Устройство USART Синхронный

Практическая работа №2 – USART+DMA Проверка содержимого буферов перед запуском программы

Page 74: Практическая работа №1 – GPIO, контроллер прерываний...Практическая работа. Устройство USART Синхронный

Практическая работа №2 – USART+DMA Запуск программы на выполнение

Page 75: Практическая работа №1 – GPIO, контроллер прерываний...Практическая работа. Устройство USART Синхронный

Практическая работа №2 – USART+DMA Остановка выполнения программы и проверка буферов

Page 76: Практическая работа №1 – GPIO, контроллер прерываний...Практическая работа. Устройство USART Синхронный

Интерфейсы USB и виртуальный COM-порт

81

Тренинг STM32F0

Page 77: Практическая работа №1 – GPIO, контроллер прерываний...Практическая работа. Устройство USART Синхронный

Практическая работа №3 – USB за 5 минут (40 мин)

STM32F04x, STM32F072 и STM32F078 – имеют одинаковый модуль USB

Периферия USB реализует интерфейс между full-speed USB 2.0 и шиной APB

Поддержка режимов suspend/resume, что позволяет отключать тактирование МК для меньшего потребления

Настраиваемое количество Endpoint (получатель пакетов): 1…8

До 1024 байт выделенной памяти SRAM для буфера

Генерация/проверка CRC

Поддержка двойного буфера для endpoint типа bulk/isochronous

Поддержка двойного буфера для endpoint типа bulk/isochronous

Поддержка управления питанием USB 2.0 Link

Поддержка заряда батарей по спецификации ревизии 1.2

Встроенный управляемый резистор подтяжки DP (connect/disconnect)

Page 78: Практическая работа №1 – GPIO, контроллер прерываний...Практическая работа. Устройство USART Синхронный

USB: основные характеристики

Page 79: Практическая работа №1 – GPIO, контроллер прерываний...Практическая работа. Устройство USART Синхронный

USB: блок-схема

Page 80: Практическая работа №1 – GPIO, контроллер прерываний...Практическая работа. Устройство USART Синхронный

• Crystal-less* USB 2.0 FS interface (12Mbit/s) with D+/D- resistors * Встроенный 48 MHz генератор с восстановлением сигнала. Не нужен внешний резонатор/кварц (экономия порядка 0.10$).

• Совместимость со спецификациями Link Power Management и Battery Charger Detection 1.2

• Библтотека USB FS Device интуитивно понятными API драйверами

– Примеры на базе 6 классов(Audio, CCID, CDC, HID, VCP, MSC). – Простая разработка приложений с использованием full-speed типов передачи данных (control, interrupt, bulk и

isochronous).

• Обновление прошивки в готовом устройстве «в поле» через USB (boot loader)

• Бесплатное лицензирование USB VID/PID от ST

USB: периферия

Page 81: Практическая работа №1 – GPIO, контроллер прерываний...Практическая работа. Устройство USART Синхронный

USB Battery Charging Detection (USB BCD)

• Позволяет определить тип источника питания на порта USB для максимально быстрой зарядки портативных устройств

У STM32Fxx2 есть специальные регистры, информирующие о линиях данных USB, возможности заряда батарей и типа порта SDP, CDP или DCP

Page 82: Практическая работа №1 – GPIO, контроллер прерываний...Практическая работа. Устройство USART Синхронный

USB Link Power Management (LPM)

• С LPM вводится новое энергосберегающее состояние “Sleep”, с более быстрым временем входа и выхода по сравнению со стандартным режимом “Suspend”.

• Режим LPM позволяет оптимизировать энергопотребление как хоста так и устройства, а также продлить жизнь батареи портативных устройств.

Page 83: Практическая работа №1 – GPIO, контроллер прерываний...Практическая работа. Устройство USART Синхронный

Практическая работа №3 – USB – Virtual COM-Port

USB-Device ST-Link

Page 84: Практическая работа №1 – GPIO, контроллер прерываний...Практическая работа. Устройство USART Синхронный

Практическая работа №3 – USB – Virtual COM-Port

Установка драйвера

Архив en.stsw-stm32102.zip

Page 85: Практическая работа №1 – GPIO, контроллер прерываний...Практическая работа. Устройство USART Синхронный

Практическая работа №3 – USB – Virtual COM-Port

Включение USB Device

Page 86: Практическая работа №1 – GPIO, контроллер прерываний...Практическая работа. Устройство USART Синхронный

Практическая работа №3 – USB – Virtual COM-Port

Выбор класса USB-устройства

Page 87: Практическая работа №1 – GPIO, контроллер прерываний...Практическая работа. Устройство USART Синхронный

Практическая работа №3 – USB – Virtual COM-Port

Функция приема данных по USB

Page 88: Практическая работа №1 – GPIO, контроллер прерываний...Практическая работа. Устройство USART Синхронный

Практическая работа №3 – USB – Virtual COM-Port

Добавление эха (передачи принятого символа)

Page 89: Практическая работа №1 – GPIO, контроллер прерываний...Практическая работа. Устройство USART Синхронный

Практическая работа №3 – USB – Virtual COM-Port

Подключение терминала