summaryrefslogtreecommitdiff
path: root/LvTwoFlightComputerSearch.mdwn
blob: 5e5fc17945b58c6289e49ef09484c9c71506f36f (plain)
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
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
# <a name="POWER Flight Computer Research"></a> POWER Flight Computer Research

See also: [[FlightComputer]], [[FlightComputerSoftware]], [[Avionics]], [[Software]]

----

## <a name="Introduction"></a> Introduction

Because of a [[IBM grant|news/2005-01-05]] Bart just received, we're going to switch from our current ok-but-not-great-computationally-speaking 586-based [[FlightComputer]] to a POWER architecture board. We'll be doing this in parallel to current [[FlightComputerSoftware]] development, so that we don't have to throw out everything we've done to switch processors.

This is obviously a Great Thing for us: we'll be getting significantly more computrons in the [[FlightComputer]] which will be very, very good for our future [[INS|InertialNavigation]] work, and get us out of our current problem of having a hammered 586 FC with a terrible, terrible CAN chip.

----

## <a name="Requirements"></a> Requirements

- Hardware requirements
  - POWER architecture if possible, PowerPC if we can't find a POWER board that works
  - &gt; 1MFLOPS (w/FPU for IMU/INS calculations)
  - &gt; 50MIPS
  - &gt; 32MB RAM
  - &gt; 128MB ROM (FLASH disk)
  - Interfaces to Lucent Orinoco PCMCIA card for use with our ARRL 802.11b telemetry
  - Onboard USB.
- Software requirements
  - Able to run open source [[RealTime]] OS
- Mechanical Requirements
  - Must fit in a cylinder with I.D. of 5.0 in (12.7 cm)
  - Can't be more than about 5 in. (13 cm) long (if necessary, we can move things around but what a pain)
  - RAM/FLASH must be in some form that is robust to shock and vibration (either soldered, or locked down)
- Electrical requirements
  - Much better if it's compatible with our 14.4V nominal Li-Ion battery. Expected voltage ranges from 12V to 16.8V.
  - Power consumption should be less than 6W. This is slightly negotiable. The old FC (i586 PC104 stack) pulls 5W ([[Lv2PowerUsage]]). More power means shorter operating time.

## <a name="Almost Requirements (Things We&#39;d"></a> Almost Requirements (Things We'd Really Like)

- Be able to do onboard compilation instead of cross-compiling (although we'll need to do both).
- Onboard CAN is a plus.
- Onboard UARTs, to talk directly with multiple GPS units.
- PC/104+ form factor would be most convenient. Need to have a PC/104 (not +) plugin to keep existing peripherals
- 5V only power supply (3.3V or lower regulators on board)
- Inexpensive: It would be nice to by like 5 of these boards for concurrent development.

## <a name="Timeline"></a> Timeline

- Identify and purchase the boards ASAP
- be up and running this early summer, but not necessarily installed in the rocket.
- Install in rocket this fall, probably right after Black Rock 2005.

----

## <a name="Processors"></a> Processors

### <a name="POWER Processors"></a> POWER Processors

POWER chips include: RS6000 (remember the IBM PC-RT?), RAD6000 (used in space equipment), POWER2, POWER3, POWER4 (all the POWER&lt;N&gt; are big iron machines), 970GP (used in Macintosh G5), 970FX. With the POWER4 and 970 chips, the POWER line finally became 100% PowerPC user-mode instruction set compliant, and even picked up the [[AltiVec]] instruction set from Motorola's (now [[FreeScale]]'s) 74xx line. For more on the POWER architecture, see <http://en.wikipedia.org/wiki/POWER>

<table border=1 cellpadding=0 cellspacing=0>
  <tr>
    <th bgcolor="#99CCCC"><strong> Mfg </strong></th>
    <th bgcolor="#99CCCC"><strong> Model </strong></th>
    <th bgcolor="#99CCCC"><strong> Speeds </strong></th>
    <th bgcolor="#99CCCC"><strong> Peripherals </strong></th>
    <th bgcolor="#99CCCC"><strong> Notes </strong></th>
  </tr>
</table>

### <a name="PowerPC Processors"></a><a name="_PowerPC Processors"></a> PowerPC Processors

