Ir para o conteúdo

Visão geral do projeto de baixo consumo de energia

Objetivo e público-alvo

Este guia apresenta o projeto de baixo consumo em dispositivos SF32: modos de energia, o que realmente consome a bateria e como organizar o firmware para que o sistema permaneça o maior tempo possível em estados de baixo consumo. O consumo de energia é uma questão que envolve o sistema como um todo: decisões sobre Bluetooth, gráficos, áudio e IA afetam o consumo e, por isso, este guia reúne esses efeitos.

A documentação do SDK da SiFli descreve o middleware PM (Power Management, gerenciamento de energia) baseado em RT-Thread para algumas plataformas, incluindo o SF32LB52x. Os modos disponíveis e o comportamento de despertar podem variar conforme o dispositivo e a configuração do SDK; consulte a documentação do dispositivo em questão. Nas famílias em que o SDK atribui as tarefas do controlador Bluetooth a um processador separado (consulte Arquitetura do processador Bluetooth), o processador separado pode tratar os eventos de rádio sem despertar a CPU da aplicação a cada evento. A possibilidade de ela permanecer suspensa depende da distribuição das tarefas, das fontes de despertar configuradas e do tráfego entre processadores; valide esse comportamento no dispositivo de destino.

Use esta página para transformar uma meta de autonomia em decisões de hardware e firmware sustentadas por medições. Ela se destina a engenheiros que precisam equilibrar standby conectado, display, áudio, sensores, IA e tempo de resposta ao usuário. Entrar em suspensão não se resume a chamar uma API.

Defina primeiro o orçamento de energia do produto

Antes de escrever o código de gerenciamento de energia, estabeleça o que o produto precisa atingir:

  • Autonomia alvo, em horas, dias ou semanas, e capacidade da bateria.
  • Ciclo de trabalho esperado: que proporção do dia o dispositivo passa em uso ativo, inativo mas conectado e totalmente suspenso?
  • Quais eventos devem despertar o sistema e com que rapidez?
  • Quais subsistemas precisam permanecer ativos, como um enlace Bluetooth, um display sempre ativo ou uma função de ativação por voz? Quais podem funcionar apenas em resposta a eventos?
  • Comportamento de carga e ciclos de carga previstos, quando forem relevantes para a política de energia do produto.

Essas metas devem orientar cedo as decisões de arquitetura, incluindo a escolha do chip e do display e a viabilidade de recursos como escuta contínua de voz ou display sempre ativo dentro do orçamento de energia.

Modos de energia e framework PM

As categorias abaixo são estados conceituais do sistema, não uma lista exata dos modos de hardware SF32 nem dos valores de enumeração do SDK. Consulte a documentação do dispositivo e do SDK escolhidos para confirmar os modos disponíveis, as fontes de despertar e a retenção de estado:

Tabela: modos de energia e framework PM
Modo Estado típico Quando usar
Ativo CPU em execução e periféricos habilitados conforme necessário Interação com a interface, transferência Bluetooth, streaming de áudio e processamento de sensores.
Inativo (Idle) A CPU aguarda um evento ou uma interrupção; o estado dos periféricos depende do dispositivo e da configuração Entre quadros da interface ou enquanto aguarda a próxima tarefa programada ou uma interrupção habilitada.
Suspensão / baixo consumo Uma CPU ou um subsistema entra em um estado de baixo consumo compatível; clocks, domínios e periféricos podem parar ou continuar ativos conforme esse estado Standby conectado ou espera por um evento Bluetooth, uma interrupção de sensor ou um temporizador configurados.
Deep Sleep / Standby Estado de baixo consumo mais profundo e específico do dispositivo; domínios ativos reduzidos; a retenção e o despertar variam Períodos longos de inatividade, quando o modo escolhido e os requisitos de despertar permitem.

Durante a execução normal, o sistema alterna entre estados. Uma fonte de despertar configurada desperta a CPU ou o subsistema; a sequência de despertar e restauração dos clocks varia conforme o dispositivo. Ao concluir o trabalho, os drivers ou tarefas responsáveis devem liberar as solicitações de PM que impedem a suspensão, para que a política configurada selecione um estado de baixo consumo permitido. A curva abaixo é ilustrativa: mostra transições relativas, não correntes ou tempos específicos de um dispositivo.

