the TWI-Clock of my BF537 has a very bad rise time of over 600 ns without any load. Is that normal? GPIO-Pins like port F do not have this problem.
The timing behaviour always depends on your load !.
So take a look at the I2C spec - in section 7.2(pg55) there are useful steps to calc the pullup resistors.
so take care on this , and avoid wrong sizing or to big capac.load. this alyway limits your max.speed on the twi bus !
A rise time of 600ns seems excessive to me, but may still work depending on what your bit rate is. You may want to check the pull-up resistor value you have on the line, as I believe the TWI lines on the bf537 are open drain outputs.
Hi, thanks for the answer! With smaller pull-ups, the rise time is now normal.
But we have another problem: The frequency depends on the load. Without load, we have e.g. 400 kHz and with 200 pF load the frequency is 350 kHz. Why?
Frequ. allways depends on the load, so the I2C/TWI specification shows in 7.1 (page55) Pull-up resistor sizing which factors take influence on your rise/fall times and therefore the max. frequency.
This section in the documentation is very useful to calc the relevant values.
"Without load, we have e.g. 400 kHz and with 200 pF load the frequency is 350 kHz." - Are you saying that you can successfully communicate on the I2C interface with a light load at 400KHz rate, and only at 350 kHz when the bus is loaded down to 200pF?
As Chris suggested, the I2C spec should provide insights on signal integrity vs load vs pull-up. So is the pull up resistors that you are using valid for a 200pf load? Is your failure at 400KHz specific to communicating with one particular device on the bus - if so, can that particular device really drive a 200pf load with the pull-up value that is attached?
Apologies for the delay in response. Chris and Frank are correct. The pull up register decides the rise and fall time which influences max frequency of operation.
Retrieving data ...