164
Микроконтроллеры С2000 от Texas Instruments Тренинг

Микроконтроллеры С2000 от Texas Instruments · Петля управления (напр. pid/2p2z) pwm Преобразователь Управление в реальном

  • Upload
    others

  • View
    11

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Микроконтроллеры С2000 от Texas Instruments · Петля управления (напр. pid/2p2z) pwm Преобразователь Управление в реальном

Микроконтроллеры С2000 от Texas Instruments

Тренинг

Page 2: Микроконтроллеры С2000 от Texas Instruments · Петля управления (напр. pid/2p2z) pwm Преобразователь Управление в реальном

Содержание тренинга

0. Вступление

1. Обзор архитектуры С2000

2. Обзор среды разработки приложений Л.р.: Файл настройки линкера

3. Header-файлы регистров периферии

4. Аналого-цифровой преобразователь Л.р.: Система сбора данных

5. Управление периферией Л.р.: Формирование ШИМ-сигнала

Page 3: Микроконтроллеры С2000 от Texas Instruments · Петля управления (напр. pid/2p2z) pwm Преобразователь Управление в реальном

Что такое С2000? Производительная обработка

сопроцессор

CLA

Тактовая частота до 300 МГц

ускоритель

VCU FPU

32-битное

DSP ядро

Быстрый отклик на прерывания

Умножение 32Х32 за 1 цикл Двойной MAC 16Х16

Режим реального времени

Производительность DSP в микроконтроллерной архитектуре •C28x - 32-битное ядро CPU 40-300 МГц: - встроенные DSP-функции; - умножение 32X32 за один цикл. •Сопроцессор CLA •Модуль вычислений с плавающей точкой (FPU) •Модуль комплексной математики и декодирования Витерби(VCU) •Встроенная FLASH-память

Системная интеграция

CAN

USB

SPI

I2C

SCI

QEP CAP CMP

PWM

ADC

Разработан для приложений управления в реальном времени •Оптимизированное ядро •Быстрые прерывания •Гибкая система прерываний •Отладка в реальном времени

Комплексный набор периферийных устройств •Лучшая в классе производительность АЦП •Гибкий модуль ШИМ высокого разрешения •Продвинутый модуль захвата (CAP) •Модуль обслуживания квадратурного энкодера (QEP) •CAN, LIN, SPI, I2C, SCI/UART, McBSP, USB •Компараторы, VREG, BOR/POR, встроенные генераторы тактовых импульсов

Широкое портфолио конфигураций •40-300 МГц •Устройства с фикс. и с плавающей точкой •Многоядерность c ARM Cortex-M3 •16-1024 кБ FLASH-памяти •От 3$ до 20$ •Совместимость программного обеспечения внутри всей линейки C2000

Page 4: Микроконтроллеры С2000 от Texas Instruments · Петля управления (напр. pid/2p2z) pwm Преобразователь Управление в реальном

Математическое Ядро

ADC Ток или напряжение системы

CAN

UART

SPI

IIC

RX TX

Петля управления (напр. PID/2P2Z)

PWM

Преобразователь

Управление в реальном времени = Замкнутая ОС

Математическое ядро, рассчитывающее сложные алгоритмы быстро и с высокой точностью

Настраиваемый ШИМ-модуль, поддерживающий широкий диапазон топологий и высокое разрешение

Быстрый АЦП , работающий синхронно с математическим ядром

Передача данных в другие системы

Наборы готовых программ для реального использования Математические библиотеки для устройств с фиксированной и плавающей точкой, программные

конструкции для конкретных приложений, оптимизированные блоки управления, моделируемое ПО

Вход

Вычисления

Выход

Внешние

устройства

Управление

Управление

Уп

рав

лен

ие

Page 5: Микроконтроллеры С2000 от Texas Instruments · Петля управления (напр. pid/2p2z) pwm Преобразователь Управление в реальном

Область применений C2000

Инверторы солнечной энергии

Инверторы энергии ветра

AC/DC преобразователи

для телекоммуникаций / серверов

Бесперебойные источники питания

Электрическое рулевое управление

Радары/ Предотвращение аварий

High/Low Bay Lighting

Светодиодное освещение

E-bike

Гибридный электротранспорт

Автомобильное освещение

Power Line Communication

DC/DC преобразователи

C2000

White Goods Промышленные драйвера

Мощные инструменты

Счетчики Радиосвязь

Развлечение

Возобновляемая энергетика

Управление двигателем

Системы освещения Умные сети и PLC

Электропитание

Автомобильная техника

Page 6: Микроконтроллеры С2000 от Texas Instruments · Петля управления (напр. pid/2p2z) pwm Преобразователь Управление в реальном

Piccolo™ Delfino™ Concerto™

3 основные ветви C2000

F28M35x C2834x

F2833x

Более 150 совместимых по коду устройств, с ценой от 3 $.

Производительность:

40-90MHz 28x CPU Floating Point Unit (опционально) Сопроцессор CLA (опционально) Ускоритель VCU (опционально)

Память:

16kB-256kB Flash

6kB-100kB SRAM

Ключевая периферия:

ADC, PWM, QEP, DMA, SPI, UART, I2C, CAN, USB

Корпуса:

38 TSSOP, 48 QFP, 56 QFN, 64 QFP, 80 QFP, 100 QFP

Производительность:

100-300MHz 28x CPU Floating Point Unit

Память:

Up to 512kB Flash Up to 516 kB SRAM

Ключевая периферия:

ADC, PWM, QEP, DMA, SPI, UART, I2C, CAN, EMIF

Корпуса:

176 QFP, 176 BGA, 179 u*BGA,

256 BGA

Производительность:

Dual Core 28x CPU До 150MHz

Up to 125MHz ARM Cortex M3 CPU Floating Point Unit Ускоритель VCU

Память:

256kB-1.5MB Flash Up to 296kB SRAM

Ключевая периферия:

ADC, PWM, QEP, DMA, EMIF, SPI, UART, I2C, CAN, USB, EMAC

Корпуса:

144 QFP, 289nBGA

F28M36x

F2806x F2805x

F2803x

F2802x

Page 7: Микроконтроллеры С2000 от Texas Instruments · Петля управления (напр. pid/2p2z) pwm Преобразователь Управление в реальном

C2000™ Piccolo LaunchPad

Может быть использовано как отдельный модуль в более сложных системах

Клавиша сброса и программируемая клавиша

Переключатели выбора режима загрузки и отключения интерфейса SCI

Разъемы с двух сторон для удобного прототипирования и подключения Booster-паков

Индикаторы: индикация приема/передачи UART

4 светодиода для отладки

Бесплатное использование среды разработки Code Composer Studio 5 с многочисленными примерами приложений

Средство разработки на базе F28027 :

Page 8: Микроконтроллеры С2000 от Texas Instruments · Петля управления (напр. pid/2p2z) pwm Преобразователь Управление в реальном

Сравнение микроконтроллеров семейства C2000 F2833x F2803x F2806x F28027

Clock 150 MHz 60 MHz 80 MHz 60 MHz

Flash / RAM 128Kw / 34Kw 64Kw / 10Kw 128Kw / 50Kw 32Kw / 6Kw

On-chip Oscillators - 2 2 2

VREG / POR / BOR -

Watchdog Timer

12-bit ADC SEQ - based SOC - based SOC - based SOC - based

Analog COMP w/ DAC -

FPU - -

6-Channel DMA - -

CLA - -

VCU - - -

ePWM / HR ePWM / / / /

eCAP / HR eCAP / - / - / / -

eQEP -

SCI / SPI / I2C

LIN - - -

McBSP - -

USB - - -

External Interface - - -

Page 9: Микроконтроллеры С2000 от Texas Instruments · Петля управления (напр. pid/2p2z) pwm Преобразователь Управление в реальном

Микроконтроллеры C2000 от Texas Instruments Модуль 1

Архитектура

Page 10: Микроконтроллеры С2000 от Texas Instruments · Петля управления (напр. pid/2p2z) pwm Преобразователь Управление в реальном

Содержание модуля

• Обзор структурной схемы и аппаратных особенностей

• Описание структуры шины и карты памяти

• Обзор блоков памяти

• Обзор периферии

Page 11: Микроконтроллеры С2000 от Texas Instruments · Петля управления (напр. pid/2p2z) pwm Преобразователь Управление в реальном

С28x: Структурная схема

Sectored

Flash RAM

Boot

ROM

3

32-bit

Timers

PIE Interrupt Manager

eQEP

Watchdog

I2C

SCI

SPI

GPIO

eCAP

CLA

CAN 2.0B

12-bit ADC

Шина CLA

32x32 bit

Multiplier

32-bit

Auxiliary

Registers

CPU

R-M-W

Atomic

ALU

FPU

VCU

DMA

6 Ch.

Шина DMA

McBSP

ePWM

USB 2.0

Шина регистров

Шина данных

Шина программы

Page 12: Микроконтроллеры С2000 от Texas Instruments · Петля управления (напр. pid/2p2z) pwm Преобразователь Управление в реальном

Шина записи данных/программ (32)

Шина адреса записи данных (32)

Шина чтения данных (32)

Шина адреса чтения данных (32)

Шина чтения программы (32)

Шина адреса программы (22)

С28x: Внутренняя организация шин

Выполнение

R-M-W

Atomic

ALU

Real-Time

JTAG

Emulation XAR0 to

XAR7

SP

DP @X

ARAU MPY32x32

XT P

ACC

ALU

Регистры Отладка FPU

R0H-R7H Память

данных

Периферия

VCU VR0-VR8

CLA MR0-MR3

Шина регистров/Шина результата

Память

программ

Программа

Decoder

PC

@X

Page 13: Микроконтроллеры С2000 от Texas Instruments · Петля управления (напр. pid/2p2z) pwm Преобразователь Управление в реальном

Шина программы

Возможность выбора между компактностью кода и скоростью выполнения программы: команды 16-бит для увеличения плотности кода команды 32-бит для оптимизации по времени

32-битное ядро CPU производит вычисления с фиксированной точкой

Модуль FPU для вычислений с плавающей точкой увеличивает производительность

MAC 32x32 может использоваться как два перемножителя 16x16

Модуль CLA, работающий независимо от CPU Viterbi, Complex Math, CRC Unit (VCU)

добавляет поддержку декодированияViterbi, математики с комплексными числами и CRC операций

Быстрый отклик на прерывания Команды чтения-модификации-записи,

выполняемые за 1 цикл Возможность отладки в реальном времени

С28x CPU + FPU + VCU и CLA

Шина данных

3 32-bit

Timers CPU

Register Bus

32x32 bit

Multiplier

32-bit

Aux

Regs

R-M-W

Atomic

ALU

CLA

Шина CLA

FPU

VCU

PIE

Page 14: Микроконтроллеры С2000 от Texas Instruments · Петля управления (напр. pid/2p2z) pwm Преобразователь Управление в реальном

С28x: Атомарная операция Чтение/Модификация/Запись

Регистры ALU / MPY

ЗАГРУЗКА

СОХРАНЕНИЕ

ЗАПИСЬ

ЧТЕНИЕ

CPU

Пам

ять

Упрощение программ Более компактный и быстрый код Непрерывность (атомарность) Более эффективный компилятор

AND *XAR2,#1234h

2 слова / 1 цикл

Атомарная операция

MOV AL,*XAR2 AND AL,#1234h MOV *XAR2,AL

DINT EINT

6 слов / 6 циклов

Стандартная операция

Преимущества атомарных операций:

Page 15: Микроконтроллеры С2000 от Texas Instruments · Петля управления (напр. pid/2p2z) pwm Преобразователь Управление в реальном

F1 F2 D1 D2 R1 R2 E

С28x: Конвейер CPU

Защита конвейера CPU

Последовательность действий такая,

как в исходном коде

Программисту нет необходимости

принимать меры по защите

конвейера

8-ступенчатый конвейер

F1 F2 D1 D2 R1 R2 E

F1 F2 D1 D2 R1 R2 E

F1 F2 D1 D2 R1 R2 E

F1 F2 D1 D2 R1 R2 E

F1 F2 D1 D2 R1 R2 E

F1 F2 D1 D2 R1 R2 E

F1 F2 D1 D2 R1 R2 E

A

B

C

D

E

F

G

W

W

W

W

W

W

W

W

E & G Обращаются по одному адресу

R1 R2 E W

D2 R1 R2 E W

F1: Адрес команды F2: Содержимое команды D1: Декодирование команды D2: Вычисление адреса операнда R1: Адрес операнда R2: Получение операнда E: CPU выполняет “реальную” работу W: Сохранение данных в память

H

Page 16: Микроконтроллеры С2000 от Texas Instruments · Петля управления (напр. pid/2p2z) pwm Преобразователь Управление в реальном

Карта памяти TMS320F28027

0x000000

0x000400

0x000800 M1 SARAM (1Kw)

M0 SARAM (1Kw)

Данные Программа

PIE Vectors (256 w)

PF 0 (6Kw) reserved

PF 3 (4Kw)

PF 1 (4Kw)

L0 SARAM (4Kw)

0x000D00

0x002000

0x005000

0x006000

0x008000

0x009000

0x03D7800

0x03D7C80

0x000E00

0x03D7C00 Данные Программа

Boot ROM (32Kw)

Защищены модулем CSM :

L0,OTP, FLASH,

ADC CAL,

Flash Regs in PF0

BROM Vectors (64w)

PF 2 (4Kw) 0x007000

0x03D7CС0

0x03D7CE0

0x03D7E80

reserved

User OTP (1Kw)

reserved

ADC / OSC cal. data

Get_mode function

reserved

ADC / OSC cal. data

reserved

Part ID

reserved

FLASH (32Kw)

PASSWORDS (8w)

reserved

0x03D7EB0

0x03D7FFF

0x03D7FFF

0x03D8000

0x03F0000

0x03F7FF8

0x03F8000

0x03F9000

0x03FE000

0x03FFFFF

0x03FFFС0

L0 SARAM (4Kw)

Page 17: Микроконтроллеры С2000 от Texas Instruments · Петля управления (напр. pid/2p2z) pwm Преобразователь Управление в реальном

Модуль защиты кода (CSM) Предотвращает обратный инжиниринг и защищает

интеллектуальную собственность

128-битный пароль пользователя хранится во Flash

128-бит = 2128 = 3.4 x 1038 возможных паролей

Чтобы перебрать все возможные варианты паролей, потребуется как минимум 1.1 x 1024 лет для ввода 1 пароля каждый цикл на частоте 80 МГц.

L0 SARAM (4Kw) 0x008000

0x009000

0x03D7800

0x03D7C00 User OTP (1Kw)

0x03D7C80

0x03D7CС0

0x03D7E80

ADC / OSC cal. data

ADC / OSC cal. data 0x03D7EB0

FLASH (32Kw)

PASSWORDS (8w)

0x03F0000

0x03F7FF8

0x03F8000

Page 18: Микроконтроллеры С2000 от Texas Instruments · Петля управления (напр. pid/2p2z) pwm Преобразователь Управление в реальном

F28x: Менеджер прерываний быстрого отклика

96 выделенных векторов PIE

Не требуется принятия решений

на программном уровне

