Använda PWM:er i realtidskompatibla program
Viktigt!
Det här är dokumentationen om Azure Sphere (Legacy). Azure Sphere (Legacy) upphör den 27 september 2027 och användarna måste migrera till Azure Sphere (integrerad) vid den här tiden. Använd versionsväljaren ovanför TOC för att visa dokumentationen om Azure Sphere (integrerad).
Azure Sphere har stöd för pulsbreddsmodulering. Pulsbreddsmodulering uppnås genom att variera tjänstcykeln (förhållandet mellan tid och ledig tid) för en pulsad digital signal. Modulatorer med pulsbredd (PWM) används i en mängd olika program, till exempel digital motorstyrning, kommunikation och digital-till-analog-konvertering.
Det här avsnittet beskriver hur du använder PWM:er i realtidskompatibla program (RTApp). Information om hur du använder PWM i högnivåprogram finns i Använda PWM i högnivåprogram.
Kommentar
Azure Sphere OS återställer inte kringutrustning vid start. Dina program bör se till att kringutrustningen är i ett känt bra tillstånd vid start eller efter omstart.
MT3620-stöd för PWM i realtidskärnor
I det här avsnittet beskrivs DE PWM-alternativ som endast gäller när du kör Azure Sphere på MT3620.
DE PWM-funktioner som MT3620 stöder visas i MT3620-supportstatus. Användarhandboken för MT3620-utvecklingskortet beskriver pin-layouten och pin-funktionerna.
MT3620 har 12 PWM-kanaler, identifierade av PWM0-PWM11. De är ordnade i 3 grupper med 4 kanaler. Varje grupp är associerad med en PWM-styrenhet (PWM-CONTROLLER-0, PWM-CONTROLLER-1, PWM-CONTROLLER-2). PWM-kanalerna och GPIO fäster GPIO0 via GPIO11-kartan på samma stift på MT3620. Om ditt program använder en PWM-styrenhet allokeras alla pins som är associerade med styrenheten för användning som PWM-utdata. Ingen av dem kan användas för GPIO.
För registerbasadresser, avbrottsnummer, klockfrekvens, samplingsfrekvens och annan information om MT3620, se MT3620-databladet och användarhandboken för MT3620 M4. Om frågor kvarstår kan du begära information från Avnet via e-postAzure.Sphere@avnet.com.
PWM-maskinvaran kan konfigureras för att använda en av tre klockfrekvenser: 32 KHz, 2 MHz (XTAL/13) eller 26 MHz (XTAL). I realtidskärnorna (RT) kan ett realtidsprogram (RTApp) välja vilken klocka som ska användas som bas. Användardefinierade basfrekvenser stöds inte. Ditt program kan dock generera signalfrekvenser som härleds från den valda basfrekvensen. Ett exempel finns i PWMAudio-exempelappicationen i Azure Sphere-galleriet.
Inställningar för programmanifest
Om du vill använda en PWM i en RTApp lägger du till Pwm
funktionen i programmanifestet och anger de PWM-styrenheter som ska användas i programmet. Följande rad anger till exempel PWM-styrenhet 0 för användning i en RTApp som riktar sig till MT3620-referensutvecklingskortet (RDB):
"Capabilities": {
"Pwm": [ "PWM-CONTROLLER-0" ] }
Azure Sphere-programmanifestet innehåller mer information om programmanifestet.
PWM-exempelprogrammen
CodethinkLabs-lagringsplatsen på GitHub innehåller ett antal exempelprogram som visar hur du använder kringutrustning som stöds av MT3620 i Azure Sphere-realtidskompatibla program. Mer specifikt visar PWM_RTApp_MT3620_BareMetal exempel hur du införlivar en PWM-kringutrustning i ett realtidskompatibelt program.
PWMAudio-projektet visar hur du använder realtidskärnor för att generera PWM-ljud (Pulse Width Modulation). Det här projektet är en del av Azure Sphere-galleriet, en samling oavsiktliga skript, verktyg och funktioner.