Running Bus at Low Speed- I2C bit banging

i2c

I am implementing I2C using Bit bang. The slave can accept maximum baud rate of 400kbps. Iam not using external pull up, which is required because of which the fall/rise are not accordingly. I read somewhere fall/rise time can corrected by using external pull up or by running bus at very low speed. Can someone please tell what does running the bus slow means.
Please guide me on this.

Thanks

Best Answer

Measure the rise time of your SCL and SDA signals with an oscilloscope.

Then "slow" means slow enough for SCL and SDA to achieve legal logic levels after you release them.

Be aware that if this results in extremely slow transactions, some devices might fail due to time-out behavior.