Search icon CANCEL
Subscription
0
Cart icon
Your Cart (0 item)
Close icon
You have no products in your basket yet
Arrow left icon
Explore Products
Best Sellers
New Releases
Books
Videos
Audiobooks
Learning Hub
Conferences
Free Learning
Arrow right icon
Arrow up icon
GO TO TOP
GNU/Linux Rapid Embedded Programming

You're reading from   GNU/Linux Rapid Embedded Programming Your one-stop solution to embedded programming on GNU/Linux

Arrow left icon
Product type Paperback
Published in Mar 2017
Publisher Packt
ISBN-13 9781786461803
Length 732 pages
Edition 1st Edition
Languages
Arrow right icon
Author (1):
Arrow left icon
Rodolfo Giometti Rodolfo Giometti
Author Profile Icon Rodolfo Giometti
Rodolfo Giometti
Arrow right icon
View More author details
Toc

Table of Contents (20) Chapters Close

Preface 1. Installing the Developing System FREE CHAPTER 2. Managing the System Console 3. C Compiler, Device Drivers, and Useful Developing Techniques 4. Quick Programming with Scripts and System Daemons 5. Setting Up an Embedded OS 6. General Purposes Input Output signals – GPIO 7. Serial Ports and TTY Devices - TTY 8. Universal Serial Bus - USB 9. Inter-Integrated Circuits - I2C 10. Serial Peripheral Interface - SPI 11. 1-Wire - W1 12. Ethernet Network Device - ETH 13. Wireless Network Device - WLAN 14. Controller Area Network - CAN 15. Sound Devices - SND 16. Video devices - V4L 17. Analog-to-Digital Converters - ADC 18. Pulse-Width Modulation - PWM 19. Miscellaneous Devices

Systems' overview

Here is a brief introduction of the developer kits we will use into this book.

The first kit is the BeagleBone Black, which is a low-cost, community-supported development platform for developers and hobbyists. It's able to boot Linux in under 10 seconds and get started on development in few minutes with just a single USB cable. This board is widely used on several prototypes on the Internet, so it's a board that every embedded programmer should know.

The second kit is SAMA5D3 Xplained , which is a fast prototyping and evaluation platform that comes with a rich set of ready-to-use connectivity, storage peripherals, and expansion headers for easy customization. A USB device connector can be used to power the board as well as for programming and debugging it. This board is very interesting due the fact it uses a very low power-consuming CPU with good performances and with a lot of industrial-oriented peripherals.

The last (but not least) kit is Wandboard, which is a complete computer with high-performance multimedia capabilities, a good peripheral equipment and, in contrast with the other boards, it's composed by a core module and an easy interface board to customize or modify. The board is very interesting because it can be equipped with a multicore CPU and because it comes as a CPU module connected to a carrier board, which allows embedded developers to have a highly hardware-customizable device.

The BeagleBone Black

In the following image, there is a picture of the BeagleBone Black, with a credit card, so that you can have an idea about the real dimensions of the whole system:

The BeagleBone Black

Here are some interesting URLs where you can read some useful information regarding BeagleBone Black:

The main hardware key features of my BeagleBone Black (revision C) are reported in the following table:

Part

Specification

Main processor

ARM processor: Cortex-A8 @ 1Ghz

Graphic processor

PowerVR SGX

SDRAM memory

512MB DDR3

On-board flash

4GB, 8-bit eMMC

USB 2.0 ports

1 device

1 host

Serial port

UART0 via 6 pin 3.3 V TTL connector

Ethernet

1 port 10/100 via RJ45 connector

SD/MMC

1 slot microSD

Video/audio out

Micro HDMI

Buttons

1 for power

1 for reset

1 user controllable

LED indicators

1 for power

2 on Ethernet port

4 user controllable

On-board Wi-Fi/bluetooth

None

SATA

None

Expansion

Connectors

Power 5V, 3.3V, VDD ADC (1.8V)

GPIOs 3.3V

SPI, I2C, LCD, GPMC, MMC0-1, CAN

7 ADC (1.8V max)

4 timers

4 serial ports

3 PWMs

J-TAG connector

20 pins J-TAG (not populated)

Then, the following image shows a top view of the BeagleBone Black, where we can see some interesting things:

  • The connector J1 used to access the serial console.
  • The Ethernet connector.
  • The power connector.
  • The two expansion connectors P8 and P9, where we can connect the dedicated extension boards and/or custom peripherals (these connectors will be explained in detail in the upcoming chapters).
  • The microSD slot.
  • The USB host port.
  • The reset button does what it says while the power button can be used to turn on/off the board, and the user button, which is user controllable, can be used to do an alternate boot on the microSD card instead of the on-board eMMC.

The BeagleBone Black

From the preceding image, we can see that the BeagleBone Black doesn't look like a PC, but it can act as a PC! The BeagleBone Black is a fully functional single-board computer and can be readily used as a PC if required by connecting a monitor to the HDMI port and attaching a USB keyboard and mouse through a USB hub. However, it is more suited to embedded applications, where it can act as more than a PC due its expansion connectors, and we can stack up to four expansion boards (named capes) that are useful for several purposes.

In this book, we'll see how we can manage (and reinstall) a complete Debian distribution that allows us to have a wide set of ready-to-run software packages, as a normal PC may have (in fact, the Debian ARM version is equivalent to the Debian x86 version). Then, we'll see how we can use the expansion connectors to connect to the board. Several peripherals are used to monitor/control the external environment.

The SAMA5D3 Xplained

In the following image, as done earlier, there is a picture of the SAMA5D3 Xplained, with a credit card, where we can easily notice that compared to the BeagleBone Black, this board is larger. This is due the fact that we have more connectors and ports mounted on the board. In particular, the expansion connector in the center of the board is Arduino R3 compatible, so we can use its extension boards on it:

