Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

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.

ComponentPrice

Differential Redriver

PCA9600D,112

$4.47

I2C Isolator

SI8602AC-B-IS

$4.27

2/2 Isolator (Differential I2C)

SI8642AB-B-IS1

$2.44

18-bit (overkill) I2C ADC - 8 addresses

MCP3423-E/UN

$4.67
Estimated total cost (+ LDO, resistors, caps)$15~20

For LIN, we would probably use an STM32F030 STM32F031 (Cortex-M0) or STM32L011 STM32L031 (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.

ComponentPrice
STM32F030F4P6
STM32F031F6P6
$1
$2.
96
60
STM32L011F3P6
STM32L031F6P6
$2
$2.
14
95

LIN Transceiver

MLX80020KDC-BAA-000-SP

$1.10

Optoisolator (use the MCU's built-in ADC)

HCNR200-000E

$5.36
Estimated total cost (+ LDO, resistor, caps)$10~15

LIN Slave

If we go with LIN, I propose a low-cost variant of the controller board that uses an STM32L0 + LIN transceiver as its core. Since this should be a low-power system, an LDO is probably fine and saves money. These slaves should be designed to daisy-chain, so we can use 2 6-pin DuraCliks (12V, ground, LIN, IO1/IO2 for auto-addressing, optional alert). Instead of a high-density mezzanine connector, we can use standard 0.1" programming headers since we'll probably only have 10 or so GPIOs. The target price should be less than $10 each since we don't need a crystal or dc-dc. A good chunk of the cost will likely be the connectors.