Hardware Reference
In-Depth Information
Chapter 1
Hardware Overview
Now that you have all the tools, components, and electronics knowledge from the introduction, you should be able
to carry out the projects in this topic. Let's talk about the hardware in detail on the Raspberry Pi. A whole chapter
dedicated to some cheap hardware? You may ask why do I need this much information on such cheap hardware?
Well, to get the most out of the software you're going to need to know the details of the hardware.
In addition, a lot of projects will make use of the low-level hardware inputs and outputs on the Raspberry Pi, so
knowing how best to use the hardware at hand is very important. The Raspberry Pi Foundation also wants to reignite
people's interest in the hardware and writing code for that hardware; I guess they miss their BBC Micros. In case
you have not noticed I am a bit of a hardware fan and I've got a soft spot for hardware of all sorts. I feel that today's
computers are far less interesting with just the x86 lines and a few remaining miscellaneous architectures left. So
seeing the Pi and the ARM become more widespread makes me a little happy. After all, I do have a full high rack of
different architecture machines in my home, ranging from the PA-RISC and Itanium 2 to the IBM Power, and, given
Hong Kong's impossibly small apartments, that's a pretty big commitment. Adding one more makes me happy though
I don't think I'll rack-mount my Pi (although a small rack cluster of Pi sounds quite tasty)!
Looking back at the ARM's humble development it is interesting to know that back in 1986 Acorn Computers created
an interface for an early ARM processor that could be connected to the BBC Micro via its tube interface. This was critical in
the ARM's development many years ago. In terms of the tube bus on the BBC Micro, the outset of GPIO (General Purpose
Input Output) pins would be more useful nowadays. So if back in the day Acorn can interface a completely different CPU
architecture, you should be able to do some interesting projects with the GPIO and the other interfaces on the Pi.
The Pi has a large range of inputs and outputs that we can make use of in the following chapters. In the following
pages I will cover the inputs and outputs and how to use them. I will also give you an overview of what's special about
the ARM11 architecture and how certain parts of this architecture can affect the operating system we select.
The video output will be quite important to those of you who wish to connect the Pi to a video display of some type.
The Pi has also included a lot of low-level inputs and outputs: some of them we can use and some of them we cannot
use at the moment. That's unfortunate, but I am sure the foundation has its reasons for this. Unfortunately, not all
documentation on all parts of the Pi is released for a public audience.
I am an open source supporter so I hope one day the documents are released to the public, giving all of us the
chance to fix issues in this hardware and make improvements with Linux on the Pi. In particular, the Broadcom
VideoCore IV that is part of the Broadcom BCM2835 has its documents stored far away from public view. The
unfortunate effect of this means the community at the moment will need to make do with a binary blob driver for Linux.
A binary blob driver refers to the way you receive the driver or module. In most Windows machines you receive
an installer for your hardware and, once installed, your hardware can be used by the system. This is a binary blob: it just
means a precompiled driver or module for your given hardware. In the world of Linux this matters because you cannot
integrate this driver into the kernel source and most of the time you never see the source code. This makes it impossible
for the community to support the hardware if the vendor were to stop making a binary blob driver available.
Note
 
 
Search WWH ::




Custom Search