MSD Project 10236Configurable Control Platform
for Unmanned Vehicles
Detailed Design Review
Joe PinzoneAlex Mykyta
Roberto StolfaRobert Ghilduta
Jason Stanislawski
System Overview
System OverviewControl Code Processor (CCP)
Gumstix: TEXAS INSTRUMENTS OMAP3530
• ARM Cortex-A8 GP CPU• C64x DSP• Store/execute Simulink control code• 256MB flash (OS / Control Code)• 256MB RAM• Power management IC
• High-speed serial bus to I/O Controller
System OverviewInput/Output Controller (IOC)
XILINX SPARTAN 3E FPGA w/ PLASMA uC CORE
•Arbitrates sensor and actuator input/output
•Provides sensor data to CCP in common format through shared, dual-port memory
•Provides analog and digital I/O interface connectors, broken out on I/O Breakout Board
System OverviewI/O Breakout Board (IOB)
• The only vehicle-specific hardware •Breaks out IOC header to individual sensors and actuators
• Physically separate package from Controller Platform
• Generally no processing done here
System OverviewPower, Control Code Processor, I/O Controller are physically:
– separable– stacked– enclosed
System OverviewPower, IOC, CCP = Vehicle Controller Platform, separate from IOB
Power
*All values are worst case
Power
Rail Current Required Power Required
1.2 V 0.088 A 0.106 W
2.5 V 0.045 A 0.113 W
3.3 V 0.322 A 1.060 W
4 V 0.400 A 1.600 W
5 V 0.129 A 0.643 W
*All values are worst case
PowerTPS43000-Based
SW-MODE PSU
OUTPUT 5V/1.5A
TPS43000-Based
SW-MODE PSU
OUTPUT 5V/1.5A
5V/0.25A5V/0.25A
4V/0.5A4V/0.5A
3.3V/0.5A3.3V/0.5A
2.5V/0.1A2.5V/0.1A
1.2V/0.1A1.2V/0.1A
IOB, ADC, DAC
CCP
IOCBattery PackBattery Pack
PowerFRONT END CONDITIONING
TEXAS INSTRUMENTS TPS43000• SEPIC (buck/boost) configuration• 1.8 – 9V Input• 6A output with proper FET switches • Synchronous Rectification (+eff)
TPS43000 (PSU FRONT END)
PowerSECONDARY STAGELINEAR REGULATORS
LM317 ADJ. LDO• Low-drop-out• Vout 1.25 –> 5+ volts• Use for 5V, 4V• Up to 1.5A output
TLV70012 for 1.2V/200mATLV70025 for 2.5V/200mATPS73733 for 3.3V/0.50A
Power SummaryMax Nom Units
Total Useful Pwr 3.524 2.890 Watts
Total Current 0.984 0.792 Amps
Power to LDOs 4.918 3.958 Watts
Efficiency of SM 0.900 0.900
Total Reqd. Pwr 5.464 4.398 Watts
Supply Voltage 4.800 4.800 Volts
Supply Current 1.138 0.916 Amps
Battery Capacity 2.700 2.700+ A-h
Est. Time 2.372 2.947 Hours
Est Efficiency 0.645 0.657
NomenclatureFirmware:
– Program code that runs on the embedded processors. This does not include the Control Code, which will always be referred to specifically.
Rigidware: – The HDL containing the “image” of the FPGA gate configuration. This
may contain RAM/ROM initialization images and basic boot loader to initialize and load the stored firmware. This term generally pertains only to the IOC, since it is the only programmable-logic device in the system.
Software:– Any program that runs on the user PC for the purpose of programming,
configuring, compiling, or monitoring the embedded system.
IO Controller Module
• Arbitrates IO from the CCP• Physically separable from CCP
– Can be used as independent data logger or used in future projects.
• Implemented using a Xilinx Spartan 3E FPGA (XCS500E-PQ208)
FPGA Selection
• FPGA chosen for highest gate & largest pin count• BGA is not desirable due to board routing complexity
Package
Device VQ100 CP132 TQ144 PQ208 FT256 FG320 FG400 FG484
XC3S100E X X X
XC3S250E X X X X X
XC3S500E X X X X X
XC3S1200E X X X
XC3S1600E X X X
IOC Rigidware
Plasma Core
Dual Port RAM1kB
Serial Controller
SPI Bus:PM Storage & SD Card
Dedicated UART
~40kB RAM
A D
SPI Master
CE
CK
DO
DI
Tx Rx
High Speed Serial
To CCP
System Clock Counter
IRQ
IRQ
A
D
PWM ReaderPWM
GeneratorIO Port IO Port IO Port IO Port
ADC Controller
CK
SO
SI
CS-ADC
CS-DAC
NOTE: All IO Ports, ADC Controller, Dedicated UART and SD/PM SPI module are capable of generating interrupts.
8 8 8 8 8 8
Main RAM
• XC3S500E has 45KB of Block Memory
• Approximately 40 KB will be used for Plasma CPU
• RAM preloaded with boot loader
SPI FLASH & MMC
• Application code is stored on SPI Flash– Boot loader loads
application into RAM
• Same SPI bus is used for an SD card for logging– All typical SD cards
support standard MMC protocol
System Clock Counter
• Provides timing information
• Sourced from 50 MHz clock which allows for integer division to decade increments of time.
Dedicated UART
• Hardwired to USB-UART transceiver
• Load new application code
• Debug system during operation
CCP Communication
• Dual port ram allows for independent operation
• High speed serial interface used to access shared RAM
• Interrupt signals provided to and from CCP
Analog Controller
• Finite state machine responsible for acquiring analog data from ADC– Data available for direct
access from CPU address space
• Configures reference voltage DAC
PWM Controller
• FSM that arbitrates servo PWM generation and reading
• Generator is configurable to provide servo format or full range duty cycles
Configurable IO Ports
• Each pin can be configured as input, output, or special function
• Special functions include configurable SPI, I2C and UART modules
• IP provided by OpenCores
SPI Core I2C
Core UART GPIO
CE CK DO DI SDA SCL Tx Rx
A D D D DA A A
Special FunctionSelect
8
Configurable IO Ports
• MAV peripheral set only requires 1 port• Preliminary logic estimates show that 5 ports should
be possible
IOC Hardware
Xilinx Spartan 3EXC3S500E-4
PQ208
FPGA Config. ICXCF02S
SPI FLASH PM Storage
SST25VF032B
50.0000 MHz Clock
14.7456 MHz Clock
USBà Dual UART
FT2232
EEPROMAT93C46E
8 Channel 16-bit ADC
ADS1178
SD/MMC Card
socket
Bidirectional Voltage
TranslatorTXB0108
Voltage Reference
DACTLV5623C
IO Ports
PWM OutPWM In
[-]
SPI
SPI
RxTx
High SpeedSerial
(or future GPMC)
IRQ
IRQ
JTAG
Config.
JTAG
JTAG
JTA
G H
ea
der
USB Mini-B
USB
Digital IO HeaderAnalog Header
BankVref
Bidirectional Voltage
TranslatorTXB0108
BankVref
Bidirectional Voltage
TranslatorTXB0108
BankVref
Bidirectional Voltage
TranslatorTXB0108
BankVref
Rx Tx
Header to CCP
8
8 8 8 8 8 8
[+]
8
Programming Interface
• USBUART converter does most of the work for us• PM FLASH is programmed from UART• Second UART is provided for CCP configuration
FLASH & SD Card
• SST’s 4MB FLASH stores application program• Shares SPI Bus with SD Card for data logging and
removable storage
CCP Interface
• High speed serial interface to CCP along with interrupt requests
• Pins on FPGA and header are reserved specifically for implementing GPMC in the future
FPGA Configuration
• On power-up, FPGA is automatically configured by the XCF02S which stores rigidware.
• Rigidware can be changed via JTAG interface
Analog to Digital Converter
• Simultaneous samples of 8 channels
• Supports differential inputs• Adjustable sampling range
– Range is digitally controlled by adjacent DAC
Digital IO
• PWM signals connected directly to IOB (3.3v levels)
• Configurable IO Ports have adjustable logic levels.– User supplies voltage
reference– TXB0108 detects direction of
communication without the need for direction control
Logic Cost Analysis
LUTs
Plasma Core 3306
CCP Interface 300
PWM IO Controller 300
Analog Controller 230
Configurable IO Port 710
Number of IO Ports: 5
Total LUTs Used: 7686
Available LUTs 9312
Remaining LUTs 1626
• Design with 5 IO ports uses approximately 80% of available logic– 20% for uncertainty in
estimates and potential overhead for PAR of large designs.
Throughput Estimation
• Dummy DAQ program written for MAV set of peripherals– Single sample can be executed in ~420 clock
cycles @ 25 MHz– Assuming SPI communication to IMU is done
without interrupts, CPU must stall for duration of transfer (~200 cycles @ 2 MHz)
– Results in theoretical sample rate of 30 kHz
I/O Breakout Board
I/O Breakout Board
DEVICE LIST FOR UAV IOB
Analog Devices IMU
Tyco Electronics GPS
Airspeed Differential Pressure Sensor
Altimeter Absolute Pressure Sensor
Thermistor
I/O Breakout Board
Diff V_IN max. ( V+) - ( V-) +/- 3.1 VV_IN max. V+ or V- 5.1 VV_IN min. V+ or V- - 0.1V
TI ADS1178
Sensor Vout Max Vout Min V- Vref
Airspeed 4.7 0.2 2.45 2.25
Altitude 4.5 0.5 2.5 2.0
Temperature 4.986 0.229 2.493 2.38
V- CalculationAirspeed Sensor:(4.7V + .2V)/2 = 2.45V Altitude Sensor:( 4.5V + .5V)/2 = 2.5V Temperature Sensor:(4.986V + .229V) / 2 = 2.493V
Vref CalculationAirspeed Sensor:(4.7V - .2V)/2 = 2.25V Altitude Sensor:( 4.5V - .5V)/2 = 2.0V Temperature Sensor:(4.986V -.229V) / 2 = 2.38V
I/O Breakout BoardDigital Peripherals: Tyco Electronics GPS – UART (NMEA) Analog Devices IMU – SPI Telemetry (P10231) – I2C, SPI, UART
I/O Breakout Board
MUX IC Manual Override:2 – Quad 2 to 1 multiplexers
I/O Breakout Board
Molex 24 position connector
Standard DSUB Connectors
Pitot-Static Probe (Airspeed)
Ram Air Pressure
Stagnation (Static)
Control Code Processor
CCP Overview
• OMAP– ARM
• Linux
– Fixed point TI DSP• DSP/BIOS
– running RT workshop Control System
• Sensor data is memory mapped with DMA from the IO controller over a dedicated link
Incremental Design• Gumstix (target for MSD 2)
– Ready-to-run system on a module– Self-sustained (low to no dependency count)– Readily available, non-existent lead time
• Topedo SOM– Smaller + lower power consumption than Gumstix– Higher throughput achievable
• Custom Board– Cheapest, fastest, most efficient yet most complicated
solution• An implementation meeting every need marked
“HIGH” has to be met before proceeding
Gumstix• Board requires nothing power• 2 expansion slots breakout McBSP and GPMC• Board lacks DMA support for GPMC• Implementation will use DMA with McBSP
– DMA will be configured to routinely read data from McBSP and copy to a location in memory without interrupts
– Slower than GPMC, uses less pins• Interface is well known• Target development time: 4 weeks
Torpedo
• Second revision– Motivations: smaller board, GPMC with DMA
becomes possible• Uses OMAP3530 (just as the Gumstix)• Product comes with verified schematics and
layouts• Release date - late December• Expected price - $150• Target development time: 4 weeks
Custom board
• Reasons to improve on Torpedo– OMAP3525 is cheaper than the 3530– TPS65920 consumes less power, requires less
layout area (fewer discrete components are required)
• Development time– Software and interface overlaps with Torpedo– Schematics and layout can mostly be reused
McBSP with DMA
McBSP cont’d
• Multi-channel Buffered Serial Port– (High speed serial)– Asynchronous Synchronous supported
• DMA would be used to limit the use of the ARM processor
• Maximum clock speed (bit speed) can use L4 clock (96MHz)– FPGA may not be able to reach this
• Bit speed may need to be halved and channel count double
GPMC
GPMC cont’d• General Purpose Memory Controller (Interface)
– Typical SRAM interface• Asynchronous/Synchronous supported
• Allows external memory devices to be mapped into OMAP’s memory address space
• Burst speeds (where Row address is latched) of 400MB/s supported– in reality speed is limited by FPGA’s IO buffers
• Gumstix cannot use this interface because DMA pins that would be used to notify L2 Memory of outdated data are not accessible
Control Code Processor - Software
•
Matlab Integration
End User Workflow Software Required:
Matlab/Simulink Real-time Workshop TI C6x DSP Toolchain Code Sourcery
ARM Toolchain
Vehicle Profiler
Control Code Uploader
Control Code Processor OS
Linux OpenEmbedded
Framework TI DSP-Bridge
Control Code Loader Daemon
Control Code Wrapper
Budget ITEMPRODUCT COST
EST OUR COST EST
Power Controller $4.50 $0.00
Linear Regulators $2.80 $0.00
Switching Components $7.00 $7.00
Spartan 3E FPGA $24.90 $24.90
FPGA Config IC $4.25 $4.25
FLASH Boot Memory $2.56 $0.00
Oscillator $2.63 $2.63
Oscillator $2.63 $2.63
USB to dual RS232 $6.99 $6.99
EEPROM for FT2232 $0.37 $0.37
8ch 16-bit ADC $25.42 $0.00
Bidirectional Voltage Translator
$2.00
$0.00
8-bit DAC $2.48 $0.00
Gumstix $170.00 $170.00
Gumstix Dev Board $0.00 $50.00
Board to Board Conex $25.00 $25.00
Misc Passives $30.00 $30.00
External Connectors $50.00 $50.00
Enclosures $20.00 $20.00
PCB FAB $116.00 $248.00
Control Platform Total $499.53 $641.77
Controller Platform
Budget
24 pin, 0.1" Header Pins 6.84 $6.84
Dual Flip-Flop 1.00 1.00
Quad 2 to 1 Multiplexer 0.40 0.40
10k POT 6.68 $6.68
Airspeed Sensor 11.70 $0.00
Altitude Sensor 5.80 $0.00
Temperature Sensor 34.00 $0.00Analog Devices IMU $527.44 $0.00
GPS 61.50 $0.00
Pitot Static Probe 160.00 $0.00
Mounting Chuck 35.00 $0.00
UAV IOB Total $527.44 $13.52
UAV I/O Breakout
Budget
Final Product This Project
Total $1,026.97 $655.29