summaryrefslogtreecommitdiff
path: root/doc/MCUs
blob: e48c66e2a20222ae298899a11f8a73338b958bec (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
List of all MCUs and their purpose
===================================

  MPU - Main Processing Unit
 ----------------------------
    This is the most powerful processor aboard and runs the satellites main
    operating system which is based on ChibiOS. The MPU runs the payload
    applications and maintains the high level communication channel to the
    groundstation network.

  Tasks:
   - store collected data -> SDCard (min. 4 GB)
      Log-structured file system??
   - monitor SOL (rotations, camera) -> SDCard
   - takes pictures using camera -> SDCard
      check SOL if picture is worth a try
      evaluate pictures if it is worth transferring
   - record audio (using IDM) -> SDCard
      encode raw audio (from IDM) to FLAC
      evaluate audio if it is worth transferring
   - control LIS (LED in space)
   - monitor ANC for pressed button -> Beacon!!
   - communicate with ground stations (using COMM)


  IDM - Impact detection module
 -------------------------------
    This is basically a very low power soundcard which watches the output of
    a small piezo microphone and starts recording when a signal is detected.
    It then wakes the MPU for further processing.
    Optionally the IDM may also 'play' sounds from MPU using yet another piezo.
    This can be used as a payload application or to test the signal detection.

  Tasks:
   - wait for 'impacts' aka signals form microphone
   - after 'noise' is detected start recording and wake up MPU
   - when internal ring buffer is full stop recording
   - MPU may start downloading the audio data which prevents
     the ring buffer from overfilling -> endless recording
   - recording may be triggered by MPU as well
   - MPU may send audio data which should be played using a
     small piezo (optional)


  IHU - internal houskeeping unit
 ---------------------------------
    This processor runs the low level operating system which maintains power
    levels, reboots MPU and other subsystems on error and controls the system
    clock (RTC).

  Tasks:
   - initalize/boot up satellite
   - maintain vital-power (turn of main power to prevent power outages)
   - monitor solar energy levels
   - battery management (using BAT)
   - power path control (using BAT)
   - temperature management (sensors and heating)
   - MPU overwatch (reset on error)
   - CTR overwatch (reset on error)
   - report power states and environment to MPU and CTR
   - control RTC and report system time to MPU and CTR
   - enforce radio silence


  BAT - battery management
 --------------------------
    A simple battery monitoring and control device which reports all measured
    values to IHU and serves as a persistent power path controller (states
    should be maintained even after total power loss)

  Tasks:
    - periodically measure currents, voltages and temperatures of all battery
      packs and report them to IHU
    - mitigate short circuit conditions by disabling the charge or discharge
      channels for all or some battery packs
    - report fault conditions (short circuit, defective batteries, etc...) to IHU


  CTR - command transmit/receive
 --------------------------------
    This MCU maintains the low level communication (TTX and CRX).
    TTX is a simple CW beacon containing telemetry information and a sequence number
    CRX is the emergency command receiver which may be used to invoke emergency
    commands such as 'radio silence' or 'reset'.

  Tasks:
    - IHU overwatch (reset on error?? - probable not a good idea)
    - listen for incoming CRX commands
    - send out telemetry beacons (TTX)


  COMM - communications
 -----------------------
    This processor controls the 2m and 70cm transceivers. There are two radios.
    Each consist of one COMM processor, one 2m transceiver and on 70cm transcevier.
    A static network of gates takes care of assigning radios to MPU and CRX.
    Optional: connect the "soundcard"(IDM) output to the audio input of the 2m transceiver
    to send out audio.

  Tasks:
    - initialize and control the 2m and 70cm transceivers
    - send out data frames when requeseted by MPU or CTR
    - wait for incoming data frames when requested by MPU or CTR



Flash/Update Mechanism
=======================
    All MCUs inside mur.sat should be updateable through a single
    USB Port (connected to MPU).

    MCUs to update:
     - MPU (STM32F103/STM32F405)  USB -> PC (Entry Point)
     - IDM (PIC 16F1847)          SPI -> MPU
     - IHU (PIC 16F887)           RS232 -> MPU
     - BAT (PIC 16F887)           SPI -> IHU
     - CTR (PIC 16F887)           SPI -> IHU
     - COMM (AtTiny??) x2         RS232 -> MPU