Прямой доступ к векторам RAM

Автоматическое обновление

флагов

Автосохранение контекстной

информации и переход к

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

за 9 тактов

Логика обработки

прерывания

28x CPU

28x

CPU INTM 96

Пр

ер

ыв

ан

ия

от п

ер

иф

ер

ии

12

x8

= 9

6

12 прерываний

INT1…

INT12

Регистры

PIE

Модуль

PIE для 96

прерываний

•T ST0 •AH AL •PH PL •AR1 (L) AR0 (L) •DP ST1 •DBSTAT IER •PC(msw) PC(lsw)

Автосохранение

IFR IER

Page 19: Микроконтроллеры С2000 от Texas Instruments · Петля управления (напр. pid/2p2z) pwm Преобразователь Управление в реальном

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

XCLKINOFF

X2 XTA

L O

SC

X1

XTA

L

0*

1 0

XCLKIN

Internal OSC 1

(10 MHz)

Internal OSC 2

(10 MHz)

OSCCLKSRC2

0*

1

WDCLKSRCSEL

0*

1

OSCCLKSRCSEL

0*

1

10 11 01 00* CPU

Timer 2 SYSCLKOUT

TMR2CLKSRCSEL

PLL VCOCLK

OSCCLK

C28x

Core

CLKIN

SYSCLKOUT

LOSPCP

LSPCLK

(пропуск PLL )

LSPCLK

DIV

SCI, SPI

Остальная периферия тактируется сигналом

SYSCLKOUT

MU

X

1/n

DIVSEL

OSC1CLK

OSC2CLK

EXTCLK

Watchdog

Module

WDCLK

CPUTMR2CLK

* = по умолчанию Для функций контроля SYSCLKOUT может быть выведен на пин XCLKOUT

Page 20: Микроконтроллеры С2000 от Texas Instruments · Петля управления (напр. pid/2p2z) pwm Преобразователь Управление в реальном

Архитектура: резюме

Высокопроизводительное 32-битное ядро CPU

Умножение 32x32 или16x16 Атомарные операции чтения-модификации-записи Менеджер прерываний быстрого отклика 32K слов встроенной FLASH-памяти Модуль защиты кода (CSM) Большой выбор периферийных модулей 12-битный модуль АЦП (до 13 каналов) Два аналоговых компаратора До 22 выводов GPIO Коммуникационные интерфейсы

Page 21: Микроконтроллеры С2000 от Texas Instruments · Петля управления (напр. pid/2p2z) pwm Преобразователь Управление в реальном

Микроконтроллеры C2000 от Texas Instruments Модуль 2

Среда разработки

программного обеспечения

Page 22: Микроконтроллеры С2000 от Texas Instruments · Петля управления (напр. pid/2p2z) pwm Преобразователь Управление в реальном

Содержание модуля

Обзор среды Code Composer Studio: Создание проекта

Настройка Build Options

Создание файла настройки линкера: Описание доступной памяти системы

Указание, где именно размещать секции кода в памяти

Page 23: Микроконтроллеры С2000 от Texas Instruments · Петля управления (напр. pid/2p2z) pwm Преобразователь Управление в реальном

Содержание модуля

Обзор среды Code Composer Studio: Создание проекта

Настройка Build Options

Создание файла настройки линкера: Описание доступной памяти системы

Указание, где именно размещать секции кода в памяти

Page 24: Микроконтроллеры С2000 от Texas Instruments · Петля управления (напр. pid/2p2z) pwm Преобразователь Управление в реальном

Code Composer Studio

Code Composer Studio включает: Интегрированную среду редактирования/отладки с графическим

интерфейсом

Code Generation Tools

DSP/BIOS

Asm Link

Редактор

Отладка

Compile

Графики, профили

Code Simulator

Development Tool

Внешний эмулятор

MCU Board

Библиотеки

lnk.cmd

Build

Page 25: Микроконтроллеры С2000 от Texas Instruments · Петля управления (напр. pid/2p2z) pwm Преобразователь Управление в реальном

Code Composer Studio: IDE

Объединяет: редактирование, создание кода, и отладку

Клавиши использования в один клик

Мощные инструменты графиков/профиля

Скрипты для автоматизирования задач

Встроенный доступ к функциям BIOS

Основана на базе фреймворка с открытым исходным кодом Eclipse

Page 26: Микроконтроллеры С2000 от Texas Instruments · Петля управления (напр. pid/2p2z) pwm Преобразователь Управление в реальном

Режимы Edit и Debug (CCSv5)

Каждый из режимов предоставляет набор функций, необходимых для выполнения определенной задачи

Режим Edit

Отображаются меню, необходимые при разработке кода

(проект C/C++, редактор, и т.п.)

Режим Debug

Отображаются меню, необходимые при отладке

(переменные, память, графики и т.п.)

Page 27: Микроконтроллеры С2000 от Texas Instruments · Петля управления (напр. pid/2p2z) pwm Преобразователь Управление в реальном

Проект CCSv5

Файлы:

Исходный код (C, assembly)

Библиотеки

Файлы настройки DSP/BIOS

Файлы настройки линкера

Настройки проекта:

Build options (компилятор, ассемблер, линкер, и DSP/BIOS)

Build configurations

Составляющие проекта:

Page 28: Микроконтроллеры С2000 от Texas Instruments · Петля управления (напр. pid/2p2z) pwm Преобразователь Управление в реальном

Создание проекта в CCSv5

File New CCS Project

1. Имя проекта, путь сохранения и устройство

2. Дополнительные настройки

3. Шаблоны проектов и примеры

Page 29: Микроконтроллеры С2000 от Texas Instruments · Петля управления (напр. pid/2p2z) pwm Преобразователь Управление в реальном

Build options CCSv5 – Компилятор / Линкер

Компилятор 20 категорий для инструментов

генерации кода

Управляет многими аспектами процесса создания приложения Степень оптимизации

Целевое устройство

Настройки компилятора/ассемблера/линкера

Линкер 8 категорий настроек линкера

Определяют различные настройки объединения

${PROJECT_ROOT} указывает текущую папку проекта

Page 30: Микроконтроллеры С2000 от Texas Instruments · Петля управления (напр. pid/2p2z) pwm Преобразователь Управление в реальном

Содержание модуля

Обзор среды Code Composer Studio: Создание проекта

Настройка Build Options

Создание файла настройки линкера: Описание доступной памяти системы

Указание, где именно размещать секции кода в памяти

Page 31: Микроконтроллеры С2000 от Texas Instruments · Петля управления (напр. pid/2p2z) pwm Преобразователь Управление в реальном

Секции

Программа состоит из разных частей ─ sections

Все стандартные секции начинаются с символа“.”

Компилятор разделяет секции на инициализируемые и неинициализируемые

int x = 2;

int y = 7;

void main(void)

{

long z;

z = x + y;

}

Глобальные переменные(.ebss) Начальные значения(.cinit)

Локальные переменные(.stack) Код (.text)

Page 32: Микроконтроллеры С2000 от Texas Instruments · Петля управления (напр. pid/2p2z) pwm Преобразователь Управление в реальном

Секции компилятора

Имя Описание Область памяти

.text код (действия) FLASH

.cinit значения инициализации для глобальных и FLASH

статических переменных

.econst константы (напр. const int k = 3;) FLASH

.switch таблицы перехода по switch FLASH

.pinit таблицы глобальных конструкций (C++) FLASH

Инициализируемые секции

Имя Описание Область памяти

.ebss глобальные и статические переменные RAM

.stack область стека low 64Kw RAM

.esysmem область для функции far malloc RAM

Неинициализируемые секции

Примечание: Во время разработки инициализируемые секции могут быть расположены в RAM с использованием эмулятора

Page 33: Микроконтроллеры С2000 от Texas Instruments · Петля управления (напр. pid/2p2z) pwm Преобразователь Управление в реальном

Расположение секций в памяти

.ebss

.cinit

.text

Память

M0SARAM

(0x400)

0x00 0000

0x3F 0000

0x00 0400 M1SARAM

(0x400)

FLASH

(0x10000)

Секции

.stack

Page 34: Микроконтроллеры С2000 от Texas Instruments · Петля управления (напр. pid/2p2z) pwm Преобразователь Управление в реальном

Линковка

Линкер

Link.cmd

.map

.obj .out

Описание памяти

Как разместить s/w в h/w

Page 35: Микроконтроллеры С2000 от Texas Instruments · Петля управления (напр. pid/2p2z) pwm Преобразователь Управление в реальном

Файл настройки линкера

SECTIONS

{

.text:> FLASH PAGE = 0

.ebss:> M0SARAM PAGE = 1

.cinit:> FLASH PAGE = 0

.stack:> M1SARAM PAGE = 1

}

MEMORY

{

PAGE 0: /* Program Memory */

FLASH: origin = 0x3F0000, length = 0x10000

PAGE 1: /* Data Memory */

M0SARAM: origin = 0x000000, length = 0x400

M1SARAM: origin = 0x000400, length = 0x400

}

Page 36: Микроконтроллеры С2000 от Texas Instruments · Петля управления (напр. pid/2p2z) pwm Преобразователь Управление в реальном

Файл настройки линкера: резюме

Описание карты памяти Имя области памяти

Положение (начальный адрес)

Размер

Описание секций Расположение секций ПО в соответствующих

областях памяти

Позволяет выполнить пофайловое разделение

Позволяет разделить области загрузки и выполнения кода

Page 37: Микроконтроллеры С2000 от Texas Instruments · Петля управления (напр. pid/2p2z) pwm Преобразователь Управление в реальном

Структура каталога с л.р.

Все измененные файлы находятся в папке Project

Оригинальные исходные файлы всегда доступны в начальном виде в папке Files

Оригинальные исходные файлы

Исходные файлы, добавленные в

проект через «Add Files…»

Вспомогательные файлы и библиотеки

Повышают портируемость проекта

${PROJECT_ROOT} позволяет перемещать папку проекта

Легче обслуживать и обновлять файлы поддержки и библиотеки

Примечание: CCSv5 автоматически добавляет в проект ВСЕ файлы, содержащиеся в папке проекта

Page 38: Микроконтроллеры С2000 от Texas Instruments · Петля управления (напр. pid/2p2z) pwm Преобразователь Управление в реальном

Микроконтроллеры C2000 от Texas Instruments

Header-файлы регистров

периферии

Модуль 3

Page 39: Микроконтроллеры С2000 от Texas Instruments · Петля управления (напр. pid/2p2z) pwm Преобразователь Управление в реальном

Содержание модуля

Использование Header-файлов, написанных на языке Си для F28027

Программирование периферийных регистров

Как структуры отображаются в файле настроек линкера

Page 40: Микроконтроллеры С2000 от Texas Instruments · Петля управления (напр. pid/2p2z) pwm Преобразователь Управление в реальном

Традиционный способ программирования на языке Си

#define ADCCTL1 (volatile unsigned int *)0x00007100

...

void main(void)

{

*ADCCTL1 = 0x1234; //write entire register

*ADCCTL1 |= 0x4000; //enable ADC module

}

Недостатки - Для манипулирования отдельным битом требуется создание специальной маски

- Неудобно отображать битовое поле в окне отладки

- Генерация менее эффективного кода во многих случаях

Приемущества - Просто, быстро и легко набирать текст

- Имена переменных совпадают с названиями регистров (удобно для запоминания)

Page 41: Микроконтроллеры С2000 от Texas Instruments · Петля управления (напр. pid/2p2z) pwm Преобразователь Управление в реальном

Структурное программирование на языке Си

void main(void)

{

AdcRegs.ADCCTL1.all = 0x1234; //write entire register

AdcRegs.ADCCTL1.bit.ADCENABLE = 1; //enable ADC module

}

Недостатки - Может быть сложно запомнить имена структур (В этом случае помогает функция автозаполнения!)

- Больше ручного набора (снова поможет функция автозаполнения )

Преимущества - Легко манипулировать отдельными битами

- Удобный просмотр в окне Watch! (след. слайд)

- Генерация более эффективного кода (для C28x)

Page 42: Микроконтроллеры С2000 от Texas Instruments · Петля управления (напр. pid/2p2z) pwm Преобразователь Управление в реальном

Встроенное в CCSv5 окно регистров

Page 43: Микроконтроллеры С2000 от Texas Instruments · Петля управления (напр. pid/2p2z) pwm Преобразователь Управление в реальном

CCSv5: Окно Watch при использовании структур

Page 44: Микроконтроллеры С2000 от Texas Instruments · Петля управления (напр. pid/2p2z) pwm Преобразователь Управление в реальном

Эффективно ли структурное программирование?

Вы не напишете этот код более эффективно вручную на ассемблере!

Структурный подход позволяет компилятору эффективно использовать режим адресации и атомарные операции на C28x

Исходный код на C

// Stop CPU Timer0 CpuTimer0Regs.TCR.bit.TSS = 1;

// Load new 32-bit period value CpuTimer0Regs.PRD.all = 0x00010000;

// Start CPU Timer0 CpuTimer0Regs.TCR.bit.TSS = 0;

Сгенерированный код*

MOVW DP, #0030 OR @4, #0x0010

MOVL XAR4, #0x010000 MOVL @2, XAR4

AND @4, #0xFFEF

5 слов, 5 циклов - Легко читать код без коментариев

- Битовые маски встроены в структуры

* Компилятор C28x v5.0.1 с параметром -g и следующими уровнями оптимизации: -o1, -o2, or -o3

Page 45: Микроконтроллеры С2000 от Texas Instruments · Петля управления (напр. pid/2p2z) pwm Преобразователь Управление в реальном

Сравнение с использованием #define При использовании #define создаются указатели для доступа к памяти, что менее эффективно и часто проигрывает в оптимальности атомарных операций на C28x

Исходный код на C

// Stop CPU Timer0 *TIMER0TCR |= 0x0010;

// Load new 32-bit period value *TIMER0TPRD32 = 0x00010000;

// Start CPU Timer0 *TIMER0TCR &= 0xFFEF;

Сгенерированный код*

MOV @AL,*(0:0x0C04) ORB AL, #0x10 MOV *(0:0x0C04), @AL

MOVL XAR5, #0x010000 MOVL XAR4, #0x000C0A MOVL *+XAR4[0], XAR5

MOV @AL, *(0:0x0C04) AND @AL, #0xFFEF MOV *(0:0x0C04), @AL

9 слов, 9 циклов - Тяжело читать без комментариев

- Пользователю необходимо определять

битовые маски

* Компилятор C28x v5.0.1 с параметром -g и уровнями оптимизации: -o1, -o2, or -o3

Page 46: Микроконтроллеры С2000 от Texas Instruments · Петля управления (напр. pid/2p2z) pwm Преобразователь Управление в реальном

Имена элементов структур Header-файл для F28027 определяет:

Структуры для всей периферии

Имена для всех регистров

Имена для всех битовых полей

Адреса всех регистров

PeripheralName.RegisterName.all // Доступ к 16- или 32-битному регистру целиком

PeripheralName.RegisterName.half.LSW // Доступ к младшей части16- или 32-битного регистра

PeripheralName.RegisterName.half.MSW // Доступ к старшей части 16- или 32-битного регистра

