only:hellen121vag

HW QC for etb_use_two_wires ETB
This commit is contained in:
rusefi 2024-06-27 19:06:41 -04:00
parent 9372d17b63
commit 7d79b10733
3 changed files with 20 additions and 8 deletions

View File

@ -21,6 +21,11 @@
bool qcDirectPinControlMode = false;
static void directWritePad(Gpio pin, int value) {
if (!isBrainPinValid(pin)) {
criticalError("QC of invalid pin %d", (int)pin);
return;
}
#if EFI_GPIO_HARDWARE && EFI_PROD_CODE
if (brain_pin_is_onchip(pin)) {
palWritePad(getHwPort("can_write", pin), getHwPin("can_write", pin), value);
@ -37,9 +42,16 @@ static void qcSetEtbState(uint8_t dcIndex, uint8_t direction) {
const dc_io *io = &engineConfiguration->etbIo[dcIndex];
Gpio controlPin = io->controlPin;
directWritePad(controlPin, 1);
if (engineConfiguration->etb_use_two_wires) {
// TLE7209 and L6205
directWritePad(io->directionPin1, direction);
directWritePad(io->directionPin2, !direction);
} else {
// TLE9201 and VNH2SP30
efiSetPadModeWithoutOwnershipAcquisition("QC_ETB", controlPin, PAL_MODE_OUTPUT_PUSHPULL);
directWritePad(io->directionPin1, direction);
directWritePad(io->disablePin, 0); // disable pin is inverted - here we ENABLE. direct pin access due to qcDirectPinControlMode
}
}
#if EFI_CAN_SUPPORT

View File

@ -50,7 +50,7 @@ class OutputPin;
/**
* @brief Represents a DC motor controller (H-bridge) with some combination of PWM and on/off control pins.
*
* 2024: what does 'TwoPin' class name mean? is that just a historic artifact?
*/
class TwoPinDcMotor : public DcMotor
{

View File

@ -487,7 +487,7 @@ bit enableFan2WithAc;Turn on this fan when AC is on.
bit disableFan1WhenStopped;Inhibit operation of this fan while the engine is not running.
bit disableFan2WhenStopped;Inhibit operation of this fan while the engine is not running.
bit enableTrailingSparks;Enable secondary spark outputs that fire after the primary (rotaries, twin plug engines).
bit etb_use_two_wires;TLE7209 uses two-wire mode. TLE9201 and VNH2SP30 do NOT use two wire mode.
bit etb_use_two_wires;TLE7209 and L6205 use two-wire mode. TLE9201 and VNH2SP30 do NOT use two wire mode.
bit isDoubleSolenoidIdle;Subaru/BMW style where default valve position is somewhere in the middle. First solenoid opens it more while second can close it more than default position.
bit useEeprom
bit useCicPidForIdle;Switch between Industrial and Cic PID implementation