Use PWMs em aplicativos com capacidade de tempo real
Importante
Esta é a documentação do Azure Sphere (herdado). O Azure Sphere (herdado) será desativado em 27 de setembro de 2027 e os usuários devem migrar para o Azure Sphere (integrado) até esse momento. Use o seletor de versão localizado acima do sumário para exibir a documentação do Azure Sphere (Integrado).
O Azure Sphere é compatível com Modulação de Largura de Pulso. A modulação de largura de pulso é obtida variando o ciclo de carga (razão entre o tempo ativo e inativo) de um sinal digital pulsado. Os PWMs (moduladores de largura de pulso) são usados em uma ampla variedade de aplicativos, como controle de motor digital, comunicação e conversão analógica para digital.
Este tópico descreve como usar PWMs em RTApp (aplicativos com capacidade para tempo real). Para obter informações sobre como usar PWMs em aplicativos de alto nível, confira Como usar PWM em aplicativos de alto nível.
Observação
O sistema operacional do Azure Sphere não redefine os periféricos na inicialização. Seus aplicativos devem garantir que os periféricos estejam em um bom estado conhecido na inicialização ou após a reinicialização.
Compatibilidade do MT3620 com PWM em núcleos em tempo real
Esta seção descreve as opções do PWM aplicáveis somente quando o Azure Sphere é executado no MT3620.
Os recursos do PWM compatíveis com o MT3620 estão listados no Status de compatibilidade do MT3620. O Guia do usuário da placa de desenvolvimento MT3620 descreve o layout e as funções do pino.
O MT3620 tem 12 canais de PWM, identificados por PWM0 a PWM11. Eles são organizados em três grupos de quatro canais. Cada grupo é associado a um controlador PWM (PWM-CONTROLLER-0, PWM-CONTROLLER-1, PWM-CONTROLLER-2). Os canais de PWM e os pinos GPIO de GPIO0 até GPIO11 são mapeados para os mesmos pinos no MT3620. Se seu aplicativo usa um controlador PWM, todos os pinos associados a esse controlador são alocados para uso como saídas de PWM. Nenhum deles poderá ser usado para GPIO.
Para endereços base de registro, números de interrupção, taxa de relógio, frequência de amostragem e outros detalhes sobre o MT3620, consulte a Folha de Dados do MT3620 e o Manual do Usuário do MT3620 M4; se ainda houver dúvidas, você pode solicitar detalhes da Avnet enviando um Azure.Sphere@avnet.come-mail .
O hardware PWM pode ser configurado para usar uma das três frequências de clock: 32 KHz, 2 MHz (XTAL/13) ou 26 MHz (XTAL). Nos núcleos de tempo real (RT), um aplicativo de tempo real (RTApp) pode selecionar qual relógio usar como base. As frequências base definidas pelo usuário não são suportadas. No entanto, seu aplicativo pode gerar frequências de sinal derivadas da frequência base selecionada. Para obter um exemplo, consulte o aplicativo de exemplo PWMAudio na Galeria do Azure Sphere.
Configurações do manifesto do aplicativo
Para usar um PWM em um RTApp, adicione o Pwm
recurso ao manifesto do aplicativo e especifique os controladores PWM que serão usados no aplicativo. Por exemplo, a seguinte linha especifica o controlador 0 do PWM para uso em um RTApp que tem como alvo a RDB (placa de desenvolvimento de referência) do MT3620:
"Capabilities": {
"Pwm": [ "PWM-CONTROLLER-0" ] }
O manifesto do aplicativo do Azure Sphere tem mais detalhes sobre o manifesto do aplicativo.
Os aplicativos de amostra PWM
O repositório do CodethinkLabs no GitHub contém vários aplicativos de exemplo que demonstram como usar os periféricos compatíveis com o MT3620 em aplicativos com capacidade para tempo real do Azure Sphere. Especificamente, o exemplo PWM_RTApp_MT3620_BareMetal demonstra como incorporar um periférico PWM em um aplicativo com capacidade de tempo real.
O projeto PWMAudio demonstra como usar os núcleos em tempo real para gerar áudio PWM (Pulse Width Modulation). Esse projeto faz parte da Galeria do Azure Sphere, uma coleção de scripts, utilitários e funções não mantidos.