Book Image

Learning BeagleBone

By : Hunyue Yau
Book Image

Learning BeagleBone

By: Hunyue Yau

Overview of this book

Table of Contents (18 chapters)
Learning BeagleBone
About the Author
About the Reviewers
Terms and Definitions

Appendix B. Terms and Definitions

New BeagleBone users come from backgrounds that vary both technically and geographically. In this appendix, we will go through some terms to help you understand this book and other BeagleBone resources such as the community mailing list:

  • Active low/active high: These are different electrical ways of describing a signal. Active high and active low refers to the electrical state a signal is considered to be active. For example, an enable or chip select signal can be described as active high or active low. An active low enable or chip select signal means when the signal is at the electrical value 0 (usually 0V), the signal is enabled or the chip is selected. Conversely, an active high enable or chip select signal means when the signal is at the electrical value 1 (3.3V for the BeagleBone), the signal is enabled or the chip is selected. The opposite state in both cases would mean the chip is not selected. A related concept is tristating.

  • Altoids tin: Altoids is a mint candy sold in many parts of the world. It is commonly distributed in a small metal container with rounded corners, an Altoids tin. The tin is often used to store small items and it happens to match the shape of the BeagleBone.

  • Directories: Linux has the concept of a directory to help organize things on a storage device. On other systems, such as Mac OS or Windows, this is the equivalent of a folder. It is analogous to a physical folder.

  • Electro Static Discharge (ESD): Many modern electronic devices, such as the BeagleBone, are sensitive to static electricity. ESD is the damaging discharge of static electricity, which is similar to getting shocked by touching a door knob after walking across a carpet. That shock might be an annoyance for you, but for the tiny transistors inside the silicon chips, they carry enough energy to destroy microscopic structures on the transistor.

  • Hosts and targets: These are terms used to describe a typical embedded development setup. An embedded system is often limited compared to a desktop or a laptop system. For example, embedded systems may have limited computing power, memory, connectivity, and human-oriented I/O systems such as keyboards and displays. To expedite development, a desktop or a laptop is often paired with the embedded system. The embedded system is the target, as in the target of the development, and the host system is the desktop or laptop. The BeagleBone has considerably more capability than other embedded systems, but the same terms are applicable.

  • Man pages: This term is short for manual pages, and these are the traditional way Linux/Unix commands are documented. On most Linux systems, you can pull up a man page by going to the command prompt and using the man command, for example, man ls. This will pull up the man page for the ls command. Man pages can also be found by searching for man ls on a search engine.

  • Programmable Real-time Unit Subsystem (PRUSS): This is a block on the SoC used by the BeagleBone to support real-time hardware operation. The PRUSS subsystem provides two Programmable Real-time Units (PRUs) to support real-time operations in hardware. The main processor on the BeagleBone is an ARM Cortex-A8 and it commonly runs Linux; neither of these pieces are designed for real time. Real time means each time you do something, you can predict how long it will take and when it will happen. For example, if you were to use Linux to toggle a signal very rapidly, you will notice the signal is not always regularly timed. Similarly, there are hardware aspects of the Cortex-A8 that can make the timing not completely predictable. The PRU is an independent microcontroller designed to offload real-time tasks from Linux. On many other SoCs, the PRU equivalent would be an external microcontroller chip.

  • System on a Chip (SoC): This is an integrated chip that offers a processor and peripherals in a single package. The BeagleBone uses the AM3358 SoC from Texas Instruments and provides an ARM processor, memory controller, I2C controller, Ethernet controller, and more on a single package. Prior to SoCs, the same functionality required multiple chips. The AM3358 SoC is what makes the low cost of the Beagle boards and BeagleBones possible.

  • Secure Shell (SSH): This is an optionally encrypted network protocol used to connect to other systems for things such as command-line access. The encryption part is not essential for our use, but SSH can provide some simple level of security if the BeagleBone is ever directly connected to an unsecured network, such as the Internet. SSH also provides the basis for file transfer protocols, such as SCP or SFTP. SCP allows files to be copied to and from an SSH server such as the BeagleBone. SSH consists of a server on the device you are accessing and a client on the machine you are coming from. On Linux desktops, OpenSSH ( is a common package. For embedded devices, Dropbear ( is another smaller package. Both of these packages implement the SSH server and client.SSH. Most BeagleBone distributions will use one of these SSH implementations. SSH clients and the related file transfer tools such as SCP exist for most systems. A sampling of SSH clients are as follows:

  • Tristate: A tristate signal can assume one of three possible states. It can be logic 0, logic 1, or a third high impedance state. Sometimes high impedance is designated as Hi-Z. A high impedance state means the signal is electrically disconnected. It behaves as if nothing is connected. Using a chip select, multiple devices can be connected in parallel. As long as the chip select is inactive, each device remains in the high impedance state. The high impedance state prevents the devices from electrically fighting with each other. On the BeagleBone, the high impedance state can be simulated in most cases by configuring the signal as an input.