Curva ilustrativa de corrente relativa com Deep Sleep, despertar, trabalho ativo, inatividade e retorno ao baixo consumo
Diagrama: transições ilustrativas de energia durante uma tarefa curta

A seleção do modo de baixo consumo e o bloqueio da suspensão são mecanismos distintos. A referência do middleware PM para SF32LB52x e o guia de baixo consumo para SF32LB55x da SiFli documentam que rt_pm_request(PM_SLEEP_MODE_IDLE) bloqueia a entrada em LIGHT, DEEP e STANDBY até a chamada correspondente a rt_pm_release(PM_SLEEP_MODE_IDLE); essa solicitação não seleciona um modo mais profundo.

Para implementar a gestão de energia, consulte o guia oficial da família do dispositivo: SF32LB52x, SF32LB55x, SF32LB56x ou SF32LB58x. Os modos disponíveis, as condições de entrada, as fontes de despertar e o estado preservado dependem da família do chip, da placa e da configuração do SDK. O guia de baixo consumo do SF32LB52x inclui um exemplo de configuração dos pinos de despertar Hibernate, explicitamente agrupado para 58x/56x/52x/57x. A referência comum da API HAL PMU do SDK informa que, no SF32LB57x, o intervalo de índices usado por HAL_PMU_EnablePinWakeup() vai de 0 a 13. Essas fontes comprovam apenas essa configuração de pinos; não comprovam que a disponibilidade dos modos RT-Thread, os limites da política de PM ou o comportamento de retenção do 52x também se apliquem ao 57x. Confirme esses pontos na documentação do SDK e do dispositivo-alvo. Em geral, uma política configurada só pode selecionar um estado elegível mais profundo quando o intervalo de inatividade e as demais condições de entrada permitem. Uma solicitação não liberada pode manter o sistema em um estado mais superficial do que o previsto.

O que consome energia em um produto SF32

Cada subsistema tem um perfil de consumo diferente:

Tabela: principais consumidores de energia em um produto SF32
Subsistema Principal fator de consumo Guia
CPU Tempo de execução ativa, não apenas frequência de clock Este guia
Rádio Bluetooth Intervalo de advertising, intervalo de conexão, latência do periférico (slave latency) e potência de TX Visão geral do Bluetooth
Display Frequência de atualização, atualização completa ou parcial e retroiluminação Controlador de display: atualização parcial
Codec de áudio/DMA Duração da sessão ativa, taxa de amostragem e alimentação mantida entre sessões Visão geral de áudio
Inferência de IA Frequência de inferência e tamanho da janela, não apenas tamanho do modelo Visão geral de IA
Sistema de memória Atividade de cache/PSRAM e frequência de execução de código em memória externa lenta STAR-MC1
Sensores Frequência de polling ou amostragem acionada por interrupções Este guia

Nenhuma medida isolada resolve todos esses fatores. Em um produto real, é preciso ajustar a contribuição de cada subsistema e verificar o efeito conjunto, pois todos influenciam a profundidade de suspensão possível.

Projete o firmware para aproveitar a suspensão

Os maiores ganhos costumam vir da estrutura do firmware, não de truques de baixo nível:

  • Prefira interrupções e eventos ao polling. Um loop de polling mantém a CPU ativa mesmo quando não há trabalho.
  • Agrupe tarefas. Quando a latência permitir, acumule amostras de sensores, eventos Bluetooth ou blocos de áudio e processe-os juntos, em vez de despertar para cada item.
  • Libere rapidamente as solicitações de PM que impedem o repouso. Um driver ou tarefa que mantém uma solicitação bloqueando a entrada em um estado de baixo consumo mais profundo deve liberar a solicitação correspondente assim que esse bloqueio deixar de ser necessário. Caso contrário, o sistema pode permanecer em um estado menos profundo que o previsto.
  • Projete os caminhos de interface e áudio para responder a eventos, em vez de polling periódico baseado em temporizadores, quando o framework permitir.
  • Revise os temporizadores. Um temporizador periódico agenda trabalho futuro e pode despertar o sistema ou reduzir o intervalo de inatividade disponível para a política de PM. Por isso, vários temporizadores aparentemente inofensivos podem reduzir o tempo nos estados mais profundos de baixo consumo.

Comece por um exemplo de energia validado

