Use PWMs em aplicações com capacidade em tempo real
Importante
Esta é a documentação do Azure Sphere (Legado). O Azure Sphere (Legado) 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 suporta a Modulação de Largura de Pulso. A modulação de largura de pulso é obtida variando o ciclo de trabalho (relação entre o tempo de espera e o tempo de folga) de um sinal digital pulsado. Moduladores de largura de pulso (PWMs) são usados em uma ampla gama de aplicações, como controle de motor digital, comunicação e conversão digital-para-analógico.
Este tópico descreve como usar PWMs em aplicativos com capacidade de tempo real (RTApp). Para obter informações sobre como usar PWMs em aplicativos de alto nível, consulte Usando PWM em aplicativos de alto nível.
Nota
O sistema operacional Azure Sphere não redefine periféricos na inicialização. Seus aplicativos devem garantir que os periféricos estejam em um estado em boas condições na inicialização ou após a reinicialização.
Suporte MT3620 para PWM nos núcleos em tempo real
Esta seção descreve as opções do PWM que só se aplicam ao executar o Azure Sphere no MT3620.
Os recursos do PWM que o MT3620 suporta estão listados em Status de suporte do MT3620. O guia do usuário da placa de desenvolvimento MT3620 descreve o layout do pino e as funções do pino.
A MT3620 tem 12 canais PWM, identificados por PWM0-PWM11. Eles estão organizados em 3 grupos de 4 canais. Cada grupo está associado a um controlador PWM (PWM-CONTROLLER-0, PWM-CONTROLLER-1, PWM-CONTROLLER-2). Os canais PWM e GPIO pinos GPIO0 através GPIO11 mapa 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 PWM. Nenhum deles pode ser usado para GPIO.
Para registrar endereços base, números de interrupção, taxa de relógio, frequência de amostragem e outros detalhes sobre o MT3620, consulte a Folha de dados MT3620 e o Manual do Usuário MT3620 M4, se ainda houver dúvidas, você pode solicitar detalhes da Avnet por e-mail.Azure.Sphere@avnet.com
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 em tempo real (RTApp) pode selecionar qual relógio usar como base. Não há suporte para frequências básicas definidas pelo usuário. No entanto, seu aplicativo pode gerar freqüências de sinal que são derivadas da freqüência base selecionada. Para obter um exemplo, consulte o aplicativo de exemplo PWMAudio na Galeria do Azure Sphere.
Configurações de manifesto do aplicativo
Para usar um PWM em um RTApp, adicione a Pwm
capacidade ao manifesto do aplicativo e especifique os controladores PWM que serão usados no aplicativo. Por exemplo, a linha a seguir especifica o controlador PWM 0 para uso em um RTApp destinado à placa de desenvolvimento de referência (RDB) MT3620:
"Capabilities": {
"Pwm": [ "PWM-CONTROLLER-0" ] }
O manifesto do aplicativo Azure Sphere tem mais detalhes sobre o manifesto do aplicativo.
Os aplicativos de exemplo PWM
O repositório CodethinkLabs no GitHub contém vários aplicativos de exemplo que demonstram como usar periféricos com suporte MT3620 em aplicativos compatíveis com o Azure Sphere em tempo real. Especificamente, o exemplo de PWM_RTApp_MT3620_BareMetal demonstra como incorporar um periférico PWM em um aplicativo capaz de tempo real.
O projeto PWMAudio demonstra como usar os núcleos em tempo real para gerar áudio PWM (Pulse Width Modulation). Este projeto faz parte da Galeria do Azure Sphere, uma coleção de scripts, utilitários e funções não mantidos.