Schematic and PCB review - custom rusEfi board Subaru svx eg33
Posted: Sun Dec 30, 2018 1:44 pm
Hi All,
I'm finishing my own RusEFI fork PCB. It would be nice if someone can review and comment schematic. (and PCB later).
So it is STM32F7xx (144 pins) based variant for subaru impreza <= 1996 and legacy <= 1994.
PCB are being designed to fit OEM case. Also I'm trying to keep connectors pinout same as original ECU.
One aux connector is added. AFR, CAN and power ignitors signals are routed to this connector. For further upgrade.
I tried to use as much of specialized ICs as possible (as oposite to original RusEFI HW):
Power supply - TLE7368 TLE7368E:
- 2.5A bulk 5.5V converter, 5V LDO, 3.3 LDO + AUX LDO, two 5V followers for powering external sensors.
- Low power standby regulator - used to power back-up part of STM32.
- On/off/keep power logic
- watchdog
Voltage reference for ADC and AFR - AD1582 or 1:2 divided voltage from 5V rail.
-0.6V bias generator for OpAmp power. To get real rail-to-rail. Not sure if it really needed course near 0V values are not used at any of inputs.
Inputs:
MAX9926 - for camshaft and crank sensors.
TPIC8101 - for knock sensing. Ref clock is soutrced from STM32
MAX31855 - for EGT.
8 (2 x 4) OpAmps for analog inputs + dividers, protection and so on.
MC33972 - for discrete inputs. As it has 22 inputs all analog inputs also routed to this chip. It has mux so voltage at any input can be readed by external ADC. 8 inputs can detect switch to battery or ground. 14 can detect switch to ground only. IRQ and Wake up. Configurable pull-up current.
Outputs:
MC33810 - to drive ignitors and injectors. Also set of ignitor IGBTs will be on PCB, outputs will be available through additional connector. IC capable to detect missfires trough feedback, protect coils from overcharge and so on.
TLE6240G - for driving relays, idle valve, 5th injector, wastgate solenoid, lamps and so on. 8 outputs directly driven throught dedicated inputs or over SPI. 8 more are controlled over SPI.
ISP772T - high side switch to control self-shutdown signal.
AFR:
(some discossion was on Russian-side of forum)
fully discrete.
Virtual ground generator - OpAmp with K=1.
Voltage controlable current source for pump. Controlled from DAC output.
Diff amp to measure pump current.
One more voltage to current convertor to measure VS output resistanse. Also driven by DAC.
Mosfet for heater. Heater voltage and current sense.
Interfaces:
CAN
LIN
micro-SD slot
Two USB connectors. HS and FS. HS with OTG support.
Onboard HC-05 or ESP32.
Expansion connector with all unused MCU signals. Acctually not much left.
Misc:
QSPI flash for data/code storage
3 LEDs + status led for each power rail.
Comments and suggestions are wellcome.
What i don't like in my own schematic
1. 3.3V to 5V converter for spi. I will check all DSs once again, maybe I'll figure out how to make all 5V spi users be happy with 3.3V signals. At least knock sensor needs 70% of Vdd on inputs for "1".
2. too complicated AFR.
3. Analog inputs.
4. too much spi busses.
I'm finishing my own RusEFI fork PCB. It would be nice if someone can review and comment schematic. (and PCB later).
So it is STM32F7xx (144 pins) based variant for subaru impreza <= 1996 and legacy <= 1994.
PCB are being designed to fit OEM case. Also I'm trying to keep connectors pinout same as original ECU.
One aux connector is added. AFR, CAN and power ignitors signals are routed to this connector. For further upgrade.
I tried to use as much of specialized ICs as possible (as oposite to original RusEFI HW):
Power supply - TLE7368 TLE7368E:
- 2.5A bulk 5.5V converter, 5V LDO, 3.3 LDO + AUX LDO, two 5V followers for powering external sensors.
- Low power standby regulator - used to power back-up part of STM32.
- On/off/keep power logic
- watchdog
Voltage reference for ADC and AFR - AD1582 or 1:2 divided voltage from 5V rail.
-0.6V bias generator for OpAmp power. To get real rail-to-rail. Not sure if it really needed course near 0V values are not used at any of inputs.
Inputs:
MAX9926 - for camshaft and crank sensors.
TPIC8101 - for knock sensing. Ref clock is soutrced from STM32
MAX31855 - for EGT.
8 (2 x 4) OpAmps for analog inputs + dividers, protection and so on.
MC33972 - for discrete inputs. As it has 22 inputs all analog inputs also routed to this chip. It has mux so voltage at any input can be readed by external ADC. 8 inputs can detect switch to battery or ground. 14 can detect switch to ground only. IRQ and Wake up. Configurable pull-up current.
Outputs:
MC33810 - to drive ignitors and injectors. Also set of ignitor IGBTs will be on PCB, outputs will be available through additional connector. IC capable to detect missfires trough feedback, protect coils from overcharge and so on.
TLE6240G - for driving relays, idle valve, 5th injector, wastgate solenoid, lamps and so on. 8 outputs directly driven throught dedicated inputs or over SPI. 8 more are controlled over SPI.
ISP772T - high side switch to control self-shutdown signal.
AFR:
(some discossion was on Russian-side of forum)
fully discrete.
Virtual ground generator - OpAmp with K=1.
Voltage controlable current source for pump. Controlled from DAC output.
Diff amp to measure pump current.
One more voltage to current convertor to measure VS output resistanse. Also driven by DAC.
Mosfet for heater. Heater voltage and current sense.
Interfaces:
CAN
LIN
micro-SD slot
Two USB connectors. HS and FS. HS with OTG support.
Onboard HC-05 or ESP32.
Expansion connector with all unused MCU signals. Acctually not much left.
Misc:
QSPI flash for data/code storage
3 LEDs + status led for each power rail.
Comments and suggestions are wellcome.
What i don't like in my own schematic
1. 3.3V to 5V converter for spi. I will check all DSs once again, maybe I'll figure out how to make all 5V spi users be happy with 3.3V signals. At least knock sensor needs 70% of Vdd on inputs for "1".
2. too complicated AFR.
3. Analog inputs.
4. too much spi busses.