2016-09-26 9 views
0
Please clarify above question that i was being asked in interview in one company. 

And How slave device will communicate to master if at the same time slave device receives request from two or multiple master? 

I2C 장치 (마스터와 슬레이브가 연결된 경우 마스터와 슬레이브 간의 데이터 전송 속도는 100kbps 일반 모드 또는 400kbps 고속 모드를 사용하기 위해 어떻게 결정됩니까?)?100kbps 또는 400kbps 속도로 작동해야하는 i2c 통신의 속도는 어떻게 결정됩니까?

+0

호스트를 읽어 최저 속도가 버스에 사용된다 (기기 연결됨). 100k에 다른 장치가 연결되어 있으면 400k를 사용할 수 없습니다. 호스트는 장치 속성 (Linux : 내장형, ACPI, 장치 트리)에 대해이 지식을 얻을 수 있습니다. – 0andriy

답변

1

소형 센서부터 모바일 카메라 (컨트롤 인터페이스, 데이터가 아닌 i2c 인터페이스))는 데이터 시트에 언급 된 지원되는 i2c 클록 속도와 함께 제공됩니다. 마찬가지로 마스터 디바이스에는 i2c max가 함께 제공됩니다. 지원되는 클럭 속도. 느린 속도 (마스터 및 슬레이브에서)는 i2c 통신 속도가됩니다.

런타임에 주파수를 감지하려는 경우 (즉, 지원되는 슬레이브 장치의 속도를 모르는 경우)는 내장 장치에 권장되지 않습니다. (대부분의 경우 핫 플러그가 아니기 때문에).

예를 들어, i2c 속도는 마스터의 경우 400kHz로 설정되고 슬레이브는 100kHz까지 지원되는 경우 문제가됩니다. 마스터는 < = 100kHz를 구성해야합니다.

슬레이브가 400kHz까지 지원하고 마스터가 100kHz로 구성되어 있지만 (400kHz를 지원할 수 있음) 문제가 없습니다. 이 경우 속도는 속도 요구 사항에 따라 결정됩니다. 더 많은 속도 (4 배속)가 필요한 경우 마스터를 400kHz로 구성하고 100kHz에서 성능에 만족하면 절전을 위해 100kHz로 구성하십시오. 이 경우 100kHz ~ 400kHz 사이의 맞춤 주파수로 마스터를 구성 할 수도 있습니다.

i2c 속도가 다른 여러 장치가 동일한 버스에서 인터페이스되는 경우 가장 낮은 속도가 속도 여야합니다. 대부분의 경우 i2c 클럭 속도 런타임을 변경하기가 어렵 기 때문에. (예를 들어 리눅스 클럭 속도 커널 및 설정 장치 트리에 의해 제공된다.) 다중 마스터와 슬레이브 통신

미리 알고 있어야 this