-
Notifications
You must be signed in to change notification settings - Fork 3
Tasks
- MCU Configuration
- Batteries Monitor Configuration
- External ADC Configuration
- System Initialization
- Batteries Monitor Measurements
- Temperature Measurements
- EPS-Beacon Current Measurement
- Main Bus Voltage Measurement
- Solar Panels Boosts Output Voltage Measurement
- MCU Internal Temperature Measurement
- Batteries Temperature Control Algorithm Execution
- Send Data to Beacon
- Energy Level Algorithm Execution
- Regulators Actuation
- Send Data to OBDH
- Solar Panels Currents Measurements
- Solar Panels Voltages Measurements
- Solar Panels Measurements Mean Calculation
- MPPT Algorithm Execution
- Clock
- 8 MHz master clock
- 32 MHz sub-master clock
- 16 MHz auxiliary clock
- Watchdog
- 1 second timeout
- UART
- UCA0 at 4800 bps for the beacon communication
- UCA2 at 115200 bps for debugging
- ADC
- 2.5 V External reference
- SPI
- UCA1
- Master mode
- 1 MHz
- I2C
- Slave mode
- Own address 0x48
- Timers
- TA0.0 1 second interrupt
- TA1.0 100 milliseconds interrupt
- TB0.1 - TB0.3 500 kHz PWM signal
- TA1.1 - TA1.2 50 kHz PWM signal
This task configures the batteries monitor registers via one-wire protocol. The configuration sets thresholds and the batteries initial state of charge. The registers are configured as follows:
- Protection Register
- Enable charge and discharge
- Protector Threshold Register
- Set the overvoltage threshold to ~4.26 V
- Status Register
- Clear all flags
- Control Register
- Set the undervoltage threshold to 2.60 V
- Overcurrent Thresholds Register
- Set the short-circuit current threshold to 15 A
- Set the charging overcurrent threshold to 5 A
- Set the discharging overcurrent threshold to 7.5 A
- Accumulated Current Register
- Set initial charge to 3 Ah (fully charged). This configuration is run only once during the satellite lifetime.
This task configures the external ADC that reads temperatures from several RTDs placed on the batteries and other strategic points in the satellite.
- MUX0 Register
- Turn off the burn-out current source
- Vbias Register
- Disable Vbias
- MUX1
- Turn internal reference generator always on
- Select external 0 reference
- Select normal operation mode
- SYS0 Register
- Set PGA gain to 1
- Set Data Ouput Rate to 40 SPS
- IDAC0 Register
- Set DOUT/D̅R̅D̅Y̅ to only Data Out mode
- Set excitation current sources magnitude to 100 µA
This task sets the initial state for the regulators and the LMC555. The regulators are enabled/disabled based on the energy level of the batteries, and the LMC555 is kept disabled.
In this task the EPS MCU reads the following variables from the Batteries Monitor:
- Batteries average current
- Batteries current
- Batteries monitor temperature
- Batteries voltages
- Batteries accumulated current
- Batteries monitor protection register
- Batteries monitor status register
- Batteries monitor cycle counter
- Batteries monitor remaining active absolute capacity register
- Batteries monitor remaining standby absolute capacity register
- Batteries monitor remaining active relative capacity register
- Batteries monitor remaining standby relative capacity register
In this task the EPS MCU configures the channel to be read and attaches the current sources to the channel to be read, then it sends the start conversion command and wait until the conversion is completed. Then it sends the read command and reads the temperature from the external ADC. This process is repeated for all the channels.
In this task the EPS MCU uses the internal ADC to read a voltage proportional to the EPS-Beacon regulator output current. The conversion is started by setting a bit in the MCU registers. The code then waits for the conversion to finish and reads the result from the memory.
In this task the EPS MCU uses the internal ADC to read a voltage proportional to the Main Bus voltage. The conversion is started by setting a bit in the MCU registers. The code then waits for the conversion to finish and reads the result from the memory.
In this task the EPS MCU uses the internal ADC to read a voltage proportional to the Solar Panels Boosts Output voltage. The conversion is started by setting a bit in the MCU registers. The code then waits for the conversion to finish and reads the result from the memory.
In this task the EPS MCU uses the internal ADC to read a voltage proportional to its own temperature, using the internal temperature sensor. The conversion is started by setting a bit in the MCU registers. The code then waits for the conversion to finish and reads the result from the memory.
In this task the EPS MCU generates a PWM signal with duty cycle proportional to a PI controller output, based on the temperature measurements. This PWM signal is used to control the drivers that deliver power to the batteries heaters.
In this task the EPS MCU packs the Beacon data into a FSP data packet and sends it to the Beacon MCU.
In this task the EPS MCU executes an algorithm to determine the energy level of the satellite, based on the remaining charge in the batteries.
In this task the EPS MCU turns on/off the OBDH and the payload regulator based on the energy level determined in the Energy Level Algorithm Execution. The enable/disable procedure is done by simply setting/clearing GPIO pins.
In this task the EPS MCU packets the full data packet into a FSP data packet and sends it to OBDH.
In this task the EPS MCU uses the internal ADC to read a voltage proportional to the solar panel current. To start a conversion, a bit is set in the MSP registers. The code waits until the conversion is done and reads the result from the memory. This procedure is repeated to each solar panel.
In this task the EPS MCU uses the internal ADC to read a voltage proportional to a solar panel pair voltage. To start a conversion, a bit is set in the MSP registers. The code waits until the conversion is done and reads the result from the memory. This procedure is repeated to each solar panel pair.
After ten measurements are done, the EPS MCU calculates the mean of the measurements, to acquire a better value.
The P&O algorithm will determine if the voltage should be increased or decreased and will actuate on the Boosts PWM accordingly. If the voltage needs to be increased, the duty cycle is decreased. Similarly, if the voltage needs to decreased, the duty cycle is increased.