Skip to content

Main Flight Computer Card

Work in progress

This page contains information that may be incorrect or out of date. Check Confluence for the latest project information.

Theory of Operation

The Main Flight Computer Card (MFC) is the brain of the avionics stack. This card handles all primary functions and sends/receives data to/from all other cards in the stack.

Main Processor

A Raspberry Pi 4 Compute Module is used as the main processor on this card. The minimum required configuration is listed below.

CM4001008 - CM4, no wireless, 1GB of RAM, 8GB of eMMC

Options for the Rpi4 compute module extend up to 8GB of RAM and 32GB of eMMC as well as wifi. These are easily incorporated into the HAB stack as necessary if compute requirements increase over time. This vastly simplifies the required hardware needed for the MFC.

The Pi provides many of the needed interfaces for this project. Currently in use are the Ethernet, PCIe and I2C interfaces as well as the GPIO bank. The Ethernet interface is used for a direct connection to the outside world through the ground station while the PCIe link is used to interface with the Ethernet network build into the overall hardware stack. I2C is used for on card sensors and GPIO is distributed out to the rest of the cards within the stack.

The design implementation of the Pi4 on the MFC follows the reference design for the Pi4 compute Module IO board. Power and activity LEDs are present as well as Ethernet status LEDs. The Pi external reset is buffered and routed to the PCIe/Ethernet bridge. Finally a watchdog timer IC, the same as the IO board, is implemented for use as part of a Real Time Clock for the Pi.

Power for portions of the MFC is generated by the Pi’s onboard 3.3V and 1.8V regulators. The 1.8V regulator is broken out to the MFC however it is not currently used for any circuitry. 5V is supplied from the power board through the backplane. 1.2V and 2.5V are generated by switching regulators on the MFC itself but will be covered in a different section.

While most of the signal interfaces are used for this design, options such as camera and display outputs are not broken out and there are no plans to use within the design of the MFC. SD card interface is also like wise not broken out as there are no plans for using Pi’s without eMMC onboard.

Communication and Control Interfaces

Ethernet Interfaces and Hub

PCIe to ETH Hub

The LAN7431 Low Power PCIe to Gigabit Ethernet Controller is implemented in this design to interface the Pi4 CM to the ETH switch. The LAN7431 was chosen as it has MII and RGMII support needed for the switch.

While the IC has integrated switching regulators to generate certain voltages, these were disabled in favor of switching regulators implemented on the MFC itself. Benefits to this are mainly less power dissipated in the IC itself and the generated rails can be shared between multiple ICs, however there is likely some loss in switching efficiency. VDDVARIO and VDD_SW_IN have the option of 3.3V and 1.8V; 3.3V was used for power in this case.

The IC is configured to operate in MII mode, with the MII_EN pin pulled high with a 10k resistor per the datasheet recommendation, tied to the same 3.3V rail as VDDVARIO. Other configuration settings include pulling the DUPLEX pin high to enable full duplex on the IC, allowing simultaneous communication between cards. Finally VAUX is pulled high to enable Power Management Event functions provided by the IC, allowing the IC to be woken from additional sleep states.

The Pi4 CM output reset is fed into this IC, to provide a reset option in case the ETH interface needs to be cycled. This is also indirectly provided to the switch through the reset output provided by the bridge as well.

Finally a 25MHz clock is implemented for this IC, per datasheet recommendations. It is also used to provide the clock for the ETH switch through the use of the IC’s passthrough feature. This reduced the total number of clock crystals that needed to be implemented on the MFC PCB

ETH Hub to ETH Switch, outputs

The KSZ9896CTXI 6-Port Gigabit Ethernet Switch is implemented in this design to provide connectivity to the rest of the HAB payload stack. It accepts MII interface from the LAN7431 and provides five outputs with full gigabit PHYs, however these are only expected to be used at 10mbps speeds.

The IC is supplied through three voltage rails, 3.3V, 2.5V and 1.2V. VDDIO is the only rail powered by 3.3V, chosen for easy interface with the LAN7431 and anything else interfacing with the IC.

Due to the design of the hardware stack, magnetic coupling for the ethernet pairs was not implemented. Capacitive coupling is used to connect the various payload cards through ethernet to the MFC. This implementation was chosen due to the use of a backplane PCB carrying all ethernet routing, the short runs of the ethernet lines (<12” total) and the fact that all aspects of the links are controlled. This also deletes the need for reasonably bulky magnetics, instead replaced by series capacitors and pull up resistors. APP1 through APP3 (provided below) describe the implementation of the transformerless system used in this design.

As described in APP3 the pull up resistors on the MFC ethernet lines were chosen to maintain a level greater than 1.3V and not have a large voltage swing.

Note: find math regarding pull up R’s, add references to white papers

External Output Ethernet

The Ethernet output provided by the Pi4 CM is routed straight to its respective backplane connector; ETH1_TX and ETH1_RX. This is then routed to the required Ethernet jack located on the backplane for use to communicate with the outside world. The port is routed with only two ETH pairs, providing an RX and TX pair for primarily a 10BASE-T, 10mbps connection. Routing follows the Pi4 CM datasheet recommendations

CAN bus

talk about CAN, termination node, IC used and implementation

GPIO

30 odd GPIO lines, Common GPIO for reset. Pull down/up etc

Sensors

thermistors

current sensor

Power Management

Electrical Implementation

Major components

Processor - Raspberry Pi 4 Compute Module (CM4001008)
CAN Transceiver - TCAN1051
Ethernet Switch - KSZ9896C
Ethernet PHY - KSZ8081MNX
Voltage/current monitor - INA3221

Power Supplies

12V Power Rail

  • No usage

5V Power Rail

  • Raspberry Pi 4

  • CAN Transceiver

  • 2.5V Regulator

  • 1.2V Regulator

3.3V Power Rail (driven by Pi4)

  • Temperature Sensor

  • Ethernet Switch (I/O)

  • Ethernet Phy

  • CAN Transceiver

2.5V Power Rail

  • Ethernet Switch (transceivers)

1.2V Power Rail

  • Ethernet Switch (core)

Connectors

There are two 34 pin Molex MilliGrid Shrouded Right angle Connectors providing all interfaces to and from the Flight computer to the Backplane and other payload cards.

Power/GPIO Connector

Molex Part #: 0878333420