Hi,
MSP430 user's guide has the following formula for I2C SCL:
I think this formula has no margin. Is it the correct formula?
For example if I want to use I2C at 400kHz, the minimum values for tLOW and tHIGH are:
- UCBRx:60
- fBRCLK:24,000,000(24MHz)
- I2C Master
tLow,MIN = tHIGH,MIN = (UCBRx/2)/fBRCLK
= 60 / 2 / 24000000
= 1.25 usec
This result is equal to one half cycle of SCL at 400kHz. In other words, when SCL is not 50% duty, or when the rising edge of the waveform is slightly delayed, the minimum values of tLOW and tHIGH are exceeded.
So unless SCL is 50% duty and the waveform ideally rises at 0 seconds, the minimum values of tLOW and tHIGH will be exceeded.
Best regards,
Sasaki