I2C is one of the most popular buses in use for sensors. It is not particularly fast or robust, but it's simple and supported by most of the microcontrollers. It is also reasonably easy to bit-bang. The problem is, that most of the implementation examples I found online (as well as issues) are related to polling mode communications. But I wanted to do DMA and couldn't understand, why doesn't it work out of the box.