I2C 통신속도 계산
C언어,ARM / 2020. 1. 11. 22:36
i2c통신으로 데이터를 32바이트씩, 64kbyte 읽으니, 약 11초가 걸린다.(GPIO방식)
저항은 10k옴(속도 100kHz)
32바이트를 읽기위해서는, 1+9+9+9+1+9+9*32+1=327bit가 필요.
32:327=64*1024:x
x=(327*64*1024)/32
=669696비트/11초
=약 60kHz/초
(327*64*1024)/32바이트/7초=95670.857143
약 7초가 나와야, 100kHz속도인데, 60%밖에 안나오고 있다.
i2c소스에서 불필요한 딜레이를 모두 제거후,
6.76초가 나왔다.
(327*64*1024)/32/6.76=99067.455621
100kHz에 99% 성능이다.
저항값은 약 5%오차가 있어, 실제로는 95%성능이 나올 수 도 있다.
이부분도 고려해야한다.
따라서 90%성능의 값을 사용하는것이 좋을듯 하다.
'C언어,ARM' 카테고리의 다른 글
error C2059: syntax error : 'bad suffix on number' (0) | 2020.01.11 |
---|---|
while(len--)의 함정 (0) | 2020.01.11 |
error C2085: 'xxx' : not in formal parameter list (0) | 2020.01.11 |
CreateFont/CreateFontIndirect 고정폭 폰트, 폰트색상 이상한 문제 (0) | 2020.01.11 |
include/stdint.h:126:22: error: duplicate 'unsigned' (0) | 2020.01.11 |