This post is older than 2 years and might not be relevant anymore
More Info: Consider searching for newer posts

TWIS operation on 20 Khz frequency?

Hello everyone, 

The I2C spec minimum is about 100kHz however the device I am communicating with is using a clock of 20kHz. And there is no way to speed up this device. As per documents TWIS the minimum clock frequency is 100 Khz,

But i have to communicate with 20 Khz master. So is there any way by which i can enable NRF52832 TWIS to communicate with 20 Kz clock. I have heard something  about stretching technique. So, There are situations where an I2C slave is not able to co-operate with the clock speed given by the master and needs to slow down a little. How can i implement this? It would be great help if anyone can guide me.

Thanks & Regards,

Pradeep

  • Clock-stretching is used to synchronize devices, f.ex. if the slave requires more time to set-up buffers, etc. The frequency of the bus is unchanged, but an arbitrary length delay is added. 

  • Hi haakonsh,

    May you please suggest me, what are the available method, which can enable NRF52832 TWIS to communicate with 20 Khz?.  

    If clock-stretching is the solution, how can i implement this to receive the data.

  • The nrf52832 does not support 20kHz TWI. 

  • I am using nrf52832 as a slave, so using TWIS not TWI, There is a i2c master with SCL at 20 Khz clock frequency. So nrf52832 TWIS has to communicate with the i2c master and exchange the data. So can TWIS communicate with 20 Khz clock. Is there any technique method available?

  • I once bit-banged I2C on a nRF52832, it might be your only option. In my case I just did it for debugging since the nRF52832 violated the timing specs for the accelerometer, it turned out (after x-ray scanning) that the accelerometer that I was trying to communicate with was just an empty capsule without any silicon in it, I had been scammed! Not very strange that it didn't work :D 

1 2