better error handling for invalid SPI settings
This commit is contained in:
parent
3ff5581e77
commit
ddb0fc6510
|
@ -2058,6 +2058,19 @@ typedef enum {
|
|||
CUSTOM_ERR_ARRAY_REMOVE_ERROR = 6699,
|
||||
CUSTOM_ERR_INVALID_INPUT_ICU_PIN = 6700,
|
||||
|
||||
CUSTOM_CJ125_0 = 6700,
|
||||
CUSTOM_CJ125_1 = 6701,
|
||||
CUSTOM_CJ125_2 = 6702,
|
||||
CUSTOM_ERR_6703 = 6703,
|
||||
CUSTOM_ERR_6704 = 6704,
|
||||
CUSTOM_TLE8888 = 6705,
|
||||
CUSTOM_ERR_6706 = 6706,
|
||||
CUSTOM_ERR_6707 = 6707,
|
||||
CUSTOM_ERR_6708 = 6708,
|
||||
CUSTOM_ERR_6709 = 6709,
|
||||
CUSTOM_ERR_6710 = 6710,
|
||||
|
||||
|
||||
CUSTOM_ERR_TRIGGER_SYNC = 9000,
|
||||
CUSTOM_OBD_TRIGGER_SHAPE = 9001,
|
||||
/**
|
||||
|
|
|
@ -108,8 +108,13 @@ void initPotentiometers(Logging *sharedLogger DECLARE_ENGINE_PARAMETER_SUFFIX) {
|
|||
continue;
|
||||
}
|
||||
|
||||
initPotentiometer(&potConfig[i], getSpiDevice(CONFIGB(digitalPotentiometerSpiDevice)),
|
||||
csPin);
|
||||
SPIDriver *driver = getSpiDevice(CONFIGB(digitalPotentiometerSpiDevice));
|
||||
if (driver == NULL) {
|
||||
// error already reported
|
||||
return;
|
||||
}
|
||||
|
||||
initPotentiometer(&potConfig[i], driver, csPin);
|
||||
}
|
||||
|
||||
addConsoleActionII("pot", setPotResistanceCommand);
|
||||
|
|
|
@ -387,6 +387,10 @@ void initHip9011(Logging *sharedLogger) {
|
|||
|
||||
#if EFI_PROD_CODE
|
||||
driver = getSpiDevice(engineConfiguration->hip9011SpiDevice);
|
||||
if (driver == NULL) {
|
||||
// error already reported
|
||||
return;
|
||||
}
|
||||
|
||||
hipSpiCfg.ssport = getHwPort("hip", CONFIGB(hip9011CsPin));
|
||||
hipSpiCfg.sspad = getHwPin("hip", CONFIGB(hip9011CsPin));
|
||||
|
|
|
@ -80,6 +80,10 @@ void initAccelerometer(DECLARE_ENGINE_PARAMETER_SIGNATURE) {
|
|||
return; // temporary
|
||||
#if HAL_USE_SPI || defined(__DOXYGEN__)
|
||||
driver = getSpiDevice(engineConfiguration->accelerometerSpiDevice);
|
||||
if (driver == NULL) {
|
||||
// error already reported
|
||||
return;
|
||||
}
|
||||
|
||||
turnOnSpi(engineConfiguration->accelerometerSpiDevice);
|
||||
spiStart(driver, &accelerometerCfg);
|
||||
|
|
|
@ -42,6 +42,10 @@ void initTle8888(DECLARE_ENGINE_PARAMETER_SIGNATURE) {
|
|||
spiConfig.cr1 += getSpiPrescaler(_150KHz, engineConfiguration->tle8888spiDevice);
|
||||
|
||||
driver = getSpiDevice(engineConfiguration->tle8888spiDevice);
|
||||
if (driver == NULL) {
|
||||
// error already reported
|
||||
return;
|
||||
}
|
||||
// todo: reuse initSpiCs method?
|
||||
spiConfig.ssport = getHwPort("tle8888", engineConfiguration->tle8888_cs);
|
||||
spiConfig.sspad = getHwPin("tle8888", engineConfiguration->tle8888_cs);
|
||||
|
|
|
@ -111,6 +111,9 @@ static void initSpiModules(board_configuration_s *boardConfiguration) {
|
|||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @return NULL if SPI device not specified
|
||||
*/
|
||||
SPIDriver * getSpiDevice(spi_device_e spiDevice) {
|
||||
if (spiDevice == SPI_NONE) {
|
||||
return NULL;
|
||||
|
|
|
@ -142,11 +142,15 @@ static void egtRead(void) {
|
|||
}
|
||||
|
||||
void initMax31855(Logging *sharedLogger, spi_device_e device, egt_cs_array_t max31855_cs) {
|
||||
SPIDriver *drv = getSpiDevice(device);
|
||||
driver = getSpiDevice(device);
|
||||
if (driver == NULL) {
|
||||
// error already reported
|
||||
return;
|
||||
}
|
||||
|
||||
logger = sharedLogger;
|
||||
|
||||
// todo:spi device is now enabled separately - should probably be enabled here
|
||||
driver = drv;
|
||||
|
||||
addConsoleAction("egtinfo", (Void) showEgtInfo);
|
||||
|
||||
|
|
|
@ -338,6 +338,10 @@ static void cjStartSpi(DECLARE_ENGINE_PARAMETER_SIGNATURE) {
|
|||
cj125spicfg.ssport = getHwPort("cj125", CONFIGB(cj125CsPin));
|
||||
cj125spicfg.sspad = getHwPin("cj125", CONFIGB(cj125CsPin));
|
||||
driver = getSpiDevice(engineConfiguration->cj125SpiDevice);
|
||||
if (driver == NULL) {
|
||||
// error already reported
|
||||
return;
|
||||
}
|
||||
scheduleMsg(logger, "cj125: Starting SPI driver");
|
||||
spiStart(driver, &cj125spicfg);
|
||||
}
|
||||
|
@ -540,16 +544,22 @@ void initCJ125(Logging *sharedLogger DECLARE_ENGINE_PARAMETER_SUFFIX) {
|
|||
|
||||
if (CONFIG(cj125ur) == EFI_ADC_NONE || CONFIG(cj125ua) == EFI_ADC_NONE) {
|
||||
scheduleMsg(logger, "cj125 init error! cj125ur and cj125ua are required.");
|
||||
warning(CUSTOM_CJ125_0, "cj ur ua");
|
||||
return;
|
||||
}
|
||||
|
||||
if (CONFIGB(wboHeaterPin) == GPIO_UNASSIGNED) {
|
||||
scheduleMsg(logger, "cj125 init error! wboHeaterPin is required.");
|
||||
warning(CUSTOM_CJ125_1, "cj heater");
|
||||
return;
|
||||
}
|
||||
|
||||
globalInstance.cjInitPid(PASS_ENGINE_PARAMETER_SIGNATURE);
|
||||
cjStartSpi(PASS_ENGINE_PARAMETER_SIGNATURE);
|
||||
if (driver == NULL) {
|
||||
// error already reported
|
||||
return;
|
||||
}
|
||||
scheduleMsg(logger, "cj125: Starting heater control");
|
||||
globalInstance.StartHeaterControl(applyPinState PASS_ENGINE_PARAMETER_SUFFIX);
|
||||
cjStart(PASS_ENGINE_PARAMETER_SIGNATURE);
|
||||
|
|
Loading…
Reference in New Issue