PeripheralName.RegisterName.bit.FieldName // Доступ к конкретным битовым полям

Прим.: [1] “PeripheralName” имена, присвоенные TI, находятся в header-файле 28027. Комбинация заглавных и строчных букв (напр. CpuTimer0Regs).

[2] “RegisterName” имена из технической документации. Всегда заглавные буквы (напр. TCR, TIM, TPR,..).

[3] “FieldName” имена из технической документации. Всегда заглавные буквы(напр. POL, TOG, TSS,..).

Page 47: Микроконтроллеры С2000 от Texas Instruments · Петля управления (напр. pid/2p2z) pwm Преобразователь Управление в реальном

Функция автозаполнения редактора

Page 48: Микроконтроллеры С2000 от Texas Instruments · Петля управления (напр. pid/2p2z) pwm Преобразователь Управление в реальном

Комплект Header-файлов F28027 (http://www.ti.com, controlSUITE)

Содержит все, что необходимо для структурного программирования

Определяет все биты периферийных регистров и адреса регистров

Набор Header-файлов включает:

\F2806x_headers\include файлы типа *.h

\F2806x_headers\cmd *.cmd файлы линкера

\F2806x_examples примеры для CCS

\doc документация

Расположение комплекта header-файлов controlSUITE C:\TI\controlSUITE\device_support\

Page 49: Микроконтроллеры С2000 от Texas Instruments · Петля управления (напр. pid/2p2z) pwm Преобразователь Управление в реальном

.h файлы структуры периферии (1 из 2)

Содержит определения битовых структур для каждого регистра периферии

F2806x_Adc.h

#include “F2806x_Device.h"

Void InitAdc(void)

{

/* Reset the ADC module */

AdcRegs.ADCCTL1.bit.RESET = 1;

/* configure the ADC register */

AdcRegs.ADCCTL1.all = 0x00E4;

};

Ваш файл с исходным кодом на языке C (напр., Adc.c)

// ADC Individual Register Bit Definitions:

struct ADCCTL1_BITS { // bits description

Uint16 TEMPCONV:1; // 0 Temperature sensor connection

Uint16 VREFLOCONV:1; // 1 VSSA connection

Uint16 INTPULSEPOS:1; // 2 INT pulse generation control

Uint16 ADCREFSEL:1; // 3 Internal/external reference select

Uint16 rsvd1:1; // 4 reserved

Uint16 ADCREFPWD:1; // 5 Reference buffers powerdown

Uint16 ADCBGPWD:1; // 6 ADC bandgap powerdown

Uint16 ADCPWDN:1; // 7 ADC powerdown

Uint16 ADCBSYCHN:5; // 12:8 ADC busy on a channel

Uint16 ADCBSY:1; // 13 ADC busy signal

Uint16 ADCENABLE:1; // 14 ADC enable

Uint16 RESET:1; // 15 ADC master reset

};

// Allow access to the bit fields or entire register:

union ADCCTL1_REG {

Uint16 all;

struct ADCCTL1_BITS bit;

};

// ADC External References & Function Declarations:

extern volatile struct ADC_REGS AdcRegs;

Page 50: Микроконтроллеры С2000 от Texas Instruments · Петля управления (напр. pid/2p2z) pwm Преобразователь Управление в реальном

.h файлы структуры периферии (2 из 2)

Комплект header-файлов содержит h. файлы для каждого периферийного модуля устройства

F2806x_Device.h Главный подключаемый файл

Подключает остальные h-файлы

Подключайте этот файл (прямо или косвенно) в каждом исходном файле: #include “F2806x_Device.h”

F2806x_Adc.h F2806x_BootVars.h F2806x_Cla.h

F2806x_Comp.h F2806x_CpuTimers.h F2806x_DevEmu.h

F2806x_Device.h F2806x_Dma.h F2806x_ECan.h

F2806x_ECap.h F2806x_EPwm.h F2806x_EQep.h

F2806x_Gpio.h F2806x_I2c.h F2806x_Mcbsp.h

F2806x_NmiIntrupt.h F2806x_PieCtrl.h F2806x_PieVect.h

F2806x_Sci.h F2806x_Spi.h F2806x_SysCtrl.h

F2806x_Usb.h F2806x_XIntrupt.h

Page 51: Микроконтроллеры С2000 от Texas Instruments · Петля управления (напр. pid/2p2z) pwm Преобразователь Управление в реальном

Файл определений глобальных переменных F2806x_GlobalVariableDefs.c

Объявляет глобальное определение структуры для каждого периферийного устройства

Каждая структура располагается в своей секции использованием #pragma DATA_SECTION, что позволяет расположить ее в правильной области памяти (см. след. слайд)

Данный файл должен быть добавлен в CCS проект:

F2806x_GlobalVariableDefs.c

#include "F2806x_Device.h"

#pragma DATA_SECTION(AdcRegs,"AdcRegsFile");

volatile struct ADC_REGS AdcRegs;

F2806x_GlobalVariableDefs.c

Page 52: Микроконтроллеры С2000 от Texas Instruments · Петля управления (напр. pid/2p2z) pwm Преобразователь Управление в реальном

Файл настройки линкера для структур F2806x_nonBIOS.cmd and F2806x_BIOS.cmd

Привязывает каждую структуру к области памяти периферии, используя секции с именами периферии

не-BIOS и BIOS версии файла .cmd

Один из этих файлов должен быть добавлен в CCS проект

F2806x_nonBIOS.cmd

или

F2806x_BIOS.cmd

MEMORY { PAGE1: ... ADC: origin=0x007100, length=0x000080 ... }

SECTIONS { ... AdcRegsFile: > ADC PAGE = 1 ... }

F2806x_Headers_nonBIOS.cmd

#include "F2806x_Device.h"

#pragma DATA_SECTION(AdcRegs,"AdcRegsFile");

volatile struct ADC_REGS AdcRegs;

F2806x_GlobalVariableDefs.c

Page 53: Микроконтроллеры С2000 от Texas Instruments · Петля управления (напр. pid/2p2z) pwm Преобразователь Управление в реальном

Примеры проектов Приложение ControlSUITE предоставляет примеры проектов для

каждого периферийного модуля Примеры помогают легко начать новый проект

Page 54: Микроконтроллеры С2000 от Texas Instruments · Петля управления (напр. pid/2p2z) pwm Преобразователь Управление в реальном

Преимущества использования header-файлов периферии

Более легкая разработка кода

Прост в обращении

Компиляция более эффективного кода

Увеличение эффективности окна Watch

Компания Texas Instruments сделала за Вас всю работу! Используйте корректный комплект header-файлов для вашего

устройства:

Введите поисковый запрос «controlSUITE» на сайте http://www.ti.com

• F2806x

• F2803x

• F2802x

• F2833x иF2823x

• F280x и F2801x

• F2804x

• F281x

Page 55: Микроконтроллеры С2000 от Texas Instruments · Петля управления (напр. pid/2p2z) pwm Преобразователь Управление в реальном

Л.р. 1: Создание проекта и файл настройки линкера

1. Настройка целевого устройства Ход работы

2. Создание нового проекта 3. Настройка компиляции проекта и изменение файла настройки линкера

4. Компиляция и выполнение программы

Описание системы: • TMS320F28027 • Выделены все блоки внутренней памяти RAM Расположение секций: • .text > RAM блок L0SARAM в PAGE 0 (память программ) • .cinit > RAM блок L0SARAM в PAGE 0 (память программ) • .ebss > RAM блок M0SARAM в PAGE 1 (память данных) • .stack > RAM блок M1SARAM в PAGE 1 (память данных)

F28027

Memory

on-chip

memory

0x00 0000 M0SARAM (0x400)

M1SARAM (0x400)

L0SARAM (0x1000)

0x00 0400

0x00 8000

0x3F 0000 FLASH (0x8000)

Page 56: Микроконтроллеры С2000 от Texas Instruments · Петля управления (напр. pid/2p2z) pwm Преобразователь Управление в реальном

Микроконтроллеры C2000 от Texas Instruments Модуль 6

АЦП и компаратор

Page 57: Микроконтроллеры С2000 от Texas Instruments · Петля управления (напр. pid/2p2z) pwm Преобразователь Управление в реальном

Содержание модуля

Устройство и работа АЦП и компаратора

Использование АЦП для сбора данных

Page 58: Микроконтроллеры С2000 от Texas Instruments · Петля управления (напр. pid/2p2z) pwm Преобразователь Управление в реальном

Блок-схема модуля АЦП

12-bit A/D Converter

SOCx

EOCx

ADCINA0

ADCINA7

ADCINB0 ADCINB1

ADCINB7

S/H

A

S/H

B

MU

X

MUX A

RESULT0

RESULT1

RESULT2

RESULT15

Result MUX

MUX B

ADC Generation

Logic Диапазон входных напряжений АЦП:

0 - 3.3В Скорость работы:

до 12.5 MSPS

CHSEL ADC

Interrupt Logic

SOC0 TRIGSEL CHSEL ACQPS

SOC1 TRIGSEL CHSEL ACQPS

SOC2 TRIGSE L CHSEL ACQPS

SOC3 TRIGSEL CHSEL ACQPS

SOC15 TRIGSEL CHSEL ACQPS

Зап

уск

SOC

x

ADCINT1-9

Программно

Внешний вывод (GPIO/XINT2_ADCSOC)

EPWMxSOCA (x = 1 to 8)

EPWMxSOCB (x = 1 to 8)

Таймер CPU (0,1,2)

Запуск АЦП

Сигнал SOCx ADCINT1

ADCINT2

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

Temp.Sens. ADCINA5

Page 59: Микроконтроллеры С2000 от Texas Instruments · Петля управления (напр. pid/2p2z) pwm Преобразователь Управление в реальном

Функциональная схема SOCx АЦП

Данная схема повторяется 16 раз

Программный запуск

TINT0 (CPU Timer 0)

TINT1 (CPU Timer 1)

TINT2 (CPU Timer 2)

XINT2_ADCSOC (GPIO)

SOCA (ePWM1)

SOCB (ePWM1)

SOCA (ePWM8)

SOCB (ePWM8)

T

r

i

g

g

e

r

ADCINT1

ADCINT2

Перезапуск

ADCINT1

ADCINT2

ADCINT3

ADCINT4

ADCINT5

ADCINT6

ADCINT7

ADCINT8

ADCINT9

Выбор

канала

Окно

захвата

Регистр

результата S O C x

E O C x

ADCSOCxCTL

ADCSOCFRC1

ADCINTSOCSEL1 ADCINTSOCSEL2

INTSELxNy

ADCRESULTx

Page 60: Микроконтроллеры С2000 от Texas Instruments · Петля управления (напр. pid/2p2z) pwm Преобразователь Управление в реальном

Пример запуска АЦП (последовательное преобразование)

Преобразуем A2 B3 A7 по сигналу ePWM1 SOCB, по окончании формируем прерывание ADCINT1:

Канал A2

Сэмпл 7 циклов Result0

Канал B3

Сэмпл 10 циклов Result1

Канал A7

Сэмпл 8 циклов Result2

SOC0

SOC1

SOC2

Без прерывания

Без прерывания

прерывание ADCINT1

SOCB (ETPWM1)

Канал A0

Сэмпл 10 циклов Result3

Канал B0

Сэмпл 15 циклов Result4

Канал A5

Сэмпл 12 циклов Result5

SOC3

SOC4

SOC5

Без прерывания

Без прерывания

Прерывание ADCINT2

ADCINT2

Программный запуск

Затем, последовательно преобразуем A0 B0 A5 и формируем прерывание ADCINT2:

Page 61: Микроконтроллеры С2000 от Texas Instruments · Петля управления (напр. pid/2p2z) pwm Преобразователь Управление в реальном

Пример запуска АЦП (одновременное преобразование)

Непрерывное попарное преобразование каналов с формированием прерываний:

Каналы A0:B0

Сэмпл 7 циклов

SOC0 Без прерывания ADCINT2

Программный запуск Result0

Result1

Каналы A1:B1

Сэмпл 7 циклов

SOC2 Без прерывания Result2

Result3

Каналы A2:B2

Сэмпл 7 циклов

SOC4 Без прерывания Result4

Result5

Каналы A3:B3

Сэмпл 7 циклов

SOC6 Result6

Result7

Каналы A4:B4

Сэмпл 7 циклов

SOC8 Без прерывания Result8

Result9

Каналы A5:B5

Сэмпл 7 циклов

SOC10 Без прерывания Result10

Result11

Каналы A6:B6

Сэмпл 7 циклов

SOC12 Без прерывания Result12

Result13

Каналы A7:B7

Сэмпл 7 циклов

SOC14 Result14

Result15

ADCINT1

ADCINT2

Page 62: Микроконтроллеры С2000 от Texas Instruments · Петля управления (напр. pid/2p2z) pwm Преобразователь Управление в реальном

Приоритет преобразования АЦП

Когда несколько флагов SOC устанавливаются одновременно, порядок преобразования каналов определяется установленным приоритетом

Кольцевой приоритет (по умолчанию)

Ни один из SOC не имеет приоритета перед другими

Приоритет определяется только кольцевым указателем

SOC высокого приоритета

SOC с высоким приоритетом вклинивается в кольцевой указатель и выполняется после завершения текущего преобразования

После преобразования высокоприоритетного SOC кольцевой указатель продолжает работу с места прерывания

Page 63: Микроконтроллеры С2000 от Texas Instruments · Петля управления (напр. pid/2p2z) pwm Преобразователь Управление в реальном

Функциональная диаграмма приоритета преобразования

Кольцевой указатель Указывает на последний

выполненный SOC и определяет порядок

преобразования

SOC высокого приоритета Определяет границу

между SOC высокого приоритета и кольцевого приоритета

SOC0

SOC1

SOC2

SOC3

SOC4

SOC5

SOC6

SOC7

SOC8

SOC9

SOC10

SOC11

SOC12

SOC13

SOC14

SOC15

Ко

льц

ево

й п

ри

ор

ите

т В

ысо

кий

пр

ио

ри

тет

SOCPRIORITY

RRPOINTER

AdcRegs.SOCPRICTL

Page 64: Микроконтроллеры С2000 от Texas Instruments · Петля управления (напр. pid/2p2z) pwm Преобразователь Управление в реальном

Пример кольцевого приоритета

SOC 0 SOC

1

SOC 2

SOC 3

SOC 4

SOC 5

SOC 6

SOC 7 SOC

8

SOC 9

SOC 10

SOC 11

SOC 12

SOC 13

SOC 14

SOC 15

Кольцевой

указатель

Запуск SOC7 SOC7 преобразуется; RRPOINTER указывает на SOC7; У SOC8 наивысший приоритет.

Одновременный запуск SOC2 & SOC12

SOC12 преобразуется; RRPOINTER указывает на SOC12; У SOC13 наивысший приоритет

SOC2 преобразуется; RRPOINTER указывает на SOC2; У SOC3 наивысший приоритет

SOCPRIORITY = 0;

RRPOINTER = 15;

У SOC0 наивысший приоритет

Page 65: Микроконтроллеры С2000 от Texas Instruments · Петля управления (напр. pid/2p2z) pwm Преобразователь Управление в реальном

Пример SOC высокого приоритета

SOC 4

SOC 5

SOC 0 SOC

6

SOC 7

SOC 8

SOC 9 SOC

10

SOC 11

SOC 12

SOC 13

SOC 14

SOC 15

Кольцевой

указатель

SOC 1

SOC 2

SOC 3

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

Запуск SOC7 SOC7 преобразуется; RRPOINTER указывает на SOC7; У SOC8 наивысший кольцевой приоритет

SOC12 преобразуется; RRPOINTER указывает на SOC12; У SOC13 наивысший кольцевой приоритет.

SOCPRIORITY = 4; RRPOINTER = 15; У SOC4 наивысший кольцевой приоритет

Одновременный запуск SOC2 & SOC12

SOC2 преобразуется; RRPOINTER указывает на SOC7.

Page 66: Микроконтроллеры С2000 от Texas Instruments · Петля управления (напр. pid/2p2z) pwm Преобразователь Управление в реальном

Тактирование модуля АЦП (схема для л.р.)

Внутренний

OSC1

(10 MHz)

ADCCLK (30 MHz)

К конвейеру АЦП

Окно сэмплирования ACQ_PS

bits

ADCSOCxCTL

0110b

SYSCLKOUT

(60 MHz)

PLLSTS

DIVSEL

биты

10b (/2)

К CPU

Период сэмплирования = (ACQ_PS + 1)*(1/ADCCLK)

PCLKCR0.ADCENCLK = 1

PLLCR

DIV

биты

01100b (x12)

ADCCTL2

CLKDIV

bits

001b (/2)

Page 67: Микроконтроллеры С2000 от Texas Instruments · Петля управления (напр. pid/2p2z) pwm Преобразователь Управление в реальном

Тайминги АЦП – Последовательное преобразование

7 тактов

Сэмплирование*

6 тактов 7 тактов

Преобразование

2 такта

Запись

2 такта

Защелкивание

Формирование раннего прерывания

Формирование позднего прерывания

Старт сэмплирования следующего канала

Максимальная скорость преобразования:

30 MГц 13 тактов / 1 сэмпл

= 2.31 MSPS

*Прим.: Минимальная продолжительность сэмплирования – 7 тактов, может быть увеличена

Page 68: Микроконтроллеры С2000 от Texas Instruments · Петля управления (напр. pid/2p2z) pwm Преобразователь Управление в реальном

Тайминги АЦП – Одновременное сэмплирование

7 Тактов

Сэмплирование

2 Такта

Защелкивание

13 Тактов

Преобразование канала “A”

Формирование раннего

прерывания канала “A”

Формирование позднего прерывания канала “A”

30 MГц 26 тактов / 2 сэмпла

= 2.31 MSPS

Максимальная скорость преобразования:

Прим.: Минимальная продолжительность сэмплирования – 7 тактов, может быть увеличена

Начало сэмплирования следующего канала (пары)

2 Такта

Запись

6 Тактов 7 Тактов

Преобразование канала “B”

2 Такта

Запись

Формирование позднего прерывания канала “B”

Формирование раннего Прерывания канала “В”

Page 69: Микроконтроллеры С2000 от Texas Instruments · Петля управления (напр. pid/2p2z) pwm Преобразователь Управление в реальном

Регистры АЦП AdcRegs.register (lab file: Adc.c)

ADCCTL1 Control 1 Register

ADCCTL2 Control 2 Register

ADCSOCxCTL SOC0 to SOC15 Control Registers

ADCINTSOCSELx Interrupt SOC Selection 1 and 2 Registers

ADCSAMPLEMODE Sampling Mode Register

ADCSOCFLG1 SOC Flag 1 Register

ADCSOCFRC1 SOC Force 1 Register

ADCSOCOVF1 SOC Overflow 1 Register

ADCSOCOVFCLR1 SOC Overflow Clear 1 Register

INTSELxNy Interrupt x and y Selection Registers

ADCINTFLG Interrupt Flag Register

ADCINTFLGCLR Interrupt Flag Clear Register

ADCINTOVF Interrupt Overflow Register

ADCINTOVFCLR Interrupt Overflow Clear Register

SOCPRICTL SOC Priority Control Register

ADCREFTRIM Reference Trim Register

ADCOFFTRIM Offset Trim Register

ADCREV Revision Register – reserved

ADCRESULTx ADC Result 0 to 15 Registers

Регистр Описание

Note: Регистрам ADCRESULTx в header-файле присвоено имя AdcResult.ADCRESULTx (не AdcRegs)

Page 70: Микроконтроллеры С2000 от Texas Instruments · Петля управления (напр. pid/2p2z) pwm Преобразователь Управление в реальном

Регистр управления АЦП 1 AdcRegs.ADCCTL1

Разрешение АЦП 0 = АЦП запрещен (но под питанием) 1 = АЦП разрешен

Сброс модуля АЦП 0 = не оказывает воздействия 1 = сброс (сбрасывается в 0 логикой АЦП)

ADCENABLE ADCBSY ADCBSYCHN RESET

12 - 8 15

Старшая часть регистра:

14 13

АЦП занят 0 = АЦП доступен 1 = АЦП занят

Каким каналом занят АЦП Если ADCBSY = 0: последний канал преобразован 1: канал преобразуется

00h = ADCINA0 08h = ADCINB0 01h = ADCINA1 09h = ADCINB1 02h = ADCINA2 0Ah = ADCINB2 03h = ADCINA3 0Bh = ADCINB3 04h = ADCINA4 0Ch = ADCINB4 05h = ADCINA5 0Dh = ADCINB5 06h = ADCINA6 0Eh = ADCINB6 07h = ADCINA7 0Fh = ADCINB7

Page 71: Микроконтроллеры С2000 от Texas Instruments · Петля управления (напр. pid/2p2z) pwm Преобразователь Управление в реальном

Регистр управления АЦП 1 AdcRegs.ADCCTL1

Питание АЦП 0 = питание откл. 1 = питание вкл.

Выбор источника опорного напряжения 0 = внутренний 1 = внешний (VREFHI/VREFLO)

ADCBGPWN ADCREFPWD ADCPWDN reserved

7

Младшая часть регистра:

VREFLO CONV

INTPULSE POS

6 5 4 3 2 0

Включение питания cхемы Bandgap источника опорного напряжения 0 = отключено 1 = включено

Питание внутреннего источника опорного напряжения 0 = выкл 1 = вкл

TEMP CONV

ADCREF SEL

1

Формирование импульса прерывания 0 = в начале преобразования 1 = за один цикл до окончания преобразования

Преобразование VREFLO 0 = не подключен 1 = подключен (B5)

Температурный датчик 0 = не подключен 1 = подключен (A5)

Page 72: Микроконтроллеры С2000 от Texas Instruments · Петля управления (напр. pid/2p2z) pwm Преобразователь Управление в реальном

Регистр управления АЦП 2 AdcRegs.ADCCTL2

reserved

15 - 3 2 0

CLKDIV4EN CLKDIV2EN ADCNONOVERLAP

1

Делитель тактовой частоты АЦП

CLKDIV4EN CLKDIV2EN ADCCLK

x 0 SYSCLK

0 1 SYSCLK / 2

1 1 SYSCLK / 4

Перекрытие сэмплов АЦП 0 = перекрытие разрешено 1 = перектрытие запрещено

Page 73: Микроконтроллеры С2000 от Texas Instruments · Петля управления (напр. pid/2p2z) pwm Преобразователь Управление в реальном

Регистры управления SOC0 – SOC15 AdcRegs.ADCSOCxCTL

TRIGSEL reserved

15 - 11 10 9 - 6 5 - 0

CHSEL ACQPS

Источник запуска SOCx Выбор канала SOCx

0h = ADCINA0 1h = ADCINA1 2h = ADCINA2 3h = ADCINA3 4h = ADCINA4 5h = ADCINA5 6h = ADCINA6 7h = ADCINA7 8h = ADCINB0 9h = ADCINB1 Ah = ADCINB2 Bh = ADCINB3 Ch = ADCINB4 Dh = ADCINB5 Eh = ADCINB6 Fh = ADCINB7

Одиночное сэмплирование

(SIMULENx=0)

Одновременное сэмплирование (SIMULENx=1)

00h = программно 01h = CPU Таймер0 02h = CPU Таймер1 03h = CPU Таймер2 04h = XINT2SOC 05h = ePWM1SOCA 06h = ePWM1SOCB 07h = ePWM2SOCA 08h = ePWM2SOCB 09h = ePWM3SOCA 0Ah = ePWM3SOCB 0Bh = ePWM4SOCA 0Ch = ePWM4SOCB 0Dh = ePWM5SOCA 0Eh = ePWM5SOCB 0Fh = ePWM6SOCA 10h = ePWM6SOCB 11h = ePWM7SOCA 12h = ePWM7SOCB 13h = ePWM8SOCA 14h = ePWM8SOCB

00h – 05h = недейств. 06h = 7 циклов 07h = 8 циклов 08h = 9 циклов 09h = 10 циклов 3Fh = 64 цикла

Период сэмплирования

0h = ADCINA0/B0 1h = ADCINA1/B1 2h = ADCINA2/B2 3h = ADCINA3/B3 4h = ADCINA4/B4 5h = ADCINA5/B5 6h = ADCINA6/B6 7h = ADCINA7/B7 8h – Fh = недейств.

Page 74: Микроконтроллеры С2000 от Texas Instruments · Петля управления (напр. pid/2p2z) pwm Преобразователь Управление в реальном

Выбор прерывания АЦП для SOCx AdcRegs.ADCINTSOCSELx

15 - 14

SOC15 SOC14 SOC13 SOC12 SOC11 SOC10 SOC9 SOC8

13 - 12 11 - 10 9 - 8 7 - 6 5 - 4 3 - 2 1 - 0

15 - 14

SOC7 SOC6 SOC5 SOC4 SOC3 SOC2 SOC1 SOC0

13 - 12 11 - 10 9 - 8 7 - 6 5 - 4 3 - 2 1 - 0

ADCINTSOCSEL2

ADCINTSOCSEL1

Выбор прерывания АЦП для SOCx Устанавливает какое из прерываний АЦП запускает SOCx 00 = запрет запуска SOCx от ADCINT (поле TRIGSEL определяет источник запуска SOCx) 01 = запуск SOCx от ADCINT1 (поле TRIGSEL игнорируется) 10 = запуск SOCx от ADCINT2 (поле TRIGSEL игнорируется) 11 = недействительная комбинация

Page 75: Микроконтроллеры С2000 от Texas Instruments · Петля управления (напр. pid/2p2z) pwm Преобразователь Управление в реальном

Регистр выбора режима сэмплирования АЦП AdcRegs.ADCSAMPLEMODE

reserved

15 - 8

7

SIMULEN14 SIMULEN12 SIMULEN10 SIMULEN8 SIMULEN6 SIMULEN4 SIMULEN2 SIMULEN0

6 5 4 3 2 1 0

Разрешение одновременного сэмплирования Режим сэмплирования SOCx и SOCx+1 0 = режим одиночного сэмплирования SOCx и SOCx+1 1 = режим одновременного сэмплирования SOCx и SOCx+1

Page 76: Микроконтроллеры С2000 от Texas Instruments · Петля управления (напр. pid/2p2z) pwm Преобразователь Управление в реальном

Регистр управления приоритетом SOC AdcRegs.SOCPRICTL

reserved

15 - 11 10 - 5 4 - 0

RRPOINTER SOCPRIORITY

Кольцевой указатель Указывает на последний Преобразованный SOCx и

определяет порядок преобразований

Приоритет SOC Определяет границу между SOC высокого

приоритета и SOC кольцевого приоритета

00h = кольцевой приоритет для всех SOC 01h = SOC0 высокий приоритет (ВП), SOC1-15 – кольцевой приоритет (КП) 02h = SOC0-1 ВП, SOC2-15 КП 03h = SOC0-2 ВП, SOC3-15 КП 04h = SOC0-3 ВП, SOC4-15 КП 05h = SOC0-4 ВП, SOC5-15 КП 06h = SOC0-5 ВП, SOC6-15 КП 07h = SOC0-6 ВП, SOC7-15 КП 08h = SOC0-7 ВП, SOC8-15 КП 09h = SOC0-8 ВП, SOC9-15 КП 0Ah = SOC0-9 ВП, SOC10-15 КП 0Bh = SOC0-10 ВП, SOC11-15 КП 0Ch = SOC0-11 ВП, SOC12-15 КП 0Dh = SOC0-12 ВП, SOC13-15 КП 0Eh = SOC0-13 ВП, SOC14-15 КП 0Fh = SOC0-14 ВП, SOC15 КП 10h = all SOCs ВП (арбитраж по SOC #) 1xh = недейств.

00h = преобразован SOC0, приоритет у SOC1 01h = преобразован SOC1, приоритет у SOC2 02h = преобразован SOC2, приоритет у SOC3 03h = преобразован SOC3, приоритет у SOC4 04h = преобразован SOC4, приоритет у SOC5 05h = преобразован SOC5, приоритет у SOC6 06h = преобразован SOC6, приоритет у SOC7 07h = преобразован SOC7, приоритет у SOC8 08h = преобразован SOC8, приоритет у SOC9 09h = преобразован SOC9, приоритет у SOC10 0Ah = преобразован SOC10, приоритет у SOC11 0Bh = преобразован SOC11, приоритет у SOC12 0Ch = преобразован SOC12, приоритет у SOC13 0Dh = преобразован SOC13, приоритет у SOC14 0Eh = преобразован SOC14, приоритет у SOC15 0Fh = преобразован SOC15, приоритет у SOC0 1xh = недейств. 20h = значение после сброса (ни один из SOC не преобразован)

Page 77: Микроконтроллеры С2000 от Texas Instruments · Петля управления (напр. pid/2p2z) pwm Преобразователь Управление в реальном

Регистры выбора прерывания x и y AdcRegs.INTSELxNy

INTxE INTxSEL INTxCONT reserved 7 4 - 0 5 6

INTyE INTySEL INTyCONT reserved

15 12 - 8 13 14 Где x/y = 1/2, 3/4, 5/6, 7/8, 9; 10 зарезервировано.

00h = EOC0 запускает ADCINTx/y 01h = EOC1 запускает ADCINTx/y 02h = EOC2 запускает ADCINTx/y 03h = EOC3 запускает ADCINTx/y 04h = EOC4 запускает ADCINTx/y 05h = EOC5 запускает ADCINTx/y 06h = EOC6 запускает ADCINTx/y 07h = EOC7 запускает ADCINTx/y 08h = EOC8 запускает ADCINTx/y 09h = EOC9 запускает ADCINTx/y 0Ah = EOC10 запускает ADCINTx/y 0Bh = EOC11 запускает ADCINTx/y 0Ch = EOC12 запускает ADCINTx/y 0Dh = EOC13 запускает ADCINTx/y 0Eh = EOC14 запускает ADCINTx/y 0Fh = EOC15 запускает ADCINTx/y 1xh = недейств.

Выбор EOCx в качестве прерывания ADCINTx/y

Разрешение Прерывания ADCINTx/y 0 = запрет 1 = разрешение

Разрешение непрерывного режима ADCINTx/y 0 = формируется один импульс (пока флаг не будет сброшен пользователем) 1 = импульс формируется при каждом EOC

Page 78: Микроконтроллеры С2000 от Texas Instruments · Петля управления (напр. pid/2p2z) pwm Преобразователь Управление в реальном

Регистры результатов преобразования АЦП

Режим последовательного сэмплирования (SIMULENx = 0)

Когда АЦП завершает преобразование SOCx, цифровой результат размещается в соответствующем регистре ADCRESULTx

Режим одновременного сэмплирования (SIMULENx = 1)

Когда АЦП завершает преобразование пары каналов, цифровой результат находится в соответствующих регистрах ADCRESULTx и ADCRESULTx+1

LSB MSB

15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0

AdcResult.ADCRESULTx, x = 0 - 15

Входное напряжение

Цифровой результат

AdcResult.ADCRESULTx

3V3 1.65

0.00081 0

FFFh 7FFh

1h 0h

0000 | 1111 | 1111 | 1111 0000 | 0111 | 1111 | 1111 0000 | 0000 | 0001 | 0001 0000 | 0000 | 0000 | 0000

Page 79: Микроконтроллеры С2000 от Texas Instruments · Петля управления (напр. pid/2p2z) pwm Преобразователь Управление в реальном

Как преобразовать биполярное напряжение?

Пример: -1.65 V < Vin <+1.65 V

1) Добавить 1.65 вольт к входному напряжению

Vin

1.65V ADCINx

GND

ADCLO

- +

R

R

R - +

R

R C28x

#include “F2806x_Device.h” #define offset 0x07FF void main(void) { int16 value; // signed value = AdcResult.ADCRESULT0 – offset; }

2)Вычесть “1.65” в программе

