44#define SPI_POT_CONFIG SPI_CR1_BR_2 | SPI_CR1_BR_1 | SPI_CR1_CRCL
46#define SPI_POT_CONFIG SPI_CR1_BR_2 | SPI_CR1_BR_1 | SPI_CR1_DFF
59 return 256 - (int) ((resistanceWA - 52) * 256 / 10000);
65 spiSelect(driver->
spi);
66 int word = (17 +
channel) * 256 + value;
67 spiSend(driver->
spi, 1, &word);
68 spiUnselect(driver->
spi);
76 efiPrintf(
"Sending to potentiometer%d: %d for R=%d",
channel, value, resistance);
93 efiPrintf(
"digiPot spi disabled");
99 for (
int i = 0; i < DIGIPOT_COUNT; i++) {
106 if (driver == NULL) {
void initSpiCs(SPIConfig *spiConfig, brain_pin_e csPin)
void addConsoleActionII(const char *token, VoidIntInt callback)
Register a console command with two Integer parameters.
void addConsoleActionI(const char *token, VoidInt callback)
Register a console command with one Integer parameter.
Console package entry point header.
static constexpr engine_configuration_s * engineConfiguration
void unlockSpi(spi_device_e device)
SPIDriver * getSpiDevice(spi_device_e spiDevice)
void lockSpi(spi_device_e device)
bool isBrainPinValid(brain_pin_e brainPin)
void initPotentiometers()
void initPotentiometer(Mcp42010Driver *driver, SPIDriver *spi, brain_pin_e csPin)
void setPotResistance(Mcp42010Driver *driver, int channel, int resistance)
static int getPotStep(int resistanceWA)
static void setPotResistanceCommand(int index, int value)
static Mcp42010Driver potConfig[DIGIPOT_COUNT]
static void setPotValue1(int value)
static void sendToPot(Mcp42010Driver *driver, int channel, int value)
MCP42010 digital potentiometer driver.
Gpio digitalPotentiometerChipSelect[DIGIPOT_COUNT]
spi_device_e digitalPotentiometerSpiDevice