실시간 지원 애플리케이션에서 GPIO 사용
Azure Sphere는 GPIO(범용 입력/출력)를 지원합니다. GPIO는 통합 회로의 프로그래밍 가능한 디지털 핀 유형입니다. GPIO에는 미리 정의된 기능이 없으며 애플리케이션에서 해당 동작을 사용자 지정할 수 있습니다. GPI에 대한 몇 가지 일반적인 용도는 하드웨어 디바이스의 상태를 변경하고 LED를 제어하며 스위치 상태를 읽는 것입니다.
이 항목에서는 RTApp(실시간 지원 애플리케이션)에서 GPIO를 사용하는 방법을 설명합니다. 상위 수준 애플리케이션에서 GPIO를 사용하는 방법에 대한 자세한 내용은 상위 수준 애플리케이션에서 GPIO 사용을 참조하세요.
RTApp은 Azure Sphere 디바이스에서 GPI를 사용할 수 있습니다. GPIO에 대해 지원되는 작업은 다음과 같습니다.
- 읽기 입력
- 출력을 높음 또는 낮음으로 설정
- 소프트웨어 인터럽트 폴링
참고
Azure Sphere OS는 시작 시 주변 장치를 다시 설정하지 않습니다. 애플리케이션은 시작 시 및 다시 시작한 후 주변 장치가 알려진 상태가 되도록 해야 합니다.
실시간 코어에서 GPI에 대한 MT3620 지원
MT3620에서는 대부분의 GPIO가 GPIO 0부터 시작하여 4개 블록의 실시간 코어에 매핑됩니다. 그러나 ISU 블록 0 - 4에는 5개의 GPIO가 있습니다. 따라서 상위 수준 애플리케이션(또는 다른 RTApp)이 동일한 블록에서 GPIO를 요청하는 경우 RTApp GPIO 요청이 실패할 수 있습니다. 예를 들어 상위 수준 앱이 GPIO 8을 요청하고 RTApp이 GPIO 9를 요청하는 경우 두 번째 앱은 배포 시 오류를 반환합니다.
MT3620 RDB의 각 LED는 빨간색, 녹색 및 파란색 채널에 대해 각각 하나씩 세 가지 GPIO에 매핑됩니다.
레지스터 기본 주소, 인터럽트 번호, 클록 속도, 샘플링 빈도 및 MT3620에 대한 기타 세부 정보는 MT3620 데이터시트 및 MT3620 M4 사용자 설명서를 참조하세요. 질문이 남아 있는 경우 을 이메일로 보내 Azure.Sphere@avnet.comAvnet에서 세부 정보를 요청할 수 있습니다.
GPIO 요구 사항
애플리케이션 코드에는 GPIO 및 해당 레지스터를 식별하는 방법이 필요합니다. 제조업체의 하드웨어 설명서에서 레지스터 기본 주소를 찾을 수 있습니다. RTApp에서 GPIO를 사용하려면 먼저 사용할 블록을 초기화해야 합니다. 초기화는 앱에서 사용하는 각 블록에 대해 한 번만 필요합니다.
MT3620에 대한 자세한 내용은 실시간 코어에서 GPI에 대한 MT3620 지원을 참조하세요.
애플리케이션 매니페스트 설정
GPIO를 사용하려면 RTApp이 애플리케이션 매니페스트의 기능 섹션에 나열해야 합니다. 대상 하드웨어의 JSON 파일에 정의된 "AppManifestValue"를 사용하여 GPIO를 식별합니다. 예를 들어 다음 줄은 GPIO 8 및 12를 예약합니다.
"Capabilities": {
"Gpio": [ 8, 12 ]
}
GPIO 샘플 애플리케이션
GPIO 샘플은 RTApp에서 GPIO를 사용하는 방법을 보여 줍니다. README 파일은 세부 정보 및 지침을 제공합니다.