Schematic and PCB review - custom rusEfi board Subaru svx eg33
- Dron_Gus
- contributor
- Posts: 460
- Joined: Wed Nov 13, 2013 1:11 pm
- Location: S-Pb
- Github Username: dron0gus
Schematic and PCB review - custom rusEfi board Subaru svx eg33
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.
- Attachments
-
- rusefi-ej20g-30Dec2018.pdf
- (592.2 KiB) Downloaded 862 times
Re: Schematic and PCB review - custom rusEfi board
1. What's the trigger wheel on your subaru? Are you sure, MAX chip will be able to decode it?
2. are you sure in your coding skills? (to control all those chips)
2. are you sure in your coding skills? (to control all those chips)
Re: Schematic and PCB review - custom rusEfi board
Max chip can decode Subaru wheels. However it's beneficial to use Operating Mode B. For minimal components, Frankenso uses Operating Mode A2. If you use 9926 in mode B, you'll loose some hall input options. The problem is with the adaptive peak detector. When at very low RPM it cranks the gain up and causes false triggers. If you use mode B, the gain is set via the MCU. It might be worth considering MAX9925 or MAX9927, as those can use the internal bias, instead of an external bias. You can save a couple components if you can use one of those chips.
Welcome to the friendlier side of internet crazy
- Dron_Gus
- contributor
- Posts: 460
- Joined: Wed Nov 13, 2013 1:11 pm
- Location: S-Pb
- Github Username: dron0gus
Re: Schematic and PCB review - custom rusEfi board
1. I had old-school subaru with old-style pattern http://www.vems.hu/wiki/index.php?page=InputTrigger%2FSubaruTrigger . But later I can change to newer one crank and cam wheels with 32-2-2-2 http://www.vems.hu/wiki/index.php?page=InputTrigger%2FSubaruThirtySixMinusTwoMinusTwoMinusTwo
2. yep. not sure about spare time... Most of this chips either supported by RusEFI (like TPIC8101 and MAX31855), or need minimum initialization to work as dumb gpio-driven switch (MC33810 and TLE6240G)
Last edited by Dron_Gus on Sun Dec 30, 2018 3:22 pm, edited 1 time in total.
- Dron_Gus
- contributor
- Posts: 460
- Joined: Wed Nov 13, 2013 1:11 pm
- Location: S-Pb
- Github Username: dron0gus
Re: Schematic and PCB review - custom rusEfi board
Thanks. I was trying to understand difference between all these modes. But then I decided that it is not first priority question. So I'm trying to keep schematic universal for all MAX992*. I'll check this part to see if it compatible with all variants.kb1gtt wrote: ↑Sun Dec 30, 2018 3:03 pmMax chip can decode Subaru wheels. However it's beneficial to use Operating Mode B. For minimal components, Frankenso uses Operating Mode A2. If you use 9926 in mode B, you'll loose some hall input options. The problem is with the adaptive peak detector. When at very low RPM it cranks the gain up and causes false triggers. If you use mode B, the gain is set via the MCU. It might be worth considering MAX9925 or MAX9927, as those can use the internal bias, instead of an external bias. You can save a couple components if you can use one of those chips.
Re: Schematic and PCB review - custom rusEfi board
As far as I recall, there was some hardcoded threshold time in MAX chip (sort of a watchdog), and with that weird subaru trigger wheel during cranking it was always resetting the chip?
Re: Schematic and PCB review - custom rusEfi board
This was the problem.
When you have more than 85mS per tooth, it causes problems. The problem with some Subaru crank wheels is that when cranking you have more than 85mS per tooth, which causes it to fail to sync.MAX datasheet wrote:If the input signal voltage remains lower than the adaptive peak threshold for more than 85ms, an internal watchdog timer drops the threshold level to a default minimum threshold (VMIN_THRESH). This ensures pulse recognition recovers even in the presence of intermittent sensor connection.
Welcome to the friendlier side of internet crazy
- AndreyB
- Site Admin
- Posts: 14360
- Joined: Wed Aug 28, 2013 1:28 am
- Location: Jersey City
- Github Username: rusefillc
- Slack: Andrey B
Re: Schematic and PCB review - custom rusEfi board
I can get with software if I get a board in my mail - the more stuff would be soldered to the board, the higher are the changes of me helping Hate soldering.
Very limited telepathic abilities - please post logs & tunes where appropriate - http://rusefi.com/s/questions
Always looking for C/C++/Java/PHP developers! Please help us see https://rusefi.com/s/howtocontribute
Always looking for C/C++/Java/PHP developers! Please help us see https://rusefi.com/s/howtocontribute
Re: Schematic and PCB review - custom rusEfi board
Is this drawn in PCB program that I have access to? Is this done in OrCAD?
In general it looks like you have it drafted.
In general it looks like you have it drafted.
Welcome to the friendlier side of internet crazy
- Dron_Gus
- contributor
- Posts: 460
- Joined: Wed Nov 13, 2013 1:11 pm
- Location: S-Pb
- Github Username: dron0gus
Re: Schematic and PCB review - custom rusEfi board
I thought this WD is disabled in some B or C mode. It is not clear from DS.kb1gtt wrote: ↑Sun Dec 30, 2018 3:41 pmThis was the problem.When you have more than 85mS per tooth, it causes problems. The problem with some Subaru crank wheels is that when cranking you have more than 85mS per tooth, which causes it to fail to sync.MAX datasheet wrote:If the input signal voltage remains lower than the adaptive peak threshold for more than 85ms, an internal watchdog timer drops the threshold level to a default minimum threshold (VMIN_THRESH). This ensures pulse recognition recovers even in the presence of intermittent sensor connection.
- Dron_Gus
- contributor
- Posts: 460
- Joined: Wed Nov 13, 2013 1:11 pm
- Location: S-Pb
- Github Username: dron0gus
Re: Schematic and PCB review - custom rusEfi board
Thanks everyone for comments.
First rev was send to fab.
Hope there is no critical bugs left.
First rev was send to fab.
Hope there is no critical bugs left.
- Dron_Gus
- contributor
- Posts: 460
- Joined: Wed Nov 13, 2013 1:11 pm
- Location: S-Pb
- Github Username: dron0gus
Re: Schematic and PCB review - custom rusEfi board
Finally!
Properly set-up all EFI_CONSOLE_UART_DEVICE, EFI_USE_UART_FOR_CONSOLE, TS_SERIAL_UART_DEVICE and so on for custom board is real hell.
Properly set-up all EFI_CONSOLE_UART_DEVICE, EFI_USE_UART_FOR_CONSOLE, TS_SERIAL_UART_DEVICE and so on for custom board is real hell.
- Attachments
-
- Screenshot from 2019-04-01 11-40-55.png (403.58 KiB) Viewed 40446 times
-
- 20190401_101938.jpg (4.05 MiB) Viewed 40446 times
- AndreyB
- Site Admin
- Posts: 14360
- Joined: Wed Aug 28, 2013 1:28 am
- Location: Jersey City
- Github Username: rusefillc
- Slack: Andrey B
Re: Schematic and PCB review - custom rusEfi board
Sorry to hear that can you PR any comments which would have helped you?
Very limited telepathic abilities - please post logs & tunes where appropriate - http://rusefi.com/s/questions
Always looking for C/C++/Java/PHP developers! Please help us see https://rusefi.com/s/howtocontribute
Always looking for C/C++/Java/PHP developers! Please help us see https://rusefi.com/s/howtocontribute
- AndreyB
- Site Admin
- Posts: 14360
- Joined: Wed Aug 28, 2013 1:28 am
- Location: Jersey City
- Github Username: rusefillc
- Slack: Andrey B
Re: Schematic and PCB review - custom rusEfi board
Very limited telepathic abilities - please post logs & tunes where appropriate - http://rusefi.com/s/questions
Always looking for C/C++/Java/PHP developers! Please help us see https://rusefi.com/s/howtocontribute
Always looking for C/C++/Java/PHP developers! Please help us see https://rusefi.com/s/howtocontribute
- Dron_Gus
- contributor
- Posts: 460
- Joined: Wed Nov 13, 2013 1:11 pm
- Location: S-Pb
- Github Username: dron0gus
Re: Schematic and PCB review - custom rusEfi board
Board updated to support Subaru EG33 engine (H6). Actually can support up to 8 cylinders + 2 ETB
- AndreyB
- Site Admin
- Posts: 14360
- Joined: Wed Aug 28, 2013 1:28 am
- Location: Jersey City
- Github Username: rusefillc
- Slack: Andrey B
Re: Schematic and PCB review - custom rusEfi board
Sooooo maaaaaaanyyyyy boards. Have you seen https://rusefi.com/forum/viewtopic.php?f=4&t=1646
I am dreaming software developers doing software things
I am dreaming software developers doing software things
Very limited telepathic abilities - please post logs & tunes where appropriate - http://rusefi.com/s/questions
Always looking for C/C++/Java/PHP developers! Please help us see https://rusefi.com/s/howtocontribute
Always looking for C/C++/Java/PHP developers! Please help us see https://rusefi.com/s/howtocontribute
- Dron_Gus
- contributor
- Posts: 460
- Joined: Wed Nov 13, 2013 1:11 pm
- Location: S-Pb
- Github Username: dron0gus
Re: Schematic and PCB review - custom rusEfi board
Yes. I saw it. Connectors are cool. Discrete output FETs are not.russian wrote: ↑Wed Dec 18, 2019 1:02 amSooooo maaaaaaanyyyyy boards. Have you seen https://rusefi.com/forum/viewtopic.php?f=4&t=1646
I am dreaming software developers doing software things
I hope this PCB will not have any critical bugs. And I'll finally run my car on RusEFI.
Also I hope this winter in S-Pb will be cold enough to hold me at home doing some SW stuff instead of repair works in garage.
I hate wiring, so I definitely need p'n'p HW.
- Dron_Gus
- contributor
- Posts: 460
- Joined: Wed Nov 13, 2013 1:11 pm
- Location: S-Pb
- Github Username: dron0gus
Re: Schematic and PCB review - custom rusEfi board
Some progress.
- Attachments
-
- 20200224_130000.jpg (3.73 MiB) Viewed 39439 times
-
- 20200224_125934.jpg (3.12 MiB) Viewed 39439 times
-
- 20200224_125922.jpg (3.54 MiB) Viewed 39439 times
-
- Posts: 113
- Joined: Fri Jan 13, 2017 4:15 am
- Location: CT
Re: Schematic and PCB review - custom rusEfi board
Any running Subaru's?
- Dron_Gus
- contributor
- Posts: 460
- Joined: Wed Nov 13, 2013 1:11 pm
- Location: S-Pb
- Github Username: dron0gus
Re: Schematic and PCB review - custom rusEfi board
No yet. I'm too slow and lazy.
Re: Schematic and PCB review - custom rusEfi board
Hello,
did you try the EGT input ? If yes, did it work ?
Thanks,
did you try the EGT input ? If yes, did it work ?
Thanks,
- Dron_Gus
- contributor
- Posts: 460
- Joined: Wed Nov 13, 2013 1:11 pm
- Location: S-Pb
- Github Username: dron0gus
Re: Schematic and PCB review - custom rusEfi board
Not yet. But I tried similar chip on other project - works just fine.
But, please note that stock Subaru engines have unknown EGT sensor... Actually I'm not sure that Subaru EGT sensors are termocouples.