Многие микроконтроллерные устройства питаются от батарей, и в этих случаях величина тока потребления микроконтроллера является одним из его важнейших параметров. Для облегчения разработки таких устройств компания Microchip выпускает семейство nanoWatt, к которому, в частности, относятся модели PIC12F629/675. Представители этого семейства имеют очень маленькое потребление и способны работать в широком диапазоне питающих напряжений. Из документации на микроконтроллеры можно увидеть, что максимальный и минимальный токи потребления могут отличаться в десятки миллионов раз. Поэтому крайне необходимо четко понимать, какие факторы влияют на суммарное потребление микроконтроллера.
Типичная зависимость тока потребления микроконтроллеров PIC от их тактовой частоты приведена на Рис. 10.3. Ясно видно, что рассеиваемая мощность VDD х /DD прямо пропорциональна рабочей частоте. Так, при тактовой частоте 10 МГц ток потребления микроконтроллера в 100 раз больше, нежели при частоте 100 кГц.
Рис. 10.3.
Чтобы понять, почему так происходит, представьте себе ключ, заряжающий и разряжающий емкостную нагрузку С, как показано на Рис. 10.4. В качестве такого ключа выступает транзистор, а нагрузкой является паразитная емкость связи со следующим полевым транзистором и его затвором. RS представляет собой сопротивление открытого транзистора.
Рис. 10.4.
При разомкнутом ключе (транзистор закрыт) емкость заряжается по экспоненциальному закону до уровня V вольт с постоянной времени τ =CRL. В устойчивом состоянии в конденсаторе хранится энергия, равная 1/2 СV2 Дж. Кроме того, при протекании этого тока заряда конденсатора через сопротивление нагрузки в последнем рассеивается энергия, которая вычисляется следующим образом:
Итак, 1/2 СV2 Дж рассеивается на сопротивлении нагрузки (независимо от величины этого сопротивления RL!) и еще столько же накапливается в электрическом поле конденсатора. При разряде конденсатора эта накопленная энергия рассеивается на сопротивлении, образованном параллельным соединением резисторов RS и RL (и опять же значение рассеиваемой энергии не зависит от значений этих сопротивлений). Таким образом, при каждом переключении транзистора рассеивается энергия, равная CV2 Дж. Суммарная рассеиваемая мощность равна произведению этого значения на число циклов переключения в секунду (CV2f) плюс потери в статическом режиме из-за токов утечки.
Из предыдущего соотношения (CV2f) видно, что рассеиваемая мощность прямо пропорциональна частоте при любом заданном напряжении питания. Более того, она пропорциональна квадрату напряжения питания, так что, снизив напряжение питания в 2 раза (скажем, с 5 до 2.5 В), мы уменьшим рассеиваемую мощность (VDD х IDD) в 4 раза[131].
Значение динамической рассеиваемой мощности, вычисленной выше, следует сложить с мощностью, рассеиваемой в статическом режиме (при тактовой частоте устройства, равной нулю). Из нижней строки Табл. 10.1 видно, что величина этого базового тока (или тока в режиме Power Down), который в документации обозначается как IРD, обычно не превышает 1 мкА. При этом подразумевается, что периферийные модули, имеющие собственные тактовые генераторы (такие, как сторожевой таймер и схема сброса по снижению питания), отключены.
Разумеется, оставить процессор без тактового сигнала будет слишком непродуктивно, поскольку в этом случае он ничего не сможет делать! Однако во многих встраиваемых системах необходимость в вычислениях возникает спорадически, поэтому было бы полезно иметь возможность перевода процессора в режим ожидания в те периоды, когда от него не требуется никаких действий. Возьмем, к примеру, микроконтроллерный датчик системы радиотелеметрии, находящийся на дне озера. Он может проводить измерение температуры всего один раз в час, при этом время его работы от одной батареи должно составлять не менее года.
Для поддержки ситуаций, подобных описанной, все микроконтроллеры PIC имеют «