다음을 통해 공유


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

Azure Sphere는 master 모드에서 Inter-Integrated 회로(I2C)를 지원합니다. I2C는 저속 주변 장치를 마이크로 컨트롤러에 연결하는 직렬 버스입니다. I2C는 master 디바이스가 하위 디바이스 집합을 제어하는 다중 master/다중 하위 모델을 사용합니다. I2C는 컨트롤, 전원 스위치 및 센서 설정과 같은 마이크로 컨트롤러와의 간단한 경량 통신만 필요한 주변 장치와 함께 사용되는 경우가 많습니다.

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

참고

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

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

MT3620 칩에 대한 I2C 사양은 MT3620 지원 상태에 나열됩니다. MT3620 개발 보드 사용자 가이드에서는 배선에 대한 핀 레이아웃 및 기능을 설명합니다.

MT3620 개발 보드를 구성할 때 모든 ISU 블록을 I2C master 인터페이스로 사용할 수 있습니다. ISU 블록을 I2C master 인터페이스로 사용하는 경우 SPI 또는 UART 인터페이스와 동일한 블록을 사용할 수 없습니다.

MT3620에서는 10비트 하위 디바이스 주소가 지원되지 않습니다. 7비트 주소만 지원됩니다. MT3620은 100KHz, 400KHz 및 1MHz 버스 속도를 지원하지만 3.4Mhz는 지원하지 않습니다. MT3620에서는 0 바이트 I2C 읽기가 지원되지 않습니다.

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

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

I2C를 사용하려면 RTApp이 애플리케이션 매니페스트의 기능 섹션에 나열해야 합니다. 예를 들어 다음 줄은 MT3620 칩의 ISU0에 I2C master 인터페이스를 예약합니다.

"Capabilities": {
   "I2cMaster": [ "ISU0" ] }

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

I2C 샘플 애플리케이션

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