다음을 통해 공유


고급 애플리케이션에서 PWM 사용

Important

Azure Sphere(레거시) 설명서입니다. Azure Sphere(레거시)는 2027년 9월 27일에 사용 중지되며 사용자는 이 시간까지 Azure Sphere(통합)로 마이그레이션해야 합니다. TOC 위에 있는 버전 선택기를 사용하여 Azure Sphere(통합) 설명서를 볼 수 있습니다.

이 항목에서는 Azure Sphere 상위 수준 애플리케이션에서 사용하기 위해 PWM(디바이스 펄스 너비 변조기)에 액세스하는 방법을 설명합니다.

펄스 너비 변조는 펄스 디지털 신호의 의무 주기(시간에서 쉬는 시간의 비율)를 변경하여 달성됩니다. 펄스 너비 변조기는 디지털 모터 제어, 통신 및 디지털-아날로그 변환과 같은 광범위한 애플리케이션에서 사용됩니다.

Azure Sphere 애플리케이션에서 PWM을 사용하려면 필요한 헤더 파일 및 Pwm 기능을 포함하고 애플리케이션이 액세스할 PWM 채널에 대한 컨트롤러를 지정해야 합니다.

PWM_HighLevelApp 샘플에서는 MT3620 디바이스의 간단한 디지털-아날로그 변환 애플리케이션에서 PWM을 사용하는 방법을 보여 줍니다.

PWM 요구 사항

PWM을 사용하는 애플리케이션은 적절한 헤더 파일을 포함하고 애플리케이션 매니페스트PWM 설정을 추가해야 합니다.

모든 애플리케이션은 대상 하드웨어를 설정하고 해당 하드웨어 정의 헤더 파일을 포함해야 합니다.

Header Files

 #include <applibs/pwm.h>
 #include "path-to-your-target-hardware.h"

"path-to-your-target-hardware.h"를 하드웨어의 헤더 파일 경로로 바꿉니다.

애플리케이션 매니페스트 설정

애플리케이션 매니페스트의 PWM 설정에는 애플리케이션에서 액세스하는 PWM 컨트롤러가 나열됩니다. 이러한 설정을 구성하려면 애플리케이션 매니페스트에 기능을 추가 Pwm 한 다음 각 PWM 컨트롤러를 기능에 추가합니다. Azure Sphere 애플리케이션 매니페스트 에는 자세한 내용이 있습니다.

코드에서 하드웨어에 대해 정의된 상수로 PWM 컨트롤러를 식별합니다. 컴파일러는 앱을 빌드할 때 이러한 값을 원시 값으로 변환합니다.

예를 들어 다음은 MT3620 RDB(참조 개발 보드)를 대상으로 하는 애플리케이션에 대한 애플리케이션 매니페스트에서 발췌한 내용입니다.

 "Pwm": [ "$MT3620_RDB_LED_PWM_CONTROLLER2" ]

다음 발췌문에서는 Avnet MT3620 시작 키트를 대상으로 하는 애플리케이션에서 동일한 PWM 컨트롤러를 지정하는 방법을 보여 줍니다.

  "Pwm": [ "$AVNET_MT3620_SK_PWM_CONTROLLER2" ]

PWM 액세스

Azure Sphere 상위 수준 애플리케이션은 Applibs PWM API를 호출하여 PWM에 액세스할 수 있습니다.

PWM 컨트롤러 열기

액세스할 PWM 컨트롤러를 열려면 PWM_Open을 호출하고 열려는 컨트롤러의 ID를 매개 변수로 전달합니다. 호출이 성공하면 파일 설명자가 반환됩니다. 그렇지 않으면 -1이 반환됩니다.

PWM 채널의 상태 설정

PWM 채널의 상태를 설정하거나 업데이트하려면 PWM_Apply를 호출합니다. 다음 매개 변수를 PWM_Apply에 전달합니다.

  • PWM_Open 반환된 파일 설명자

  • 업데이트할 PWM 채널입니다. 이 값은 플랫폼에 따라 다릅니다.

  • 채널에 적용할 기간, 의무 주기 및 극성

  • 채널을 사용하거나 사용하지 않도록 설정할지 여부

참고 항목

기간 및 의무 주기에 대한 최소 및 최대 제한은 디바이스에 따라 다릅니다. 예를 들어 MT3620 상위 수준 코어에서 PWM은 16비트 켜기/끄기 비교 레지스터를 사용하여 2MHz의 고정 기본 주파수로 실행됩니다. 이 경우 500ns의 충격 계수 해상도와 약 32.77ms의 최대 유효 기간이 적용됩니다. 자세한 내용은 특정 디바이스의 데이터 시트를 참조하세요.

MT3620 지원

MT3620에 지원되는 PWM 기능은 MT3620 지원 상태에 나열됩니다. MT3620 개발 보드 사용자 가이드에서는 핀 레이아웃 및 핀 함수에 대해 설명합니다.

MT3620에는 PWM 채널 12개, PWM0 - PWM11이 있습니다. 4개 채널의 3개 그룹으로 구성됩니다. 각 그룹은 PWM 컨트롤러(PWM-CONTROLLER-0, PWM-CONTROLLER-1, PWM-CONTROLLER-2)와 연결됩니다. PWM 채널 및 GPIO 핀 GPIO0 통해 GPIO11 MT3260에서 동일한 핀에 매핑 합니다. 애플리케이션에서 PWM 컨트롤러를 사용하는 경우 해당 컨트롤러와 연결된 모든 핀이 PWM 출력으로 사용하도록 할당됩니다. 다른 주변 장치 유형에는 사용할 수 없습니다.