Antes de estimar a autonomia, escolha um exemplo do SDK que permita verificar o aspecto mais incerto do consumo. Exemplos de baixo consumo do SDK relacionam os projetos oficiais de PM, GPIO, processador, Bluetooth, display, GUI, atualização de tela e acendimento ao levantar o pulso aos cenários que verificam. A página também explica quais premissas sobre conexão de alimentação, placa, configuração, fonte de despertar, circuito externo e carga de trabalho precisam ser revalidadas antes de usar o exemplo como evidência para o produto.

Ajuste o consumo de Bluetooth

Os parâmetros de conexão e advertising são os principais ajustes para o consumo de Bluetooth; consulte a tabela completa na Visão geral do Bluetooth:

  • Aumente o intervalo de conexão e a latência do periférico em enlaces que passam a maior parte do tempo inativos.
  • Reduza a potência de TX ao menor nível que ainda atenda ao alcance necessário.
  • Diminua a frequência de advertising quando o produto estiver aguardando reconexão, em vez de precisar facilitar a descoberta inicial.
  • Quando o SDK escolhido trata eventos do controlador Bluetooth em um processador separado, a CPU da aplicação pode dormir entre eventos de conexão se nenhuma tarefa, fonte de despertar ou mensagem entre processadores exigir sua ativação. Despertá-la a cada callback Bluetooth reduz essa vantagem; confirme a distribuição de núcleos e tarefas no dispositivo de destino.

Para medir, por cenário, o consumo real com apenas Bluetooth clássico, apenas BLE e ambos operando em modo dual, consulte Medição e análise do consumo de energia em Bluetooth.

Consumo do display e da retroiluminação

Displays e retroiluminação frequentemente representam o maior consumo individual em produtos vestíveis ou portáteis:

  • Use atualização parcial e de regiões alteradas em vez de redesenhar toda a tela quando o painel e a interface permitirem; consulte Controlador de display: atualização parcial.
  • Durante a inatividade, reduza o brilho do display ou desligue a retroiluminação, se houver. Pare também as animações quando a tela estiver escurecida ou coberta.
  • Para produtos com display sempre ativo, compare painéis como EPD, JDI/memory-in-pixel, AMOLED e TFT pela energia medida nesse modo e pela experiência de uso exigida. Escolha o painel e a política de operação que atendam ao orçamento, em vez de manter continuamente um modo normal de display ativo.
  • Trate o display sempre ativo como uma linha independente no orçamento, pois ela muda substancialmente o significado de “inativo” para o produto.

Ajuste o consumo de IA e sensores

A inferência no dispositivo e a amostragem de sensores devem ser programadas deliberadamente, não executadas continuamente:

  • Execute inferência apenas quando houver dados novos e úteis, não em um temporizador fixo independentemente da atividade na entrada.
  • Transfira tarefas leves de sensoriamento contínuo para o processador de baixo consumo quando o dispositivo e o SDK permitirem, em vez de despertar a CPU principal a cada amostra.
  • Meça energia por inferência ou por amostra, não apenas latência. Uma operação mais rápida só reduz o consumo se permitir que o sistema volte antes à suspensão.

Consulte a Visão geral de IA para aprofundar o equilíbrio entre precisão, latência e consumo.

Memória e clocks

O local de execução do código afeta tanto o desempenho quanto o consumo. Em dispositivos SF32 que implementam e habilitam os recursos de cache correspondentes, os caches de instruções e dados podem reduzir o tempo de espera por acessos à Flash ou à PSRAM. Menos tempo ativo pode deixar mais tempo para suspensão. Consulte STAR-MC1 para saber mais sobre cache e sistema de memória.

Além da CPU:

  • PSRAM e Flash externas têm características próprias de consumo ativo e em standby. Verifique no datasheet o consumo de retenção e acesso, sobretudo se buffers grandes precisarem preservar seus dados durante a suspensão.
  • A escolha da fonte de clock, cristal ou oscilador interno, e dos domínios de PLL/clock que permanecem ativos afeta a latência de despertar e o consumo em suspensão.
  • Reduzir a frequência da CPU em fases menos exigentes pode ajudar, mas verifique se o aumento do tempo ativo não elimina o ganho. Meça a energia real, não apenas a corrente instantânea.

Hardware e RF

