I found the data sheet online…
Basically these chips give a direct connection to the MCU. In your case the Uno. Looks like you can connect all 4 lines directly to IO lines on the Uno.
The battery in takes +12 volts and needs a diode in series to protect against battery spikes.
The LOAD connection needs a resistor between it and the databus connection of 10.6k. This prevents destruction of the chip in the case of the ground being disconnected.
It also needs a 470picofarad capacitor going to ground off the databus line.
This data can be used with the hardware of the M2 so I am posting this here. It describes in short what we really want to know.
Receiver Protocol
The Class B communication scheme uses a variable pulse
width (VPW) protocol. The microcontroller provides the VPW
decoding function. Once the receiver detects a transition on Rx,
it starts an internal counter. The initial “start of frame” bit is a
logic [1] and lasts 200μs. For subsequent bits, if there is a bus
transition before 96μs, one logic state is inferred. If there is a
bus transition after 96μs, the other logic state is inferred. The
“end of data” bit is a logic [0] and lasts 200μs. If there is no
activity on the bus for 280μs to 320μs following a broadcast
message, multiple unit nodes may arbitrate for control of the
next message. During an arbitration, after the “start of frame”
bit has been transmitted, the secondary node transmitting the
most consecutive logic [0] bits will be granted sole
transmission access to the bus for that message.
Editing this message as I understand better how it is working…
Should be simple to write a library to work with either the chip or the M2.
The only difference I see at this stage is that the chip does wave forming for you. Zero trigger is actually anything below 20% of signal. High trigger is anything bigger than 80%. Not sure from the output what the chip actually returns. I am assuming it is returning the microseconds between changes?
So to mimic this the M2 would have to read the signal, start the timer at anything above 80% and stop it at anything below 20%. (This amount allows for differences in the voltages of devices in the bus if I understand properly.)
I am assuming the chip, based on the information given sends out a wave form that is slightly rounded off. Not sure without checking but not sure if the Due will be sending out a square wave or more of a rounded off wave. It appears to be necessary to be curved to pick up the trigger points. When I get my lab working I can probably do some testing to see for sure how it is handled.
So theoretically it should be possible to build a library with only minor changes to the code to support either this chip or the M2.