At the electrical level, the protocol used for single-ended mode looks a lot like I²C or 1-wire with the lines being pulled normally-high. You could bit-bang this protocol or (if you need better performance) you could use the microcontroller's FLEXIO functionality. As shown in the [INLC10AQ datasheet](https://iseled.com/products.html?file=files/iseled/documents_public/DS_INLC10AQ_R06.pdf) starting from page 12, the protocol for single-ended mode is as follows: - The microcontroller holds the `SIO_N` line high to indicate single-ended mode then writes output bits to the `SIO_P` line by pulling the line low. The signal is self-clocking. This is shown on page 12 of the datasheet:<br> [![Microcontroller transmit signalling][1]][1] - When done sending the microntroller switches its IO pins to be inputs and the `SIO_P` and `SIO_N` lines are pulled high. To send a response, the peripheral chips pull the `SIO_P` line low to indicate `0` bits while at the same time providing a clock signal by pulling `SIO_N` low. This is shown on page 14:<br> [![Peripheral response signalling][2]][2] For single-ended operation the V<sub>IL,SE</sub> and V<sub>IH,SE</sub> are given on page 8 of the datasheet: [![IO voltages as shown in the datasheet][3]][3] Since the parameters are from the perspective of the peripheral chip (the INLC10AQ) they are given as input voltages, not output voltages (i.e. as V<sub>IL,SE</sub> and V<sub>IH,SE</sub> rather than V<sub>OL,SE</sub> and V<sub>OL,SE</sub>). On the microcontroller end you'll need to pull the voltage down to 1.04V or lower to send a `0` bit or pull it up to between 1.08V and 5.5V<sup>1</sup> to send a `1` bit. Likewise, the peripheral INLC10AQ will connect a line to GND to indicate a `0` or leave it pulled high to indicate a `1` (the peripheral never actively pulls a line high; it goes high-impedance to indicate a `1`). The datasheet doesn't recommend a particular value for the pull-up resistors<sup>2</sup> but 4.7kΩ would be a good starting point. In a nutshell, the INLC10AQ uses a proprietary communications protocol whose electrical characteristics are described above. The low and high input and output voltages are the same as those used by the microcontroller. Typically these voltages are 0V for a `0` and 5V for a `1` though a lower signalling voltage (e.g. 3.3V or 1.8V) can be used for the latter. <sup>1</sup> The datasheet lists 5.5V as the maximum recommended high voltage (`VCC5`); 7V is the absolute maximum. <sup>2</sup> There should be two pull-up resistors: one between `SIO_P` and the microcontroller's `VDD` line and the other between `SIO_N` and `VDD`. [1]: https://i.sstatic.net/fVZXR.png [2]: https://i.sstatic.net/58fWe.png [3]: https://i.sstatic.net/ZX1iY.png