Page 80: Микроконтроллеры С2000 от Texas Instruments · Петля управления (напр. pid/2p2z) pwm Преобразователь Управление в реальном

Встроенная калибровка АЦП Резервная OTP-память содержит калибровочные данные для АЦП

и внутренних генераторов тактовых импульсов

В памяти Boot ROM содержится функция Device_cal(), копирующая калибровочные данные в соответствующие регистры

Функция Device_cal() должна быть выполнена, чтобы АЦП и генераторы тактовых импульсво соответствовали указанным в технической документации параметрам Bootloader автоматически выполняет функцию Device_cal(), поэтому от

пользователя не требуется дополнительных действий

Если Bootloader не используется (например в процессе разработки), Device_cal() должна быть вызвана в приложении:

GEL-функция, использующаяся в CCS, описывается в header-файле

#define Device_cal (void (*)(void))0x3D7C80

void main(void)

{

(*Device_cal)(); // call Device_cal()

}

Page 81: Микроконтроллеры С2000 от Texas Instruments · Петля управления (напр. pid/2p2z) pwm Преобразователь Управление в реальном

Ручная калибровка АЦП Если ошибки смещения и усиления, указанные в технической документации*,

недопустимы для Вашего приложения, или Вы хотите скомпенсировать ошибки платы (датчики, смещение усилителей,…) вы можете использовать ручную калибровку

