Charger Interface Board

Charger Interface Board

Status

Schematic

Owner

@Shuopu Wang

Approver

@Ravi Shah @Jacob Guidry

Due date

Oct 13, 2025

GitHub

BOM

 

Due Dates:

  • Schematic - 9/27/25

  • Layout - 10/4/25

  • Rev. A Ordered - 10/13/25

  • Firmware/Testing - 11/1/25

Description/Purpose

  • We are using the Elcon HK-MF-108-32 charger to quickly charge the car’s main battery pack during drive/test days. This interface board handles CAN communication between the battery and charger, along with powering the BPS and displaying telemetry data.

Requirements

  • Boost converter (12->24v) for low voltage output of the Elcon charger to power the BPS. Should have power protection (reverse polarity, overvoltage, overcurrent, etc.) on both the input and output side of converter. And a fuse cause lakslay :D

  • Uses a LeaderSOM for MCU and CAN circuitry

  • 2 CAN buses - CarCAN and Elcon, to separate the charger bus from the BPS (LSOM has 2 buses you can use)

  • Display to view BPS and charger telemetry (voltage, charge current, SoC)

  • Send/receive all charger CAN messages as defined in Elcon protocol

  • Display voltage of highest/lowest module, Elcon current reading, BPS current reading, avg pack temp, highest module temp, any faults. Ideally easy to see in sunlight.

  • LED indicators for high-voltage active, fault, etc. Buzzer/sound indication for when charging is complete or something is blowing up…

  • E-stop button to halt charging and trip BPS when pressed

Application Note

image-20250920-055242.png
image-20250920-055412.png

 

Context

Location of the board:

Display P/N: NHD-C12832A1Z-FSB-FBW-3V3

Board Mount LEDs (P/N):

  • HV = toggle HV active status

  • Fault = fault indicator

  • Heart = power indicator for 14V

  • Charge = toggle charging activity status

  • EVSE = EVSE detected + pilot ready

Connection List

#

Name

Type

Ideal Voltage

#

Name

Type

Ideal Voltage

J1

 

 

 

J2

 

 

 

J3

 

 

 

J4

 

 

 

J5

 

 

 

Main

Schematics

Overall Schematic:

14V-24V Boost Converter:

RPP/OV:

SPI Display:

SPI Display.png

LEDs:

EVSE:

Layout

Github link: Github

Image:

PCB:

3D Model:

Firmware

Drivers

High-Level (Block Diagram)

RevB Test Plan:

Power:

  • 14V RPP/OV test @ 1mA

    • OV theoretical threshold: 14.9V

      • Test: 12V → 15V, by increment of 0.5V

        • OV max 14.9V

        • Reset value: 13.7V

    • RPP test (only works without diode)

    • Connect 0 ohm jumper to boost converter if circuit doesn’t work (naur)

  • 14V-24V Boost Converter

    • Undervoltage test: decrement from 14V to 3V by increments of 0.5V

      • Undervolt value: 8.8V

  • 24V RPP/OV test @ 1mA

    • OV theoretical threshold: 29.5V

      • Test: 24V → 29.5 by increment of 0.5V

        • OV max: 29.4V

        • Reset value: 27.4V

    • RPP Test (only works without diode)

  • LSOM Power:

    • Consistent 24V and 3V3

Peipherals:

  • EVSE (hold off)

    • CP:

      • State A = no EVSE connection (12V)

      • State C = ready to charge (3V)

      • Connection test: MCU voltage reading should be between these two values depending on connection

    • PP:

      • MCU Voltage reading based on cable resistance rating

  • Buzzer:

    • Turn On/Off

      • Buzzer defaults to off upon init and MCU reset

      • audible tone present

    • Custom/switching tone test

      • confirm frequency and duty at PWM pin output

  • EStop:

    • GPIO logic transition ✅

      • Reads CAN messages → halts charging and trips BPS → Overwrites all output

  • LED Indicators:

    • LEDs off at reset ✅

      • HV: high voltage active

      • FAULT: flash for fault indicator

      • HEART: flash when board is active

      • CHARGE: flash when charging is commencing

      • EVSE: charger detected and CP ready

    • Correct brightness, no flickering ✅

      • Measure output voltage and LED illumination

    • Power LEDs: ✅

      • consistent brightness

  • SPI LCD Display

    • Initialize displays: ✅

      • Scope MOSI, MISO, SCK, CS, and RES pins for clean SPI waveforms

      • Correct SPI mode set

      • Display text

    • Display power/backlight able to be turned on/off ✅

    • Consistent power to the display ✅

    • Correct words/display rendering ✅

  • CAN

    • Proper termination/bus voltage

    • RX/TX confirmed

      • CarCAN

      • ElconCAN

    • Fault tests:

      • CAN fault tests

      • Disconnection, shorts, power cycles

    • CAN + PWM + SPI running at the same time for EMI/noise

RevA Testing Process/Reflections:

