12. Concrete Example: the BeagleBoard

12. Concrete Example: the BeagleBoard
12. Concrete Example: the BeagleBoard
12. Concrete Example: the BeagleBoard
Processor
Memory
Electricity supply and USB
Connectors
Leds and buttons
Typical connection schemas
Boot process
Drivers / Hardware Support
Operating sytems
Video applications
In an embedded device
BeagleBoard extensions
Other kinds of boards
233 / 303
12. Concrete Example: the BeagleBoard
BeagleBoard overview
Presentation
Single-board computer (SBC): 3” by 3” card
Produced by Texas Instruments
Low power: 2.5W, no cooling system
Low cost: only $149 ($89 for the BeagleBone)
Open source oriented: open hardware design, interaction with the community
Intended to promote TI’s processors
Website: http://beagleboard.org
Contributed by Philippe Dumont
234 / 303
12. Concrete Example: the BeagleBoard
BeagleBoard features
Features
Operating systems: Linux, Android, Windows CE, Symbian
Accelerated 2D/3D rendering with OpenGL support
HD video support: up to 720p
235 / 303
12. Concrete Example: the BeagleBoard
BeagleBoard history
BeagleBoard Generations
Early revision: BeagleBoard Ax or B4, B5, B6 and B7
Previous commercial revision: C2 and C3
I
I
June 2008 (C2) – May 2009 (C3)
600MHz processor – 256MB RAM
Commercial revision described in this document: C4
I
I
December 2009
720MHz processor – 256MB RAM
236 / 303
12. Concrete Example: the BeagleBoard – Processor
12. Concrete Example: the BeagleBoard
Processor
Memory
Electricity supply and USB
Connectors
Leds and buttons
Typical connection schemas
Boot process
Drivers / Hardware Support
Operating sytems
Video applications
In an embedded device
BeagleBoard extensions
Other kinds of boards
237 / 303
12. Concrete Example: the BeagleBoard – Processor
Processor
Processor
OMAP3530
238 / 303
12. Concrete Example: the BeagleBoard – Processor
OMAP family
OMAP: Open Multimedia Application Platform
System-on-chip dedicated to portable and mobile multimedia applications
Developed by Texas Instruments
Used by many embedded devices: Nokia N series, Palm Pre, Archos...
OMAP3530: specification
Microprocessor unit (MPU): ARM Cortex A8
Digital signal processor (DSP): TI C64x+
Graphics processing unit (GPU): PowerVR SGX530
Image Signal Processor (ISP): not available with the BeagleBoard
239 / 303
12. Concrete Example: the BeagleBoard – Processor
OMAP3530: block diagram
240 / 303
12. Concrete Example: the BeagleBoard – Processor
OMAP3530: MPU
MPU: main characterics
Revision: ARM Cortex A8 (ARMv7-A - ES3.0)
Bus size: 32bits
Frequency: 720MHz
Cache size: L1: 16KB Instructions + 16KB Data - L2: 256KB
More than 1200 Dhrystone MIPS
MPU: additional features
13-stage superscalar pipeline
VFP: Vector Floating Point computation unit
NEON: SIMD instructions for media/signal processing (64 and 128 bits)
I
Decode MP3 at 10MHz and encode voice at 13MHz
Jazelle RCT: hardware support for Java bytecodes execution
Thumb-2: hardware support for a 16bits instruction set
I
Code size reduction with some performance impact
241 / 303
12. Concrete Example: the BeagleBoard – Processor
OMAP3530: GPU
GPU: PowerVR SGX530
OpenGL ES 2.0 / DirectX 10.1 Shader Model 4.1
Up to 13 Million polygons per sec
Support dual independent displays
Environment Mapping
Per-Pixel lighting
Reflection and Refraction
Wave Physics
242 / 303
12. Concrete Example: the BeagleBoard – Processor
OMAP3530: DSP
DSP: C64x+
Core: TMS320C64x+
Fixed point arithmetic
Frequency: 520MHz
HD capable: up to 720p @30fps
243 / 303
12. Concrete Example: the BeagleBoard – Memory
12. Concrete Example: the BeagleBoard
Processor
Memory
Electricity supply and USB
Connectors
Leds and buttons
Typical connection schemas
Boot process
Drivers / Hardware Support
Operating sytems
Video applications
In an embedded device
BeagleBoard extensions
Other kinds of boards
244 / 303
12. Concrete Example: the BeagleBoard – Memory
Memory
Memory
on top of
OMAP
245 / 303
12. Concrete Example: the BeagleBoard – Memory
Memory
PoP: Package-on-Package
Two kinds of memory
256MB Low Power Double Data Rate (LPDDR) RAM memory
256MB NAND flash Memory
246 / 303
12. Concrete Example: the BeagleBoard – Electricity supply and USB
12. Concrete Example: the BeagleBoard
Processor
Memory
Electricity supply and USB
Connectors
Leds and buttons
Typical connection schemas
Boot process
Drivers / Hardware Support
Operating sytems
Video applications
In an embedded device
BeagleBoard extensions
Other kinds of boards
247 / 303
12. Concrete Example: the BeagleBoard – Electricity supply and USB
Electrical supply
Solution 1
DC connector
Power management
IC
12. Concrete Example: the BeagleBoard – Electricity supply and USB
Electrical supply
Solution 2
mini USB
connector
Power management
IC
Solution 1
DC connector
12. Concrete Example: the BeagleBoard – Electricity supply and USB
Electrical supply
Solution 2
mini USB
connector
Solution 1
DC connector
Power management
IC
Not a solution
USB host
connector
248 / 303
12. Concrete Example: the BeagleBoard – Electricity supply and USB
Electrical supply
DC Connector
5V DC from 500mA up to 2A (required by some
extension cards)
Connected to a wall adapter or to a USB power cable
USB
Only on the mini USB connector (not the USB host
connector)
Simple or double miniAB cable
I
I
from 500mA (simple cable) up to 1A (double cable)
Double required if any USB device plug in the host port
249 / 303
12. Concrete Example: the BeagleBoard – Electricity supply and USB
Electrical supply
Power Consumption
2.5W to 5W only
No need for a cooling system
249 / 303
12. Concrete Example: the BeagleBoard – Electricity supply and USB
USB connectors
USB host connector
USB 2.0 High Speed (HS) port only
Current available depends on current source
mini USB connector
USB On-The-Go port: can be used as host or client
Main use as a client port to get power
To use it as a host port, power must be supplied by the DC connector
250 / 303
12. Concrete Example: the BeagleBoard – Electricity supply and USB
Electricity supply and USB devices
Problem
Need to use many USB devices: keyboard, mouse, . . .
Need to provide electricity to the board and to the devices
Solution: A USB HUB
Everything on one HUB
Provide a RJ45 connector
251 / 303
12. Concrete Example: the BeagleBoard – Connectors
12. Concrete Example: the BeagleBoard
Processor
Memory
Electricity supply and USB
Connectors
Leds and buttons
Typical connection schemas
Boot process
Drivers / Hardware Support
Operating sytems
Video applications
In an embedded device
BeagleBoard extensions
Other kinds of boards
252 / 303
12. Concrete Example: the BeagleBoard – Connectors
Connectors
Serial
Audio in
SD/MMC
Audio out
S-VIDEO
DVI-D
Expansion
JTAG
253 / 303
12. Concrete Example: the BeagleBoard – Connectors
Connectors
SD/MMC
Main purpose as a storage device with a SD card
Support of SDHC cards, Wifi cards, camera, GPS modules, . . .
Display
HDMI connector: provides only DVI-D interface (VGA
display impossible)
S-Video connector: supports PAL and NTSC TV
Independant displays
Debug
IDC10 serial connector: provide a RS-232 (COM) port
254 / 303
12. Concrete Example: the BeagleBoard – Leds and buttons
12. Concrete Example: the BeagleBoard
Processor
Memory
Electricity supply and USB
Connectors
Leds and buttons
Typical connection schemas
Boot process
Drivers / Hardware Support
Operating sytems
Video applications
In an embedded device
BeagleBoard extensions
Other kinds of boards
255 / 303
12. Concrete Example: the BeagleBoard – Leds and buttons
Leds and buttons
Power LED
Pmu Stat LED
2 users LED
User button
Change boot order
Reset button
256 / 303
12. Concrete Example: the BeagleBoard – Typical connection schemas
12. Concrete Example: the BeagleBoard
Processor
Memory
Electricity supply and USB
Connectors
Leds and buttons
Typical connection schemas
Boot process
Drivers / Hardware Support
Operating sytems
Video applications
In an embedded device
BeagleBoard extensions
Other kinds of boards
257 / 303
12. Concrete Example: the BeagleBoard – Typical connection schemas
Typical connection schemas
Simple serial access: $149 (board) + $25 (cables)
258 / 303
12. Concrete Example: the BeagleBoard – Typical connection schemas
Typical connection schemas
BeagleBoard as a desktop computer: $149 (board) + $70 (cables)
258 / 303
12. Concrete Example: the BeagleBoard – Boot process
12. Concrete Example: the BeagleBoard
Processor
Memory
Electricity supply and USB
Connectors
Leds and buttons
Typical connection schemas
Boot process
Drivers / Hardware Support
Operating sytems
Video applications
In an embedded device
BeagleBoard extensions
Other kinds of boards
259 / 303
12. Concrete Example: the BeagleBoard – Boot process
Boot process
The 5 boot phases
ROM loads MLO/X-loader
MLO/X-loader loads U-boot
U-boot reads commands
Commands load kernel
Kernel reads root file system
ROM
Can not be erased, avoids “bricking”
Looks for MLO/X-loader on
I
I
Default: NAND → USB → serial (UART) → MMC/SD
User button pressed: USB → serial (UART) → MMC/SD → NAND
Loads MLO/X-loader in SRAM
260 / 303
12. Concrete Example: the BeagleBoard – Boot process
From ROM to MLO/X-loader
Requirements needed by the ROM to find the MLO/X-loader
On NAND
I
Must be on the first sector (or on the next one if the first one is corrupted)
On SD/MMC
I
I
I
I
SD card must have 255 heads and 63 sectors/track
First partition is in FAT format and bootable
Must have “MLO” as first file and directory entry
“MLO” is x-load.bin.ift renamed
On serial/UART
I
MLO/X-loader image has to be loaded in SRAM with pserial via RS232
connection
On USB
I
More tools needed, no easy procedure
MLO/X-loader image has to be signed (see signGP)
261 / 303
12. Concrete Example: the BeagleBoard – Boot process
MLO/X-loader
MLO/X-loader presentation
Website: http://gitorious.org/x-load-omap3
Derived from the U-boot project
I
I
Dedicated to OMAP processors
Small image which fits in SRAM, able to initiate SDRAM
Retrieved from booting device and put into SRAM
Configure SDRAM, NAND and MMC/SD
Look for U-boot image first on MMC/SD then on NAND
Requirements needed by the MLO/X-loader to find the U-boot image
On NAND: image must be on the fifth sector
On SD/MMC: image must be named u-boot.bin and be on first partition
On serial/UART: image has to be send with kermit via RS232 connection
On USB: some tools are required, no easy procedure
262 / 303
12. Concrete Example: the BeagleBoard – Boot process
U-boot
U-boot presentation
Website: http://www.denx.de/wiki/U-Boot
Traditional boot loader
Retrieved from booting device and put into SDRAM
Allows interaction over the serial and USB ports
⇒ You can finally do something
263 / 303
12. Concrete Example: the BeagleBoard – Boot process
U-boot
U-boot presentation
Website: http://www.denx.de/wiki/U-Boot
Traditional boot loader
Retrieved from booting device and put into SDRAM
Allows interaction over the serial and USB ports
⇒ You can finally do something
Loads a kernel image from an input device and passes its “bootargs”
U-boot configuration can be saved in NAND
I
I
I
Allows to automatically load the same kernel (wherever it is)
Allows to save the “bootargs” of this kernel
Default behavior is to read boot.scr auto-script to find kernel
263 / 303
12. Concrete Example: the BeagleBoard – Boot process
U-boot interface
Texas Instruments X-Loader 1.4.2 (Feb 19 2009 - 12:01:24)
Reading boot sector
Loading u-boot.bin from mmc
U-Boot 2009.01-dirty (Feb 19 2009 - 12:23:21)
I2C:
ready
OMAP3530-GP rev 2, CPU-OPP2 L3-165MHz
OMAP3 Beagle board + LPDDR/NAND
DRAM: 256 MB
NAND: 256 MiB
Using default environment
MUSB: using high speed
In:
serial usbtty
Out:
serial usbtty
Err:
serial usbtty
Board revision C
Serial #7f6800030000000004013f780601a005
Hit any key to stop autoboot: 0
OMAP3 beagleboard.org #
264 / 303
12. Concrete Example: the BeagleBoard – Boot process
Conclusion
Conclusion
Boot process can be quite tortuous
ROM
↓
MLO/X-loader on NAND
↓
U-boot on SD/MMC
↓
kernel on UART/serial
↓
rootfs on network
Fortunately you can always recover from a failing boot :)
265 / 303
12. Concrete Example: the BeagleBoard – Drivers / Hardware Support
12. Concrete Example: the BeagleBoard
Processor
Memory
Electricity supply and USB
Connectors
Leds and buttons
Typical connection schemas
Boot process
Drivers / Hardware Support
Operating sytems
Video applications
In an embedded device
BeagleBoard extensions
Other kinds of boards
266 / 303
12. Concrete Example: the BeagleBoard – Drivers / Hardware Support
Drivers / Hardware Support
MPU
Many ARM distributions provide a development tool chain with gcc
To compile code on x86 for the BeagleBoard
I
I
a cross-compiler is required
some dedicated environment exists: scratchbox, openembedded
GPU
Drivers development is done directly by TI: here
Linux, Android and Windows CE (at least) are supported
DSP
Drivers and framework development is done directly by TI: here
Linux, Android and Windows CE (at least) are supported
267 / 303
12. Concrete Example: the BeagleBoard – Operating sytems
12. Concrete Example: the BeagleBoard
Processor
Memory
Electricity supply and USB
Connectors
Leds and buttons
Typical connection schemas
Boot process
Drivers / Hardware Support
Operating sytems
Video applications
In an embedded device
BeagleBoard extensions
Other kinds of boards
268 / 303
12. Concrete Example: the BeagleBoard – Operating sytems
Linux
Linux and ARM
Linux kernel supports ARM processors
Many distributions run natively on ARM : gentoo, slackware, debian, . . .
Ångström distribution
Linux distribution dedicated to embedded devices
Based on OpenZaurus
Explicit support of the BeagleBoard
Ångström distribution provides
I
I
I
I
Demo image dedicated to BeagleBoard with e17 and fullscreen 720p decoding
Webpage to build your own image
Access to a large collection of packages
Documentation to compile your own image
Watch video tutorial
Further readings: here
269 / 303
12. Concrete Example: the BeagleBoard – Operating sytems
Android
Android and ARM
Developed by Google for the mobile phone market, based on Linux
Several revisions: as of early 2011, 2.2 (Froyo) using Linux Kernel 2.6.32
Different ports exist for the BeagleBoard: Rowboat, 0xdroid
Rowboat distribution
Port of Google Android on OMAP35x, AM37x and AM35x platforms
Complete hardware support: ARM plus NEON, DSP, accelerated 2D/3D,. . .
Explicit support of the BeagleBoard with a very reactive community
as of early 2011, revision based on Android 2.1 (Eclair) using Linux Kernel
2.6.29
Rowboat distribution provides
I
I
Documentation to compile your own image with 3D support and DSP support
Soon prebuilt image should be available
270 / 303
12. Concrete Example: the BeagleBoard – Operating sytems
Others
Windows CE and ARM
R Embedded CE is mainly dedicated to ARM processors: here
Windows
A port exist for the BeagleBoard: here
Symbian platform and ARM
Operating system and software platform designed for smartphones
Based on Symbian OS, symbian platform is now open source
A port for the BeagleBoard exist as part of the wild duck project
271 / 303
12. Concrete Example: the BeagleBoard – Video applications
12. Concrete Example: the BeagleBoard
Processor
Memory
Electricity supply and USB
Connectors
Leds and buttons
Typical connection schemas
Boot process
Drivers / Hardware Support
Operating sytems
Video applications
In an embedded device
BeagleBoard extensions
Other kinds of boards
272 / 303
12. Concrete Example: the BeagleBoard – Video applications
Video players
Many solutions with partial hardware support: NEON or DSP or OpenGL
Open source: OmapFbPlayer, XBMC (video)
Closed source: Ingenient technologies (video) - VisualOn - Ittiam
OmapFbPlayer
Website: http://git.mansr.com/?p=omapfbplay
NEON based hardware acceleration - up to 720p
Available on Linux and on Android
Allow video walls with network synchronization: here - up to 1080p
273 / 303
12. Concrete Example: the BeagleBoard – Video applications
HTPC: Home Theater Personal Computer
Open source: XBMC (video)
Closed source: Nth player (video)
XBMC: XBox Media Center
Website: http://xbmc.org/
GSoC 2010: here
Full hardware support - up to 720p
SVN repository:
http://xbmc.svn.sourceforge.net/svnroot/xbmc/branches/gsoc-2010-beagleboard
274 / 303
12. Concrete Example: the BeagleBoard – In an embedded device
12. Concrete Example: the BeagleBoard
Processor
Memory
Electricity supply and USB
Connectors
Leds and buttons
Typical connection schemas
Boot process
Drivers / Hardware Support
Operating sytems
Video applications
In an embedded device
BeagleBoard extensions
Other kinds of boards
275 / 303
12. Concrete Example: the BeagleBoard – In an embedded device
BeagleBoard as an embedded device
USB Mass Storage: here
Autopilot for airplanes: here
Robot stimulus analysis: here or here
Real Time Kinematic GPS Receiver: here (accurate up to 1cm)
In
suit: here
I
Repulsor Air – Blow air with CO2 air pump
I
Repulsor Missile – Launch paper missiles
I
Repulsor Sensor/Light - Hands and eyes light
I
Repulsor Sound Effect(s)
I
Arc Reactor – Led light on torso
276 / 303
12. Concrete Example: the BeagleBoard – BeagleBoard extensions
12. Concrete Example: the BeagleBoard
Processor
Memory
Electricity supply and USB
Connectors
Leds and buttons
Typical connection schemas
Boot process
Drivers / Hardware Support
Operating sytems
Video applications
In an embedded device
BeagleBoard extensions
Other kinds of boards
277 / 303
12. Concrete Example: the BeagleBoard – BeagleBoard extensions
BeagleJuice
Overview
Website: here
Battery: 4500 mAh - 5V output
Autonomy: 6.5 hrs
Price $89
278 / 303
12. Concrete Example: the BeagleBoard – BeagleBoard extensions
Zippy
Overview
Website: here
Two models: Zippy 1 and 2
Description: provide more ports and a real time clock
Hardware: 1×Ethernet, 1×SD/MMC, 1×RS-232
Price: $99
279 / 303
12. Concrete Example: the BeagleBoard – BeagleBoard extensions
Arduino
Overview
Website: http://www.arduino.cc/
Description: open source microcontroller
Usage: read temperatures, control a motor, read accelerometer (WiiMote)
Hardware: Atmel AVR processor and on-board I/O support
Software: Can be programmed with standard C/C++
Price: $30
280 / 303
12. Concrete Example: the BeagleBoard – BeagleBoard extensions
Leopard Board
Overview
Website: http://leopardboard.org/
Description: open source webcam
Two models: Leopard Board 355 and 365
Hardware details (Leopard Board 365):
I
I
I
I
Processor: TMS320DM365
Memory: 256MB NAND and 128MB DDR2 SDRAM
VGA, 1.3M, 2M, 3M and 5 Mega-pixel CMOS Sensors supported
Ports: 1×Ethernet, 2×USB, 2×AUDIO, 1× SD/MMC
Video capabilities (Leopard Board 365):
I
I
I
I
Enhanced Video Processing Subsystem with Face Detection module
Video Processing Subsystem (VPSS)
HD Video Codecs: H.264, MPEG4, MJPEG, WMV9/VC1, MPEG2
Audio Codecs: MP3, WMA, AAC, Audio Echo Canceler (AEC)
281 / 303
12. Concrete Example: the BeagleBoard – BeagleBoard extensions
Leopard Board
282 / 303
12. Concrete Example: the BeagleBoard – BeagleBoard extensions
Display
Overview
Touchscreens
Type
Website
Price
LCD
here
$349 (with BeagleBoard)
OLED
here
$258 (without BeagleBoard)
R PicoTM Projector
DLP
I
I
Website: here
Price: $349
LCD
OLED
Pico
283 / 303
12. Concrete Example: the BeagleBoard – Other kinds of boards
12. Concrete Example: the BeagleBoard
Processor
Memory
Electricity supply and USB
Connectors
Leds and buttons
Typical connection schemas
Boot process
Drivers / Hardware Support
Operating sytems
Video applications
In an embedded device
BeagleBoard extensions
Other kinds of boards
284 / 303
12. Concrete Example: the BeagleBoard – Other kinds of boards
BeagleBoard competition
Hawk Board
Overo fire
IGEPv2 Board
285 / 303
12. Concrete Example: the BeagleBoard – Other kinds of boards
Hawk Board
Overview
Website: http://www.hawkboard.org/
Purpose: similar to BeagleBoard
Price: around $90
Processor: Ti OMAP-L138 Low Power Application Processor
I
I
300-MHz ARM926EJ-STM RISC CPU
300-MHz C674x VLIW DSP
Memory:
I
I
I
128 MByte DDRAM running at 150MHz
128 MByte NAND FLASH
1 SD/MMC Slot
Ports: 1×RS232, 1×Ethernet, 2×USB, 1×SATA, 1×VGA, 2×AUDIO
286 / 303
12. Concrete Example: the BeagleBoard – Other kinds of boards
IGEPv2 Board
Overview
Website: here
Purpose: similar to BeagleBoard
Hardware details:
I
I
I
I
Processor: OMAP [email protected]
Memory: 512MB NAND and 512MB [email protected] MHz
Ports: 1×HDMI, 1×Ethernet, 2×USB, 2×AUDIO, 1× microSD
R
Wireless: 802.11(g) and Bluetooth
287 / 303
12. Concrete Example: the BeagleBoard – Other kinds of boards
GUMSTIX OveroTM Fire
Overview
Website: here
Purpose: similar to BeagleBoard
Price: $219.00
Hardware details (Leopard Board 365):
I
I
I
I
Processor: OMAP [email protected]
Memory: 256MB NAND and 256MB RAM
Ports: 2×USB, 2×AUDIO, 1× microSD
R
Wireless: 802.11(g) and Bluetooth
288 / 303
12. Concrete Example: the BeagleBoard – Other kinds of boards
Pandora game console
289 / 303
12. Concrete Example: the BeagleBoard – Other kinds of boards
Pandora game console
Overview
Website: http://www.openpandora.org/
Purpose: game console (run Quake I, II, III)
Hardware details:
I
I
I
I
I
I
I
OMAP [email protected] - 256MB RAM - 512M BNAND
800x480 4.3” 16.7 million colours touchscreen LCD
Wifi 802.11b/g, Bluetooth & High Speed USB 2.0 Host
Dual SDHC card slots & SVideo TV output
Dual Analogue and Digital gaming controls
43 button QWERTY and numeric keypad
Around 10+ Hours battery life
290 / 303
Was this manual useful for you? yes no
Thank you for your participation!

* Your assessment is very important for improving the work of artificial intelligence, which forms the content of this project

Download PDF

advertisement