A política do firmware só pode funcionar dentro dos limites do hardware:

  • A eficiência do PMIC/LDO nas correntes reais do produto importa mais que valores destacados para cargas sem relação com o uso.
  • Layout de RF e ajuste da antena afetam a potência de TX necessária para obter alcance confiável. Um projeto de RF ruim força o firmware a compensar com mais potência e reduz a autonomia; consulte Arquitetura do processador Bluetooth: considerações sobre RF e clock.
  • A precisão do cristal afeta as margens de temporização de RF e o quanto o firmware precisa ser conservador nos timeouts de supervisão e nas margens de despertar.
  • Preveja acesso para teste e calibração na produção. O ajuste de energia e RF costuma continuar após a primeira revisão do hardware.

Caso prático: acender a tela ao levantar o pulso

Acender a tela quando o usuário levanta o pulso é um caso de uso comum em dispositivos vestíveis, mas a implementação depende do sensor, da placa e do SDK. O exemplo da SiFli para SF32LB52x destina-se à placa sf32lb52-lchspi-ulp e usa um LSM6DSL (acelerômetro/giroscópio), amostrando a aceleração a cada 200 ms para reconhecer os gestos de levantar e abaixar o pulso. O dispositivo entra em suspensão após 10 segundos de inatividade e desperta para acender o display ao detectar o gesto de levantar o pulso. Essa é uma implementação específica da placa e não demonstra que outros alvos usem interrupção do sensor ou o mesmo comportamento de PM. Se o sensor de destino oferecer interrupções de movimento ou de limite, o firmware poderá configurá-las como fonte de despertar para evitar polling contínuo pela CPU da aplicação. Caso contrário, inclua a amostragem do sensor e os despertares da CPU no orçamento de energia. Verifique o sensor, a placa, as fontes de despertar e a configuração de PM do alvo específico.

Planilha de orçamento de energia

Transforme as metas do produto em números antes de ajustar o firmware. Uma planilha simples costuma ser suficiente:

Tabela: planilha de orçamento de energia
Estado Pergunta orientadora Item do orçamento
Em estoque / armazenamento Quanto tempo o produto pode ficar armazenado antes do primeiro uso? Corrente em Deep Sleep, retenção do RTC e fugas em componentes externos.
Conectado e inativo Quantas horas por dia ele fica pareado, mas sem uso? Intervalo BLE, latência do periférico, interrupções de sensores e corrente com o display apagado.
Consulta rápida do display Com que frequência o display desperta e por quanto tempo? Retroiluminação, atualização parcial, atividade breve de CPU/interface e controlador de toque.
Sessão de áudio Quanto tempo dura a reprodução, a gravação ou a chamada? Codec, DMA, áudio Bluetooth e largura de banda da memória.
Processamento breve de IA Com que frequência a inferência é executada? Captura do sensor, pré-processamento, tempo do acelerador/CPU e pós-processamento.
OTA / manutenção Com que frequência são esperadas atualizações? Intervalo de conexão curto, apagamento/escrita de Flash e armazenamento para rollback.

Para um conjunto de estados de operação mutuamente exclusivos, estime average current = state current x duty cycle e some as contribuições de cada estado. Se houver cargas simultâneas, inclua-as no total do cenário correspondente para não contar estados sobrepostos duas vezes. Isso revela problemas de projeto cedo: uma meta de 20 μA em suspensão não compensa um produto que passa tempo demais com retroiluminação intensa ou inferência ativa em intervalos fixos.

Análise de consumo: modele, meça e atualize

A análise de consumo transforma o orçamento em um ciclo de engenharia reproduzível. Defina cenários representativos, registre tensão e corrente no limite de alimentação pertinente e considere a duração e a frequência de cada carga. Calcule a energia ao longo do tempo e concilie as medições por linha de alimentação com o consumo no lado da bateria, incluindo as perdas de conversão; não some diretamente correntes de linhas com tensões diferentes. Assim, estime a corrente média da bateria, a carga consumida por dia e a autonomia, além de priorizar os cenários que devem ser medidos e otimizados.

Diagrama: ciclo de análise de consumo
flowchart LR
    A["Definir cenários representativos do produto"] --> B["Definir premissas de corrente, tensão, duração e frequência"]
    B --> C["Calcular energia por evento e por dia"]
    C --> D["Comparar com o orçamento da bateria e ordenar os consumos"]
    D --> E["Medir os cenários prioritários no hardware de destino"]
    E --> F["Atualizar o modelo com corrente e tempos medidos"]
    F --> B