Ошибка смещения Компенсируется в аналоговой части, с помощью регистра ADCOFFTRIM Не сужает полный диапазон Настройте вывод B5 как VREFLO, ADCOFFTRIM на максимальную ошибку, и прочитайте результат Настройте ADCOFFTRIM для получения нулевого результата

Ошибка усиления Компенсируется в программе Незначительные потери в полном диапазоне Требует использования второго вывода АЦП и наличия верхнего опорного

напряжения на этом выводе. Для информации см. документ #SPRAAD8 “TMS320F280x and TMS320F2801x ADC Calibration”

Совет: Для минимизации ошибок, связанных с неидентичностью мультиплексоров подключайте наиболее критичные сигналы к одному мультиплексору и используйте этот мультиплексор для калибровки

* +/-15 LSB offset, +/-30 LSB gain. См.документацию на устройство для уточнения параметров

CH

CH

MU

X

VREFLOCONV

VREFLO

B5

ADCOFFTRIM

АЦП

12-бит

Page 82: Микроконтроллеры С2000 от Texas Instruments · Петля управления (напр. pid/2p2z) pwm Преобразователь Управление в реальном

Выбор опорного напряжения АЦП AdcRegs.ADCREFSEL

Температурная стабильность внутреннего источника опорного напряжения составляет ~50 PPM/°C*

Внутренний ИОН позволяет преобразовывать сигналы в диапазоне от 0 до 3.3 вольт

Если этого не достаточно для Вашего приложения, есть возможность подключения внешнего ИОН*

Внешний ИОН позволяет преобразовывать сигналы в диапазоне от VREFLO до VREFHI

Опорные значения изменяют стандартный диапазон 0 - 3.3 вольт

Поле ADCREFSEL в регистре ADCCTL1 управляет выбором ИОН

* См. документацию на устройство для уточнения параметров

2 - 0 15 - 5

ADCREFSEL

Выбор ИОН АЦП 0 = внутренний (по умолчанию) 1 = внешние выводы VREFHI/VREFLO

reserved

4 3

Page 83: Микроконтроллеры С2000 от Texas Instruments · Петля управления (напр. pid/2p2z) pwm Преобразователь Управление в реальном

Компаратор

COMP1 ЦАП 10-бит

AIO2 AIO10

COMP1OUT

AIO6 AIO14

COMP2 ЦАП 10-бит

AIO4 AIO12

COMP2OUT ADC

A0

A1

A2

A3

A4

A5

A6

A7

B0

B1

B2

B3

B4

B5

B6

B7

Page 84: Микроконтроллеры С2000 от Texas Instruments · Петля управления (напр. pid/2p2z) pwm Преобразователь Управление в реальном

Блок-схема компаратора

DACVAL * (VDDA – VSSA)

1023 V =

Напряжение ЦАП Таблица истинности компаратора

Напряжения Выход

Напряжение A < Напряжение B 0

Напряжение A > Напряжение B 1

0

1 0

1

+

COMPx

-

ePWM Event

Trigger &

GPIO MUX

Sync/ Qual

ЦАП 10-бит

COMPSTS

VDDA

VSSA

Вход B

Вход A

1

0

COMPSOURCE DACVAL CMPINV

COMPDACE

SYNCSEL

QUALSEL

SYSCLKOUT COMPxTRIP V

Page 85: Микроконтроллеры С2000 от Texas Instruments · Петля управления (напр. pid/2p2z) pwm Преобразователь Управление в реальном

Регистры компаратора

резерв

15 - 10

DACVAL

9 - 0

Значение ЦАП Диапазон значений 0 – 1023

AdcRegs.DACVAL – Регистр значения ЦАП

резерв

15 - 1

COMPSTS

0 AdcRegs.COMPSTS – Статусный регистр компаратора

Значение выхода компаратора

резерв

15 - 9 7 - 3

SYNCSEL QUALSEL CMPINV COMPSOURCE COMPDACE

8 2 1 0 AdcRegs.COMPCTL – Регистр управления компаратором

Выбор синхронизации Синхронизация выхода перед передачей в модули ETPWM/GPIO 0 = Без синхронизации 1 = С синхронизацией

Разрешение компаратора 0 = запрещен 1 = разрешен

Источник компаратора 0 = внутр. ЦАП 1 = вывод

Инверсия выхода компаратора 0 = без инверсии 1 = инвертирован

Период квалификации 0h = без квал. 1h = 2 такта 2h = 3 такта … … Fh = 15 тактов

Page 86: Микроконтроллеры С2000 от Texas Instruments · Петля управления (напр. pid/2p2z) pwm Преобразователь Управление в реальном

Л.р. 2: АЦП

ADC

ADCINA0

RESULT0

... Память данных

CPU копирует результаты в буфер во время прерывания ADC ISR

ePWM2

ePWM2 запускает АЦП используя SOCA каждые 20 мкс (50 кГц)

GND +3.3 V

(GPIO20) Toggle

(GPIO18)

соединитель

Просмотр буфера данных АЦП

Code Composer

Studio

Page 87: Микроконтроллеры С2000 от Texas Instruments · Петля управления (напр. pid/2p2z) pwm Преобразователь Управление в реальном

Л.р. 2: Алгоритм программы Начало

Инициализация ePWM2 • очистка счетчика • установка периода • запуск АЦП по периоду • тактирующий сигнал предделителя • разрешение таймера

Главный цикл

while(1)

{

}

Прерывание АЦП

Инициализация системы • PLL и тактирующие сигналы • настройка сторожевого таймера • настройка GPIO • инициализация PIE

Инициализация АЦП • преобразование каналаA0 по периоду модуля ePWM2 • прерывание по EOC для выполнения ADC ISR • создание буфера данных в памяти

ADC ISR • чтение результатов АЦП • запись результатов в буфер • изменение указателя буфера • переключение вывода GPIO • выход из прерывания

Page 88: Микроконтроллеры С2000 от Texas Instruments · Петля управления (напр. pid/2p2z) pwm Преобразователь Управление в реальном

1. Настройка модуля ADC

Ход работы

настройка прерывания от АЦП

2. Инициализация модулей ePWM и ADC

Файл Adc.c - настройка преобразования SOC0

Файл Main_6.c

3. Компиляция и загрузка программы

Page 89: Микроконтроллеры С2000 от Texas Instruments · Петля управления (напр. pid/2p2z) pwm Преобразователь Управление в реальном

J2:1 - GND

J3:1 - GND

J5:6 - ADCINA0

J3:3 - 3V3

3. Проверка работы ADC

J1:7 - GPIO18

Page 90: Микроконтроллеры С2000 от Texas Instruments · Петля управления (напр. pid/2p2z) pwm Преобразователь Управление в реальном

4. Построение графика

Page 91: Микроконтроллеры С2000 от Texas Instruments · Петля управления (напр. pid/2p2z) pwm Преобразователь Управление в реальном

Микроконтроллеры C2000 от Texas Instruments Модуль 7

Управление периферией:

ePWM и eCAP

Page 92: Микроконтроллеры С2000 от Texas Instruments · Петля управления (напр. pid/2p2z) pwm Преобразователь Управление в реальном

Содержание модуля

Широтно-импульсная модуляция (ШИМ)

Модуль ШИМ (ePWM) и формирование ШИМ-сигнала

Использование модуля захвата (eCAP) для измерения длительности сигнала

Прим.: В F28027 доступно несколько модулей ePWM. Для дополнительной

информации см. документацию на устройство.

Page 93: Микроконтроллеры С2000 от Texas Instruments · Петля управления (напр. pid/2p2z) pwm Преобразователь Управление в реальном

Что такое ШИМ?

ШИМ это представление аналогового сигнала в виде последовательности импульсов

фиксированная частота следования импульсов

фиксированная амплитуда импульсов

длительность импульса пропорциональна мгновенной амплитуде сигнала

энергия ШИМ энергия исходного сигнала

t

Исходный сигнал T

t

ШИМ представление

Page 94: Микроконтроллеры С2000 от Texas Instruments · Петля управления (напр. pid/2p2z) pwm Преобразователь Управление в реальном

Почему для управления силовыми приборами стоит использовать ШИМ?

Известны требуемые выходные токи и напряжения

Силовые приборы – транзисторы:

Трудно управлять в активном (усилительном) режиме

Легко управлять в импульсном (ключевом) режиме

ШИМ – цифровой сигнал легко формировать MCU

ШИМ

аппрокс.

требуемого

сигнала

Питание DС

Требуемый

сигнал

системы

?

Питание DС

Сложно рассчитать сигнал управления

Сигнал управления – ШИМ

ШИМ

Page 95: Микроконтроллеры С2000 от Texas Instruments · Петля управления (напр. pid/2p2z) pwm Преобразователь Управление в реальном

ePWM(ШИМ): Сигналы и связи

ePWMx

ePWMx+1

EPWMxSYNCI

EPWMxSYNCO

PIE EPWMxINT

EPWMxTZINT

ePWMx-1

EPWMxSOCB

EPWMxSOCA

ADC COMP COMPxOUT

EMUSTOP – TZ6

CLOCKFAIL – TZ5

EQEP1ERR – TZ4

CPU

SYSCTRL

eQEP1 EPWMxA

EPWMxB GPIO

MUX

TZ1 – TZ3 GPIO

MUX

Page 96: Микроконтроллеры С2000 от Texas Instruments · Петля управления (напр. pid/2p2z) pwm Преобразователь Управление в реальном

ePWM: Блок схема

16-бит

Базовый

счетчик

Логика

сравнения

Селектор

действия

Формирователь

мертвой зоны

PWM

Chopper

Trip

Zone

Теневой

Регистр

сравнения

Теневой

Регистр

периода

Предделитель

Теневой

Регистр

сравнения

EPWMxA

EPWMxB

SYSCLKOUT TZy

EPWMxSYNCI EPWMxSYNCO

TBCLK

Цифровой

компаратор

TZ1-TZ3

COMPxOUT

Page 97: Микроконтроллеры С2000 от Texas Instruments · Петля управления (напр. pid/2p2z) pwm Преобразователь Управление в реальном

ePWM: Подмодуль базового счетчика (Time-Base)

16-бит

Базовый

счетчик

Логика

сравнения

Селектор

действия

Формирователь

мертвой зоны

PWM

Chopper

Trip

Zone

Теневой

Регистр

сравнения

Теневой

Регистр

периода

Предделитель

Теневой

Регистр

сравнения

EPWMxA

EPWMxB SYSCLKOUT

TZy

EPWMxSYNCI EPWMxSYNCO

TBCLK

Цифровой

компаратор

TZ1-TZ3

COMPxOUT

Page 98: Микроконтроллеры С2000 от Texas Instruments · Петля управления (напр. pid/2p2z) pwm Преобразователь Управление в реальном

ePWM: Режимы счета базового счетчика TBCTR

TBCTR

TBCTR

TBPRD

TBPRD

TBPRD

Режим счета вверх

Режим счета вниз

Режим счета вверх и вниз

Фронтовая ШИМ

Симметричная ШИМ

Фронтовая ШИМ

Page 99: Микроконтроллеры С2000 от Texas Instruments · Петля управления (напр. pid/2p2z) pwm Преобразователь Управление в реальном

ePWM: Синхронизация фазы

SyncIn

SyncOut

CTR=zero

CTR=CMPB

X

En

o o

o

o

o

o o =120°

Phase EPWM2A

EPWM2B

SyncIn

SyncOut

CTR=zero

CTR=CMPB

X

En

o o

o

o

o

o o =240°

Phase EPWM3A

EPWM3B

SyncIn

SyncOut

CTR=zero

CTR=CMPB

X

En

o o

o

o

o

o o =0°

Phase EPWM1A

EPWM1B

=120°

=120°

=240°

Ext. SyncIn (optional)

To eCAP1 SyncIn

Page 100: Микроконтроллеры С2000 от Texas Instruments · Петля управления (напр. pid/2p2z) pwm Преобразователь Управление в реальном

ePWM: Регистры подмодуля Time-Base (файл л.р.: EPwm.c)

Имя Описание Структура

TBCTL Управление EPwmxRegs.TBCTL.all

