Modified I²C receiver from discrete logic
In this article, I will describe the operation of an I2C receiver built from discrete gates and components. The receiver has one register that can be read from and written to. Unlike other I2C devices, the contents of the register can be ORed or ANDed with another byte without reading and writing in separate transactions. The circuit described in this article is designed for slave devices that only accept data (for example, a motor driver) and do not return any data (for example, a temperature sensor). Modified I2C protocol Note: the protocol described in this section is not the same as the proper I2C protocol Clock signal (SCL) Unlike with true I2C, the clock signal SCL runs all the time. This provides all devices on the bus with a continuous clock signal. This allows other devices to transmit on the bus without having their own crystal or oscillator. Since the bitrate is 100kbps, but 200kHz is required for transmission, the two clock signals are mixed into one signal on one wi