Homogenized labels and added crank and cam sensor inputs

This commit is contained in:
2026-09-10 23:26:54 +02:00
parent 0de94168f7
commit 45c0d7f8ec
7 changed files with 266 additions and 96 deletions
+34 -51
View File
@@ -19,7 +19,7 @@ temperature and pressure sensors, and an external starter switch.
| --- | ---: | --- |
| Crank trigger input | 1 | 12 V active-low Hall, timer capture |
| Cam trigger input | 1 | 12 V active-low Hall, timer capture |
| Deadman input | 1 | Dedicated 5 V vehicle-logic engine-permit input |
| Deadman inputs | 2 | Dedicated, independent 5 V vehicle-logic engine-permit inputs |
| Thermistor inputs | 4 | Air, oil, water, and one spare temperature input |
| General analogue inputs | 9 | Protected 0-5 V sensor channels |
| ADC rail-monitor channels | 3 | `VBAT_PROT`, `+5V_SENS`, and `+12V_SENS` |
@@ -53,32 +53,11 @@ the scope of this document.
## Engine-Position Inputs
Crank and cam are dedicated inputs, not generic digital inputs. The assumed
sensor type is a three-wire, active-low, open-collector/current-sinking Hall
sensor.
```text
+12V_SENS -- ECU-side pull-up -- Hall signal harness -- Hall output
|
protection / divider / fast RC
|
3.3 V Schmitt trigger
|
STM32 timer-capture pin
```
The ECU-side pull-up is connected to regulated `+12V_SENS`, not to 3.3 V.
This gives the harness a robust 12 V-class signal while keeping the MCU domain
local and protected. An initial pull-up near 4.7 kohm is a reasonable starting
point, subject to the selected sensor's output-current specification and the
cable capacitance.
The divider scales the 12 V signal to the Schmitt-buffer input. A deliberately
small, configurable RC filter follows the divider to reject spark-induced
glitches without materially slowing genuine trigger edges. A nominal 1 nF
capacitor footprint, with alternatives such as 470 pF and 2.2 nF, should be
provided and validated with ignition active. The final divider, pull-up, clamp,
filter, and cable requirements depend on the Hall part number and harness.
Crank and cam are dedicated timer-capture inputs, not generic digital inputs.
The V1 timing pattern remains two crank pulses per revolution and one cam pulse
per 720-degree cycle. Their interface, harness/shield termination, protection,
conditioning, and hardware/firmware glitch-rejection requirements are defined
in [ENGINE_POSITION_INPUTS.md](IO_MODULES/ENGINE_POSITION_INPUTS.md).
## Analogue Inputs
@@ -174,25 +153,28 @@ actual harness and input-function requirements.
## Deadman Engine-Permit Interlock
The deadman input is a dedicated 5 V vehicle-logic input, not a generic digital
input. It is conditioned through the normal protected 5 V input interface and
level-shifted to protected 3.3 V logic. A loss of the external deadman signal
is the not-permitted state.
The deadman uses two dedicated 5 V vehicle-logic inputs, not generic digital
inputs. The steering-wheel switch provides two electrically independent,
normally-open contacts. Each contact has its own connector pin, protection,
filtering, default-low bias, and conditioned logic path. This makes an open
circuit or a short to the 5 V source on one signal path non-permissive.
The resulting `DEADMAN_OK` signal has two independent destinations:
The resulting 5 V `DEADMAN_OK` signal is high only when channel A reports
held and the independently conditioned, inverted channel B reports not
released. It has two independent destinations:
- It enters an MCU digital input so firmware can observe whether the deadman is
locked or unlocked, disable scheduling, and report the state.
- It is combined in hardware with the MCU's `MCU_RUN_PERMIT` output to produce
`ENGINE_PERMIT`.
- `DEADMAN_A_STATUS` and `DEADMAN_B_STATUS` enter MCU digital inputs so
firmware can observe each contact, detect disagreement, disable scheduling,
and report the state.
- `DEADMAN_OK` is combined in hardware with the MCU's `MCU_RUN_PERMIT` output
to produce `ENGINE_PERMIT`.
```text
5 V deadman input --> protection / level shift --> DEADMAN_OK --+--> MCU input
|
MCU_RUN_PERMIT --------------------------------------------------AND--> ENGINE_PERMIT
|
driver enable pins, or
command-signal gating
deadman contact A --> protected input --> DEADMAN_A_HELD --------+
+--> valid-state logic --> DEADMAN_OK --+
deadman contact B --> protected input --> inverted --> DEADMAN_B_RELEASED -+ |
AND --> ENGINE_PERMIT
MCU_RUN_PERMIT ----------------------------------------------------------------------------------------------+
```
`ENGINE_PERMIT` controls the enable inputs of the injector and ignition drivers
@@ -200,13 +182,16 @@ where those inputs are provided. If a selected driver has no suitable enable
input, `ENGINE_PERMIT` is ANDed with that driver's MCU command signal using
logic that defaults to the disabled state on power-up or loss of power.
This hardware path ensures that releasing the deadman stops injector and
ignition commands even if firmware or a timer output fails to respond. Firmware
must also clear/disable pending injection and dwell schedules whenever
`DEADMAN_OK` becomes invalid. A firmware test mode may assert
`MCU_RUN_PERMIT`, but it does not override the physical deadman input; bench
operation requires a deliberate external test arrangement that presents a valid
deadman signal.
This hardware path ensures that releasing the deadman, an open circuit, or a
single signal-path short to the 5 V source stops injector and ignition commands
even if firmware or a timer output fails to respond. It does not claim to cover
a common-mode fault that energises both paths. Firmware must clear/disable
pending injection and dwell schedules whenever `DEADMAN_OK` becomes invalid or
the two MCU status inputs disagree. A firmware test mode may assert
`MCU_RUN_PERMIT`, but it does not override the physical deadman inputs; bench
operation requires a deliberate external test arrangement that presents the
valid two-channel held state. The detailed signal and fault model is defined in
[DEAD_MAN.md](IO_MODULES/DEAD_MAN.md).
## Outputs
@@ -266,8 +251,6 @@ included unless a future peripheral explicitly requires it.
- Keep trigger and ADC front ends physically separated from coil, injector,
switching-regulator, and high-current output nodes.
- Route Hall signals with their sensor return; use an appropriate harness and
shielding strategy after cable testing.
- Place protection at the connector, filtering/conditioning near the MCU side,
and avoid dumping input-fault energy into `+3V3_ANA`.
- Validate Hall glitch rejection with ignition active, including worst-case