rusEFI
The most advanced open source ECU
|
HIP9011/TPIC8101 driver.
Jan 2017 status: 1) seems to be kind of working - reacts to parameter changes and does produce variable output 2) only one (first) channel is currently used 3) engine control does not yet react to knock since very little actual testing - no engine runs with proven knock yet
http://rusefi.com/forum/viewtopic.php?f=4&t=400 http://rusefi.com/forum/viewtopic.php?f=5&t=778
pin1 VDD pin2 GND
pin8 Chip Select - CS pin11 Slave Data Out - MISO pin12 Slave Data In - MOSI pin13 SPI clock - SCLK
http://www.ti.com/lit/ds/symlink/tpic8101.pdf http://www.intersil.com/content/dam/Intersil/documents/hip9/hip9011.pdf http://www.intersil.com/content/dam/Intersil/documents/an97/an9770.pdf http://e2e.ti.com/cfs-file/__key/telligent-evolution-components-attachments/00-26-01-00-00-42-36-40/TPIC8101-Training.pdf
max SPI frequency: 5MHz max
Definition in file hip9011.cpp.
Functions | |
static void | hip_addconsoleActions () |
static int | hip_wake_driver () |
static void | startIntegration (HIP9011 *hip) |
static void | endIntegration (HIP9011 *hip) |
void | onStartKnockSampling (uint8_t, float, uint8_t) |
void | hip9011_onFireEvent (uint8_t cylinderNumber, efitick_t nowNt) |
void | hipAdcCallback (float volts) |
static int | hip_testAdvMode () |
static int | hip_init () |
static | THD_WORKING_AREA (hipThreadStack, UTILITY_THREAD_STACK_SIZE) |
static msg_t | hipThread (void *arg) |
void | stopHip9011_pins () |
void | startHip9011_pins () |
void | initHip9011 () |
static void | showHipInfo () |
static void | setPrescaler (int value) |
static void | setHipGain (float value) |
Variables | |
static NamedOutputPin | intHold (PROTOCOL_HIP_NAME) |
static NamedOutputPin | Cs (PROTOCOL_HIP_NAME) |
static semaphore_t | wake |
static Hip9011Hardware | hardware |
static float | normalizedValue [HIP_INPUT_CHANNELS] |
static float | normalizedValueMax [HIP_INPUT_CHANNELS] |
static SPIDriver * | spi |
static SPIConfig | hipSpiCfg |
static const char * | hip_state_names [] |
|
static |
isIntegrating could be 'false' if an SPI command was pending thus we did not integrate during this engine cycle
Definition at line 246 of file hip9011.cpp.
void hip9011_onFireEvent | ( | uint8_t | cylinderNumber, |
efitick_t | nowNt | ||
) |
Ignition callback used to start HIP integration and schedule finish
Definition at line 283 of file hip9011.cpp.
Referenced by Engine::onSparkFireKnockSense().
|
static |
Definition at line 689 of file hip9011.cpp.
Referenced by initHip9011().
|
static |
Definition at line 374 of file hip9011.cpp.
Referenced by hipThread().
|
static |
Definition at line 340 of file hip9011.cpp.
Referenced by hip_init().
|
static |
chSemSignalI above requires rescheduling interrupt handlers have implicit rescheduling
Definition at line 213 of file hip9011.cpp.
Referenced by endIntegration(), hip9011_onFireEvent(), and hipAdcCallback().
void hipAdcCallback | ( | float | volts | ) |
Definition at line 322 of file hip9011.cpp.
Referenced by onFastAdcComplete().
|
static |
Definition at line 431 of file hip9011.cpp.
Referenced by initHip9011().
void initHip9011 | ( | ) |
Definition at line 564 of file hip9011.cpp.
Referenced by initHardware().
void onStartKnockSampling | ( | uint8_t | , |
float | , | ||
uint8_t | |||
) |
Definition at line 267 of file hip9011.cpp.
|
static |
Definition at line 684 of file hip9011.cpp.
Referenced by hip_addconsoleActions().
|
static |
Definition at line 680 of file hip9011.cpp.
Referenced by hip_addconsoleActions().
|
static |
Definition at line 599 of file hip9011.cpp.
Referenced by hip_addconsoleActions(), and setHipGain().
void startHip9011_pins | ( | ) |
Definition at line 547 of file hip9011.cpp.
Referenced by applyNewHardwareSettings(), and initHip9011().
|
static |
SPI communication is only allowed while not integrating, so we postpone the exchange until we are done integrating
Definition at line 231 of file hip9011.cpp.
void stopHip9011_pins | ( | ) |
Definition at line 538 of file hip9011.cpp.
Referenced by applyNewHardwareSettings().
|
static |
|
static |
Referenced by hipThread(), startHip9011_pins(), and stopHip9011_pins().
Definition at line 81 of file hip9011.cpp.
Referenced by HIP9011::HIP9011(), hip9011_onFireEvent(), StepperMotorBase::initialize(), and StepperMotor::initialize().
|
static |
Definition at line 590 of file hip9011.cpp.
Referenced by showHipInfo().
|
static |
Definition at line 97 of file hip9011.cpp.
Referenced by startHip9011_pins(), and stopHip9011_pins().
|
static |
Referenced by endIntegration(), startHip9011_pins(), startIntegration(), and stopHip9011_pins().
|
static |
Definition at line 86 of file hip9011.cpp.
Referenced by hipThread(), and showHipInfo().
|
static |
Definition at line 87 of file hip9011.cpp.
Referenced by hipThread(), and showHipInfo().
|
static |
Definition at line 95 of file hip9011.cpp.
Referenced by hipThread(), initPotentiometer(), nm_bus_init(), spi_lld_master_callback(), spi_lld_slave_callback(), startHip9011_pins(), and stopHip9011_pins().
|
static |
Definition at line 79 of file hip9011.cpp.
Referenced by hip_wake_driver(), hipThread(), and initHip9011().