TBSTS Статус EPwmxRegs.TBSTS.all

TBPHS Фаза EPwmxRegs.TBPHS

TBCTR Счетчик EPwmxRegs.TBCTR

TBPRD Период EPwmxRegs.TBPRD

Page 101: Микроконтроллеры С2000 от Texas Instruments · Петля управления (напр. pid/2p2z) pwm Преобразователь Управление в реальном

ePWM: Регистр управления подмодулем Time-Base

EPwmxRegs.TBCTL

Старшая часть:

FREE_SOFT PHSDIR CLKDIV HSPCLKDIV

15 - 14 13 12 - 10 9 - 7

TBCLK = SYSCLKOUT / (HSPCLKDIV * CLKDIV)

Предделитель 1

000 = /1 (по умолч.) 001 = /2 010 = /4 011 = /8 100 = /16 101 = /32 110 = /64 111 = /128

Предделитель 2 000 = /1 001 = /2 (по умолч.) 010 = /4 011 = /6 100 = /8 101 = /10 110 = /12 111 = /14

Поведение при эмуляции

00 = остановка после CTR inc/dec 01 = остановка: Up Mode; CTR = PRD Down Mode; CTR = 0 Up/Down Mode; CTR = 0 1x = не останавливать

Направление счета после синхронизации

0 = считать вниз 1 = считать вверх

(HSPCLKDIV для обеспечения совместимости)

Page 102: Микроконтроллеры С2000 от Texas Instruments · Петля управления (напр. pid/2p2z) pwm Преобразователь Управление в реальном

ePWM: Регистр управления подмодулем Time-Base

EPwmxRegs.TBCTL

Младшая часть:

CTRMODE SWFSYNC SYNCOSEL PRDLD PHSEN

6 5 - 4 3 1 - 0 2

Программный запуск синхроимпульса 0 = нет действий 1 = запуск

Настройка выходного синхросигнала (источник сигнала EPWMxSYNC0) 00 = EPWMxSYNCI 01 = CTR = 0 10 = CTR = CMPB 11 = запрет синхросигнала

Режим счета

00 = счет вверх 01 = счет вниз 10 = счет вверх и вниз 11 = остановка счета (по умолч.)

Загрузка значения периода из теневого регистра 0 = загружать при CTR = 0 1 = загружать сразу

Фазовая синхронизация 0 = запрет 1 = по приходу сигнала EPWMxSYNCI CTR = TBPHS

Page 103: Микроконтроллеры С2000 от Texas Instruments · Петля управления (напр. pid/2p2z) pwm Преобразователь Управление в реальном

ePWM: Подмодуль сравнения (Counter-Compare)

16-бит

Базовый

счетчик

Логика

сравнения

Селектор

действия

Формирователь

мертвой зоны

PWM

Chopper

Trip

Zone

Теневой

Регистр

сравнения

Теневой

Регистр

периода

Предделитель

Теневой

Регистр

сравнения

EPWMxA

EPWMxB SYSCLKOUT

TZy

EPWMxSYNCI EPWMxSYNCO

TBCLK

Цифровой

компаратор

TZ1-TZ3

COMPxOUT

Page 104: Микроконтроллеры С2000 от Texas Instruments · Петля управления (напр. pid/2p2z) pwm Преобразователь Управление в реальном

События сравнения ePWM TBCTR

TBCTR

TBCTR

TBPRD

TBPRD

TBPRD

Режим счета вверх

Режим счета вниз

Режим счета вверх и вниз

Фронтовая ШИМ

Фронтовая ШИМ

Симметричная ШИМ

CMPA

CMPA

CMPA

CMPB

CMPB

CMPB

= события сравнения, относящиеся к подмодулю сравнения

Page 105: Микроконтроллеры С2000 от Texas Instruments · Петля управления (напр. pid/2p2z) pwm Преобразователь Управление в реальном

ePWM: Регистры подмодуля Counter-Compare

(файл л.р.: EPwm.c)

Имя Описание Структура

CMPCTL Управление EPwmxRegs.CMPCTL.all =

CMPA Сравнение A EPwmxRegs.CMPA =

CMPB Сравнение B EPwmxRegs.CMPB =

Page 106: Микроконтроллеры С2000 от Texas Instruments · Петля управления (напр. pid/2p2z) pwm Преобразователь Управление в реальном

ePWM: Регистр управления подмодулем Counter-Compare

EPwmxRegs.CMPCTL

6 5 4 1 - 0

LOADBMODE LOADAMODE reserved

3 - 2

SHDWBMODE SHDWAMODE

Режим работы CMPA и CMPB

0 = теневой режим; двойной буфер 1 = непосредственный режим; теневой регистр не исп-ся

Режим загрузки теневых CMPA и CMPB

00 = загрузка при CTR = 0 01 = загрузка при CTR = PRD 10 = загрузка при CTR = 0 или PRD 11 = запрет загрузки

SHDWBFULL

15 - 10 9 8

SHDWAFULL

7

reserved reserved

Флаг наполненности теневых регистров CMPA и CMPB (бит автоматически сбрасывается при загрузке)

0 = теневой регистр пуст 1 = теневой регистр полон

Page 107: Микроконтроллеры С2000 от Texas Instruments · Петля управления (напр. pid/2p2z) pwm Преобразователь Управление в реальном

ePWM: Подмодуль селектора действия (Action Qualifier)

16-бит

Базовый

счетчик

Логика

сравнения

Селектор

действия

Формирователь

мертвой зоны

PWM

Chopper

Trip

Zone

Теневой

Регистр

сравнения

Теневой

Регистр

периода

Предделитель

Теневой

Регистр

сравнения

EPWMxA

EPWMxB SYSCLKOUT

TZy

EPWMxSYNCI EPWMxSYNCO

TBCLK

Цифровой

компаратор

TZ1-TZ3

COMPxOUT

Page 108: Микроконтроллеры С2000 от Texas Instruments · Петля управления (напр. pid/2p2z) pwm Преобразователь Управление в реальном

ePWM: Варианты действий с выводом для EPWMA и EPWMB

Z

Z

Z X

Z T

CA

CA

CA X

CA T

CB

CB

CB X

CB T

P

P

P X

P T

SW

SW

SW X

SW T

Нет

действий

Сброс в

низкий уровень

Установка в

высокий уровень

Смена логического

уровня

S/W Force

Действия с выводом

EPWM

Если базовый счетчик равен:

Нулю CMPA CMPB TBPRD

Page 109: Микроконтроллеры С2000 от Texas Instruments · Петля управления (напр. pid/2p2z) pwm Преобразователь Управление в реальном

ePWM: Фронтовая ШИМ, счет вверх с независимой модуляцией EPWMA / B

Z

P X

CB X

CA

Z

P X

CB X

CA

Z

P X

Z

P X

CB

CA X

Z

P X

CB

CA X

Z

P X

TBCTR

TBPRD

EPWMA

EPWMB

Page 110: Микроконтроллеры С2000 от Texas Instruments · Петля управления (напр. pid/2p2z) pwm Преобразователь Управление в реальном

ePWM: Фронтовая ШИМ, счет вверх с независимой модуляцией EPWMA

CA

CB

CA

CB

Z T

Z T

Z T

TBCTR

TBPRD

EPWMA

EPWMB

Page 111: Микроконтроллеры С2000 от Texas Instruments · Петля управления (напр. pid/2p2z) pwm Преобразователь Управление в реальном

ePWM:Симметричная ШИМ с независимой модуляцией EPWMA / B

TBCTR

TBPRD

CA

CA

CA

CA

CB

CB

CB

CB

EPWMA

EPWMB

Page 112: Микроконтроллеры С2000 от Texas Instruments · Петля управления (напр. pid/2p2z) pwm Преобразователь Управление в реальном

ePWM:Симметричная ШИМ с независимой модуляцией EPWMA

TBCTR

TBPRD

CA

CB

CA

CB

Z

P

Z

P

EPWMA

EPWMB

Page 113: Микроконтроллеры С2000 от Texas Instruments · Петля управления (напр. pid/2p2z) pwm Преобразователь Управление в реальном

ePWM: регистры подмодуля Action Qualifier ePWM

(файл л.р.: EPwm.c)

Имя Описание Структура

AQCTLA AQ Control Output A EPwmxRegs.AQCTLA.all =

AQCTLB AQ Control Output B EPwmxRegs.AQCTLB.all =

AQSFRC AQ S/W Force EPwmxRegs.AQSFRC.all =

AQCSFRC AQ Cont. S/W Force EPwmxRegs.AQCSFRC.all =

Page 114: Микроконтроллеры С2000 от Texas Instruments · Петля управления (напр. pid/2p2z) pwm Преобразователь Управление в реальном

ePWM: регистр управления подмодулем Action Qualifier EPwmxRegs.AQCTLy (y = A or B)

ZRO CBU CAD CAU PRD

1 - 0

CBD

15 - 12

reserved

3 - 2 5 - 4 7 - 6 9 - 8 11 - 10

00 = запрет действий 01 = сброс в низкий уровень 10 = установка в высокий уровень 11 = смена уровня на противоположный

Действие при CTR = CMPB

при счете вниз

Действие при CTR = CMPB

при счете вверх

Действие при CTR = CMPA

при счете вниз

Действие при CTR = CMPA

при счете вверх Действие при

CTR = 0

Действие при CTR = PRD

Page 115: Микроконтроллеры С2000 от Texas Instruments · Петля управления (напр. pid/2p2z) pwm Преобразователь Управление в реальном

ePWM: регистр однократного программного запуска Action Qualifier

EPwmxRegs.AQSFRC

ACTSFA RLDCSF OTSFB ACTSFB OTSFA

1 - 0 15 - 8

reserved

2 4 - 3 5 7 - 6

Варианты загрузки теневого регистра 00 = загружать при CTR = 0 01 = загружать при CTR = PRD 10 = загружать при CTR = 0 or CTR = PRD 11 = загружать сразу (из активного рег.)

Однократный программный запуск действия с выводом B / A

0 = нет действия 1 = однократный запуск разрешен

Однократное действие с B/A при программном запуске 00 = действие запрещено 01 = сброс в низкий уровень 10 = установка в высокий уровень 11 = смена уровня на противоположный

Page 116: Микроконтроллеры С2000 от Texas Instruments · Петля управления (напр. pid/2p2z) pwm Преобразователь Управление в реальном

ePWM: регистр многократного программного запуска Action Qualifier

EPwmxRegs.AQCSFRC

CSFA CSFB

1 - 0 15 - 4

reserved

3 - 2

Многократный программный запуск действия с выводом B / A

00 = действие запрещено 01 = многократный сброс в низкий уровень 10 = многократная установка в высокий уровень 11 = действие запрещено

Page 117: Микроконтроллеры С2000 от Texas Instruments · Петля управления (напр. pid/2p2z) pwm Преобразователь Управление в реальном

Пример расчета симметричной ШИМ Определение значений TBPRD и CMPA для формирования

симметричного ШИМ-сигнала частотой 2 кГц и заполнением 25% при частоте тактирования 60 МГц

CMPA = (100% - заполнение)*TBPRD = 0.75*15000 = 11250

TBPRD = fTBCLK

fPWM 2 2

1 1

2 кГц

60 МГц . . = 15000 =

Counter

Compare

Period

Вывод PWM

fTBCLK = 60 МГц

CA

CA

fPWM = 2 кГц

(TPWM = 500 мкс)

(TTBCLK = 16.7 нс)

Page 118: Микроконтроллеры С2000 от Texas Instruments · Петля управления (напр. pid/2p2z) pwm Преобразователь Управление в реальном

Пример расчета фронтовой ШИМ Определение значений TBPRD и CMPA для формирования

фронтового ШИМ-сигнала частотой 2 кГц и заполнением 25% при частоте тактирования 60 МГц

CMPA = (100% - заполнение)*(TBPRD+1) - 1 = 0.75*(29999+1) - 1 = 22499

TBPRD = fTBCLK

fPWM 2 кГц

60 МГц - 1 = 29999 - 1 =

Счетчик

Сравнение

Период

Вывод PWM

P

CA

fTBCLK = 60 МГц

fPWM = 2 кГц

(TPWM = 500 мкс)

(TTBCLK = 16.7 нс)

Page 119: Микроконтроллеры С2000 от Texas Instruments · Петля управления (напр. pid/2p2z) pwm Преобразователь Управление в реальном

ePWM: Подмодуль формирования мертвой зоны (DeadBand)

16-бит

Базовый

счетчик

Логика

сравнения

Селектор

действия

Формирователь

мертвой зоны

PWM

Chopper

Trip

Zone

Теневой

Регистр

сравнения

Теневой

Регистр

периода

Предделитель

Теневой

Регистр

сравнения

EPWMxA

EPWMxB SYSCLKOUT

TZy

EPWMxSYNCI EPWMxSYNCO

TBCLK

Цифровой

компаратор

TZ1-TZ3

COMPxOUT

Page 120: Микроконтроллеры С2000 от Texas Instruments · Петля управления (напр. pid/2p2z) pwm Преобразователь Управление в реальном

Необходимость мертвой зоны

К нагрузке

Шина питания

Сигналы управления комплиментарны

Транзисторные ключи открываются быстрее, чем закрываются Если оба ключа будут открыты, произойдет короткое замыкание!

Page 121: Микроконтроллеры С2000 от Texas Instruments · Петля управления (напр. pid/2p2z) pwm Преобразователь Управление в реальном

ePWM: Блок-схема подмодуля DeadBand

Задержка нарастающего

фронта

In Out

(счетчик 10-бит)

Задержка спадающего

фронта

In Out

(10-bit counter)

0

1

0

1

0

1

1

0

PWMxA

PWMxB

PWMxB

PWMxA S1

S0

S2

S3 FED

RED

OUT-MODE POLSEL

0

1

0

1

S4

S5

IN-MODE HALFCYCLE

Page 122: Микроконтроллеры С2000 от Texas Instruments · Петля управления (напр. pid/2p2z) pwm Преобразователь Управление в реальном

ePWM: регистры подмодуля DeadBand (файл л.р.: EPwm.c)

Задержка нарастающего фронта = TTBCLK x DBRED

Задержка спадающего фронта = TTBCLK x DBFED

Имя Описание Структура

DBCTL Настройка EPwmxRegs.DBCTL.all

DBRED Задержка нарастающего EPwmxRegs.DBRED

фронта (10-бит)

DBFED Задержка спадающего EPwmxRegs.DBFED

фронта (10-бит)

Page 123: Микроконтроллеры С2000 от Texas Instruments · Петля управления (напр. pid/2p2z) pwm Преобразователь Управление в реальном

ePWM: регистр управления подмодулем DeadBand EPwmxRegs.DBCTL

Выбор полярности

00 = активный высокий 01 = активный низкий, комплиментарные (RED) 10 = активный высокий, комплиментарные (FED) 11 = активный низкий

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

00 = модуль запрещен 01 = PWMxA = без задержек PWMxB = FED 10 = PWMxA = RED PWMxB = без задержек 11 = RED & FED (модуль полностью разрешен)

Выбор источника

00 = PWMxA источник для RED и FED 01 = PWMxA источник для FED PWMxB источник для RED 10 = PWMxA источник для RED PWMxB источник для FED 11 = PWMxB источник для RED и FED

OUT_MODE POLSEL

1 - 0 14 - 6

reserved

3 - 2

IN_MODE

5 - 4

HALFCYCLE

15

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

0 = полный цикл (период TBCLK) 1 = половинный цикл (период TBCLK*2)

Page 124: Микроконтроллеры С2000 от Texas Instruments · Петля управления (напр. pid/2p2z) pwm Преобразователь Управление в реальном

ePWM: подмодуль ШИМ ─ Chopper

16-бит

Базовый

счетчик

Логика

сравнения

Селектор

действия

Формирователь

мертвой зоны

PWM

Chopper

Trip

Zone

Теневой

Регистр

сравнения

Теневой

Регистр

периода

Предделитель

Теневой

Регистр

сравнения

EPWMxA

EPWMxB SYSCLKOUT

TZy

EPWMxSYNCI EPWMxSYNCO

TBCLK

Цифровой

компаратор

TZ1-TZ3

COMPxOUT

Page 125: Микроконтроллеры С2000 от Texas Instruments · Петля управления (напр. pid/2p2z) pwm Преобразователь Управление в реальном

ePWM: Назначение подмодуля Chopper

Позволяет модулировать ШИМ-сигнал высокочастотной несущей

Используется в драйверах для управления затворами силовых приборов на основе импульсных трансформаторов

Page 126: Микроконтроллеры С2000 от Texas Instruments · Петля управления (напр. pid/2p2z) pwm Преобразователь Управление в реальном

ePWM: Сигнал подмодуля Chopper EPWMxA

EPWMxB

CHPFREQ

EPWMxA

EPWMxB

OSHT

EPWMxA

Программируемая длительность (OSHTWTH)

Поддерживающие импульсы

Использование «One-Shot Pulse» на EPWMxA и/или EPWMxB

Page 127: Микроконтроллеры С2000 от Texas Instruments · Петля управления (напр. pid/2p2z) pwm Преобразователь Управление в реальном

ePWM: Регистры подмодуля Chopper (файл л.р.: EPwm.c)

Имя Описание Структура

PCCTL Управление EPwmxRegs.PCCTL.all

Page 128: Микроконтроллеры С2000 от Texas Instruments · Петля управления (напр. pid/2p2z) pwm Преобразователь Управление в реальном

ePWM: Регистр управления подмодулем Chopper EPwmxRegs.PCCTL

CHPEN CHPDUTY CHPFREQ OSHTWTH

0 15 - 11

reserved

4 - 1 7 - 5 10 - 8

Разрешение модуля

0 = запрещен 1 = разрешен

Ширина импульса One-Shot

0000 = 1 x SYSCLKOUT/8 1000 = 9 x SYSCLKOUT/8 0001 = 2 x SYSCLKOUT/8 1001 = 10 x SYSCLKOUT/8 0010 = 3 x SYSCLKOUT/8 1010 = 11 x SYSCLKOUT/8 0011 = 4 x SYSCLKOUT/8 1011 = 12 x SYSCLKOUT/8 0100 = 5 x SYSCLKOUT/8 1100 = 13 x SYSCLKOUT/8 0101 = 6 x SYSCLKOUT/8 1101 = 14 x SYSCLKOUT/8 0110 = 7 x SYSCLKOUT/8 1110 = 15 x SYSCLKOUT/8 0111 = 8 x SYSCLKOUT/8 1111 = 16 x SYSCLKOUT/8

Тактирующая частота подмодуля 000 = SYSCLKOUT/8 1 001 = SYSCLKOUT/8 2 010 = SYSCLKOUT/8 3 011 = SYSCLKOUT/8 4 100 = SYSCLKOUT/8 5 101 = SYSCLKOUT/8 6 110 = SYSCLKOUT/8 7 111 = SYSCLKOUT/8 8

Заполнение несущей модуля Chopper 000 = 1/8 (12.5%) 001 = 2/8 (25.0%) 010 = 3/8 (37.5%) 011 = 4/8 (50.0%) 100 = 5/8 (62.5%) 101 = 6/8 (75.0%) 110 = 7/8 (87.5%) 111 = reserved

Page 129: Микроконтроллеры С2000 от Texas Instruments · Петля управления (напр. pid/2p2z) pwm Преобразователь Управление в реальном

ePWM: подмодули цифрового компаратора (Digital Compare) и Trip-Zone

16-бит

Базовый

счетчик

Логика

сравнения

Селектор

действия

Формирователь

мертвой зоны

PWM

Chopper

Trip

Zone

Теневой

Регистр

сравнения

Теневой

Регистр

периода

Предделитель

Теневой

Регистр

сравнения

EPWMxA

EPWMxB SYSCLKOUT

TZy

EPWMxSYNCI EPWMxSYNCO

TBCLK

Цифровой

компаратор

TZ1-TZ3

COMPxOUT

Page 130: Микроконтроллеры С2000 от Texas Instruments · Петля управления (напр. pid/2p2z) pwm Преобразователь Управление в реальном

Назначение подмодуля Digital Compare

По сравнению выполняются:

отключение/включение выводов ePWM

формирование прерываний

синхронизация ePWM

запуск преобразования ADC

Входами подмодуля сравнения могут быть:

Выводы аналоговых компараторов (COMP1, COMP2, COMP3)

Входы модуля Trip-zone (TZ1, TZ2, TZ3)

Результаты сравнения формируются в зависимости от состояний входов подмодуля (см. след. слайд)

Для устранения шумовых эффектов может быть использован временный запрет операций сравнения

Page 131: Микроконтроллеры С2000 от Texas Instruments · Петля управления (напр. pid/2p2z) pwm Преобразователь Управление в реальном

Сигналы подмодуля Digital Compare

TZ1

TZ2

TZ3

COMP1OUT

COMP2OUT

COMP3OUT

Событие сравнения

A1

Событие сравнения

A2

Событие сравнения

B1

Событие сравнения

B2

Синхронизация PWM

Подмодуль Time-Base

Формирование SOCA

Подмодуль Event-Trigger

Воздействие на PWMA

Прерывание

ПодмодульTrip-Zone

Синхронизация PWM

ПодмодульTime-Base

Формирование SOCB

Подмодуль Event-Trigger

Воздействие на PWMB

Прерывание

Подмодуль Trip-Zone

DCAH

DCAL

DCBH

DCBL

DCTRIPSEL TZDCSEL DCACTL / DCBCTL

DCAEVT1

DCAEVT2

DCBEVT1

DCBEVT2

затемнение

затемнение

Page 132: Микроконтроллеры С2000 от Texas Instruments · Петля управления (напр. pid/2p2z) pwm Преобразователь Управление в реальном

События Digital Compare

Разработчик выбирает входы для каждого из событий DCAH, DCAL, DCBH, DCBL

Каждое из событий может использовать два входа DCyH/L (y = A или B)

Разработчик выбирает состояния входов, при которых формируется событие сравнения:

I. DCxH низкий DCxL любой

II. DCxH высокий DCxL любой

III. DCxL низкий DCxH любой

IV. DCxL высокий DCxH любой

V. DCxL высокий DCxH низкий

Page 133: Микроконтроллеры С2000 от Texas Instruments · Петля управления (напр. pid/2p2z) pwm Преобразователь Управление в реальном

Особенности подмодуля Trip-Zone Модуль Trip-Zone связан с выводами EPWMxA/B быстрой и не

зависящей от тактирования логикой (время задержки – 25 нс)

Выполнение подпрограмм обработки прерываний при перегрузках по

току или коротких замыканиях может быть недостаточно быстрым,

чтобы защитить оборудование

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

#1) режим one-shot для коротких замыканий или перегрузок по току

#2) режим cycle-by-cycle для операций токоограничения

Ядро

CPU В ы в о д ы

P W M

EPWMxTZINT

TZ6

TZ5

TZ4

TZ3

TZ2

TZ1

Датчики превышения

тока

Режим

Cycle-by-Cycle

Режим

One-Shot

EPWMxA

EPWMxB

COMPxOUT Digital Compare

CPU

SYSCTRL

eQEP1

EMUSTOP

CLOCKFAIL

EQEP1ERR

Page 134: Микроконтроллеры С2000 от Texas Instruments · Петля управления (напр. pid/2p2z) pwm Преобразователь Управление в реальном

ePWM: Регистры подмодулей Digital Compare и Trip-Zone

(файл л.р.: EPwm.c)

Имя Описание Структура

DCACTL DC A Control EPwmxRegs.DCACTL.all

DCBCTL DC B Control EPwmxRegs.DCBCTL.all

DCTRIPSEL DC Trip Select EPwmxRegs.DCTRIPSEL.all

DCCAPCTL Capture Control EPWMxRegs.DCCAPCTL.all

DCCAP Counter Capture EPwmxRegs.DCCAP

DCFCTL DC Filter Control EPwmxRegs.DCFCTL.all

DCFOFFSETCNT Filter Offset Ctr EPwmxRegs.DCOFFSETCNT

DCFWINDOW Filter Window EPwmxRegs.DCFWINDOW

DCFWINDOWCNT Filter Window Ctr EPwmxRegs.DCFWINDOWCNT

TZDCSEL Digital Compare EPwmxRegs.TZDCSEL.all

TZCTL Trip-Zone Control EPwmxRegs.TZCTL.all

TZSEL Trip-Zone Select EPwmxRegs.TZSEL.all

TZEINT Enable Interrupt EPwmxRegs.TZEINT.all

TZFLG Trip-Zone Flag EPwmxRegs.TZFLG.all

TZCLR Trip-Zone Clear EPwmxRegs.TZCLR.all

TZFRC Trip-Zone Force EPwmxRegs.TZFRC.all

Page 135: Микроконтроллеры С2000 от Texas Instruments · Петля управления (напр. pid/2p2z) pwm Преобразователь Управление в реальном

ePWM: Регистр выбора входов подмодуля Digital Compare

EPwmxRegs.DCTRIPSEL

DCBLCOMPSEL

15 - 12 11 - 8

7 - 4 3 - 0

DCBHCOMPSEL

DCALCOMPSEL DCAHCOMPSEL

Выбор источника LOW Digital Compare B

Выбор источника HIGH Digital Compare B

Выбор источника LOW Digital Compare A

Выбор источника HIGH Digital Compare A

0000 = TZ1 input 0001 = TZ2 input 0010 = TZ3 input 1000 = COMP1OUT input 1001 = COMP2OUT input 1010 = COMP3OUT input Другие значения зарезервированы

Page 136: Микроконтроллеры С2000 от Texas Instruments · Петля управления (напр. pid/2p2z) pwm Преобразователь Управление в реальном

ePWM: Регистр настройки события модуля Trip-Zone Digital Compare

EPwmxRegs.TZDCSEL

2 - 0 15 - 12

reserved

5 - 3

DCBEVT2 DCBEVT1 DCAEVT2 DCAEVT1

8 - 6 11 - 9

000 = событие запрещено 001 = DCBH низкий, DCBL любой 010 = DCBH высокий, DCBL любой 011 = DCBL низкий DCBH любой 100 = DCBL высокий, DCBH любой 101 = DCBL высокий, DCBH низкий 11x = зарезерв.

Настройка событий A1/A2 Настройка событий B1/B2

Page 137: Микроконтроллеры С2000 от Texas Instruments · Петля управления (напр. pid/2p2z) pwm Преобразователь Управление в реальном

ePWM: Регистр управления подмодулем Digital Compare EPwmxRegs.DCyCTL (y = A or B)

9 8 2 0

reserved

1 7 - 4 15 - 10

EVT1FRC SYNCSEL

EVT2FRC SYNCSEL

EVT2SRC SEL

EVT1SRC SEL

EVT1 SYNCE

EVT1 SOCE

reserved

3

Источник сигнала DCyEVT1 0 = сигнал DCyEVT1 1 = сигнал DCEVTFILT

Источник сигнала DCyEVT2 0 = сигнал DCyEVT2 1 = сигнал DCEVTFILT

Тип DCyEVT1 0 = синхронный 1 = асинхронный

Формирование DCyEVT1 SOC 0 = запрещено 1 = разрешено

Формирование DCyEVT1 SYNC 0 = запрещено 1 = разрешено

Тип DCyEVT2 0 = синхронный 1 = асинхронный

Page 138: Микроконтроллеры С2000 от Texas Instruments · Петля управления (напр. pid/2p2z) pwm Преобразователь Управление в реальном

ePWM: Регистр управления подмодулем Trip-Zone EPwmxRegs.TZCTL

TZA TZB

1 - 0 15 - 12

reserved

3 - 2

Действия с EPWMxB / EPWMxA

по сигналам TZ1─TZ6

DCBEVT2 DCBEVT1 DCAEVT2 DCAEVT1

5 - 4 7 - 6 9 - 8 11 - 10

00 = установить в высокоимпедансное состояние 01 = установить в высокий уровень 10 = сбросить в низкий уровень 11 = ничего не делать

Действие с EPWMxA по событию DCAEVT1/2

Действие с EPWMxB по событию DCBEVT1/2

Page 139: Микроконтроллеры С2000 от Texas Instruments · Петля управления (напр. pid/2p2z) pwm Преобразователь Управление в реальном

ePWM: Регистр настройки подмодуля Trip-Zone EPwmxRegs.TZSEL

OSHT1 OSHT5 OSHT4 OSHT3 OSHT2

8

OSHT6

15 9 10 11 12 13

CBC1 CBC5 CBC4 CBC3 CBC2

0

CBC6

7 1 2 3 4 5

Trip Zone: режим Cycle-by-Cycle (событие сбрасывается при CTR = 0; т.е. каждый цикл PWM) 0 = воздействие на выводы запрещено 1 = воздействие на выводы разрешено

Trip Zone: режим One-Shot (событие может быть сброшено только программно; остается зафиксированным) 0 = воздействие на выводы запрещено 1 = воздействие на выводы разрешено

14

6

DCBEVT1

DCBEVT2 DCAEVT2

DCAEVT1

Настройка TZ1-TZ6 на однократное или многократное воздействие

Page 140: Микроконтроллеры С2000 от Texas Instruments · Петля управления (напр. pid/2p2z) pwm Преобразователь Управление в реальном

ePWM: Регистр разрешения прерываний подмодуля Trip-Zone

EPwmxRegs.TZEINT

OST CBC reserved

15 - 7 0 2 1

reserved

Разрешение прерывания в режиме Cycle-by-Cycle 0 = disable 1 = enable

Разрешение прерывания в режиме One-Shot 0 = запрещено 1 = разрешено

DCBEVT2 DCBEVT1 DCAEVT2 DCAEVT1

Разрешение прерывания По событию DCBEVT 2/1 0 = запрещено 1 = разрешено

3 4 5 6

Разрешение прерывания По событию DCAEVT 2/1 0 = запрещено 1 = разрешено

Page 141: Микроконтроллеры С2000 от Texas Instruments · Петля управления (напр. pid/2p2z) pwm Преобразователь Управление в реальном

ePWM: подмодуль Event-Trigger

16-бит

Базовый

счетчик

Логика

сравнения

Селектор

действия

Формирователь

