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)

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

SMAF4751A-TP

Diodes LED 0603 RED

4

LS Q976.01-N1Q2-1

Diodes Schottky 20V 3A

2

SK32A-LTP

Fuse Holder 0.63

1

3568

Inductor 4.7uH

1

XGL4020-472MEC

LCD Display 3V

1

NHD-C12832A1Z-FSB-FBW-3V3

LeaderSOM

1

 

NMOS PSMN8R5-40MSDX

3

PSMN8R5-40MSDX

Resistor 0k 0603

1

CRCW06030000Z0EE

Resistor 1.5M 0603

1

CRCW06031M50JNTA

Resistor 100k 0603

2

CRCW0603100KFKEE

Resistor 10k 0603

3

CRCW060310K0FKEI

Resistor 1k 0603

1

CRCW06031K00FKEI

Resistor 29.4k 0603

1

CRCW060329K4FKEAC

Resistor 4.3k 0603

2

CRCW06034K30FKEA

Resistor 47k 0603

1

CRCW060347K0FKECC

Resistor 590 0603

4

CRCW0603590RFKEA

Resistor 64.9k 0603

1

CRCW060364K9FKEA

Resistor 80.6k 0603

1

CRCW060380K6FKEA

RPP Controller

2

LM74502HDDFR