HardFOC Flux V1 HAL
Unified HAL API for the HardFOC Flux valve-control platform (ESP32-S3)
Loading...
Searching...
No Matches
Enumerations | Functions | Variables
flux::board Namespace Reference

Enumerations

enum class  SpiBus : uint8_t { Valve = 0 , Pressure = 1 }
 Logical SPI buses on Flux V1 (binding slot index). More...
 

Functions

constexpr bool IsInputPin (HfFunctionalGpioPin pin) noexcept
 True when pin is in kInputPins.
 
constexpr bool IsValveEnablePin (HfFunctionalGpioPin pin) noexcept
 True when pin is in kValveEnablePins.
 

Variables

constexpr uint8_t kValveSpiController = 2
 ESP32-S3 SPI3_HOST.
 
constexpr bool kValveSpiUseIomux = false
 GPIO matrix.
 
constexpr uint8_t kPressureSpiController = 1
 ESP32-S3 SPI2_HOST.
 
constexpr bool kPressureSpiUseIomux = true
 IO MUX.
 
constexpr uint32_t kSpiTimeoutMs = 1000
 Per-transfer timeout, both buses.
 
constexpr uint32_t kMax22200SpiHz = 1'000'000
 
constexpr uint8_t kMax22200SpiMode = 0
 
constexpr uint32_t kTle92466SpiHz = 1'000'000
 
constexpr uint8_t kTle92466SpiMode = 1
 
constexpr uint32_t kAds7952SpiHz = 4'000'000
 
constexpr uint8_t kAds7952SpiMode = 0
 
constexpr uint32_t kCanBitrate = 500'000
 TWAI nominal bit rate (bit/s)
 
constexpr uint8_t kStatusLedChannel = 0
 RMT channel of the WS2812 data line.
 
constexpr uint16_t kStatusLedCount = 1
 LEDs on the strip.
 
constexpr HfFunctionalGpioPin kInputPins []
 Pins that are inputs on Flux V1: the open-drain fault outputs of the two valve drivers.
 
constexpr HfFunctionalGpioPin kValveEnablePins []
 The valve-bank enable outputs (MAX22200 ENABLE, TLE92466ED EN), active high.
 

Enumeration Type Documentation

◆ SpiBus

enum class flux::board::SpiBus : uint8_t
strong

Logical SPI buses on Flux V1 (binding slot index).

Enumerator
Valve 

MAX22200 + TLE92466ED (pin map: SPI2_*)

Pressure 

ADS7952 pressure ADC, dedicated (pin map: SPI3_*)

Function Documentation

◆ IsInputPin()

constexpr bool flux::board::IsInputPin ( HfFunctionalGpioPin  pin)
constexprnoexcept

True when pin is in kInputPins.

Here is the caller graph for this function:

◆ IsValveEnablePin()

constexpr bool flux::board::IsValveEnablePin ( HfFunctionalGpioPin  pin)
constexprnoexcept

True when pin is in kValveEnablePins.

Here is the caller graph for this function:

Variable Documentation

◆ kAds7952SpiHz

constexpr uint32_t flux::board::kAds7952SpiHz = 4'000'000
inlineconstexpr

◆ kAds7952SpiMode

constexpr uint8_t flux::board::kAds7952SpiMode = 0
inlineconstexpr

◆ kCanBitrate

constexpr uint32_t flux::board::kCanBitrate = 500'000
inlineconstexpr

TWAI nominal bit rate (bit/s)

◆ kInputPins

constexpr HfFunctionalGpioPin flux::board::kInputPins[]
inlineconstexpr
Initial value:
= {
HfFunctionalGpioPin::MAX22200_FAULT_N,
HfFunctionalGpioPin::TLE92466_FAULT_N,
}

Pins that are inputs on Flux V1: the open-drain fault outputs of the two valve drivers.

GpioManager creates them as inputs from the first instruction, so the MCU never drives a chip's FAULT_N line, not even for the moment between pin creation and the valve manager's bring-up.

◆ kMax22200SpiHz

constexpr uint32_t flux::board::kMax22200SpiHz = 1'000'000
inlineconstexpr

◆ kMax22200SpiMode

constexpr uint8_t flux::board::kMax22200SpiMode = 0
inlineconstexpr

◆ kPressureSpiController

constexpr uint8_t flux::board::kPressureSpiController = 1
inlineconstexpr

ESP32-S3 SPI2_HOST.

◆ kPressureSpiUseIomux

constexpr bool flux::board::kPressureSpiUseIomux = true
inlineconstexpr

IO MUX.

◆ kSpiTimeoutMs

constexpr uint32_t flux::board::kSpiTimeoutMs = 1000
inlineconstexpr

Per-transfer timeout, both buses.

◆ kStatusLedChannel

constexpr uint8_t flux::board::kStatusLedChannel = 0
inlineconstexpr

RMT channel of the WS2812 data line.

◆ kStatusLedCount

constexpr uint16_t flux::board::kStatusLedCount = 1
inlineconstexpr

LEDs on the strip.

◆ kTle92466SpiHz

constexpr uint32_t flux::board::kTle92466SpiHz = 1'000'000
inlineconstexpr

◆ kTle92466SpiMode

constexpr uint8_t flux::board::kTle92466SpiMode = 1
inlineconstexpr

◆ kValveEnablePins

constexpr HfFunctionalGpioPin flux::board::kValveEnablePins[]
inlineconstexpr
Initial value:
= {
HfFunctionalGpioPin::MAX22200_ENABLE,
HfFunctionalGpioPin::TLE92466_EN,
}

The valve-bank enable outputs (MAX22200 ENABLE, TLE92466ED EN), active high.

Driving either low de-energises its whole bank in hardware, without SPI. GpioManager creates them driven inactive (low), so both banks are off until the valve manager's bring-up raises them; ValveManager::DropEnablePins() drives them low again.

◆ kValveSpiController

constexpr uint8_t flux::board::kValveSpiController = 2
inlineconstexpr

ESP32-S3 SPI3_HOST.

◆ kValveSpiUseIomux

constexpr bool flux::board::kValveSpiUseIomux = false
inlineconstexpr

GPIO matrix.