Schematic Design Feedback:

  • ✅ = implemented changes to RevB

  • RPP wont work since the inverse current flowing through the Z1 and Z2 diode, creating another a current path, shorting the circuit ✅

    • Remove Z1 and Z2 diode on v2 of board or change to bidirectional TVS diode

  • Overvoltage protection will work ✅

    • As long as power <1 Watt

  • Diode needs to be WAY above the OV threshold ✅

    • Fuse Voltage threshold for 24V circuit: 31.50V

    • Overvoltage setting on IC: 29.5V

    • Fuse Voltage threshold for 12V circuit: 15.75V

    • Overvoltage setting on IC: 14.91V

  • Add test points for every single IC pin, that way I can bridge stuff together and for easier testing ✅

    • Esp the BOOST CONVERTER FAHHHH FUHHH

  • VCAP to VS voltage must be greater than the undervoltage lockout voltage (6.5V) for the RPP/OV IC to turn on ❌

    • Only applies to 12V RPP/OV circuit

    • MOSFET never fully powered on in the 12V RPP circuit

  • Add throughole test points to solder wires and test at the same time, easier to isolate the circuit ✅

  • Add a 12V input test point after the 12V RPP/OV circuit to manually input 12V to test 24V output easier ✅

  • Add 24V input Test points as well ✅

Design Changes for RevB:

  • ✅ = implemented for RevB

  • ADD:

    • Proximity Pilot (PP) Pin Control Pilot (CP) Pin ✅

      • Connector to tie board gnd to earth (entire car GND)

    • Status LEDs to mount onto the faceplate ✅

      • Constraints:

      • LED Hole Diameters/Color

      • Operating Voltage (12V)

    • Replace current boost converter with one of the following (TBD testing results):

      • LM5123-Q1

      • TPS4306x

      • PS4306x

  • REMOVE:

    • TBD

Layout Feedback/Changes:

  • 4.7uH inductor footprint sizing affects soldering capacitors and other components

    • Add test points for the pads under the inductor

  • Choose a bigger boost converter, the current boost converter has the possibility of shorts underneath it, easier solder pins. 

    • Make sure to add testing points for each of the pins

  • Hard to debug before the boost converter because of lack of test points ✅

  • Hard to debug because the continuity points are hard to remove such as the SMD boost converter

  • Add more images to cover up blank space

  • Use power calculator based on output voltage to have max current 

    • Power resistors put it on the board 

Testing:

  • SPI Display: success ✅

    • 3.3V @ 1mA, drawing 0.180 watts

  • Boost converter status:

    • v1 Testing: success ✅

      • Cause of prev failure: unable to read 12V from RPP/OV circuit

    • v2 Testing: failed ❌

      • something is clamping output voltage

      • R10 passive is wrong value on main/24V board

      • C1, C7-C9 is shorted on 24V board

      • R8 needs to be replaced on 24V board

  • 12V RPP status: failed ❌

    • Cause of failure: Zener diode at the input

  • 12V OV status: success ✅

    • OV threshold @ 14.84V

  • 24V RPP status: failed ❌

    • Cause of failure: Zener diode at the input

  • 24V OV status @ 1mA, OV activated @ 28.4: success ✅

    • 12V: success

    • 16V: success

    • 18V: success

    • 26V: success

    • 28V: success

    • 28.4V: success (max voltage)

    • 28.5V: failed

    • 28.6V: failed

    • 29V: failed

Firmware Plan:
/App

  main.c

  system_clock.c        // SystemClock_Config()

  board_pins.h          // all pin/AF defines for THIS PCB

  common.h/.c           // fault bitmap, shared types, helpers, error_handler()

/Drivers

  display_spi.h/.c      // SPI driver & reset pin for display

  estop.h/.c            // E-STOP input

  leds.h/.c             // 4 Status LEDs (GPIO)

  buzzer.h/.c           // PWM

  can_car.h/.c          // CarCAN specifics

  can_elcon.h/.c        // Elcon protocol

/App

  task_display.h/.c     // render telemetry onto display

  task_led_buzzer.h/.c  // blinks/tones from events and test PWM of buzzer

  task_can_rx.h/.c      // both buses, Rx parse -> queues

  task_can_tx.h/.c      // periodic Tx (requests/heartbeats)

  task_ESTOP.h/.c      // E-STOP handling

  task_telemetry.h/.c   // aggregates latest values for display/LEDs

Circuit Components

Description (Customer #)

Qty

P/N

12v-24v Boost Regulator

1

TPS613771RYHR

Capacitor 0.1uF 0603

7

MLASH168SB7104KTNA01

Capacitor 0.22uF 0603

2

MSASU168SB7224KTNB25

Capacitor 0.47uF 0603

1

0603B474K500CT

Capacitor 10uF 0805

5

GRM21BR61H106KE43K

Capacitor 15pF 0603

1

0603N150J250CT

Capacitor 1uF 0603

7

MLASU168SB5105KTNA01

Capacitor 2.2uF 0805

3

MCJCT21GCB7225MTPA1J

Capacitor 2200pF 0603

1

GCJ188R71E222KA01D

Capacitor 22uF 0805

5

GRM21BR61E226ME44L

Capacitor 4.7uF 0805

3

08055D475KAT4A

Connector 1x2 Nanofit

2

1053091202

Connector 1x4 Nanofit

2

105309-1304

Connector 2x5 Nanofit

2

SFH11-PBPC-D05-ST-BK

Diode Zener 15V

1

SMAF4744A-TP

Diode Zener 30V

1