The SAMA5D3 Xplained

Here are some interesting URLs where you can read about SAMA5D3 Xplained:

Note that there are several versions of the SAMA5D3 Xplained board depending on the CPU version, so we can have SATSAMA5D31, SATSAMA5D33, SATSAMA5D34, SATSAMA5D35, and ATSAMA5D36. Each CPU has the same core, but a different peripheral set.

In this book, we will use ATSAMA5D36, and the main hardware key features of this version are reported in the following table:

Part

Specification

Main processor

ARM processor: Cortex-A5 @ 536Mhz

Graphic processor

LCD controller with graphics accelerator

SDRAM memory

256MB DDR2

On-board flash

256MB, NAND flash

USB 2.0 ports

1 device

2 host

Serial port

UART0 via 6 pin 3.3 V TTL connector

Ethernet

1 port 10/100/1000 via RJ45 connector

1 port 10/100 via RJ45 connector

SD/MMC

1 slot SD/MMCPlus 8-bit

1 slot microSD 4-bit (not soldered)

Video/audio out

Digital interface

Buttons

1 for reset

1 for wake up

1 user controllable

LED indicators

1 for power

2 on each Ethernet port

1 user controllable

On-board Wi-Fi/bluetooth

Optional WiFi via SDIO expansion

SATA

None

Expansion

Connectors

GPIOs 3.3V

SPI, I2C0-1, CAN0-1, VBAT

12 ADC (3.3V max)

2 timers

6 serial ports

2 PWMs

J-TAG connector

20 pins J-TAG (populated)

The following image shows a top view of the SAMA5D3 Xplained, where we can see some interesting things:

  • The connector J23 can be used to access the serial console.
  • The USB micro port can be used obviously as a USB device interface, but it is used also as a power supply port and as a SAM-BA USB device and USB CDC connection.
  • The two Ethernet connectors.
  • The LCD connector.
  • The JTAG connector.
  • The two USB host ports.
  • The expansion connector (note that these connectors are Arduino R3 compatible).
  • The reset button can be used to reset the board. The wake up button can be used to turn on/off the board.

The SAMA5D3 Xplained

This board can also act as a PC, even if it is designed for typical industrial tasks. It can resist in very hostile environment. It has low power consumption and a lot of useful peripherals for professional applications. In contrast to the BeagleBone Black, it has no HDMI connector for external monitor, but it has a dedicated connector for an LCD with touch screen.

Even for this board, we'll install a complete Debian distribution and see how we can use the expansion connectors to connect to the board.

The Wandboard

In the following image, there is a picture of the Wandboard, with the same credit card shown earlier:

The Wandboard

The board seems quite small, but it's actually composed of two parts: the core module is on top of the interface (or carrier) module (see the following image):

The Wandboard

Here are some interesting URLs where you can gain some useful information regarding your Wandboard:

Note that there are several versions of the Wandboard board depending on the CPU version, so we can have the Wandboard Solo, Wandboard Dual, and Wandboard Quad. Each version has a different CPU with the same core but a different peripheral set and core numbers. In fact, the Wandboard is available as a single-, dual-, and quad-core CPU!

In this book, we will use the Wandboard Quad (revision C1), and the main hardware key features of this version are reported in the following table:

Part

Specification

Main processor

ARM processor: Quad Cortex-A9 @ 1Ghz

Graphic processor

Vivante GC 2000 + Vivante GC 355 + Vivante GC 320

SDRAM memory

2GB DDR3

On-board flash

None

USB 2.0 ports

1 OTG

2 host

Serial port

UART0 via standard RS232 pin9 connector

Ethernet

1 port 10/100/1000 via RJ45 connector

SD/MMC

2 slot SD/MMCPlus 8-bit

Video/audio out

HDMI

Analog audio plus optical S/P DIF

Digital camera connector

Buttons

1 for reset

LED indicators

1 for power

2 on Ethernet port

On-board Wi-Fi/bluetooth

802.11n/4.0

SATA

1 connector

Expansion

connectors

GPIOs 3.3V

SPI, I2C0-1, CAN0-1, VBAT

12 ADC (3.3V max)

2 timers

6 serial ports

2 PWMs

J-TAG connector

8 pins J-TAG (not populated)

The following two images show the bottom and top views of the Wandboard, where we can see some interesting things. Here are the features of the bottom side of the board:

  • The RS-232 9-pins connector COM1 can be used to access the serial console
  • The USB mini port used as USB OTG connector
  • The USB host port
  • The secondary microSD connector
  • The power connector
  • The Ethernet connector
  • The audio ports
  • The SATA connector
  • The HDMI connector

The Wandboard

On the top side (we split the core module on the left and the interface board on the right) we have:

  • The camera interface connector
  • The primary microSD
  • The Wi-Fi chip
  • The four expansion connectors
  • The reset button can be used to reset the board

The Wandboard

This board too can act as a PC, and that's why we will install a complete Debian distribution on it too. This board, as in the case of the BeagleBone Black, has a HDMI connector for external monitor.

You have been reading a chapter from
GNU/Linux Rapid Embedded Programming
Published in: Mar 2017
Publisher: Packt
ISBN-13: 9781786461803
Register for a free Packt account to unlock a world of extra content!
A free Packt account unlocks extra newsletters, articles, discounted offers, and much more. Start advancing your knowledge today.
Unlock this book and the full library FREE for 7 days
Get unlimited access to 7000+ expert-authored eBooks and videos courses covering every tech area you can think of
Renews at $19.99/month. Cancel anytime
Banner background image