마이크로칩스 사의 24C02의 타이밍도가 위와 같이 되어 있다.
그리고 타이밍도 설명에서 SCL(Serial clock)에 대한 관련 시간은
와 같이 설명되어 있다.
메가윈 IC 중 M3 코어를 이용해서 I2C를 설정할 때 해당 부분의 값을 계산하면
96MHz 클럭일 때 1 클럭 주기는 0.0104167us임.
I2C2->SS_SCL_HCNT = 373;
/* tHIGH = (373 + FS_SPKLEN + 7) / 96MHz = 4us */ // 4 = 0.0104167 * (373+4+7)
I2C2->SS_SCL_LCNT = 451;
/* tLOW = (451 + 1) / 96MHz = 4.708us */ // 4.708 = 0.0104167 * (451+1)
I2C2->FS_SPKLEN = 4;
/* tSP = 4 / 96MHz = 41.67ns */ // SPIKE TIME = 50ns , 4.8 ==> 5
I2C2->SDA_SETUP = 24;
/* tSU;DAT = 24 / 96MHz = 250ns */ // SETUP Time >= 250ns , 23.99 ==> 24
I2C2->SDA_HOLD = 29;
/* tHD;DAT = 29 / 96MHz = 302.08ns */ // TIMEhold >= 300ns , 28.799 ==> 29
와 같은 값이 계산 된다.
'임베디드' 카테고리의 다른 글
Atmel M90E32AS Study (0) | 2023.06.19 |
---|---|
ADS131M02 SPI Communication words (0) | 2023.06.19 |
시리얼 통신 모니터링 (0) | 2023.01.18 |
FreeRTOS - 3 (0) | 2023.01.03 |
FreeRTOS - 2 (0) | 2023.01.02 |