Trate o perfil como uma estimativa, não como uma medição. O Online Power Profiler for Bluetooth LE da Nordic segue o mesmo princípio: usa modelos derivados de medições, mas seus resultados são valores esperados, não a medição de um produto específico. A corrente pode variar com o silício, o projeto da placa, a tensão da bateria, a temperatura, as condições de RF, a temporização do firmware e o caso de uso.

Em cada cenário, registre as premissas que afetam significativamente a energia:

  • Quais subsistemas estão ligados e em que modo de energia o MCU realmente entra?
  • Qual é a corrente na entrada da bateria ou em cada linha de alimentação regulada?
  • Quanto tempo dura a tarefa e quantas vezes ela ocorre em um dia típico?
  • Quais picos de corrente são esperados e quais indicam trabalho desnecessário ou falha ao entrar em suspensão?

Use a estimativa para identificar as maiores parcelas do orçamento e valide os cenários no hardware antes de declarar a autonomia. Análise de consumo de um smartwatch aplica esse método a um modelo de uso diário; Medição e validação do consumo de energia define o fluxo de captura reproduzível.

Revise as responsabilidades de PM e as fontes de despertar

Um projeto de baixo consumo confiável precisa de um responsável claro para cada fonte de despertar e cada solicitação que iniba a suspensão. Acompanhe estes itens na revisão:

Tabela: responsabilidades de PM e fontes de despertar
Item Pergunta de revisão Modo de falha
Responsável pelas solicitações/bloqueios de PM Qual driver ou tarefa pode impedir a entrada em um estado mais profundo? Uma solicitação não liberada pode manter o sistema em um estado mais superficial.
Condição de liberação Qual evento ou caminho de erro garante a liberação da solicitação correspondente? Uma solicitação ativa pode impedir a suspensão mais profunda e aumentar o consumo.
Fonte de despertar Qual interrupção, temporizador, evento BLE ou sensor compatível e configurado no dispositivo pode despertar a CPU? Despertares periódicos inesperados podem representar a maior parcela da corrente em repouso.
Dependência de clock Qual domínio de clock precisa permanecer ativo? Um periférico impede a suspensão mais profunda sem um erro evidente.
Necessidade de retenção Que memória ou estado precisa sobreviver à suspensão? Retenção excessiva desperdiça corrente; retenção insuficiente prejudica o despertar.

Durante a depuração, registre a política de PM configurada, as solicitações ativas que inibem modos mais profundos e o último modo de baixo consumo indicado pelo SDK ou pelos logs. Se o sistema chegar a um estado mais superficial do que o esperado, esses dados costumam ser mais úteis que o valor de corrente isolado.

Meça o consumo na prática

Não adivinhe: meça. Um conjunto básico para validar o consumo inclui:

  • Uma ponta de prova de corrente ou analisador de potência em série entre bateria/fonte e placa.
  • Cenários que correspondam ao uso real: conectado e inativo, interação com a interface, reprodução de áudio, inferências breves de IA e a pior carga combinada.
  • Registro ou marcação dos estados do firmware, ativo/inativo/suspensão, junto com a curva de consumo para atribuir picos de corrente a caminhos de código específicos.

A documentação do SDK da SiFli oferece exemplos de caracterização de consumo para alguns dispositivos e placas, incluindo cenários com displays AMOLED e JDI, GPIO, BLE/Bluetooth Classic e carga de CPU semelhante a CoreMark. Consulte a documentação do SDK e da placa de destino para confirmar a disponibilidade e a configuração. Os exemplos aplicáveis podem servir como referência de medição e verificação de plausibilidade, mas não garantem o consumo do produto.

Matriz de validação de energia

Use cenários reproduzíveis para comparar melhorias entre revisões do firmware. No mínimo, meça:

Tabela: matriz de validação de energia
Cenário O que habilitar Critério de aprovação
Inicialização até o estado inativo Inicialização normal, sem pareamento, display apagado Nenhum trabalho periódico além dos temporizadores necessários.
Conectado e inativo Enlace BLE com bonding e parâmetros de conexão de produção Verifique se a CPU ou o núcleo que deveria dormir atinge o estado de baixo consumo desejado entre eventos de enlace; confirme a distribuição das tarefas Bluetooth e o comportamento de despertar.
Consulta da interface Despertar do display, atualização típica de uma tela e timeout de redução de brilho Retroiluminação e animações param após o timeout.
Áudio ativo Caminho de reprodução ou gravação ativo Sem underrun; o codec desliga após a sessão.
IA ativa Entrada real do sensor e inferência breve Energia por inferência compatível com o orçamento.
Pior caso Bluetooth + display + áudio/IA, conforme o produto Sem desconexões, falhas ou problemas de limite térmico ou de potência.

Registre versão do firmware, revisão da placa, tensão da bateria/fonte, temperatura, configuração de antena/gabinete e script de teste. Sem esses dados, os valores de consumo ficam difíceis de comparar e fáceis de interpretar incorretamente.

Investigue o consumo elevado

Tabela: diagnóstico de consumo elevado
Sintoma O que verificar
O dispositivo nunca entra em Deep Sleep Driver ou tarefa mantém uma solicitação de PM ativa; procure chamadas de liberação ausentes.
Consumo alto apesar de uma conexão Bluetooth inativa Latência do periférico não configurada ou aplicação despertando em cada evento de conexão.
Picos de consumo coincidem com atividade do display Redesenho completo em vez de atualização parcial ou retroiluminação mantida no brilho máximo.
Consumo cresce após atualizar o firmware Novo temporizador, loop de polling ou periférico sempre ativo sem revisão de energia.
Bom consumo na bancada, pior no produto Desajuste de RF/antena exige mais potência de TX, ou há efeitos térmicos/do gabinete ausentes na bancada.
Áudio ou IA consomem bateria em excesso Codec ou caminho de inferência permanece ativo entre sessões; consulte Visão geral de áudio e Visão geral de IA.

Erros comuns

  • Tratar a otimização de energia como acabamento final, em vez de requisito de projeto desde o início.
  • Fazer polling de sensores, estado Bluetooth ou temporizadores em vez de usar interrupções e eventos.
  • Deixar uma solicitação de PM ativa após concluir o trabalho que a exigia.
  • Redesenhar toda a tela para pequenas mudanças na interface.
  • Ignorar a qualidade do layout de RF e compensar com mais potência de TX no firmware.
  • Medir apenas corrente instantânea em vez da energia de um cenário de uso realista.
  • Validar apenas na bancada, nunca no gabinete final com antena e bateria reais.

Checklist de bring-up

  • Defina autonomia alvo, ciclo de trabalho e fontes de despertar necessárias.
  • Identifique quais subsistemas precisam permanecer ativos continuamente e quais podem ser totalmente acionados por eventos.
  • Confirme que cada driver/tarefa libera a solicitação de PM logo após o uso.
  • Ajuste os parâmetros de advertising/conexão Bluetooth ao uso real do produto.
  • Confirme a atualização parcial quando disponível e uma política de retroiluminação compatível com o uso.
  • Revise os temporizadores periódicos e elimine ou agrupe os desnecessários.
  • Prepare a medição de corrente e valide separadamente os estados ativo, inativo e em suspensão.
  • Teste a pior carga combinada, Bluetooth + display + áudio + IA conforme aplicável, e confirme o orçamento de energia.
  • Revalide o consumo após cada mudança significativa de firmware, não apenas no fim do projeto.

Pontos principais

  • O consumo é uma propriedade do sistema: Bluetooth, display, áudio, IA e memória determinam a profundidade e a frequência da suspensão.
  • A política de PM configurada escolhe entre os estados de baixo consumo permitidos; uma solicitação não liberada que iniba modos mais profundos pode manter o sistema em um estado mais superficial do que o previsto.
  • Em quase todas as situações em que energia importa, o projeto por eventos e interrupções é melhor que polling.
  • Os parâmetros de conexão Bluetooth e a atualização do display costumam ser os dois maiores ajustes em um produto vestível conectado.
  • Meça energia real com cargas combinadas e realistas no hardware dentro do gabinete final. Medições de bancada ou de subsistemas isolados podem subestimar o consumo do produto real.

Para estimar a porcentagem restante da bateria a partir da tensão, consulte Estimativa do estado de carga da bateria.

Última atualização: