Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Тема 6 Периферия ОК.doc
Скачиваний:
3
Добавлен:
03.08.2019
Размер:
1.76 Mб
Скачать

6.7. Модуль управления шаговым двигателем

Модуль содержит по два широтно-импульсных генератора (PWM1, PWM2) с логическими селекторами.

Драйверы могут непосредственно подключаться к четырём выводам двух обмоток двигателя. Вращение ротора обеспечивается совместной работой генераторов.

Тактовые импульсы подаются на 8-битный счётчик. Период выходных импульсов генераторов PWM1 и PWM2 составляет длительность 256 циклов тактирования. Скважность импульсов задаётся установками в регистрах сравнения.

Выходы могут быть установлены в единичное, нулевое или высокоимпедансное состояние. Так же они используются для передачи PWM импульсов.

6 .8. Модуль аналого-цифрового преобразователя

Модуль 8/10-разрядного аналого-цифрового преобразователя (АЦП) реализует метод последовательных приближений. Восемь аналоговых сигналов (рис.2.32) могут подаваться на внешние выводы микроконтроллера. Через аналоговый мультиплексор и схему выборки/хранения выбранный сигнал поступает на вход АЦП.

Точность преобразования гарантируется, если при установленном времени выборки 4 мкс выходной импеданс источников сигналов меньше 15,5 кОм. При большем импедансе нужно увеличить время выборки или подключить внешний компенсирующий конденсатор параллельно источнику сигнала.

Результат преобразования с 8-ми или 10-разрядным разрешением пересылается в регистр данных. После записи результата, в регистре управления устанавливается флаг запроса прерывания INT. При разрешённом прерывании обслуживание модуля выполняется либо обычной процедурой обработки, либо с использованием сервиса EI2OS.

Модуль АЦП может работать в трёх основных режимах:

- режим одиночного преобразования: выполняется один цикл преобразования сигналов с выбранных входов (StartAN0AN1AN2AN3Конец_преобр.);

- режим непрерывного преобразования: циклически (непрерывно) преобразуются сигналы с выбранных входов (StartAN0AN1AN0AN1….);

- режим преобразования с приостановкой: циклически преобразуются сигналы с выбранных входов, но после обработки каждого сигнала происходит приостановка АЦП и переход к следующему входу выполняется после сигнала запуска преобразователя

(StartAN0приостановкаStartAN1приостановкаStart AN0приостановкаStart AN1….)

При многоканальной работе АЦП нужно учитывать, что в модуле имеется только один регистр данных. Новый результат преобразования записывается поверх старого. Для исключения потери данных, нужно успеть сохранить данные в памяти до их обновления. Многоканальную работу рекомендуется организовывать в режиме прерываний (обычных или с применением EI2OS). В режиме прерываний, после установки флага, переход к следующему каналу приостанавливается до его очистки. При обычных прерываниях флаг очищается программно, а в сервисе EI2OS –автоматически.

6.9. Система прерываний микроконтроллера

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

Микроконтроллер выполняет четыре типа прерываний:

  • аппаратные прерывания по запросам от встроенных периферийных модулей;

  • программные прерывания при выполнении специальной команды вызова прерывания;

  • расширенный интеллектуальный сервис ввода/вывода (EI2OS), являясь разновидностью аппаратного прерывания, позволяет осуществлять обмен данными по типу прямого доступа к памяти;

  • исключения, возникающие при попытке выполнить не существующую команду.

Система прерываний обрабатывает запросы от 256 источников. Каждый источник может обслуживаться своей процедурой обработки прерывания. Начальный адрес процедуры обработки заносится в три младших байта 4-байтного вектора прерывания. Вектора прерываний размещаются по фиксированным адресам в банке 0хFF.

Номер

прерывания

Источник

Адрес вектора

прерывания

Регистр управления

прерыванием

Имя

Адрес

#24

16-bit reload timer 1

0xFFFF9C

#25

Input capture 0/1

0xFFFF98

ICR07

0x0000B7

#26

Output compare 0/1

0xFFFF94

#27

Input capture 2/3

0xFFFF90

ICR08

0x0000B8

#28

Output compare 2/3

0xFFFF8C

#29

Input capture 4/5

0xFFFF88

ICR09

0x0000B9

#30

Output compare 4/5

0xFFFF84

#31

A/D converter

0xFFFF80

ICR10

0x0000BA

#32

I/O timer/Watch timer

0xFFFF7C

#33

Serial I/O

0xFFFF78

ICR11

0x0000BB

#34

Sound generator

0xFFFF74