160 likes | 261 Views
Temple University Advisors: Dr. John Helferty Charles Wright Jinyan Chen Billy Cheng Brittany Gray May 12, 2010. Rock it rocke Full mission simulation test report. Mission Overview.
E N D
Temple University Advisors: Dr. John Helferty Charles Wright Jinyan Chen Billy Cheng Brittany Gray May 12, 2010 Rock it rockeFull mission simulation test report
Mission Overview • Design, Build, And Test A Vibration Suppression System To Counteract Launch Vehicle Vibrations • Measure The Vibration Environment Inside The Terrier-Orion Rocket • Will Use Two Identical Vibration Measurement Systems • A Custom Built Passive Damping System • Rigidly Attached System
Changes Since Subsystem Integration • Changed Microcontroller To Basic Stamp 2 (BS2) • Programming Language – Basic • High And Low Z-Axis and Low X-Y Monitored • Same Flash, Level Shifter, and Power Supply -- With G-Switch And RBF • External Analog To Digital Converters • ADC 0831 Used For Each Accelerometer
Pictures • Schematic Including The BS2 Microcontroller
Pictures • Up-Close Of BS2, ADC0831, Z-Accelerometers, And RS232 Interface
Pictures • Z-Axis Accelerometer Board
Pictures • Prototype
Test Description - Electrical • Integrating New Microcontroller With Existing Components • Read Accelerometer Data Through ADC 0831 • Erase Flash Memory • Write Acc. Data To Flash Memory • We Were Able To Log The Required Data • Our Test Duration Was For Short Periods • Ensured That Data Was Being Logged
Test Results • Debug Pictures Of Data Out From Z-Axis Accelerometers
Test Results • Using Vref(5V)/256 * Acc.Data = Outcoming Volts Calibration of Z-Axis Accelerometers
Overall Analysis • Currently Not Ready For Launch And Collectively, We Are Some Busy, Unhappy Students • We Still Must Complete • PCB Printing – Order Should Be Out By This Week • Soldering And Mounting Of Components With PCB Board And Plates
Lessons Learned • We Must Have A Backup Plan • Don’t Be Scared To Resort To It • Work In Parallel With Other Group Members • Our Major Problem “Bottlenecked” All Progress • Everyone Was Focused On Immediate Issue • Difficult To Decipher Someone’s Code
Conclusions • Initializing Memory (Chip Erase) Takes Too Long • Attempt To Erase Memory Block By Block (64kb Sectors) • Can Log Data To Lower Order Address (000000h-00FFFFh) • Will try to log data to higher order address • More Mechanical Tests Need To Be Done
Thank you Questions?
'---------Variables-------------------------- addhi VAR Byte 'high byte of address location addlomi VAR Word 'low 16 bits of address location cmd VAR Byte ' command, to be sent by the Stamp adrs VAR Byte ' which byte on page dat VAR Byte 'data in statOne VAR Byte stat VAR Byte 'status register result VAR Byte ' ADC8031 Result resultOne VAR Byte volts VAR Word ' Volts (0.01 Increments) ix VAR Byte ' general purpose index x VAR Byte ' general purpose byte '-------------------------------------------- '------Connection Lines---------------------- Adc0831 PIN 0 ' ADC0831 Chip Select Adc0832 PIN 10 AdcClock PIN 2 ' ADC0831 Clock AdcClockOne PIN 11 AdcData PIN 1 ' ADC0831 Data AdcDataOne PIN 12 cs CON 8 ' chip SELECT line clk CON 5 ' clock line so CON 7 ' data output line si CON 6 ' data input line ' '------------------------------------------------- '---------------Variable Initializing------------- addhi = $00 addlomi = $0000 '------------------------------------------------ '---------------------Main Program--------------- GOSUB counter END counter: '----------------------------- 'DEBUG CR, DEC addhi 'GOSUB erase 'GOSUB echip GOSUB unprotect GOSUB erase DEBUG "write sensor1 read sensor1 write sensor2 read sensor2", CR DO WHILE (addhi < $20) addlomi = addlomi +$8 IF (addlomi = $0000)THEN addhi = addhi + $1 ENDIF DEBUG HEX addhi," ", HEX addlomi, CR GOSUB prgm GOSUB rd addlomi=addlomi+$8 IF(addlomi=$0000)THEN addhi=addhi+$1 GOSUB erase ENDIF GOSUB prgmOne GOSUB rd DEBUG CR LOOP RETURN enable: '----------------------- 'write enable cmd = $06 'opcode for write enable LOW cs 'CS low SHIFTOUT so, clk, MSBFIRST, [cmd\8] 'sets WEL bit to 1 in status register HIGH cs 'CS high RETURN disable: '---------------- 'disable write cmd = $04 LOW cs SHIFTOUT so, clk, MSBFIRST, [cmd\8] HIGH cs RETURN unprotect: '--------------------------------------- 'performing a global unprotect of flash GOSUB enable cmd = $01 'opcode for global unprotect dat = $00 'sets the status at unprotect LOW cs SHIFTOUT so, clk, MSBFIRST, [cmd\8, dat\8] HIGH cs RETURN rd: '---------------- 'read from memory cmd = $0B LOW cs SHIFTOUT so, clk, MSBFIRST, [cmd\8, addhi\8, addlomi\16, 0\8] SHIFTIN si, clk, MSBPRE, [stat\8] HIGH cs DEBUG " ", DEC stat, " " RETURN prgm: '------------------------------------------ '___________________________________________ GOSUB accel GOSUB log GOSUB disable RETURN prgmOne: '------------------------------------------ '___________________________________________ GOSUB accelOne GOSUB logOne GOSUB disable RETURN log: '---------------------------------------------- 'writing commands to the flash GOSUB enable cmd = $02 LOW cs SHIFTOUT so, clk, MSBFIRST, [cmd\8, addhi\8, addlomi\16, result\8] HIGH cs DEBUG " ", DEC result, " " RETURN logOne: GOSUB enable cmd = $02 LOW cs SHIFTOUT so, clk, MSBFIRST, [cmd\8, addhi\8, addlomi\16, resultOne\8] HIGH cs DEBUG DEC resultOne, " " RETURN accel: '------------------------------------------ 'logging accelerometer data into memory HIGH Adc0831 result = 0 LOW Adc0831 SHIFTIN AdcData, AdcClock, MSBPOST, [result\9] HIGH Adc0831 RETURN accelOne: '------------------------------------------ 'logging accelerometer data into memory HIGH Adc0832 resultOne = 0 LOW Adc0832 SHIFTIN AdcDataOne, AdcClockOne, MSBPOST, [resultOne\9] HIGH Adc0832 RETURN Appendix: Code ' {$STAMP BS2} ' {$PBASIC 2.5} '---------Variables-------------------------- addhi VAR Byte 'high byte of address location addlomi VAR Word 'low 16 bits of address location cmd VAR Byte ' command, to be sent by the Stamp adrs VAR Byte ' which byte on page dat VAR Byte 'data in statOne VAR Byte stat VAR Byte 'status register result VAR Byte ' ADC8031 Result resultOne VAR Byte volts VAR Word ' Volts (0.01 Increments) ix VAR Byte ' general purpose index x VAR Byte ' general purpose byte '-------------------------------------------- '------Connection Lines---------------------- Adc0831 PIN 0 ' ADC0831 Chip Select Adc0832 PIN 10 AdcClock PIN 2 ' ADC0831 Clock AdcClockOne PIN 11 AdcData PIN 1 ' ADC0831 Data AdcDataOne PIN 12 cs CON 8 ' chip SELECT line clk CON 5 ' clock line so CON 7 ' data output line '---------Variables-------------------------- addhi VAR Byte 'high byte of address location addlomi VAR Word 'low 16 bits of address location cmd VAR Byte ' command, to be sent by the Stamp adrs VAR Byte ' which byte on page dat VAR Byte 'data in statOne VAR Byte stat VAR Byte 'status register result VAR Byte ' ADC8031 Result resultOne VAR Byte volts VAR Word ' Volts (0.01 Increments) ix VAR Byte ' general purpose index x VAR Byte ' general purpose byte '-------------------------------------------- '------Connection Lines---------------------- Adc0831 PIN 0 ' ADC0831 Chip Select Adc0832 PIN 10 AdcClock PIN 2 ' ADC0831 Clock AdcClockOne PIN 11 AdcData PIN 1 ' ADC0831 Data AdcDataOne PIN 12 cs CON 8 ' chip SELECT line clk CON 5 ' clock line so CON 7 ' data output line si CON 6 ' data input line ' '------------------------------------------------- '---------------Variable Initializing------------- addhi = $00 addlomi = $0000 '------------------------------------------------ '---------------------Main Program--------------- GOSUB counter END counter: '----------------------------- 'DEBUG CR, DEC addhi 'GOSUB erase 'GOSUB echip GOSUB unprotect GOSUB erase DEBUG "write sensor1 read sensor1 write sensor2 read sensor2", CR DO WHILE (addhi < $20) addlomi = addlomi +$8 IF (addlomi = $0000)THEN addhi = addhi + $1 ENDIF DEBUG HEX addhi," ", HEX addlomi, CR GOSUB prgm GOSUB rd addlomi=addlomi+$8 IF(addlomi=$0000)THEN addhi=addhi+$1 GOSUB erase ENDIF GOSUB prgmOne GOSUB rd DEBUG CR LOOP RETURN
rd: '---------------- 'read from memory cmd = $0B LOW cs SHIFTOUT so, clk, MSBFIRST, [cmd\8, addhi\8, addlomi\16, 0\8] SHIFTIN si, clk, MSBPRE, [stat\8] HIGH cs DEBUG " ", DEC stat, " " RETURN prgm: '------------------------------------------ '___________________________________________ GOSUB accel GOSUB log GOSUB disable RETURN prgmOne: '------------------------------------------ '___________________________________________ GOSUB accelOne GOSUB logOne GOSUB disable RETURN log: '---------------------------------------------- 'writing commands to the flash GOSUB enable cmd = $02 LOW cs SHIFTOUT so, clk, MSBFIRST, [cmd\8, addhi\8, addlomi\16, result\8] HIGH cs DEBUG " ", DEC result, " " RETURN logOne: GOSUB enable cmd = $02 LOW cs SHIFTOUT so, clk, MSBFIRST, [cmd\8, addhi\8, addlomi\16, resultOne\8] HIGH cs DEBUG DEC resultOne, " " RETURN accel: '------------------------------------------ 'logging accelerometer data into memory HIGH Adc0831 result = 0 LOW Adc0831 SHIFTIN AdcData, AdcClock, MSBPOST, [result\9] HIGH Adc0831 RETURN accelOne: '------------------------------------------ 'logging accelerometer data into memory HIGH Adc0832 resultOne = 0 LOW Adc0832 SHIFTIN AdcDataOne, AdcClockOne, MSBPOST, [resultOne\9] HIGH Adc0832 RETURN enable: '----------------------- 'write enable cmd = $06 'opcode for write enable LOW cs 'CS low SHIFTOUT so, clk, MSBFIRST, [cmd\8] 'sets WEL bit to 1 in status register HIGH cs 'CS high RETURN disable: '---------------- 'disable write cmd = $04 LOW cs SHIFTOUT so, clk, MSBFIRST, [cmd\8] HIGH cs RETURN unprotect: '--------------------------------------- 'performing a global unprotect of flash GOSUB enable cmd = $01 'opcode for global unprotect dat = $00 'sets the status at unprotect LOW cs SHIFTOUT so, clk, MSBFIRST, [cmd\8, dat\8] HIGH cs RETURN