-
Notifications
You must be signed in to change notification settings - Fork 4
New OBDH Requirements
Legend: - M: Must Have - S: Should Have - C: Could Have - W: Won't have
1.1 The Boot must be the first routine when the OBDH is turned on.
1.2 The Boot shall have the following structure, in execution order:
- Setup Hardware.
- Update the reset counter and reset cause.
- Restore the time counter.
These structures can be visualized here.
1.3.1 The setup Hardware routine shall be able to configure and incialize all the hardware modules of the OBDH microcontroler.
1.3.2 The setup hardware shall configure and initialize the following modules, in sequence :
- Internal Watchdog Timer
- External Watchdog Timer
- Clock
- Serial Interface
- ADC Module
1.3.3 The internal and external watchdog timer should have the following behavior: click here
1.3.4 The Clock of the system should have the following behavior: click here
1.3.5 The Serial interface should have the following behavior: click here
1.3.6 The ADC module should have the following behavior: click here
1.4.1 The OBDH should count the number of times that a reset occurred, and store in a non-volatile memory.
1.4.2 The OBDH should identify what the cause of the reset based on this table.
1.5.1 The OBDH should redeem the last value of the time counter after a reset.
2.1 The OBDH should start the deploy antenna routine, after the boot.
2.1 The Deploy Antena should execute in order three tasks:
- Verify deployment status block
- Hybernate block
- Start deploy block
These structures can be visualized here.
2.2.1 This Block should ensure that the deploy antenna process occurs just one time, in the entire mission.
2.2.2 If the deploy antenna process already occurred, the hibernate and the deployment process must be ignored.
2.3.1 In this block the OBDH should enter in Low Power Mode.
2.3.2 The OBDH should stays in hibernate mode for 45 minutes.
2.4.1 This block should ensure that, the four antennas will be deployed.
3.1.1 This task should reset the counter of the internal and external watchdog timer.
3.2.1 Should read the following informations:
-
MCU temperature
-
Supply Voltage
-
Supply Current
-
Clock Fault Flags
-
Reset Cause
-
System modules status:
- EPS status
- Payload's Status
- Memory status
- IMU status
3.2.2 Should update the time counting.
3.2.3 Should send acquired data through queues to be stored in memory.
3.2.4 Should do a periodic reset every 12 hours.
3.2.4 Should count the time to return to Normal Mode after receiving a Shutdown Command
3.3.1 The OBDH shall receive a data package from EPS board with the following structure:
Position | Variable | Position | Variable |
---|---|---|---|
0-1 | -Y Panel Current | 28-29 | Batteries Monitor Temperature |
2-3 | +X Panel Current | 30-31 | Battery 1 Voltage |
4-5 | -X Panel Current | 32-33 | Battery 2 Voltage |
6-7 | +Z Panel Current | 34-35 | Batteries Current |
8-9 | -Z Panel Current | 36-37 | Batteries Accumulated Current |
10-11 | +Y Panel Current | 38 | Protection Register |
12-13 | -Y/+X Panel Voltage | 39 | Status Register |
14-15 | -X/+Z Panel Voltage | 40 | Cycle Counter |
16-17 | -Z/+Y Panel Voltage | 41-42 | Remaining active absolute capacity register |
18-19 | Solar Panels Boosts Output Voltage | 43-44 | Remaining standby absolute capacity register |
20-21 | Main Power Bus Voltage | 45 | Remaining active relative capacity register |
22-23 | Beacon-EPS Current | 46 | Remaining standby relative capacity register |
24-25 | MCU Internal Temperature | 47-67 | RTD1 - RTD7 Temperatures |
26-27 | Batteries Average Current | 68 | Energy Level |
3.3.2 Should update the energy level of the satellite.
3.3.3 Should send the EPS data package to the “store data task”.
3.4.1 Should read the status memory, and send over queue to housekeeping task.
3.4.2 Should read and package the following data from the queue:
Data | Length [bytes] |
---|---|
Packet Flags | 2 |
OBDH Status | 6 |
IMU | 24 |
OBDH Misc | 6 |
OBDH Uptime | 4 |
Solar Panels Sensors | 12 |
Main Radio | 19 |
Solar Panels | 18 |
EPS Misc | 8 |
Battery Monitor | 21 |
Temperatures | 21 |
Energy Level | 1 |
Australia | 40 |
Joinville | 7 |
TOTAL | 187 |
3.4.3 This data should be send to a non-volatile memory.
3.5.1 Should read data from the following sensors presenting in solar panels:
- Photodiodes
- Gyroscopes
- Temperature sensor
3.5.2 This data must be sent to the solar panel queue, and wait to be stored in memory.
3.6.1 Should send to Beacon module the following data:
Information | Length (Bytes) |
---|---|
Batteries voltages | 4 |
Batteries tempearatures | 6 |
Total charge of batteries | 2 |
Solar panels currents | 12 |
Solar panels voltages | 6 |
Overall status of the satellite | 2 |
Accelerometer and gyroscope | 12 |
Time since boot | 4 |
Number of OBDH module resets since launch | 2 |
3.6.2 Should send to beacon the following commands:
- Shutdown command
- Request antenna mutex
3.6.3 This communication should be done over SPI protocol.
3.7.1 Should read data from IMU.
3.7.2 Should send the IMU status to the housekeeping task.
3.7.3 Should send the IMU data to the store data task.
3.7.4 This communication should be done over I²C protocol.
3.8.1 When the ground station send a telecommand, the OBDH should recognize,decode and execute the telecommand.
3.8.2 Should change the period that a telemetry package is send to the GRS, depending of the energy level:
- Energy level 1 or 2 : 60s
- Energy level 1 or 3 : 120s
- Other levels : Do not send telemetry packages
3.8.3 Should send the telemetry packet to the radio modules to be sent to earth.
4.1 The OBDH should have a 32-bit counter allocated in the Memory Segment B of the microcontroller.
4.2 This counter should be incremented each time that a minute is completed.
4.3 The counter (4 bytes) should be stored along 32 sequential positions of the Segment B (128 bytes).
4.4 Once the position reaches the last address of Segment B, the next write should occur at the beginning of the segment, composing a circular memory.
4.5 This time counter should be stored in a non-volatile memory, to be recovered when a reset occurs.
5.1 The Non-volatile memory should have the following structure.
7.1 Should have two IMU with a 3-Axis gyroscope, a 3-Axis accelerometer, a 3-Axis magnetometer and a Digital Motion Processor (DMP).
7.2 Should transfer Data to the microcontroller via an I2C bus and are useful for the Attitude Control and Determination System (ADCS).
7.3 Shall have three 16-bit analog-to-digital (ADCs) for digitizing the gyroscope outputs, three 16-bit ADCs for digitizing the accelerometer outputs, and three 16-bit ADCs for digitizing the magnetometer outputs.
7.4 The scale of gyroscope should be ±250º/s.
7.5 The scale of accelerometer should be ±16g.
7.6 The scale of magnetometer should be ±4800μT.
7.7 The VDD operating range could be 2.4 V to 3.6 V.
8.1 Should follow this requirements.
9.1 The OBDH should have a Current Sensing module composed by three Rail to Rail Op Amps (TLV341AIDBVR) for the sun sensors readings and a Current Sense amplifier (MAX9934TAUA+) for the OBDH total current consumption.
9.1.1 The TLV341AIDBVR should work between 1.8V to 5V.
9.1.2 The TLV341AIDBVR should have a 1.7mV as maximum low offset.
9.1.3 The TLV341AIDBVR should have from -0.2V to 0.5V as input voltage.
9.1.4 The TLV341AIDBVR should have 0.3mV as input offset voltage.
9.2 The currents shall be measured by the MAX9934TAUA+ current sense amplifier.
9.2.1 The MAX9934TAUA+ should work between 2.5 to 3.6V.
9.2.2 The MAX9934TAUA+ gain should be 25µA/mV.
9.3 Each Solar Panel should have a 1-axis gyroscope, a sun sensor, and a temperature sensor.
9.4 The OBDH shall read the Solar Panels Currents over a SPI interface (SPI_1).
10.1 The OBDH shall use the BUS0 to exchange data with payloads.
10.2 The Payloads shall be enabled through the GPIOs, one to each Payload.
10.2.1 The pins used to the connections should be as:
Position | Pin | Pin Name |
---|---|---|
H1 | 18 | ENABLE_PAYLOAD_0 |
H1 | 20 | ENABLE_PAYLOAD_1 |
11.1 The Beacon shall connect itself to the OBDH's and TTC's MCUs through 4 GPIOs, which are:
Position | Pin | Pin Name |
---|---|---|
H2 | 11 | BUS3_MOSI |
H2 | 12 | BUS3_SCLK |
H2 | 13 | BUS3_GPIO3 |
H2 | 14 | BUS3_MISO |
11.2 The frequency should be 145,9 MHz.
12.1 The communication between OBDH and the EPS shall be done through an I²C protocol.
12.2 The connections should be made by the following pins:
Position | Pin | Pin Name |
---|---|---|
H1 | 41 | I2C0_SDA |
H1 | 43 | I2C0_SCL |
13.1 The OBDH's MCU shall communicate with the NiceRF's RF4463F30 radio by a SPI bus with the following pins:
Position | Pin | Pin Name |
---|---|---|
H1 | 35 | SPI0_CLK |
H1 | 37 | SPI0_MISO |
H1 | 39 | SPI0_MOSI |
H1 | 40 | SPI0_CSn |
13.2 The OBDH and the TTC Board shall also be connected by more 4 GPIOs pins to monitor interruptions, reset the radio and assume other generic functions, which are:
Position | Pin | Pin Name |
---|---|---|
H1 | 7 | Transc_GPIO0 |
H1 | 8 | Transc_GPIO1 |
H1 | 9 | Transc_GPIO2 |
H1 | 11 | Transc_RST |
13.3 The OBDH and the TTC Board shall also be connected by one last pin where the OBDH controls the regulator, located on the EPS board, that supplies the radio, which is:
Position | Pin | Pin Name |
---|---|---|
H1 | 12 | EN_R_PA_Transc |
14.1 The current drivers shall be two H-bridges (DRV8833).
14.2 The current drivers shall operate between 2,7 and 10,8 V.
14.3 The current drivers should control the Magnetorquers from Gomspace's NanoPower P110 solar panels.
14.4 The current drivers should be connected to the Magnetorquers' power pins, which are:
Position | Pin | Pin Name |
---|---|---|
H2 | 45 | VCC_MAGNETORQUER |
H2 | 46 | VCC_MAGNETORQUER |
15.1 To provide a redundant Watchdog timer, should have an external watchdog together with the microcontroller.
16.1 The OBDH shal have a non-volatile memory to store data from the whole satellite.
16.2 The non-volatile memory shall have, in total, at least 1GB of storage.
16.5 The non-volatile memory could be a Molex 5031821852 micro SD socket.
16.6 The OBDH shall have 3 Nor Flash IS25LP128-JBLE memory ICs.
16.7 The OBDH shall have a redundant secondary non-volatile memory of at least 32MB, in case the primary stops working.