A couple of shitposts on my timeline about the link protocol used by TI calculators reminded me about an oddity of it that I haven't seen elsewhere:
It's a two-wire (red, white, GND) open-drain interface. One might assume, that one wire's clock and the other one is data or that one's RX and the other one is TX. However, it's none of that:
🧵 (1/2)
@karotte That's brilliant. I'd never thought of anything like that. So you transmit bits as fast as the receiver can soak them up.
In that form it's half-duplex and point to point, but I guess you could adapt it to be a master-slave bus protocol just by preceding the data stream with an address sent in a more normal SPI sort of way, probably at some kind of low speed like 400kHz? You'd need some kind of framing so the receiver knew when to stop acking.