Tool/software: Code Composer Studio
Hello?
I want to read and write to memory using I2C master mode.
In 28377S datasheet, the period of the master clock 'T' is (IPSC+1)[(ICCL+d)+(ICCH+d)] / I2C input clock frequency.
When input clock freq. is 200 MHz, I think...
for Normal mode, IPSC = 19(d = 5), ICCL = 45, ICCH = 45 ;
so, T = (19+1)[(45+5)+(45+5)] / 200,000,000 = 0.00001 sec (100 kHz, Module clock is 10 MHz).
for Fast mode, IPSC = 19(d = 5), ICCL = 8, ICCH = 7 ;
so, T = (19+1)[(8+5)+(7+5)] / 200,000,000 = 0.0000025 sec (400 kHz, Module clock is 10 MHz, 48 % duty ratio).
for Fast Plus mode, IPSC = 19(d = 5), ICCL = 0, ICCH = 0 ;
so, T = (19+1)[(0+5)+(0+5)] / 200,000,000 = 0.000001 sec (1 MHz, Module clock is 10 MHz).
But for High-speed mode,
if IPSC = 5(d = 5), ICCL = 0, ICCH = 0 ;
so, T = (5+1)[(0+5)+(0+5)] / 200,000,000 = 0.0000003 sec (3.333333 MHz, Module clock is 33.333333 MHz, 50 % duty ratio(actually can't use)) or
if IPSC = 2(d = 5), ICCL = n, ICCH = 10-n ;
so, T = (2+1)[(n+5)+(10-n+5)] / 200,000,000 = 0.0000003 sec (3.333333 MHz, Module clock is 66.666666 MHz, adjustable duty ratio).
Q1) If master clock is 3.333333 MHz, is it working good at high-speed mode(3.4 MHz)?
Q2) If module clock is over 12 MHz, isn't it problem?
(In datasheet, NOTE : To meet all of the I2C protocol timing specifications, the module clock must be configured between 7 - 12 MHz.)
Please reply.
Thank you.