2018년 5월 18일 금요일

I2C 통신 속도 분석

목적: Chip 의 Register에 적혀있는 I2C 의 속도 설명을 이해한다.

Datasheet 내용
I2C Master SCL High Time This field configures the high pulse width of the SCL output when the Serializer is the Master on the local I2C bus.
Units are 40 ns for the nominal oscillator clock frequency. The default value is set to provide a minimum 5us SCL high time with the reference clock at 25 MHz + 100ppm.
The delay includes 5 additional oscillator clock periods. Min_delay = 39.996ns * (SCL_HIGH_TIME + 5

분석
1. SCL High Time 이 8bit, SCL Low Time 이 8bit 로 Register에 적혀 있다.
    - I2C 통신에 사용되는 Clock의 신호가 High 로 유지되는 시간과 Low로 유지되는 시간을 설명해주는 내용이다.
2. 두 Register의 기본값은 0x79, 0x79로 동일하다.
3. Units are 40ns for the norminal oscillator clock frequency.
    - 하나의 단위는(여기서 SCL의 High 가 한번 유지되는 시간이나 Low가 유지되는 시간) 40ns 이다. 기본값(여기서는 0x79)는 SCL High나 Low 유지되는 시간의 최소값인 5us 를 만족하기 위해서 입력되어 있다.
    - 여기서는 reference clock이 25MHz 라고 되어 있는데 이 clock은 PCLK 과 동일한 것인지
    - clock 이 25MHz 라면 frequency 는 40ns
    - 계산 식으로는 Min-delay = 39.996ns * (SCL_HIGH_TIME + 5) 일때 'SCL_HIGH_TIME' 를 0x79(121) 로 변환하면 39.996ns * (121 + 5) = 5039.496ns 가 된다. 이는 약 5um 으로서 최소값 5um 를 만족 한다.
    - SCL High Time이 5.039496um 이고 SCL Low Time이 5.039496um 라는 것은 하나의 cycle이 10.07899um 라는 것으로 99,216.27083 이라는 숫자가 나오며 99.2162783 KHz로 계산된다.
    - 최종적으로 reference clock 이 25MHz 의 clock 이라면 0x79 를 기본 값으로 하는 I2C SCL High, I2C SCL Low 값은 약 100KHz 의 I2C Clock Frequency 를 의미한다.
4. 그러면 여기서 100ppm 은 무엇인가
5. remote delay



댓글 없음:

댓글 쓰기