Hardware/CubeSat RPi
(→Raspberry Pi to FPGA) |
(→Raspberry Pi to FPGA) |
||
Line 25: | Line 25: | ||
All Raspberry Pi (RPi) I/O lines are connected to the FPGA. | All Raspberry Pi (RPi) I/O lines are connected to the FPGA. | ||
− | 5 of | + | 5 of them are connected to the FPGA programming lines. |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
RPi specific I/O are: | RPi specific I/O are: | ||
− | + | {| class="wikitable" style="margin: 20pt" | |
− | + | ! pins || function | |
− | + | |- | |
− | + | | 3, 5 || I2C 1 | |
− | + | |- | |
− | + | | 4 || GP CLK 0 | |
− | + | |- | |
− | + | | 8, 10 || UART 0 | |
+ | |- | ||
+ | | 12, 35, 38, 40 || PCM/I2S | ||
+ | |- | ||
+ | | 19, 21, 23, 24, 26 || SPI 0 | ||
+ | |- | ||
+ | | 27, 28 || I2C EEPROM | ||
+ | |- | ||
+ | | 32 || PWM 0 | ||
+ | |- | ||
+ | | 33 || PWM 1 | ||
+ | |} | ||
+ | |||
+ | Pins used for the FPGA configuration (via JTAG) are: | ||
+ | {| class="wikitable" style="margin: 20pt" | ||
+ | ! pin || function | ||
+ | |- | ||
+ | | x || reset_n | ||
+ | |- | ||
+ | | x || TMS | ||
+ | |- | ||
+ | | x || TCK | ||
+ | |- | ||
+ | | x || TDO | ||
+ | |- | ||
+ | | x || TDI | ||
+ | |} | ||
= Programming = | = Programming = |
Revision as of 19:40, 15 January 2020
|
This board is to serve an easy to use demonstrator for a CubeSat On-Board Computer (OBC). It hosts a Raspberry Pi Zero and a Microsemi ProASIC3 M1A3PE3000-2FG484I FPGA.
Connectors
Board to board
The inter-board connection is a serial bus with coaxial cables for Tx and Rx lines. These channels are duplified for reasons of security. To this comes a 0 V, a 3.3 V and 5 V power supply.
All the connections are done by coaxial connectors aligned on both sides of the board. This allows to stack the boards with a coaxial spacer tube. There are 6 connectors per side: 2 for the power, 2 for Tx and 2 for Rx. The power lines are common to both sides of the PCB. The Tx and Rx lines on each side of the PCB are independently connected to the FPGA, thus allowing a token ring communication scheme.
Raspberry Pi to FPGA
All Raspberry Pi (RPi) I/O lines are connected to the FPGA. 5 of them are connected to the FPGA programming lines.
RPi specific I/O are:
pins | function |
---|---|
3, 5 | I2C 1 |
4 | GP CLK 0 |
8, 10 | UART 0 |
12, 35, 38, 40 | PCM/I2S |
19, 21, 23, 24, 26 | SPI 0 |
27, 28 | I2C EEPROM |
32 | PWM 0 |
33 | PWM 1 |
Pins used for the FPGA configuration (via JTAG) are:
pin | function |
---|---|
x | reset_n |
x | TMS |
x | TCK |
x | TDO |
x | TDI |
Programming
The Raspberry Pi Zero loads its operating system from the SD card.
The FPGA can be programmed either from the JTAG connector or from the Raspberry Pi. One has to make sure that the lines on the Raspberry Pi connector are tri-stated when trying to program the FPGA.
Power supplies
The board is powered from a standard 5 V ± 5% (4.75 V to 5.25 V) as defined for USB. An additional 5 V can be supplied too.
This power supply is used by:
- the Raspberry Pi which generates a 3.3 V for itself
- a DC/DC converter which generates a 1.5 V for the FPGA core from the 5 V power supply
The RPi 3.3 V can be used for the FPGA I/O banks through a 0 Ω resistor if there is no 3.3 V power from the inter-board connector.
The FPGA is supplied with:
Name | function | voltage |
---|---|---|
GND | ground | 0 V |
GNDQ | quiet ground | 0 V |
VCOMPLA/B/C/D/E/F | PLL ground | 0 V |
VCC | core supply | 1.5 V |
VCCIBx | I/O supply | 3.3 V |
VMVx | quiet I/O supply | 3.3 V |
VCCPLA/B/C/D/E/F | PLL supply | 1.5 V |
VJTAG | JTAG supply | 3.3 V |
VPUMP | programming supply | 3.3 V |