Single Board Computers

advertisement
Single Board Computers
and Dev Boards
MRSD Fall 2013
Why Use a SBC?
•
•
•
•
•
•
Easy access to pins on microcontroller
Built in power regulation
Built in USB for programming/debugging
Easy to read pin labels
Hardware attachment points
Built in connectors (USB, ethernet, A/V, SD,
etc)
Key Metrics
•
•
•
•
•
•
•
Programming interface: USB, UART, ISP, OS
Logic voltage: 5V or 3.3V
Serial interfaces: USB, UART, I2C, SPI, CAN
Analog interfaces: ADC, DAC, PWM
Architecture: 8bit, 16bit, 32bit
PC Features: USB Host, Ethernet, HDMI, Audio
CPU Speed, Memory, Flash, EEPROM
“Families”
• Bare Metal: write code that runs directly on hardware
• OS: Write code that executes like a program on a PC
(hardware abstracted away by OS)
• 8/16Bit Bare Metal
– Low power, cost
• 32Bit ARM Bare Metal
– Faster
• 32Bit ARM Linux OS
– Acts like a real computer
– More work to access hardware
8/16Bit
•
•
•
•
Slow clock: 8MHz, 16MHz
Very little memory
Low complexity, easy to get started
Few “bonus features”
– Some support HID
– Some include Ethernet, WiFi
• Note: Can still use SD cards! They talk with SPI
Arduino 168/328 Family
Uno/Nano/Pro (Mini)/Ethernet
• 168: 1K RAM, 16KB Flash
• 328: 2K RAM, 32KB Flash
• Good for: Basic prototyping, small systems,
lots of variants, lots of shields, real time
• Bad for: heavy processing, advanced
connectivity
• Pro comes in 3.3/8MHz and 5/16MHz
• $25: Uno, $35: Nano, $15: Pro, $10: Pro Mini
Arduino 32U4 Family
Leonardo/Micro/Yun
• Same as previous, but with USB HID capability
• Act like a keyboard/mouse/joystick for
another computer
• Good for: Being USB HID
• Bad for: heavy processing
• $25 Leonardo/Micro, $72 Yun
Arduino Mega (2650/ADK)
• 2560 for general use
• ADK for use with Android devices.
• Good for: Larger systems w/ lots of IO. Can
use Arduino Shields with IO pins to spare.
• Bad for: Large size
• $55
32Bit ARM
•
•
•
•
•
•
•
•
Higher speeds than 8Bit boards
More memory
No need to run OS, program Bare Metal
More interrupt pins (usually all of them)
Multiple serial busses
Real Time
All 3.3V
Some extras:
– USB HID, Ethernet, DACs, FPU
• Phone production -> low cost ARM fabs
Arduino Due
• Can use some Arduino Shields (but not all)
• Good for: Like the Mega, but 3.3V, >5x clock
speed, more memory, some extras (HID, DACs)
• Bad for: Is the Servo library still broken? Is
CAN implemented yet?
• $50
Mbed LPC1768
• Online IDE (C++)
• Good for: ARM power, small package,
Ethernet, CAN
• Bad for: Expensive, relatively few IO pins
• Class has one for use.
• $50-$80 (depends where you look)
TI Launchpad Stellaris LM4F120
• Low cost (designed to sell the chip, not the
board)
• Good for: IO on a budget
• Bad for: Need to get an IDE & compiler up and
running
• Energia: fork of Arduino for Launchpads
• $8
STM 32 Discovery
•
•
•
•
•
•
Lots of pins
Built in Accelerometer
Class has one for use
Good for: Lots of IO
Bad for: Getting the dev environment started
$30
Teensy 3.0
•
•
•
•
•
Super tiny, inexpensive
Supports HID
Programmable with Arduino language
Good for: Low cost in tiny package
Bad for: advanced computer connectivity,
bootloader sometimes fickle
• $19
Linux OS Boards
•
•
•
•
•
Runs a full Linux OS (Desktop or Android)
Real time is more difficult
Accessing hardware is a little more complicated
More programming language options
More “PC” ports: Ethernet, USB host, video,
audio
• Highest CPU speeds, memory (but some used by
OS)
• May include FPU, GPU
• Usually have ARM CPU
Raspberry Pi
• Acts like a real computer, but smaller
• Good for: a small computer for high level
functions, video processing, output. Use when
you need a small computer, not a dev board.
• Bad for: Low level IO. Few GPIO, no ADC.
• A:$25 or B:$35
– Use model B. The $10 is so worth it (adds
Ethernet, 2xUSB, 2x RAM).
BeagleBone (Black)
• Black adds lots of features, at half the cost
– A few features went away, but overall worth it
• Good for: Power of computer with tons of
GPIO
• Bad for: capes are expensive. Some say
difficult to work with.
• $90, $45 (Black)
BeagleBoard xM
• Small computer
• Limited GPIO
• Good for: Needing a real computer, but small
size
• Bad for: Interacting with low level hardware,
small budgets
• $150
Pandaboard
• Small computer
• Limited GPIO
• Good for: Needing a real computer, but small
size
• Bad for: Interacting with low level hardware,
small budgets
• $180
Udoo
• 4 Raspis + Due = Udoo
• Not officially available yet, but made at CMU
– Email Prof Sinopoli, who made it. No promises
though.
• Single, Duo, Quad core
• Good for: Superpowerful computer + IO of
Due
• Bad for: low budgets
Board BM/ 5V/
OS
3.3V
USB
Host/
Dev
MHz
RAM
Flash
GPIO UART
/SPI
/I2C
ADC/
DAC/
PWM
USD
$
328
C++
5
Serial
16
2k
32k
14
1/1/1
6/0/5
25
32U4
C++
5
S/HID
16
2k
32k
14
1/1/1
6/0/5
25
Mega C++
5
Serial
16
8k
256k
54
4/1/1
16/0/15
55
Due
C++
3.3
S/HID
84
96k
512k
54
4/1/1
12/2/12
50
RasPi
OS
3.3
PC
700
512M SD
8
1/1/1
0/2/0
35
BB
OS
3.3
PC/Ser
720
256M SD
65
2/1/2
7/0/6
90
BBB
OS
3.3
PC
1G
512M SD+2G 65
2/1/2
7/0/6
45
PC
1G
512M SD
0?
?/1/1
2/2/0
150
96
32k
512k
26
3/2/2
6/1/6
80
256k
36
7/4/4
12/0/23
8
1M
80
?/?/?
?/2/?
30
BBxM OS
Mbed C++
3.3
H/D
Stella
C++
3.3
S/HID
STM
C++
3.3
S/HID
Pand
OS
Udoo
OS
T3
C++
192k
PC
1.2Gx2 2G
SD
0?
?/?/?
?/?/?
180
3.3
PC
1Gx2
1G
SD
76
4/1/1
12/2/12
99+
3.3
S/HID
48
16k
128k
33
3/1/1
12/0/10
19
Download