Anything that is a 40x, 44x, 6xx, 7xx, 8xx, 74xx, E500, 85xx, is a PowerPC, which were derived from research on POWER at IBM (notably its RS6000 CPU). [Here's](http://www-306.ibm.com/chips/techlib/techlib.nsf/techdocs/7874C7DA8607C0B287256BF3006FBE54/$file/PPC_QRG_2-22-04.pdf) a good list of IBM PPC chips.

<table border=1 cellpadding=0 cellspacing=0>
  <tr>
    <th bgcolor="#99CCCC"><strong> Mfg </strong></th>
    <th bgcolor="#99CCCC"><strong> Model </strong></th>
    <th bgcolor="#99CCCC"><strong> Speeds </strong></th>
    <th bgcolor="#99CCCC"><strong> Peripherals </strong></th>
    <th bgcolor="#99CCCC"><strong> Notes </strong></th>
  </tr>
  <tr>
    <td><a href="http://www.freescale.com/" target="_top">Freescale</a></td>
    <td><a href="http://www.freescale.com/webapp/sps/site/prod_summary.jsp?code=MPC5200&amp;nodeId=018rH3bTdG0898" target="_top">MPC5200</a></td>
    <td> 266MHz,400MHz </td>
    <td><strong><em>CAN</em></strong>, USB, UARTS </td>
    <td> MPC603e core, <strong><em>double precision</em></strong> FPU </td>
  </tr>
  <tr>
    <td><a href="http://www-03.ibm.com/chips/products/PowerPC/" target="_top">IBM</a></td>
    <td><a href="http://www-306.ibm.com/chips/techlib/techlib.nsf/products/PowerPC_440_Embedded_Core" target="_top">PowerPC 440EP</a></td>
    <td> 400MHz </td>
    <td> USB </td>
    <td> single precision FPU </td>
  </tr>
</table>

Rejected processors: 405xx (no FPU), 440EP (no USB).

----

## <a name="POWER/_PowerPC Boards"></a> POWER/PowerPC Boards

[LinuxDevices.com](http://www.linuxdevices.com) has a very good overview/review of a few dozen small computer boards at: <http://www.linuxdevices.com/articles/AT8498487406.html>

And hey, bingo: <http://www.extensionmedia.com/powerpc/>

Here's a list of boards currently in the running:

<table border=1 cellpadding=0 cellspacing=0>
  <tr>
    <th bgcolor="#99CCCC"><strong> Mfg </strong></th>
    <th bgcolor="#99CCCC"><strong> Model </strong></th>
    <th bgcolor="#99CCCC"><strong> Processor </strong></th>
    <th bgcolor="#99CCCC"><strong> Speed </strong></th>
    <th bgcolor="#99CCCC"><strong> RAM </strong></th>
    <th bgcolor="#99CCCC"><strong> Flash </strong></th>
    <th bgcolor="#99CCCC"><strong> Power </strong></th>
    <th bgcolor="#99CCCC"><strong> Notes </strong></th>
  </tr>
  <tr>
    <td><a href="http://www.menmicro.com/" target="_top">Mikro Electronik gmbh</a></td>
    <td><a href="http://www.menmicro.com/products/datasheet.asp?prod=15PP01-&amp;lid" target="_top">PP01</a></td>
    <td> MPC5200 </td>
    <td> 384 MHz </td>
    <td> 128MB </td>
    <td> 16MB </td>
    <td> 1W(!) </td>
    <td> 2x CAN/USB through bizarre lockable side cableside w/ daughter boards, boot monitor built in, no ISA </td>
  </tr>
  <tr>
    <td><a href="http://www.tqc.de/" target="_top">TQ Components</a></td>
    <td><a href="http://www.tqc.de/446+M54e8af9891a.html" target="_top">TQM5200</a></td>
    <td> MPC5200 </td>
    <td> 400 MHz </td>
    <td> 256 KB </td>
    <td> 64MB </td>
    <td> ? </td>
    <td> Weird <strong><em>tiny</em></strong> form factor (80mm x 60mm) with integrated SMT connectors on bottom, integrated display module (CRT/LCD)!! </td>
  </tr>
</table>

Things to research: <http://linuxdevices.com/news/NS6288674963.html>, <http://www.linuxdevices.com/products/PD1986855326.html>,

Here's a list of boards we looked at but can't use:

<table border=1 cellpadding=0 cellspacing=0>
  <tr>
    <th bgcolor="#99CCCC"><strong> Mfg </strong></th>
    <th bgcolor="#99CCCC"><strong> Model </strong></th>
    <th bgcolor="#99CCCC"><strong> Processor </strong></th>
    <th bgcolor="#99CCCC"><strong> Speed </strong></th>
    <th bgcolor="#99CCCC"><strong> RAM </strong></th>
    <th bgcolor="#99CCCC"><strong> Flash </strong></th>
    <th bgcolor="#99CCCC"><strong> Power </strong></th>
    <th bgcolor="#99CCCC"><strong> Notes </strong></th>
  </tr>
  <tr>
    <td><a href="http://www.maxwell.com/" target="_top">Maxwell</a></td>
    <td><a href="http://www.maxwell.com/go/scs750a.html" target="_top">SCS750</a></td>
    <td> PowerPC 750 </td>
    <td> 800MHz </td>
    <td> 256MB </td>
    <td> 8MB </td>
    <td> 7 - 25W </td>
    <td> Radiation hardened! Triple redundancy! Too bad it&#39;s huge. </td>
  </tr>
  <tr>
    <td><a href="http://www.embeddedplanet.com/" target="_top">Embedded Planet</a></td>
    <td><a href="http://www.embeddedplanet.com/products/ep5200.asp" target="_top">EP5200</a></td>
    <td> MPC5200 </td>
    <td> 400MHz </td>
    <td> 64MB </td>
    <td> 8MB </td>
    <td> 10W </td>
    <td> CAN, USB, etc: just too big: 4.35 x 7.4 inches! </td>
  </tr>
  <tr>
    <td><a href="http://www.freescale.com/" target="_top">Freescale</a></td>
    <td><a href="http://www.freescale.com/files/microcontrollers/doc/prod_brief/CWMPCEVB5200PB.pdf" target="_top">Lite5200</a></td>
    <td> MPC5200 </td>
    <td> ? </td>
    <td> ? </td>
    <td> ? </td>
    <td> ? </td>
    <td> 5200 Development board: too big </td>
  </tr>
</table>

Manufacturers we've researched so far: <http://www.menmicro.com/>, <http://www.sbs.com/products/browse/>, <http://www.mpl.ch/>

Form factors we CAN'T use: Mini-ITX, EBX, VME (obviously).

----

## <a name="Software support"></a> Software support

IBM developerWorks has a [Linux on Power Architecture developer's corner](http://www-128.ibm.com/developerworks/linux/power/), including a series of articles on "Migrating from x86 to PowerPC": [part 1](http://www-128.ibm.com/developerworks/library/pa-migrate/), [part 2](http://www-106.ibm.com/developerworks/library/pa-migrate2/).

A research project at De Nayer Institute (in Belgium?) has posted instructions on [getting Linux running on the MPC5200](http://emsys.denayer.wenk.be/?project=emcam&page=news&id=21).

[DENX](http://www.denx.de/) offers source for Linux 2.4.23 kernels on the MPC5200, as well as RTAI real-time patches and what they call the "Embedded Linux Development Kit".

The [U-Boot](http://u-boot.sourceforge.net/) boot loader project at SourceForge is GPLed and apparently supports the MPC5200.

----

## <a name="Required Peripheral"></a> Required Peripheral

### <a name="PCI-104 (PC-104+) to PCMCIA adap"></a> PCI-104 (PC-104+) to PCMCIA adapter

- [http://www.ampro.com/html/mm\_pcciii.html](http://www.ampro.com/html/mm_pcciii.html)
- <http://www.tri-m.com/products/icp/pm1054a.html>

- Available at Tri-M (www.tri-m.com):
  - '''CHOSEN:''' PCMCIA: PCM-3794-A10 (no -01) $114
    - [http://www.tri-m.com/products/aaeon/pcm3794\_3594.html](http://www.tri-m.com/products/aaeon/pcm3794_3594.html)
  - Power: HE104+ DX (Needs the ISA connector to be left off!) $299

- Flash options:
  - <http://www.magicram.com/flashFA.htm> -- 192 MB = $595
  - PCMCIA card MTD driver: <http://www.asia.si.org/pcmciamtd/>
  - Nice jffs description: <http://sources.redhat.com/jffs2/jffs2.pdf>
  - Linux devices: <http://www.linuxdevices.com/articles/AT8473001566.html>

----

## <a name="Old Research"></a> Old Research

Our old research looking for PC104 586, CAN and PCMCIA boards:

[[ListOf586Boards]]<br />[[ListOfPCMCIABoards]]<br />[[ListOfCANBoards]]<br />