...
It is much slower than I2C with a maximum bitrate of 20kbps, but does support checksums and the detection of defective nodes. Isolation would most likely be between the MCU and ADC, since LIN has an operating voltage of 12V and isolation between the MCU and LIN transceiver would result in a higher power draw from the MPPT. Running at a higher voltage has the advantage of being less susceptible to noise.
Note that we also would prefer to keep the MCU on the LV side, as there are a number of downsides to putting it on the HV side.
- Need to power both sides to test LIN
- Programming requires plugging the computer into the HV side
- For safety, we will most likely need to completely remove it from the circuit
- In the case that the HV side loses power, we lose MCU comms.
Pricing
An example design for an I2C-based solar slave uses I2C differential redrivers running at 5V. This requires 6 wires, with power/ground being provided from the solar master. We can use a 4-channel unidirectional digital isolator on the differential lines, so the LV provided would be powering the isolator and the redriver and ADC would be powered from the MPPT. We could probably use an LDO since we shouldn't be drawing much current. To minimize current draw from the MPPT, we could also use a 2-channel bidirectional digital isolator for a few more dollars and place the redriver on the non-isolated side.
...
For LIN, we would probably use an STM32F030 (Cortex-M0) or STM32L011 (Cortex-M0+) and LIN transceiver. Since LIN is a 1-wire interface, we only need 3 wires. However, we may want to add 2 wires to enable auto-addressing. We could use much cheaper ADCs since we don't have the addressing requirement. We could even use an analog optoisolator with the MCU's built-in ADC, although it may be very close price-wise for a digital isolator + ADC. That needs to be investigated more. We could probably get a ~$3 digital isolator and a ~$2 8~10-bit ADC.
...