Использование режимов пониженного энергопотребления РЧ-трансиверов
Всеволод Нестеров (КОМПЭЛ)Многообразие режимов работы с пониженным энергопотреблением позволяет использовать современные радиочастотные трансиверы в устройствах с батарейным питанием. В статье рассказывается о режимах пониженного энергопотребления трансиверов Texas Instruments CC111xFx/CC251xFx/CC243x из производственной линейки Chipcon.
Трансиверы CC111xFx/CC251xFx/CC243x имеют пять основных режимов работы:
Активный режим: Режим полной функциональности. Включен внутренний стабилизатор напряжения и питание подается на ядро. Активны высокочастотные тактовые генераторы - либо по отдельности, либо оба вместе. Также работают либо RC-, либо кварцевый генератор 32,768 кГц, либо они оба одновременно.
Режим PM0: Аналогичен активному, но процессор находится в ждущем режиме, то есть код не выполняется.
Режим PM1: Включен внутренний стабилизатор напряжения и питание подается на ядро. Ни один из тактовых генераторов не работает. Работает либо RC-, либо кварцевый генератор 32,768 кГц. Система перейдет в активный режим по сигналу RESET, или по сигналу внешнего прерывания, или по срабатыванию таймера спящего режима.
Режим PM2: Питание на ядро не подается. Ни один из тактовых генераторов не работает. Работает либо RC-, либо кварцевый генератор 32,768 кГц. Система перейдет в активный режим по сигналу RESET, или по сигналу внешнего прерывания, или по срабатыванию таймера спящего режима. Информация о состоянии USB для трансивера CC2511Fx будет потеряна при вхождении в режим PM2. Таким образом, не следует использовать режим PM2 с USB.
Режим PM3: Питание на ядро не подается. Ни один из генераторов не работает. Система перейдет в активный режим либо по сигналу RESET, либо по сигналу внешнего прерывания. Информация о состоянии USB для трансивера CC2511Fx будет потеряна при вхождении в режим PM3. Этот режим также не следует использовать с USB.
Требуемый режим выбирается установкой битов SLEEP.MODE. После установки этих битов необходимо установить биты IDLE в регистре PCON SFR, что переведет трансивер в выбранный режим. Надо заметить, что при SLEEP.MODE?0 прерывания и переключение между генераторами блокированы. Также надо соблюдать гарантированное время нахождения тактовых генераторов в режимах пониженного энергопотребления. Если это время будет меньше, чем указано в описаниях, то могут быть коллизии.
На рисунке 1 указан пример кода на языке С для перевода трансиверов в режимы PM0-PM3.
Рис. 1. Пример кода на языке С для перевода трансиверов в режимы PM0...PM3
Для трансиверов CC111xFx/CC251xFx при «пробуждении» из режимов PM{2-3} есть небольшая вероятность того, что SLEEP.MODE-биты будут ошибочно установлены в отличное от нуля значение перед тем, как бит PCON.IDLE будет очищен микроконтроллером. Вследствие этого трансиверы CC111xFx/CC251xFx немедленно вновь перейдут в режим PM{2-3}. Так как причина пробуждения (прерывание) все еще будет активна в этот момент, трансиверы CC111xFx/CC251xFx «проснутся» и снова перейдут в режим PM{2-3}, что приведет к зависанию, из которого можно выйти только по сигналу RESET.
Для того чтобы быть уверенным, что биты SLEEP.MODE установлены в 0, рекомендуется передавать посредством DMA-передачи определенное количество байт в регистр SLEEP. Этот регистр переключается записью DMAREQ.DMAREQx битов непосредственно перед записью бита PCON.IDLE, однако это требует определенных условий:
- Трансивер CC111xFx/CC251xFx должен работать на максимально возможной частоте HS RC-генератора.
- Генератор HS XOSC должен быть отключен
- Кэш-память должна быть отключена
Следующий код на рисунке 2 предполагает, что трансивер CC111xFx/CC251xFx уже работает на максимально возможной скорости HS RC-генератора.
Рис. 2. Пример кода для начала DMA-передачи
Код, выделенный жирным цветом, критичен ко времени выполнения, поэтому должен быть использован без изменений.
Трансивер CC243x не имеет таких проблем с пробуждением, как CC111xFx/CC251xFx. Таким образом, процедура ввода CC243x в режим PM{2-3} такая же, как описана на рисунке 1. Надо лишь заметить, что CC243x должен вводиться в режим PM{2-3} на максимально возможной скорости HS RC-генератора. Однако в кристаллах версии D для CC243x есть другая проблема с «пробуждением» из режимов PM{2-3}.
Трансивер CC243x имеет встроенный регулятор, который выдает напряжение 1,8 В для питания ядра при входных 2,0...3,6 В. Типичное напряжение в режиме PM{2-3} показано на рисунке 3.
Рис. 3. Напряжение на регуляторе в режиме PM{2 - 3}
Проблема заключается в том, что если прерывание на «пробуждение» поступает в момент, когда напряжение на выходе регулятора находится в пределах 0,5...1,6 В, то это может привести к зависанию ядра, потерям данных в оперативной памяти и регистрах и другим проблемам (рис. 4).
Рис. 4. Гарантированные и негарантированные «пробуждения» трансивера СС2430
Для борьбы с этим явлением рекомендуется использование внешнего регулятора (рис. 5).
Рис. 5. Принципиальная схема применения внешнего регулятора напряжения
При возвращении трансиверов CC111xFx/CC251xFx (рис. 6) и СС243х (рис. 7) в активный режим важно правильно сделать проверку/инициализацию генераторов.
Рис. 6. Проверка/инициализация генераторов для CC111xFx/CC251xFx
Рис. 7. Проверка/инициализация генераторов для СС243х
Собственно код возвращения в активный режим для трансиверов CC111xFx/CC251xFx/CC243x:показан на рисунке 8.
Рис. 8. Код возвращения в активный режим
При использовании для питания трансиверов аккумуляторов важно знать, за какое время устройство разрядит используемый элемент. Для определения потребления можно использовать следующую схему (рис. 9) на примере ZigBee-трансиверов CC2430.
Рис. 9. Блок-схема изменения потребления тока
На экране осциллографа измерения могут выглядеть примерно так, как показано на рисунке 10.
Рис. 10. Вид измерений на экране осциллографа
Итого имеем следующие данные, обобщенные в таблице 1.
Таблица 1. Потребляемые токи в каждом из режимовИнтервал | Описание | Ток, мА | Длительность, мс | Потребление, мА/мс |
---|---|---|---|---|
1 | Переход из спящего режима в режим генератора HS RCOSC 16 МГц | 0,75 | 0,49 | 0,3675 |
2 | Переход в режим генератора HS XOSC 32 МГц | 12 | 1,8 | 21,6 |
3 | CMSA/CA алгоритм. Трансивер в режиме приема. | 31 | 1,6 | 32,86 |
4 | Переключение из режима приема в режим передачи | 18 | 0,19 | 3,42 |
5 | Передача пакетов. Трансивер в режиме передачи. | 29 | 0,58 | 16,82 |
6 | Переключение из режима передачи в режим приема | 18 | 0,11 | 1,98 |
7 | Прием подтверждения от координатора. Трансивер в режиме приема | 31 | 1,1 | 34,1 |
8 | Обработка пакетов. Ядро в режиме 32 МГц | 12 | 1,1 | 13,2 |
9 | Переход в спящий режим (PM0 ® PM2). Ядро в режиме 16 МГц. | 7 | 0,62 | 4,34 |
Вычисляем общее потребление, оно получается 128,7 мА/мс.
Попробуем рассчитать время жизни батареи при односекундных интервалах опроса:
Потребление во время опроса:
Потребление во время сна:
Общее потребление в сутки:
Если питать устройство от двух последовательно соединенных 1,5 В батарей емкостью, например 3,1 А/ч, то время жизни батарей составляет 1000 дней.
Таким же образом можно рассчитать время жизни батарей и при других значениях интервала опросов.
Литература
1. Application Note AN053 Measuring power consumption with CC2430 & Z-Stack
2. Design Note DN106 Power Modes in CC111xFx, CC243x, and CC251xFx
3. Application Note AN044 CC2430 Revision D, Power Modes.
Ваш комментарий к статье | ||||