only:accelerometer refactoring & docs

This commit is contained in:
rusefillc 2024-02-12 09:55:04 -05:00
parent 9369776eb7
commit 30c903e9ca
8 changed files with 14 additions and 9 deletions

View File

@ -89,7 +89,7 @@ void setBoardConfigOverrides() {
// rev.D uses SPI1 pins for CAN2, but rev.E and later uses mega-module meaning SPI1 for SD-card // rev.D uses SPI1 pins for CAN2, but rev.E and later uses mega-module meaning SPI1 for SD-card
if (isMegaModuleRevision()) { if (isMegaModuleRevision()) {
setHellenSdCardSpi1(); setHellenSdCardSpi1();
configureHellenMegaAccCS2Pin(); hellenMegaAccelerometerPreInitCS2Pin();
setHellenMegaEnPin(); setHellenMegaEnPin();
} else { } else {
setHellenEnPin(Gpio::H144_OUT_IO3); setHellenEnPin(Gpio::H144_OUT_IO3);

View File

@ -138,7 +138,7 @@ void setBoardConfigOverrides() {
setHellenMegaEnPin(); setHellenMegaEnPin();
// rev G and newer uses hellen mega-module // rev G and newer uses hellen mega-module
setHellenSdCardSpi1(); setHellenSdCardSpi1();
configureHellenMegaAccCS2Pin(); hellenMegaAccelerometerPreInitCS2Pin();
} }
setDefaultHellenAtPullUps(); setDefaultHellenAtPullUps();

View File

@ -48,7 +48,7 @@ void setBoardConfigOverrides() {
setHellenVbatt(); setHellenVbatt();
setHellenSdCardSpi1(); setHellenSdCardSpi1();
configureHellenMegaAccCS2Pin(); hellenMegaAccelerometerPreInitCS2Pin();
configureHellenCanTerminator(); configureHellenCanTerminator();
setHellenCan(); setHellenCan();

View File

@ -52,7 +52,7 @@ void setBoardConfigOverrides() {
setHellenVbatt(); setHellenVbatt();
setHellenSdCardSpi1(); setHellenSdCardSpi1();
configureHellenMegaAccCS2Pin(); hellenMegaAccelerometerPreInitCS2Pin();
configureHellenCanTerminator(); configureHellenCanTerminator();
setDefaultHellenAtPullUps(); setDefaultHellenAtPullUps();

View File

@ -57,9 +57,14 @@ void hellenBoardStandBy() {
} }
/** /**
* dirty hack * We need to make sure that accelerometer device which physically exists does not conflict with SD card
* in case of shared SPI.
* We reply on specific order of execution here:
* 1) accelerometer pre-initialization into safe CS pin state
* 2) SD card initialization
* 3) accelerometer main initialization if accelerometer feature is desired
*/ */
void configureHellenMegaAccCS2Pin() { void hellenMegaAccelerometerPreInitCS2Pin() {
static bool initialized = false; static bool initialized = false;
static OutputPin cs2pin; static OutputPin cs2pin;
if (!initialized) { if (!initialized) {

View File

@ -54,7 +54,7 @@ void setBoardConfigOverrides() {
setHellenVbatt(); setHellenVbatt();
setHellenSdCardSpi1(); setHellenSdCardSpi1();
configureHellenMegaAccCS2Pin(); hellenMegaAccelerometerPreInitCS2Pin();
engineConfiguration->vrThreshold[0].pin = Gpio::MM100_OUT_PWM6; engineConfiguration->vrThreshold[0].pin = Gpio::MM100_OUT_PWM6;

View File

@ -17,7 +17,7 @@ void setHellenMegaEnPin();
void setHellenEnPin(Gpio pin); void setHellenEnPin(Gpio pin);
void setHellen64MegaEnPin(); void setHellen64MegaEnPin();
void hellenBoardStandBy(); void hellenBoardStandBy();
void configureHellenMegaAccCS2Pin(); void hellenMegaAccelerometerPreInitCS2Pin();
void configureHellenCanTerminator(); void configureHellenCanTerminator();
void setHellenCan(); void setHellenCan();

View File

@ -223,7 +223,7 @@ void initAccelerometer() {
return; return;
} }
/* Commented until we have configureHellenMegaAccCS2Pin() */ /* Commented until we have hellenMegaAccelerometerPreInitCS2Pin() */
#ifndef HW_HELLEN #ifndef HW_HELLEN
chipSelect.initPin("SPI Acc", engineConfiguration->accelerometerCsPin); chipSelect.initPin("SPI Acc", engineConfiguration->accelerometerCsPin);
#endif #endif