Rail

API Documentation: [cpp] [python] [.NET] [LabVIEW]

The Rail entity provides power control to connected devices on some modules. Check the module datasheet to determine if the module has this capability.

the Rail entity controls power provided to downstream devices, it has the ability to enable and disable power, can read voltage on the rail, and provides current consumption information on some modules. There are additional capabilities that certain modules provide which enhance basic power delivery through Kelvin sensing, or by bringing online separate power management functionality.

Certain modules may provide more than one power rail. These are independently controlled and can be accessed via the entity index.


Rail 0 on the MTM-Load-1 module is powerful (no pun intended); it allows other devices and peripherals to provide power to the MTM-Load-1 module where it is precisely loaded. The rail is a software-adjustable constant current sink. This rail is accessed through a BrainStem rail class entity. The MTM-Load-1 module implements a subset of the BrainStem rail class for the load rail.

Enable

All three rails can be switched on or off through using the API

stem.rail[index].setEnable(state) [cpp] [python] [NET] [LabVIEW]

Rail Operational Mode

RAIL can be configured to use two different regulation stages: linear (LDO) or switch-mode power supply (SMPS)

stem.rail[index].setOperationalMode(mode) [cpp] [python] [NET] [LabVIEW]

stem.rail[index].getOperationalMode(mode) [cpp] [python] [NET] [LabVIEW]

Value

Define

Hardware Mode - Bits [0-3]

0

railOperationalModeAuto_Value

1

railOperationalModeLinear_Value

2

railOperationalModeSwitcher_Value

3

railOperationalModeSwitcherLinear_Value

Operational Mode - Bits [4-7]

0

railOperationalConstantCurrent_Value

Operational State

Auto configuration chooses the switch-mode power supply if an input voltage greater than 7.25V is applied, and the linear regulator otherwise. The API can be used to read the actual operational state

stem.rail[index].getOperationalState(state) [cpp] [python] [NET] [LabVIEW]

Bits

RAIL Operational State Description

0

Initializing (railOperationalState_Initializing)

1

Enabled (railOperationalState_Enabled)

2

Fault (railOperationalState_Fault)

3-15

Reserved

8-15

Hardware Configuration (railOperationalState_HardwareConfiguration)

16

Overvoltage Fault “OV” (railOperationalStateOverVoltageFault)

17

Undervoltage Fault “UV” (railOperationalStateUnderVoltageFault)

18

Overcurrent Fault “OC” (railOperationalStateOverCurrentFault)

19

Overpower Fault “OP” (railOperationalStateOverPowerFault)

20

Reverse Polarity Fault “RV”(railOperationalStateReversePolarityFault)

21

Overtemperature Fault “OT” (railOperationalStateOverTemperatureFault)

22-23

Reserved

24-31

Operating Mode (railOperationalStateOperatingMode)

Rail Temperature

The printed circuit board (PCB) temperature can be monitored at the 5.0V rail (RAIL0) linear regulation stage. Reading this value is possible through the API

stem.rail[index].getTemperature() [cpp] [python] [NET] [LabVIEW]

Temperature monitoring is also used internally to prevent the power regulation stage from overheating and self-preserving the power stage. If an overtemperature condition occurs, then the MTM-IO-Serial module will disable the linear regulator until safe operating temperatures are reached.

Rail Current Setting

The current setpoint for the rail can be configured in software from 0A to 10A. Setting values outside the allowable range will return an error (aErrRange 13). The rail will attempt to maintain the specified current through all input voltage variations once the rail is enabled with the operational mode set to constant current.

stem.rail[index].setCurrentSetpoint(microvolts) [cpp] [python] [NET] [LabVIEW]

stem.rail[index].getCurrentSetpoint(microvolts) [cpp] [python] [NET] [LabVIEW]

Rail Current Limit

The current limit for the rail can be configured in software from 0A to 12A. The rail will operate normally if the measured current is below the specified current. If the limit is crossed, the load will automatically disable the rail and set the corresponding overcurrent fault bit in the Operational State variable. If the current limit is below the current setpoint the rail will still disable itself when the current limit is exceeded

stem.rail[index].setCurrentLimit(microamps) [cpp] [python] [NET] [LabVIEW]

Rail Voltage Min/Max Setting

The voltage limits for the rail can be configured in software from -0.7V to 35V. The rail will operate normally between the minimum and maximum voltage limits. If the upper or lower limit is crossed, the load will automatically disable the rail and set the corresponding over/under voltage fault bit in the Operational State variable.

stem.rail[index].setVoltageMinLimit(microvolts) [cpp] [python] [NET] [LabVIEW]

stem.rail[index].setVoltageMaxLimit(microvolts) [cpp] [python] [NET] [LabVIEW]

Rail Power Limit Setting

The power limit for the rail can be configured in software from 0W to 150W. The rail will operate normally below this limit. If the limit is crossed, the load will automatically disable the rail and set the corresponding overpower fault bit in the Operational State variable.

stem.rail[index].setPowerLimit(milliwatts) [cpp] [python] [NET] [LabVIEW]