Шрифт:
Период следования формируемого ШИМ-сигнала составляет:
TPWM = 1/fPWM = 1/50 Гц = 20 мс
Число периодов импульсной последовательности E_CLOСK, которое должно быть отсчитано для формирования периода ШИМ-сигнала, составляет:
KE_CLOCK = TPWM/TE_CLOCK = 20 мс/125 нс = 160 000
Подсчитанное число слишком велико, чтобы его можно было разместить не только в 8-разрядном, но и 16-разрядном регистре. Поэтому при конфигурации модуля PWM необходимо воспользоваться программируемым делителем частоты E_CLOСK. Максимальное значение коэффициента этого делителя составляет 128: 160 000/128 = 1250.
Именно такое число отсчетов следует использовать для генерации ШИМ-сигнала с частотой 50 Гц. Число 1250 может быть размещено в 16-разрядном регистре, поэтому мы будем использовать объединение двух 8-разрядных каналов модуля PWM в один 16-разрядный. Аналогичным способом следует вычислить коды, соответствующие диапазону возможных коэффициентов заполнения 4,5…10,0%.
Запишите код инициализации модуля PWM для управления серводвигателем рулевого механизма самостоятельно, используя блок схему рис. 4.115 и программный фрагмент init_pwm.
Рис. 4.115. Последовательность действий МК при обслуживании модуля PWM
4.25. Ограничение энергии потребления
Используя мобильный телефон, Вы должны были заметить, что он переходит в режим экономичного расхода энергии аккумуляторной батареи после того, как Вы перестали им пользоваться. Все современные телефоны оснащены красочным дисплеем с подсветкой. После завершения разговора подсветка дисплея автоматически выключается, и будет оставаться в выключенном состоянии до тех пор, пока пользователь не начнет нажимать на кнопки панели управления. Однако через некоторое время после последнего нажатия дисплей опять выключится.
Все описанные действия имеют своей целью экономию энергии аккумуляторной батареи в те промежутки времени, когда телефоном не пользуются. Телефон переходит в режим низкого энергопотребления («sleep mode» — режим сна) и остается в нем до тех пор, пока не поступит звонок или пользователь нажмет на кнопки. В главе 6 мы подробно рассмотрим, как экономить энергию батареи в микропроцессорных системах. Мы также увидим, что энергия потребления МК, выполненных по CMOS технологии, пропорциональна частоте системной шины МК. Некоторые значения для токов потребления в различных режимах работы МК приведены в таблице рис. 4.116.
Частота внутренней системной шины | |||
---|---|---|---|
Максимальные значения токов потребления | 2 МГц | 4 МГц | 8 МГц |
Активный режим работы | |||
Однокристальный режим | 15 мА | 25 мА | 45 мА |
Расширенный режим | 25 мА | 45 мА | 70 мА |
Режим ожидания Wait (все периферийные модули отключены) | |||
Однокристальный режим | 1,5 мА | 3 мА | 5 мА |
Расширенный режим | 4 мА | 7 мА | 10 мА |
Режим останова STOP Однокристальный режим, (система тактирования выключена) | |||
–40 +85 (°C) | 10 мА | 10 мА | 10 мА |
+85 +105 (°C) | 25 мА | 25 мА | 25 мА |
+105 +125 (°C) | 50 мА | 50 мА | 50 мА |
Рис. 4.116. Ток, потребляемый МК семейства 68HC12 в различных режимах работы
Анализируя приведенные в таблице цифры, Вы можете увидеть ярко выраженную зависимость тока потребления МК от частоты тактирования. А также, что МК значительно снижает ток потребления в режимах ожидания WAIT и останова STOP.
4.25.1. Как остановить МК 68HC12
МК семейства 68HC12 переходит в режим ожидания WAIT сразу после исполнения команды WAI языка ассемблер. Перед тем, как перейти в режим ожидания, МК записывает в стек содержимое регистров центрального процессора и адрес возврата. Затем модуль системной интеграции отключает генератор тактирования центрального процессора, в то время как тактирование периферийных модулей МК продолжается. МК может быть выведен из состояния ожидания WAIT поступлением запроса на прерывание. Этот запрос может быть внешним, или внутренним, например, по какому либо событию в модуле таймера. После поступления запроса, МК перейдет из состояния WAIT в активный режим работы, восстановит значения кодов регистров центрального процессора из стека, а затем перейдет к исполнению подпрограммы прерывания.
МК переводится в режим останова STOP командой STOP языка ассемблер. Команда STOP исполняется только в том случае, если бит S в регистре признаков CCR центрального процессора сброшен. После поступления команды STOP центральный процессор сохраняет все регистры в стеке, а затем модуль системной интеграции полностью выключает систему тактирования МК. При полном отсутствии тактовых импульсов все логические элементы в составе полупроводниковой ИС микроконтроллера находятся в статическом режиме, т.е. в состоянии 0 или 1. Известно, что основные потери энергии в логических элементах происходят при переключениях из одного установившегося состояния в другое. Именно поэтому в состоянии STOP микроконтроллера, когда переключений элементов внутренней структуры нет, энергия потребления резко падает. Данные таблицы рис. 4.116 показывают, что в режиме останова STOP ток потребления МК снижается на три порядка, т.е. примерно в тысячу раз.
4.25.2. Как вывести МК 68HC12 из состояния пониженного энергопотребления
Поступление запроса на внешнее прерывание способно вывести МК семейства 68HC12/HCS12 из режима WAIT или STOP. Однако для подключения сигналов внешних запросов могут быть использованы не только входы IRQ и XIRQ. Линии портов PORT D, PORT Y и PORT J могут быть конфигурированы таким образом, что перепад сигнала на них из 1 в 0 вызовет переход МК из режима пониженного энергопотребления в активный режим работы.