| 
					Prototype 
					Once the functional requirements of the 
					board was identified (see overview), 
					hardware schematics were drafted. The initial design 
					consisted of 3 functional circuits, which are very close to 
					the boards used on the existing PCB. 
					
					  
					The circuit that simulates the the 
					kill switch and flight pin is shown above. The design of 
					this circuit is very straightforward: Power Board Connector 
					B has GND, VBatt and select lines on it. When the Flight Pin 
					select line is connected to VBatt and either one or both of 
					the kill switches are connected to VBatt, the satellite will 
					turn on. Since the select lines are inputs to Mosfet gates 
					on the power board, there is little to no current draw and 
					the use of the Multiplexer as shown in the above schematic 
					makes sense. 
					However, we did run into some 
					voltage issues: The DIP package of the multiplexer that we 
					used works correctly when sending 12V through it, while the 
					SMT component will flake out, usually permanently at larger 
					voltages. This caused severe inconsistencies during testing 
					of our prototype and PCB circuitries. Unfortunately, we have 
					determined this limitation ultimately keeps our maximum MUX 
					voltages to around 3V for all circuits and prevents us from 
					sending VBatt (12V) through to demonstrate integrated 
					functionality of the Power Board and Diagnostics Board. This 
					demonstration of proper functionality has further 
					ramifications in other circuits as they too were prototyped 
					with the DIP package and break in similar ways.  
					This issue can be easily resolved 
					with these higher voltage multiplexers. Unfortunately, our 
					board does not have a compatible pin out with these 
					components & can therefore should not be hooked up to the 
					power board directly. Initially, the multiplexer was chosen 
					because of its availability and cost. Our first choice was a 
					MAXIM chip that ran off of any voltage between 5 and 36V and 
					allowed for any value between Vcc+.5 and Vee - .5 to pass. 
					This part was unavailable at the time and was a bit too 
					expensive to use in each of the circuits as required. 
					 
					
					  
					Once the circuit to test "power on" 
					was created and tested, a regulator measurement circuit was 
					created (above). The regulator expands in complexity 
					compared to the Kill Switch & Flight Pin simulation circuit. 
					This circuit uses 2 8:1 demuxes to allow the Diagnostics 
					board to select one regulated input, pass the current 
					through a common RSense resistor and Voltage divider and 
					finally selecting which of 4 power resistor loads to use. 
					The first MUX chooses the input to measure. The 
					demultiplexer has 5V as a single input and 8 outputs that 
					are connected to the gates of transistors (all of which have 
					pull downs for when they are not being selected). This 
					allows us to select which one transistor to turn on. The 
					transistor that turns on, passes its input voltage from 
					source to drain. Once through the transistor, the signal 
					passes through a .1 Ohm sense resistor. A MAX4372 is used to 
					measure the voltage on either side of the sense resistor, 
					which then provides the ADC with a voltage that represents 
					the current based on the knowledge that there was a .1 ohm 
					resistor there. Once through the sense resistor, a voltage 
					divider sends 1/3 of the voltage to the MCU to allow it to 
					take measurements up to about 15V. At this point, another 
					MUX is controlled by the MCU, which selects the appropriate 
					power resistor to load the regulator signals with in the 
					same way the first MUX selected the transistor. This design 
					ensures that only one of the regulator outputs be loaded at 
					a time. Additionally, when voltages are being read, the 
					second mux is disabled to get an accurate voltage reading. 
					This is consistent with the power test document as well as 
					the projects goals.  
					Simply selecting the appropriate 
					regulator to load is not sufficient as they won't be on by 
					default. To turn the circuits on, a voltage must be applied 
					by the MCU to the select line going into the power board 
					this voltage comes from PORTB.4-7 and PORTC.0-5. In future 
					revisions, this may be removed due to the active effort to 
					make the power board control its own hardware and depend on 
					MCU communications rather than voltage levels, which will 
					add reliability as well as reduce I/O requirements. 
					
					  
					The torque coils test circuit is the 
					most complicated of the 3 and we were prepared to see issues 
					with it due to its bidirectional nature. This circuit is 
					similar to the 8:1 MUX circuit. However, it uses 2:1 MUXes 
					and is repeated 3 times (once for each axis). The select 
					lines of the multiplexers are tied together. When a select 
					line is asserted, one direction for the axis is selected on 
					one side and the opposite direction is selected on the 
					other. This effectively reverses the H-bridge bi directional 
					effect and allow the current sensors to deal with just one 
					direction of current. Unfortunately, we did not hook the MUX 
					enable lines up to port pins for this circuit. Doing so 
					would create a much more accurate Voltage reading as the 
					last transistor essentially becomes an open circuit and the 
					voltage divider is much more useful. 
					There are various capacitors, 
					resistors, crystals, headers, etc. that connect to the ZIF 
					socket. If interested in recreating a 128L board, use the 
					ExpressPCB file for reference. Please see PCB errors in 
					Schematics. 
					MEGA128 Port Assignments 
					
  PORT Designations: 
  PORTA = LCD Driver 
  PORTB = voltage mux(0), select lines(4-7) 
  PORTC = Coils select lines(0-5), coils mux(6-7) 
  PORTD = LEDs (0-1), Serial Comm1 (2-3), current mux(4-7) 
  PORTE = serial Comm0 & Programming (0-1), fpks mux(2-4), voltage mux(5-7) 
  PORTF = ADCs 
  PORTG = LED's (0-1), coils mux(2), Not used(3-4) 
					 
					PCB 
					Our
					project was 
					laid out by hand in 
					ExpressPCB. The layout took at least 75 hours combined. 
					The board is relatively large, especially when compared to 
					the power board. Fortunately, our careful layout paid off. 
					Upon population of about 162 components, the MCU immediately 
					worked, with the exception of a quirky & inconsistent 
					Serial0 receive issue upon reset. Other errors were found, 
					but largely the board layout was fine.  
					PCB Features Include 
					
						- The PCB is a 4 layer board
  
						- Middle 2 layers are ground 
						plane and a +5V rail
 
						- Programming header for use with 
						STK500
 
						- Successfully runs code on a 
						Mega 128L @ 8MHz, 5V. 
 
						- (2) RS-232 connections
 
						- On / Off switch
 
						- 4 Digit 7-Segment Display w/ 1 
						Port Driver
 
						- 2 MCU Controllable 
						Red/Orange/Green LEDs
 
						- 12V Regulator 2A Circuit 
						Breaker
 
						- 12V Short Status LED.
 
						- ZIF Socket for TQFP64
 
						- 1:1 Power board connectors for 
						easy diagnostics
 
					 
					MCU Selection 
					The processor itself supports dual 
					serial communications and has 7 Ports. Aside from being 
					free, these are the two main reasons for MCU selection. The 
					dual serial ports connect to a MAX232 surface mount IC. 
					Serial0 is accessible through the 9 Pin serial connector 
					while Serial1 is accessible through either the second port 
					or the power board MOLEX connector, which is set by a 
					jumper.  
					Hardware Design Issues 
					Once populated, we ran into problems 
					detecting voltages and current changes above around 3V. This 
					was quickly found to be a transistor biasing problem. In 
					order to detect voltage drops, our design requires us to 
					operate in the triode region through 12V. However, due to 
					the 3V restriction on Vgs due to the 
					MUX limitation, we end up saturating 
					early and the current becomes limited but this more to do 
					with being on the wrong Vgs curve as opposed to being in the 
					saturation regime. Since the transistors are not biased 
					appropriately, they don't behave like an on off switch as 
					intended, but this should become significantly better with a 
					higher Vgs. If the same design is kept in the future, the 
					following inequality must hold true: Vds 
					< Vgs - Vtn 
					 
					
					  
					We have a good idea regarding a fix 
					and many suggestions have been given to us, but they all 
					require drastic hardware changes. The following are the best 
					candidates thus far and will be considered for future 
					revisions. 
					
						- Instead of reusing circuit 
						paths, use one current sensor and voltage divider per 
						component - then use MUX for MCU ADC signals.
 
						- Use MUX and FET that when 
						combined can still bias Vgs much higher to keep power 
						FET in the ohmic regime for all measurements
 
					 
					Another issue is the current is most 
					likely being limited through the transistor at time, more 
					testing should be done to correlate the amount of current 
					drawn by this board, during manual power board testing and 
					during flight operations. 
					   |