다음을 통해 공유


실시간 지원 애플리케이션에서 PWM 사용

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

이 항목에서는 RTApp(실시간 지원 애플리케이션)에서 PWM을 사용하는 방법을 설명합니다. 상위 수준 애플리케이션에서 PWM을 사용하는 방법에 대한 자세한 내용은 상위 수준 애플리케이션에서 PWM 사용을 참조하세요.

참고

Azure Sphere OS는 시작 시 주변 장치를 다시 설정하지 않습니다. 애플리케이션은 시작 시 또는 다시 시작한 후 주변 장치가 알려진 상태가 되도록 해야 합니다.

실시간 코어에서 PWM에 대한 MT3620 지원

이 섹션에서는 MT3620에서 Azure Sphere를 실행할 때만 적용되는 PWM 옵션에 대해 설명합니다.

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

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

레지스터 기본 주소, 인터럽트 번호, 클록 속도, 샘플링 빈도 및 MT3620에 대한 기타 세부 정보는 MT3620 데이터시트MT3620 M4 사용자 설명서를 참조하세요. 질문이 남아 있는 경우 을 이메일로 보내 Azure.Sphere@avnet.comAvnet에서 세부 정보를 요청할 수 있습니다.

PWM 하드웨어는 32KHz, 2MHz(XTAL/13) 또는 26MHz(XTAL)의 세 가지 클록 주파수 중 하나를 사용하도록 구성할 수 있습니다. RT(실시간) 코어에서 RTApp(실시간 애플리케이션)은 기본으로 사용할 클록을 선택할 수 있습니다. 사용자 정의 기본 주파수는 지원되지 않습니다. 그러나 애플리케이션은 선택한 기본 주파수에서 파생된 신호 주파수를 생성할 수 있습니다. 예제는 Azure Sphere 갤러리PWMAudio 샘플 appication을 참조하세요.

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

RTApp에서 PWM을 사용하려면 애플리케이션 매니페스트에 기능을 추가하고 Pwm 애플리케이션에서 사용할 PWM 컨트롤러를 지정합니다. 예를 들어 다음 줄은 MT3620 RDB(참조 개발 보드)를 대상으로 하는 RTApp에서 사용할 PWM 컨트롤러 0을 지정합니다.

"Capabilities": {
   "Pwm": [ "PWM-CONTROLLER-0" ] }

Azure Sphere 애플리케이션 매니페스트에는 애플리케이션 매니페스트 에 대한 자세한 내용이 있습니다.

PWM 샘플 애플리케이션

GitHub의 CodethinkLabs 리포지토리에는 Azure Sphere 실시간 지원 애플리케이션에서 MT3620 지원 주변 장치를 사용하는 방법을 보여 주는 여러 샘플 애플리케이션이 포함되어 있습니다. 특히 PWM_RTApp_MT3620_BareMetal 샘플은 실시간 지원 애플리케이션에 PWM 주변 장치를 통합하는 방법을 보여 줍니다.

PWMAudio 프로젝트는 실시간 코어를 사용하여 PWM(Pulse Width 변조) 오디오를 생성하는 방법을 보여 줍니다. 이 프로젝트는 매핑되지 않은 스크립트, 유틸리티 및 함수 컬렉션인 Azure Sphere 갤러리의 일부입니다.