Files
NeoECU-Hardware/Architecture/POWER_ARCHITECTURE.md
T
h3cx 0de94168f7 Initial function IO and power architecture
This commit contains the inital functional IO (engine controls and
general digital and analog IO excluding digital IO) and the initial
power architecture for the project
2026-08-29 21:18:45 +02:00

247 lines
11 KiB
Markdown

# NeoECU V1 Power Architecture
## Purpose
This document defines the working power architecture for NeoECU V1. The ECU
is powered from a 4S LiPo and controls one injector, one dual-ended dumb
ignition coil, engine-position Hall sensors, analogue sensors, CAN, and a
starter-enable output.
This is an architecture decision document, not a component-selection or
schematic document. Current limits, exact protection components, and regulator
part numbers remain to be selected after the loads and packaging are confirmed.
## Supply Assumptions
- Supply: 4S LiPo battery.
- Nominal voltage: 14.8 V.
- Fully charged voltage: 16.8 V.
- The ECU shall tolerate supply sag during vehicle operation and switching
transients from ignition, injector, starter, and harness inductance.
- Unlike a road-car alternator system, V1 is not initially designed around a
conventional automotive load-dump event. Input protection and regulators
should nevertheless have adequate voltage headroom for realistic local
transients.
## Rail Tree
```text
4S LiPo
|
+-- input fuse, reverse-polarity protection, TVS/transient protection
|
+-- VBAT_PROT ---------------------------------> ignition branch
| injector branch
| protected low-side outputs
| protected VBAT sense
|
+-- synchronous buck --------------------------> +5V_MAIN
| | internal 5 V circuitry
| |
| +-- eFuse / load switch ------------------> +5V_AUX
| | external logic-level outputs
| |
| +-- eFuse / load switch, ferrite/filter --> +5V_SENS
| protected sensor supply
|
+-- synchronous buck --------------------------> +3V3_MAIN
| | MCU digital supplies
| | 3.3 V logic / communications
| |
| +-- ferrite bead / filtering -------------> +5V_AUX
| MCU analogue domain
| analogue front ends
| ADC reference
|
+-- regulated buck-boost ----------------------> +12V_SENS
12 V sensor supply
crank/cam Hall sensors
```
## Input and Raw-Battery Domain
`VBAT_PROT` is the protected raw-battery domain. It is produced after the
input fuse, reverse-polarity stage, and input transient clamp.
It supplies the loads that must operate from battery voltage:
- ignition-coil primary supply;
- injector supply;
- a protected, scaled battery-voltage measurement for the MCU.
Ignition, injector, and low-side-output branches require their own protection
and fault containment. Their high-current returns must not share the sensor or
MCU return path; all return domains join deliberately at the power-entry
region.
## +5V_MAIN
`+5V_MAIN` is the ECU's primary regulated 5 V rail. It is generated directly
from `VBAT_PROT` by a synchronous buck converter and powers internal 5 V
circuitry, including automotive ICs that require 5 V logic or supply voltage.
It is the upstream rail for `+5V_AUX` and `+5V_SENS`. External
harness-connected loads shall not be connected directly to `+5V_MAIN`; they
use their separately protected branch.
## +5V_SENS
`+5V_SENS` is derived from `+5V_MAIN` through an eFuse or protected load
switch, followed by a ferrite bead and local filtering. It is not shared
directly with external digital-output loads.
It provides a controlled, protected 5 V excitation supply for ratiometric
pressure sensors and other sensors that require 5 V. The rail shall include a
sensor-facing protection/current-limit stage so a harness short cannot bring
down `+5V_MAIN` or the ECU logic supply. Its voltage should be monitored by
the MCU.
The ferrite bead and local filtering isolate sensor excitation from switching
and digital noise on `+5V_MAIN`, while the protected branch keeps a
sensor-harness fault contained to the sensor domain.
## +5V_AUX
`+5V_AUX` is derived from `+5V_MAIN` through an eFuse or protected load switch.
It supplies external 5 V digital logic-level output circuits, such as a
starter-enable command to a separate external control module.
This rail is distinct from `+5V_SENS` so external digital loads and harness
faults cannot disturb sensor excitation. The protection stage shall isolate a
short on `+5V_AUX` without inhibiting `+5V_MAIN` or the rest of the ECU. It
shall include appropriate output protection and current limiting for the
external interface.
`+5V_AUX` is not an actuator supply. If a starter-enable or other command must
drive a relay or another inductive load, it shall use an appropriate protected
low-side sink output instead of a 5 V logic-level output.
## +3V3_MAIN
`+3V3_MAIN` is generated directly from `VBAT_PROT` by a dedicated synchronous
buck converter. It supplies the STM32H747 digital supply pins and the 3.3 V
digital loads, including logic-side communications circuitry.
The main 3.3 V rail shall not be made by an LDO from either 5 V rail. The H747
and supporting logic can create a substantial 3.3 V load; an LDO would
dissipate the difference between 5 V and 3.3 V as heat. Generating 3.3 V from
`VBAT_PROT` also avoids placing the MCU's current demand on `+5V_MAIN`.
`+3V3_MAIN` must never be derived from `+5V_SENS`, since that would couple the
logic load to the sensor supply.
## +3V3_ANA
`+3V3_ANA` is derived from `+3V3_MAIN` through a ferrite bead and local
filtering. It supplies the MCU analogue supply/reference domain and analogue
front-end circuitry.
The initial implementation should reserve an optional low-noise LDO footprint
for this rail. An LDO should be fitted only if analogue-noise testing shows it
is necessary; it is not the primary 3.3 V regulator. The analogue rail and its
decoupling must follow the STM32H747 supply and ADC layout guidance.
## Ratiometric 5 V Sensor Measurements
The MCU ADC reference is `+3V3_ANA`; it is not expected to be precision-trimmed
to track `+5V_SENS`. Therefore 5 V ratiometric sensor readings are made
ratiometric in measurement and firmware rather than by requiring a fixed
relationship between the rails.
```text
+5V_SENS ----> sensor excitation
|
+--> sensor output -- matched divider --> ADC sensor channel
|
+--> +5V_SENS sense - matched divider --> ADC 5-V-sense channel
```
Firmware shall calculate the sensor signal as a ratio of the two ADC readings:
```text
sensor fraction = ADC(sensor output) / ADC(+5V_SENS sense)
```
Since the two channels use the same ADC reference, the reference-voltage error
and most common gain error cancel. Divider ratio and temperature drift are also
minimised by using matched, low-drift resistor networks for the sensor-output
and 5-V-sense dividers.
Design requirements:
- The divider ratio must keep both channels within the ADC input range with
margin for the maximum sensor-supply tolerance. A nominal ratio near 0.55
maps 5.25 V to approximately 2.9 V.
- Use corresponding filter characteristics on the sensor-output and 5-V-sense
channels and sample them close together.
- Apply normal input protection and anti-alias filtering without defeating the
intended ratiometric measurement.
- A failed or shorted sensor supply must be detectable from the sensed 5 V
reading.
## Thermistor Measurements
Thermistor dividers are normally excited from `+5V_SENS`, consistent with a
conventional automotive ECU sensor interface. The thermistor itself is passive
and would operate with a 3.3 V excitation, but using the protected 5 V sensor
rail gives a common, diagnosable excitation supply for external sensors.
```text
+5V_SENS -- precision pull-up --+-- thermistor -- sensor ground
|
+-- matched divider/filter --> ADC thermistor channel
+5V_SENS ------ matched divider/filter -----------------> ADC 5-V-sense channel
```
Firmware shall use the ratio of the thermistor-channel and 5-V-sense ADC
readings to calculate the thermistor resistance. This cancels variation in
both `+5V_SENS` and the `+3V3_ANA` ADC reference. Pull-up resistance must be
chosen to limit thermistor self-heating while providing sufficient measurement
resolution over the required temperature range.
## +12V_SENS
The crank and cam sensors are currently described as 12 V, active-low,
open-collector-style Hall-effect sensors. They are supplied from `+12V_SENS`.
`+12V_SENS` is a regulated 12 V buck-boost rail generated from `VBAT_PROT`.
It provides a stable supply when the 4S LiPo is above or below 12 V and may be
used by future 12 V sensor circuits in addition to the crank and cam sensors.
The rail shall include a sensor-facing current-limit or protected high-side
switch, filtering appropriate to the harness, and local decoupling at the
sensor connector. Its voltage accuracy, ripple, current capability, and
current-limit threshold must be specified from the selected Hall sensors and
the future 12 V sensor budget.
Hall outputs shall not enter the MCU at the sensor supply voltage. Their input
conditioning shall provide protection, noise rejection, and a defined
logic-level conversion to protected 3.3 V timer inputs. Output pull-up and
level-shift details are to be selected with the final sensor wiring and output
type.
## Grounding and Layout Intent
- Keep ignition, injector, and starter-switch current returns separate from
sensor and MCU ground returns.
- Join these return domains deliberately near the input/power-entry region.
- Keep switching-regulator hot loops compact and away from trigger and ADC
signal paths.
- Route sensor supply and sensor-return paths as controlled pairs to the
connector where practical.
- Place the analogue front end near its ADC connections and isolate it from
ignition and injector switching nodes.
## Open Items Before Schematic Freeze
1. Confirm the current budget for each rail, including all expansion I/O.
2. Confirm the Hall-sensor part numbers, current, output type, cable lengths,
and pull-up requirements; establish the current budget for future
`+12V_SENS` loads.
3. Select the input transient and reverse-polarity ratings after the battery,
wiring, and enclosure arrangement are known.
4. Confirm sensor-supply accuracy, current limit, and diagnostic requirements.
5. Validate ADC noise and ratiometric accuracy on hardware before deciding
whether the optional `+3V3_ANA` LDO is needed.