GOMspace NanoPower P31u API¶
Enums
Functions
-
KEPSStatus
k_eps_init
(KEPSConf config)¶ Initialize the interface with the EPS.
- Return
- KEPSStatus EPS_OK if OK, error otherwise
- Parameters
config
: Interface configuration values
-
void
k_eps_terminate
(void)¶ Terminate the EPS interface.
-
KEPSStatus
k_eps_ping
(void)¶ Ping the EPS.
- Return
- KEPSStatus EPS_OK if OK, error otherwise
-
KEPSStatus
k_eps_reset
(void)¶ Hard reset the EPS.
- Note
- It will wait 400ms before re-powering
- Return
- KEPSStatus EPS_OK if OK, error otherwise
-
KEPSStatus
k_eps_reboot
(void)¶ Reboot the EPS (soft reset)
- Note
- Output power will not be affected
- Return
- KEPSStatus EPS_OK if OK, error otherwise
-
KEPSStatus
k_eps_configure_system
(const eps_system_config_t *config)¶ Configure the NanoPower’s system.
- Return
- KEPSStatus EPS_OK if OK, error otherwise
- Parameters
config
: Pointer to system configuration values
-
KEPSStatus
k_eps_configure_battery
(const eps_battery_config_t *config)¶ Configure the NanoPower’s battery.
- Note
- Configuration must be saved using k_eps_save_battery_config between 1 and 30 seconds after calling this function, otherwise the changes will be erased.
- Return
- KEPSStatus EPS_OK if OK, error otherwise
- Parameters
config
: Pointer to battery configuration values
-
KEPSStatus
k_eps_save_battery_config
(void)¶ Save the current battery configuration to EEPROM.
- Return
- KEPSStatus EPS_OK if OK, error otherwise
-
KEPSStatus
k_eps_set_output
(uint8_t channel_mask)¶ Turn on/off the NanoPower outputs.
- Note
- Cannot be used to control heaters
- Return
- KEPSStatus EPS_OK if OK, error otherwise
- Parameters
channel_mask
: Bitmask for output channels (MSB [X X 3.3V 3.3V 3.3V 5V 5V 5V] LSB). 0 = Off, 1 = On
-
KEPSStatus
k_eps_set_single_output
(uint8_t channel, uint8_t value, int16_t delay)¶ Turn on/off a single output.
- Return
- KEPSStatus EPS_OK if OK, error otherwise
- Parameters
channel
: Output to control. 0-5 = Output channels, 6 = BP4 heater, 7 = BP4 switchvalue
: Desired output value. 0 = Off, 1 = Ondelay
: Amount of time, in seconds, to wait before changing the output’s value
-
KEPSStatus
k_eps_set_input_value
(uint16_t in1_voltage, uint16_t in2_voltage, uint16_t in3_voltage)¶ Set photovoltaic input voltages.
- Note
- Only used when eps_hk_t.ppt_mode is
Fixed
- Return
- KEPSStatus EPS_OK if OK, error otherwise
- Parameters
in1_voltage
: Voltage value for PV1 [mV]in2_voltage
: Voltage value for PV2 [mV]in3_voltage
: Voltage value for PV3 [mV]
-
KEPSStatus
k_eps_set_input_mode
(uint8_t mode)¶ Set photovoltaic inputs’ power-point tracking mode.
- Return
- KEPSStatus EPS_OK if OK, error otherwise
- Parameters
mode
: PPT mode. 0 = hardware default power points, 1 = maximum power-point tracking, 2 = software-defined power points (set with k_eps_set_input_value)
-
KEPSStatus
k_eps_set_heater
(uint8_t cmd, uint8_t heater, uint8_t mode)¶ Control heaters.
- Return
- KEPSStatus EPS_OK if OK, error otherwise
- Parameters
cmd
: Heater control command (should always be0
for now)heater
: Heater to controlmode
: State to set heater to. 0 = Off, 1 = On
-
KEPSStatus
k_eps_reset_system_config
(void)¶ Reset system configuration to default values.
- Return
- KEPSStatus EPS_OK if OK, error otherwise
-
KEPSStatus
k_eps_reset_battery_config
(void)¶ Reset battery configuration to default values.
- Note
- Values must be saved using k_eps_save_battery_config between 1 and 30 seconds after calling this function, otherwise the changes will be erased
- Return
- KEPSStatus EPS_OK if OK, error otherwise
-
KEPSStatus
k_eps_reset_counters
(void)¶ Reset system counters (boot count, watchdog reboot counts, etc)
- Return
- KEPSStatus EPS_OK if OK, error otherwise
-
KEPSStatus
k_eps_get_housekeeping
(eps_hk_t *buff)¶ Get system housekeeping data.
- Return
- KEPSStatus EPS_OK if OK, error otherwise
- Parameters
buff
: Pointer to storage structure
-
KEPSStatus
k_eps_get_system_config
(eps_system_config_t *buff)¶ Get system configuration values.
- Return
- KEPSStatus EPS_OK if OK, error otherwise
- Parameters
buff
: Pointer to storage structure
-
KEPSStatus
k_eps_get_battery_config
(eps_battery_config_t *buff)¶ Get battery configuration values.
- Return
- KEPSStatus EPS_OK if OK, error otherwise
- Parameters
buff
: Pointer to storage structure
-
KEPSStatus
k_eps_get_heater
(uint8_t *bp4, uint8_t *onboard)¶ Get heaters’ statuses.
- Return
- KEPSStatus EPS_OK if OK, error otherwise
- Parameters
bp4
: Status of BP4 heater. 0 = Off, 1 = Ononboard
: Status of onboard heater. 0 = Off, 1 = On
-
KEPSStatus
k_eps_watchdog_kick
(void)¶ Kick the EPS’s watchdog once.
- Return
- KEPSStatus
EPS_OK
if OK, error otherwise
-
KEPSStatus
k_eps_watchdog_start
(uint32_t interval)¶ Start a thread to kick the EPS’s watchdog.
- Note
- The watchdog kick requires a write to EEPROM, which has a limited lifespan. It is recommended that the watchdog interval be very large (ex. 48 hours)
- Return
- KEPSStatus
EPS_OK
if OK, error otherwise - Parameters
interval
: Time to sleep in between kicks [seconds]
-
KEPSStatus
k_eps_watchdog_stop
(void)¶ Stop the watchdog thread.
- Return
- KEPSStatus
EPS_OK
if OK, error otherwise
-
KEPSStatus
k_eps_passthrough
(const uint8_t *tx, int tx_len, uint8_t *rx, int rx_len)¶ Pass a command packet directly through to the EPS.
Useful for executing commands which have not been implemented in this API
- Return
- KEPSStatus EPS_OK if OK, error otherwise
- Parameters
tx
: Pointer to command packet to sendtx_len
: Size of command packetrx
: Pointer to storage for command responserx_len
: Expected length of command response
-
KEPSStatus
kprv_eps_transfer
(const uint8_t *tx, int tx_len, uint8_t *rx, int rx_len)¶ Write command to EPS and read back a response.
- Return
- KEPSStatus EPS_OK if OK, error otherwise
- Parameters
tx
: Pointer to command packet to sendtx_len
: Size of command packetrx
: Pointer to storage for command responserx_len
: Expected length of command response
-
struct
KEPSConf
¶ - #include <gomspace-p31u-api.h>
Kubos -> EPS Configuration.
-
struct
eps_resp_header
¶ - #include <gomspace-p31u-api.h>
Response header structure.
-
struct
eps_system_config_t
¶ - #include <gomspace-p31u-api.h>
System configuration.
Public Members
-
uint8_t
ppt_mode
¶ Mode for power-point tracking [1 = Automatic maximum, 2 = Fixed].
-
uint8_t
battheater_mode
¶ Mode for battery heater activation [0 = Manual, 1 = Auto].
-
int8_t
battheater_low
¶ Turn heater on at [degC] (auto mode)
-
int8_t
battheater_high
¶ Turn heater off at [degC] (auto mode)
-
uint8_t
output_normal_value
[8]¶ Normal mode output values [0 = Off, 1 = On].
-
uint8_t
output_safe_value
[8]¶ Safe mode output values [0 = Off, 1 = On].
-
uint16_t
output_initial_on_delay
[8]¶ Default output power on delays [seconds].
-
uint16_t
output_initial_off_delay
[8]¶ Default output power off delays [seconds].
-
uint16_t
vboost
[3]¶ Fixed PPT point for boost converters [mV].
-
uint8_t
-
struct
eps_battery_config_t
¶ - #include <gomspace-p31u-api.h>
Battery mode configuration (Config2)
Public Members
-
uint16_t
batt_maxvoltage
¶ Voltage threshold to be in FULL mode.
-
uint16_t
batt_safevoltage
¶ Voltage threshold to trigger NORMAL -> SAFE mode.
-
uint16_t
batt_criticalvoltage
¶ Lowest allowable voltage (below -> CRITICAL mode)
-
uint16_t
batt_normalvoltage
¶ Voltage threshold to trigger SAFE -> NORMAL mode.
-
uint32_t
reserved1
[2]¶ Reserved.
-
uint8_t
reserved2
[4]¶ Reserved.
-
uint16_t
-
struct
eps_hk_t
¶ - #include <gomspace-p31u-api.h>
P31u-8 housekeeping.
NOTE that some changes have been made from the GomSpace datasheet due to the complier mis-matches the bytes in the data structure 1) Changed counter_wdt_gnd and counter_boot from uint32_t to uint16_t 2) The attribute((packed)) attribute is removed
The data sizes at other parts of this API are changed accordingly
Public Members
-
uint16_t
vboost
[3]¶ Voltage of input voltage boost converters [mV].
-
uint16_t
vbatt
¶ Voltage of battery [mV].
-
uint16_t
curin
[3]¶ Input currents [mA].
-
uint16_t
cursun
¶ Current from boost converters [mA].
-
uint16_t
cursys
¶ Current out of battery [mA].
-
uint16_t
reserved1
¶ Reserved for future use.
-
uint16_t
curout
[6]¶ Output currents [mA].
-
uint8_t
output
[8]¶ Output statuses [0 = Off, 1 = On].
-
uint16_t
output_on_delta
[8]¶ Time until output power on [seconds].
-
uint16_t
output_off_delta
[8]¶ Time until output power off [seconds].
-
uint16_t
latchup
[6]¶ Number of output latch-up events.
-
uint32_t
wdt_i2c_time_left
¶ Time left for I2C watchdog [seconds].
-
uint32_t
wdt_gnd_time_left
¶ Time left for dedicated watchdog [seconds].
-
uint8_t
wdt_csp_pings_left
[2]¶ Pings left for CSP watchdog.
-
uint32_t
counter_wdt_i2c
¶ Number of I2C watchdog reboots.
-
uint16_t
counter_wdt_gnd
¶ Number of dedicated watchdog reboots.
-
uint32_t
counter_wdt_csp
[2]¶ Number of CSP watchdog reboots.
-
uint16_t
counter_boot
¶ Number of EPS reboots.
-
int16_t
temp
[6]¶ Temperatures [degC] [0 = Temp1, Temp2, Temp3, Temp4, BP4a, BP4b].
-
uint8_t
boot_cause
¶ Cause of last EPS reset.
-
uint8_t
batt_mode
¶ Mode for battery [0 = Initial, 1 = Critical, 2 = Safe, 3 = Normal, 4 = Full].
-
uint8_t
ppt_mode
¶ Mode of power-point tracker [1 = Automatic maximum, 2 = Fixed].
-
uint16_t
reserved2
¶ Reserved.
-
uint16_t