мертвой зоны

PWM

Chopper

Trip

Zone

Теневой

Регистр

сравнения

Теневой

Регистр

периода

Предделитель

Теневой

Регистр

сравнения

EPWMxA

EPWMxB

SYSCLKOUT TZy

EPWMxSYNCI EPWMxSYNCO

TBCLK

Цифровой

компаратор

TZ1-TZ3

COMPxOUT

Page 142: Микроконтроллеры С2000 от Texas Instruments · Петля управления (напр. pid/2p2z) pwm Преобразователь Управление в реальном

Event-Trigger ePWM: прерывания и SOC TBCTR

TBPRD

EPWMA

EPWMB

CMPB

CMPA

CTR = 0

CTR = PRD

CTRU = CMPA

CTRD = CMPA

CTRU = CMPB

CTRD = CMPB

CTR = 0 or PRD

Page 143: Микроконтроллеры С2000 от Texas Instruments · Петля управления (напр. pid/2p2z) pwm Преобразователь Управление в реальном

ePWM: Регистры подмодуля Event-Trigger (файл л.р.: EPwm.c)

Имя Описание Структура

ETSEL Event-Trigger Selection EPwmxRegs.ETSEL.all

ETPS Event-Trigger Pre-Scale EPwmxRegs.ETPS.all

ETFLG Event-Trigger Flag EPwmxRegs.ETFLG.all

ETCLR Event-Trigger Clear EPwmxRegs.ETCLR.all

ETFRC Event-Trigger Force EPwmxRegs.ETFRC.all

Page 144: Микроконтроллеры С2000 от Texas Instruments · Петля управления (напр. pid/2p2z) pwm Преобразователь Управление в реальном

ePWM: Регистр настройки подмодуля Event-Trigger

EPwmxRegs.ETSEL

15 11 7 - 4 2 - 0

INTEN INTSEL reserved

3

SOCBSEL SOCASEL SOCAEN SOCBEN

10 - 8 14 - 12

Разрешение SOCB / A

0 = запрет 1 = разрешение

Условия формирования EPWMxSOCB / A

000 = DCBEVT1 / DCAEVT1 001 = CTR = 0 010 = CTR = PRD 011 = CTR = 0 или PRD 100 = CTRU = CMPA 101 = CTRD = CMPA 110 = CTRU = CMPB 111 = CTRD = CMPB

Разрешение EPWMxINT

0 = запрет 1 = разрешение

Условия формирования EPWMxINT

000 = reserved 001 = CTR = 0 010 = CTR = PRD 011 = CTR = 0 or PRD 100 = CTRU = CMPA 101 = CTRD = CMPA 110 = CTRU = CMPB 111 = CTRD = CMPB

Page 145: Микроконтроллеры С2000 от Texas Instruments · Петля управления (напр. pid/2p2z) pwm Преобразователь Управление в реальном

ePWM: Регистр предделителя подмодуля Event-Trigger

EPwmxRegs.ETPS

15 - 14 11 - 10 7 - 4 1 - 0

INTCNT INTPRD reserved

2 - 3

SOCBPRD SOCAPRD SOCACNT SOCBCNT

9 - 8 13 - 12

Счетчик EPWMxSOCB / A (количество произошедших событий) 00 = no events 01 = 1 event 10 = 2 events 11 = 3 events

Период EPWMxSOCB / A (количество событий перед SOC) 00 = запрещено 01 = SOC по первому событию 10 = SOC по второму событию 11 = SOC по третьему событию

Счетчик EPWMxINT (количество произошедших событий) 00 = no events 01 = 1 event 10 = 2 events 11 = 3 events

EPWMxINT Period (количество событий перед INT) 00 = заперщено 01 = INT по первому событию 10 = INT по второму событию 11 = INT по третьему событию

Page 146: Микроконтроллеры С2000 от Texas Instruments · Петля управления (напр. pid/2p2z) pwm Преобразователь Управление в реальном

ШИМ высокого разрешения (HRPWM)

Значительно увеличивает разрешение традиционно полученного ШИМ

Использует дополнительно 8-бит для регистров сравнения (CMPxHR), периода (TBPRDHR) и фазы (TBPHSHR) для более точного позиционирования

Обычно используется, когда разрешение ШИМ ниже 9-10 бит, что происходит при частотах ШИМ ~160 kHz(с тактовой частотой 60 МГц)

Не все выводы ePWM поддерживают функцию HRPWM (см. документацию)

PWM Period

Тактирующий

сигал

(60 MHz)

Обычный

шаг PWM

(16.7 нс)

HRPWM

Micro Step (~150 пс)

HRPWM делит шаг ШИМ

на части ─ Micro Steps

(длительность ~= 150 пс,

65 пс в Delfino C2834x)

ms ms ms ms ms ms

Калибровочная логика

Калибровочная логика отслеживает количество Микро шагов за единицу

времени чтобы учесть изменения вызванные

Temp/Volt/Process

Page 147: Микроконтроллеры С2000 от Texas Instruments · Петля управления (напр. pid/2p2z) pwm Преобразователь Управление в реальном

Модуль захвата (eCAP)

Модуль eCAP фиксирует значения времени при смене логического уровня на соответствующем выводе

Таймер

Метки

времени

Trigger

Вывод

Page 148: Микроконтроллеры С2000 от Texas Instruments · Петля управления (напр. pid/2p2z) pwm Преобразователь Управление в реальном

Варианты использования модуля захвата

Проблема: Вычисление скорости, основанное на измерении изменения положения за фиксированный интервал времени приводит к большим ошибкам вычисления при малых скоростях

Сигнал от квадратурного энкодера

Расчет скорости медленных процессов вращения от инкрементального энкодера:

Измерение временных параметров сигнала

vk x

tk - tk-1

vk t

xk - xk-1

x

Дополнительный ШИМ-генератор

Альтернатива: Вычисление скорости на основании измеренных временных интервалов между фиксированными положениями

Page 149: Микроконтроллеры С2000 от Texas Instruments · Петля управления (напр. pid/2p2z) pwm Преобразователь Управление в реальном

Блок-схема модуля eCAP Режим захвата

Счетчик

временной

метки

32-Бит

Регистр

Захвата 1

Предделитель

события

Выбор

полярности 1

Регистр

Захвата 2

Регистр

Захвата 3

Регистр

Захвата 4

Логи

ка с

об

ыти

я

Вывод ECAPx

SYSCLKOUT

CAP1POL

CAP2POL

CAP3POL

CAP4POL

PRESCALE

Выбор

полярности 2

Выбор

полярности 3

Выбор

полярности 4

Page 150: Микроконтроллеры С2000 от Texas Instruments · Петля управления (напр. pid/2p2z) pwm Преобразователь Управление в реальном

Блок-схема модуля eCAP Режим ШИМ

Счетчик

временной

метки

32-Бит

Регистр

периода

(CAP3)

Регистр

периода

(CAP1)

Регистр

сравнения

(CAP4)

Регистр

сравнения

(CAP2)

Логика

сравнения

ШИМ вывод ECAPx

Теневой

Теневой

SYSCLKOUT

Непосредственный режим

Теневой режим

Непосредственный режим Теневой

режим

TSTCTR

Page 151: Микроконтроллеры С2000 от Texas Instruments · Петля управления (напр. pid/2p2z) pwm Преобразователь Управление в реальном

eCAP: Регистры модуля (файл л.р.: ECap.c)

Имя Описание Структура

ECCTL1 Capture Control 1 ECapxRegs.ECCTL1.all

ECCTL2 Capture Control 2 ECapxRegs.ECCTL2.all

TSCTR Time-Stamp Counter ECapxRegs.TSCTR

CTRPHS Counter Phase Offset ECapxRegs.CTRPHS

CAP1 Capture 1 ECapxRegs.CAP1

CAP2 Capture 2 ECapxRegs.CAP2

CAP3 Capture 3 ECapxRegs.CAP3

CAP4 Capture 4 ECapxRegs.CAP4

ECEINT Enable Interrupt ECapxRegs.ECEINT.all

ECFLG Interrupt Flag ECapxRegs.ECFLG.all

ECCLR Interrupt Clear ECapxRegs.ECCLR.all

ECFRC Interrupt Force ECapxRegs.ECFRC.all

Page 152: Микроконтроллеры С2000 от Texas Instruments · Петля управления (напр. pid/2p2z) pwm Преобразователь Управление в реальном

eCAP: Регистр управления 1 ECapxRegs.ECCTL1

CAPLDEN FREE_SOFT PRESCALE

15 - 14 13 - 9 8

Старшая часть:

Поведение в режиме эмуляции

00 = моментальная остановка TSCTR 01 = TSCTR считает до 0 и останавливается 1X = TSCTR не останавливается

Предделитель события 00000 = делит на 1 00001 = делит на 2 00010 = делит на 4 00011 = делит на 6 00100 = делит на 8 11110 = делит на 60 11111 = делит на 62

Загружать CAP1 – 4 Load по событию

захвата

0 = запрещено 1 = разрешено

Page 153: Микроконтроллеры С2000 от Texas Instruments · Петля управления (напр. pid/2p2z) pwm Преобразователь Управление в реальном

eCAP: Регистр управления 1 ECapxRegs.ECCTL1

Младшая часть:

CTRRST4 CAP4POL

7 3 0 2

CTRRST3 CAP3POL CTRRST2 CAP2POL CTRRST1 CAP1POL

1 4 5 6

Сброс счетчика по событию захвата

0 = нет сброса(абсолютный режим) 1 = сброс после захвата(разностный режим)

Полярность события захвата

0 = захват по нарастающему фронту 1 = захват по спадающему фронту

Page 154: Микроконтроллеры С2000 от Texas Instruments · Петля управления (напр. pid/2p2z) pwm Преобразователь Управление в реальном

eCAP: Регистр управления 2 ECapxRegs.ECCTL2

Старшая часть:

SWSYNC APWMPOL CAP_APWM

10 8 15 - 11

reserved

9

Полярность вывода APWM (действует только в режиме APWM) 0 = активный высокий 1 = активный низкий

Выбор режима

0 = режим захвата 1 = режим APWM

Программный запуск синхронизации счетчика 0 = нет эффекта 1 = загрузка значения TSCTR из CTRPHS для текущего модуля и других модулей (если SYNCO_SEL = 00)

Page 155: Микроконтроллеры С2000 от Texas Instruments · Петля управления (напр. pid/2p2z) pwm Преобразователь Управление в реальном

eCAP: Регистр управления 2 ECapxRegs.ECCTL2

Младшая часть:

SYNCO_SEL SYNCI_EN

7 - 6 3 0 2 - 1

TSCTRSTOP REARM STOP_WRAP CONT_ONESHT

4 5

Настройка выходного синхросигна 00 = sync-in в sync-out 01 = sync-out формируется при CTR = PRD event 1X = запрет

Разрешение синхронизации 0 = запрет 1 = разрешение

Управление счетчиком Time Stamp Counter

0 = остановка 1 = запуск

Перезапуск (только в режиме захвата) 0 = no effect 1 = перезапуск захвата

Остановка в однокр./ Возврат в многокр. режиме (только в режиме захвата) 00 = стоп/возвр. после 1 события 01 = стоп/возвр. после 2 события 10 = стоп/возвр. после 3 события 11 = стоп/возвр. после 4 события

Режим работы (только в режиме захвата) 0 = многократный 1 = однократный

Page 156: Микроконтроллеры С2000 от Texas Instruments · Петля управления (напр. pid/2p2z) pwm Преобразователь Управление в реальном

eCAP: Регистр разрешения прерываний ECapxRegs.ECEINT

CTR=CMP CTR=PRD

7 3 0 2

CTROVF CEVT4 CEVT3 CEVT2 CEVT1

1 4 5 6

reserved

15 - 8

reserved

0 = запрет прерывания 1 = разрешение прерывания

Разрешение прерывания CTR = CMP

Разрешение прерывания CTR = PRD

Разрешение прерывания

CTR = Overflow

Разрешение прерывания

события захвата 3

Разрешение прерывания

события захвата 1

Разрешение прерывания

события захвата 4

Разрешение прерывания

события захвата 2

Page 157: Микроконтроллеры С2000 от Texas Instruments · Петля управления (напр. pid/2p2z) pwm Преобразователь Управление в реальном

Л.р. 3: Управление периферией

ADC

RESULT0

... Память

данных

ePWM2

соединитель

Capture 1 Register

ADC- INA0

TB Counter

Compare

Action Qualifier

ePWM3

eCAP1

Capture 2 Register

Capture 3 Register

Capture 4 Register

Просмотр

буфера АЦП с

результатами

обработки

ШИМ-сигнала

Code Composer

Studio

ePWM2 запускает

АЦП по совпадению

периода используя SOCA

каждые 20 мкс (50 кГц)

CPU копирует результаты в буфер в подпрограмме

обработки прерывания АЦП

Page 158: Микроконтроллеры С2000 от Texas Instruments · Петля управления (напр. pid/2p2z) pwm Преобразователь Управление в реальном

1. Настройка модуля ePWM

Файл GPIO.c: настройка вывода GPIO4

Ход работы

Настройка счетчика

Регистр сравнения А

Настройка регистров сравнения

Настройка действий по сравнению

Файл Epwm_7_8_9_10…c:

Регистр периода

Page 159: Микроконтроллеры С2000 от Texas Instruments · Петля управления (напр. pid/2p2z) pwm Преобразователь Управление в реальном

2. Компиляция и проверка работы модуля ePWM

J5:6 -ADCINA0 J6:5 – PWM3A

Page 160: Микроконтроллеры С2000 от Texas Instruments · Петля управления (напр. pid/2p2z) pwm Преобразователь Управление в реальном

Построение графика во временной области: Tools -> Graph -> Single Time

Построение графика в частотной области: Tools -> Graph -> FFT Magnitude

Page 161: Микроконтроллеры С2000 от Texas Instruments · Петля управления (напр. pid/2p2z) pwm Преобразователь Управление в реальном

3. Настройка модуля eCAP:

Файл Main7.c

Файл GPIO.c

Файл Ecap_7_8….c

Настройка и разрешение прерываний eCAP

Page 162: Микроконтроллеры С2000 от Texas Instruments · Петля управления (напр. pid/2p2z) pwm Преобразователь Управление в реальном

4. Компиляция, загрузка и выполнение программы

J6:6 - ECAP1 J6:5 – PWM3A

Page 163: Микроконтроллеры С2000 от Texas Instruments · Петля управления (напр. pid/2p2z) pwm Преобразователь Управление в реальном

1. Сброс и прерывания

2. Инициализация системы Л.р.: Сторожевой таймер и прерывания

3. Операции с числами Л.р.: Фильтрация ШИМ-сигнала

4. Разработка системы Л.р.: Выполнение программы из FLASH-памяти

5. Интерфейсы

6. DSP/BIOS Л.р.: Выполнение программы DSP/BIOS из FLASH-памяти

Не вошедшие в тренинг материалы

Page 164: Микроконтроллеры С2000 от Texas Instruments · Петля управления (напр. pid/2p2z) pwm Преобразователь Управление в реальном

Микроконтроллеры C2000 от Texas Instruments

Спасибо за внимание !