Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
27
Добавлен:
01.05.2014
Размер:
361.99 Кб
Скачать

8-21

Выходы HSO могут дать 6 дополнительных выходных контактов, если не используются функции HSO. Чтобы использовать выходы HSO как стандартные выходы, необходимо разрешить их использование как выходов, и затем установить или очистить их записью в IOS0 регистр через HWindow 15.

8.3.3.Использование Модуля HSO как Широтно-Импульсного Модулятора

(PWM)

И HSO модуль, и PWM модуль могут генерировать последовательность прямоугольных импульсов, в которой изменяются период и скважность импульсов. Используя соответствующие внешние компоненты, можно реализовать высокоточный восьмиразрядный цифро-аналоговый преобразователь с использованием либо HSO, либо PWM выходов (смотрите главу 10.).

HSO модуль может генерировать либо одиночную PWM последовательность, либо повторяющуюся PWM последовательность. Одиночная последовательность требует программирования периода и времени сброса (clear time) сигнала и двух HSO команд: установить активное состояние вывода и сбросить его. Для управления может быть использован Таймер 1 или Таймер 2.

Генерация повторяющейся последовательности производится аналогичным способом, для управления используется Таймер 2. Для генерации повторяющейся последовательности требуется запрограммировать период для Таймера 2, время установки (set time)

(PWMx_ST) и время сброса (PWMx_CT) для каждого выходного контакта и несколько HSO команд: одну для сброса Таймера 2, несколько для установки выводов и несколько для их сброса.

В приведенном ниже примере показан способ генерации нескольких PWM сигналов (ШИМ последовательностей) с использованием HSO.0, HSO.1 и HSO.2 как PWM выходов и Таймера 2 как базового. Рисунок 8.10 показывает три результирующие PWM последовательности.

SET_0:

 

 

LDB

HSO_COMMAND, #11100000B

; set HSO.0 when

LD

HSO_TIME, #PWM0_ST

; timer2 = pwm0_st

SKIP

R0

; wait 4 state times

SKIP

R0

; wait 4 state times

SET_1:

 

 

LDB

HSO_COMMAND, #11100001B

; set HSO.1 when

LD

HSO_TIME, #PWM1_ST

; timer2 = pwm1_st

SKIP

R0

; wait 4 state times

SKIP

R0

; wait 4 state times

SET_2:

 

 

LDB

HSO_COMMAND, #11100010B

; set HSO.2 when

LD

HSO_TIME, #PWM2_ST

; timer2 = pwm2_st

SKIP

ZERO_REG

; wait 4 state times

SKIP

ZERO_REG

; wait 4 state times

CLEAR_0:

 

 

LDB

HSO_COMMAND, #11000000B

; clear HSO.0 when

LD

HSO_TIME, #PWM0_ST

; timer2 = pwm0_ct

SKIP

ZERO_REG

; wait 4 state times

SKIP

ZERO_REG

; wait 4 state times

CLEAR_1:

 

 

LDB

HSO_COMMAND, #11000001B

; clear HSO.1 when

LD

HSO_TIME, #PWM1_ST

; timer2 = pwm1_ct

SKIP

ZERO_REG

; wait 4 state times

SKIP

ZERO_REG

; wait 4 state times

 

8-22

 

CLEAR_2:

 

 

LDB

HSO_COMMAND, #11000010B

; clear HSO.2 when

LD

HSO_TIME, #PWM2_ST

; timer2 = pwm2_ct

SKIP

ZERO_REG

; wait 4 state times

SKIP

ZERO_REG

; wait 4 state times

RESET:

 

 

LDB

HSO_COMMAND, #11001110B

; reset Timer 2 when

LD

HSO_TIME, #PERIOD

; timer2 = period

Смотрите описание применения AP-466 “Использование 80C196KB” для получения дополнительной информации и примеров программ, которые показывают, как использовать HSO для генерации одиночной и повторяющейся PWM последовательностей.

8.3.4.Синхронизация Выхода HSO.

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

HSO.0

 

 

 

 

 

 

 

 

 

 

 

 

 

PWM0

 

 

 

 

 

 

 

 

 

 

 

 

 

PWM1

HSO.1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

HSO.2

 

 

 

 

 

 

 

 

 

 

 

 

 

PWM2

 

 

 

 

 

 

 

 

 

 

 

 

 

TIMER2

EXT REF

 

SetTime

 

Clear Time

 

Period

Рисунок 8.10. Пример PWM последовательностей.

Соседние файлы в папке MPS_shprots