Примеры энергосбережения в SDK¶
Примеры управления питанием в SiFli-SDK служат отправной точкой для измерений и интеграции, а не универсальными спецификациями тока потребления. Каждый пример рассчитан на определённое семейство микросхем, плату, схему питания, набор включённых периферийных устройств, конфигурацию прошивки и нагрузку. Сначала используйте пример, чтобы воспроизводить выбранное состояние или сценарий на целевом оборудовании, затем измерьте ток и напряжение собственного изделия в тех же условиях.
На этой странице проекты из каталога примеров PM в SiFli-SDK сгруппированы по инженерным задачам. Поддерживаемые платы, подключение питания, перемычки, настройки SDK, команды и ожидаемое поведение сверяйте с официальной страницей каждого примера.
Выбор примера под задачу¶
| Инженерная задача | С чего начать | Что помогает установить | Что повторно проверить для изделия |
|---|---|---|---|
| Проверить вход в состояния PM и пробуждение | Базовый пример PM | Базовую конфигурацию управления питанием и последовательность сна и пробуждения | Реальные источники пробуждения, зависимости от тактирования, сохраняемое состояние и запросы каждого драйвера к PM |
| Измерить влияние GPIO в режиме энергосбережения | Тест энергопотребления GPIO | Периодическое пробуждение по таймеру, доступ к GPIO и разницу между сном, пробуждением и работой I/O | Внешние подтяжки, выключенные периферийные устройства, назначение функций выводов, линии питания и нежелательные пути утечки |
| Раздельно проверить вычислительную нагрузку и поведение при отключении | Тест энергопотребления процессора | Выполнение бенчмарка или цикла, отключение, пробуждение от RTC и от вывода | Частоту ядра, нагрузку, полярность сигнала пробуждения, назначение выводов пробуждения на конкретной плате и напряжение питания |
| Измерить сценарии Bluetooth | Тест энергопотребления BLE: передача рекламных пакетов и подключение или Тест энергопотребления BLE/BT | Передачу рекламных пакетов BLE, подключение и активность Bluetooth как отдельные измеряемые сценарии | Радиоусловия, мощность TX, интервалы передачи рекламных пакетов и соединения, поведение второго устройства, антенну и обработчики обратного вызова приложения |
| Сравнить выключенный и постоянно включённый AMOLED-экран | Тест энергопотребления AMOLED | Обновление дисплея, сон с выключенным экраном и режим постоянно включённого экрана | Конкретную панель, яркость, политику обновления, питание дисплея и долю времени использования |
| Измерить работу с JDI-дисплеем | Тест энергопотребления JDI | Поведение в режиме энергосбережения для описанной конфигурации JDI | Вариант панели, область обновления, настройки контроллера, линии питания и частоту обновления |
| Интегрировать графический интерфейс с энергосбережением | Руководство по примеру GUI_PM | Взаимодействие интерфейса пользователя, состояния дисплея и политики PM | Жизненный цикл экранов изделия, анимацию, источники пробуждения от сенсорного экрана или контроллера и политику обновления изменённых областей |
| Измерить нагрузку при обновлении экрана | Тест энергопотребления при обновлении экрана | Энергопотребление при обновлении дисплея в составе рабочей нагрузки | Разрешение, формат пикселей, изменяемую область, скорость интерфейса, организацию буферов и частоту изменения содержимого |
| Реализовать взаимодействие в носимом устройстве с пробуждением от датчика | Включение экрана при поднятии запястья | Пробуждение от датчика, работу с включённым дисплеем и возврат в сон | Выбор датчика, алгоритм распознавания жеста, интервал опроса, время до выключения экрана, модель аккумулятора и измерения при суточном использовании |
Уточните список целевых плат¶
Ниже отдельно указаны платы, перечисленные в официальном руководстве каждого примера, и цели из текущей конфигурации сборки SiFli-SDK для GCC. Наличие платы в матрице означает, что проект настроен как цель сборки; оно не подтверждает, что опубликованные значения энергопотребления измерялись на этой плате. Если названия плат в руководстве и идентификаторы целей сборки различаются, не считайте их взаимозаменяемыми без проверки соответствия плат. Ссылки на конфигурацию ведут в текущую ветку main; если используется другая ревизия SDK, перед выбором цели scons --board сверяйтесь с файлом build_config_gcc.yaml именно из этой рабочей копии SDK. Чтобы воспроизвести измерение, используйте описанную в руководстве аппаратную конфигурацию. Название семейства в URL документации не означает автоматическую поддержку всех чипов и плат этого семейства.
- PM Example (исходный код SDK): в руководстве перечислены
sf32lb56-devkit-lcd_n16r12n1,eh-lb551,sf32lb52-lcd_n16r8иsf32lb58-lcd_n16r64n4. В текущей конфигурации GCC для проекта используется идентификаторsf32lb56-lcd_n16r12n1(он отличается от указанного в руководствеsf32lb56-devkit-lcd_n16r12n1), а такжеeh-lb551,sf32lb52-lcd_n16r8иsf32lb58-lcd_n16r64n4; дополнительно включена цельsf32lb52-core_n16r16. Не считайте разные идентификаторы взаимозаменяемыми без проверки соответствия плат. - GPIO Power Consumption Test (исходный код SDK): и руководство, и текущая конфигурация GCC указывают
sf32lb52-core_n16r16. - Processor Power Consumption Test (исходный код SDK): в руководстве перечислены
eh-lb551,eh-lb555,ec-lb583,ec-lb587,eh-lb561,eh-lb563иeh-lb523. В текущей конфигурации GCC для проекта используется наборdefault_boards; точные идентификаторы целей сборки приведены в конфигурации сборки. Списки плат из руководства и целейdefault_boardsне совпадают по названиям один к одному. Сверьте соответствие для используемой ревизии SDK, а не определяйте его по названию. Наличие цели сборки также не означает, что опубликованные измерения охватывают каждую плату из набора. - BLE Broadcast and Connection Power Consumption Test (исходный код SDK): в руководстве указаны платы
eh-lb551иeh-lb555, а текущие цели сборки GCC называютсяeh-lb551_hcpuиeh-lb555_hcpu. - BLE/BT Power Consumption Test (исходный код SDK): руководство перечисляет
ec-lb583,ec-lb587,eh-lb561,eh-lb563иeh-lb523. В текущей конфигурации GCC используется наборbt_boards; точные идентификаторы целей сборки приведены в конфигурации, некоторые из них имеют суффикс_hcpu. В отдельной записи для этого проекта также присутствуютsf32lb56-wlan-core_a128r12n1иsf32lb56-wlan-core_n16r12n1. Не подменяйте названия плат из руководства идентификаторами целей сборки, не проверив соответствие. - AMOLED Power Consumption Test (исходный код SDK): и руководство, и текущая конфигурация GCC указывают
sf32lb52-core_n16r16. - JDI Power Consumption Test (исходный код SDK): и руководство, и текущая конфигурация GCC указывают
sf32lb52-core_n16r16. - GUI_PM Low-Power Example Guide (исходный код SDK): и руководство, и текущая конфигурация GCC указывают
sf32lb52-lchspi-ulp. - Power Consumption Test Example — Screen Refresh Scenario (исходный код SDK): в качестве примера сборки руководство указывает
sf32lb52-core_n16r16. В текущей матрице GCC этот проект не указан, однако пример и руководство остаются опубликованными; отсутствие в матрице не означает, что они недоступны. - Raise Wrist to Light Up Screen (исходный код SDK): и руководство, и текущая конфигурация GCC указывают
sf32lb52-lchspi-ulp.
Измеряйте на правильной электрической границе¶
Сравнивайте осциллограмму потребления изделия с примером SDK только при одинаковых электрических границах измерения. Например, примеры GPIO и включения экрана при поднятии запястья описывают подключение питания и перестановку перемычек на конкретных платах. Питание от USB, подключённый отладчик, преобразователь UART, зарядная цепь или модуль дисплея могут существенно изменить результат.
Для каждого измерения зафиксируйте:
- Точку подключения питания и все линии, на которые подано напряжение.
- Напряжение питания, режим дискретизации и диапазон прибора для измерения тока.
- Подключённые внешние устройства, подтягивающие резисторы, кабели и интерфейсы отладки.
- Ревизию прошивки, имя платы, конфигурацию
menuconfigи настройку отладки PM. - Переход состояния или нагрузку, которым соответствует каждый участок осциллограммы.
Измеряйте напряжение вместе с током, чтобы определять мощность и энергию, а не только ток потребления. В статье «Измерение и проверка энергопотребления» подробно описана проверка отдельных компонентов, сценариев и суточного профиля.
Базовые тесты PM, GPIO и процессора¶
Начните с базового примера PM, чтобы проверить нужный режим сна и источники пробуждения до добавления нагрузки изделия. Зафиксируйте запрошенное состояние PM и проверьте, в какое состояние система действительно переходит. Если система не переходит в запрошенное глубокое состояние сна, сначала проверьте конфигурацию и то, какой компонент управляет запросами PM. Не переходите к тонкой настройке параметров, пока не устраните эту причину.
Тест энергопотребления GPIO помогает разобраться, почему интерфейс, который кажется неактивным, повышает ток в состоянии покоя. В описанном сценарии устройство периодически просыпается для чтения GPIO, что позволяет отделить ток сна от затрат на пробуждение и операции I/O. Для изделия проверка должна быть шире: внутренние и внешние подтяжки, состояния high-Z, связи между доменами питания, выводы выключенных периферийных устройств, состояния после сброса и возможные пути утечки через ESD-защиту и цепи обратного питания. Даже логически корректный сигнал может создавать ток утечки.
Тест энергопотребления процессора разделяет принципиально разные условия: вычисления CPU, простой цикл, отключение, пробуждение по таймеру и от вывода. Он позволяет оценить затраты на активные вычисления и проверить пробуждение, но сам по себе не определяет энергопотребление приложения. Перед включением результатов в энергетический бюджет замените бенчмарк или цикл репрезентативной нагрузкой прошивки.
Сценарии Bluetooth и дисплея¶
Используйте отдельные проекты Передача рекламных пакетов BLE и установление соединения и BLE/BT, чтобы получить воспроизводимые радиосценарии до настройки параметров соединения в приложении. Готовое изделие всё равно нужно измерять с его собственными параметрами передачи рекламных пакетов и соединения, вторым устройством, радиоокружением, антенной и обработчиками обратного вызова. Если приложение будит основной CPU при каждом радиособытии, хорошие результаты измерений самого соединения могут не сохраниться на уровне изделия.
Примеры для дисплеев помогают проверить другие решения:
- Тест энергопотребления AMOLED сравнивает сон с выключенным экраном и политику постоянно включённого экрана. Переключение режимов и оценки автономности из источника относятся к описанным плате, панели, яркости, временам обновления и модели использования, а не к любому изделию с AMOLED.
- Тест энергопотребления JDI даёт аналогичную исходную точку для конкретной платформы с JDI-дисплеем.
- Руководство по примеру GUI_PM связывает жизненный цикл интерфейса пользователя с поведением PM.
- Сценарий обновления экрана рассматривает нагрузку от обновления дисплея.
Эти примеры помогают ответить на вопрос: какие события действительно требуют изменения пикселей и какую часть панели нужно обновлять? Статьи «Обзор графики» и «Контроллер дисплея» помогут выбрать организацию буферов и политику частичного обновления.
Включение экрана при поднятии запястья как полный сценарий¶
Проект «Включение экрана при поднятии запястья» особенно полезен тем, что объединяет опрос датчика, распознавание жеста, пробуждение дисплея, ограниченное время взаимодействия и возврат в сон. Это пример сценария изделия, а не отдельного состояния.
Оценки автономности в исходном примере зависят от указанной ёмкости аккумулятора, числа пробуждений, времени работы экрана, датчика, интервала опроса, платы и измеренных токов. При адаптации сохраните структуру расчёта: измерьте состояние с включённым экраном и с выключенным экраном, задайте число событий в сутки и рассчитайте суммарную суточную энергию. Затем подставьте собственные значения изделия вместо копирования чисел из примера.
Разобранный цикл моделирования и измерений приведён в статье «Профилирование энергопотребления умных часов».
От примера PM к проверке изделия¶
| Шаг | Что зафиксировать | Зачем это нужно |
|---|---|---|
| Воспроизвести исходный пример | Плату, подключение питания, перемычки, ревизию SDK, конфигурацию и ожидаемое поведение | Чтобы отделить поведение исходного примера от последующих изменений изделия |
| Выделить один сценарий | Конкретное состояние PM, активные компоненты, источник пробуждения, длительность и условие завершения | Чтобы средний ток имел понятный инженерный смысл |
| Измерить ток и напряжение | Маркеры на записи измерений, а также ток, напряжение, мощность и энергию | Чтобы сравнивать результаты для разных линий питания и ревизий прошивки |
| Добавить аппаратную часть изделия | Обновлённые внешние компоненты, состояния выводов, линии питания и датчики | Чтобы выявить утечки и потребление периферии, отсутствующие на отладочной плате |
| Согласовать модель энергопотребления с измерениями | Частоту сценариев, длительность и измеренную энергию | Чтобы суточная оценка энергопотребления постепенно приближалась к результатам измерений изделия |
Связанные материалы¶
- Обзор энергосберегающего проектирования: ответственность за PM, режимы питания, системное проектирование и анализ энергопотребления.
- Измерение и проверка энергопотребления: проверка компонентов, сценариев и профиля изделия.
- Профилирование энергопотребления умных часов: разобранная модель суточного использования.
- Примеры: общий каталог примеров SDK по разным направлениям.
- Каталог примеров PM в SiFli-SDK: актуальные официальные проекты и инструкции по настройке.
Последнее обновление: