Introduction to BCM2835 and SoC (System on a Chip)
The BCM2835 is a powerful System on a Chip (SoC) designed by Broadcom, which has gained significant popularity due to its use in the Raspberry Pi single-board computer. As an SoC, the BCM2835 integrates various components of a computer system onto a single integrated circuit, providing a compact and efficient solution for embedded systems and IoT devices. In this article, we will delve into the details of the BCM2835, exploring its features, architecture, and applications.
What is a System on a Chip (SoC)?
Before we dive into the specifics of the BCM2835, let’s first understand what an SoC is. A System on a Chip is an integrated circuit that combines multiple components of a computer system onto a single chip. These components typically include a central processing unit (CPU), memory (RAM and ROM), input/output (I/O) interfaces, and other specialized hardware accelerators. By integrating these components onto a single chip, SoCs offer several advantages, such as reduced power consumption, smaller form factors, and lower costs compared to traditional multi-chip designs.
The BCM2835 SoC
The BCM2835 is a prime example of an SoC, designed specifically for embedded applications. It was developed by Broadcom, a leading semiconductor company known for its expertise in wireless and broadband communication technologies. The BCM2835 gained widespread recognition when it was chosen as the heart of the Raspberry Pi, a credit card-sized single-board computer that has revolutionized the world of hobbyist electronics and computer science education.
Key Features of the BCM2835
The BCM2835 boasts an impressive set of features that make it well-suited for a wide range of applications. Let’s take a closer look at some of its key features:
ARM1176JZF-S Processor
At the core of the BCM2835 lies the ARM1176JZF-S processor, a 32-bit RISC (Reduced Instruction Set Computing) processor based on the ARMv6 architecture. This processor operates at a clock speed of 700 MHz and features a single core with a 16-stage pipeline. The ARM1176JZF-S processor is known for its low power consumption and high performance, making it an ideal choice for embedded systems.
VideoCore IV GPU
One of the standout features of the BCM2835 is its integrated VideoCore IV GPU (Graphics Processing Unit). This GPU is capable of delivering impressive graphics performance, supporting OpenGL ES 2.0 and OpenVG 1.1 graphics APIs. The VideoCore IV GPU enables the BCM2835 to handle complex graphics tasks, such as rendering 3D graphics, decoding high-definition video, and accelerating 2D graphics operations.
Memory and Storage
The BCM2835 incorporates various memory and storage options:
- 256 MB or 512 MB of LPDDR2 SDRAM
- Boot ROM
- L1 and L2 caches
- SD/MMC card interface for external storage
The integrated LPDDR2 SDRAM provides fast and efficient memory access for the processor and GPU, while the SD/MMC card interface allows for the use of external storage devices.
Connectivity and I/O Interfaces
The BCM2835 offers a wide range of connectivity and I/O interfaces, making it versatile for different applications:
- USB 2.0 (Universal Serial Bus)
- HDMI (High-Definition Multimedia Interface)
- Ethernet
- I2C (Inter-Integrated Circuit)
- SPI (Serial Peripheral Interface)
- UART (Universal Asynchronous Receiver/Transmitter)
- GPIO (General Purpose Input/Output) pins
These interfaces enable the BCM2835 to connect to various peripherals, such as displays, input devices, sensors, and communication modules.
BCM2835 Architecture
To better understand how the BCM2835 functions, let’s take a closer look at its architecture.
Block Diagram
The following block diagram provides a high-level overview of the BCM2835’s architecture:
+-----------+ +--------+ +------+ +-------+
| | | | | | | |
| ARM1176 | | L1/L2 | | SRAM | | GPU |
| CPU |<--->| Caches |<--->| |<--->| |
| | | | | | | |
+-----------+ +--------+ +------+ +-------+
| | | |
| | | |
+-----------+ +--------+ +------+ +-------+
| | | | | | | |
| LPDDR2 | | Boot | | I/O | | Video |
| SDRAM |<--->| ROM |<--->| Inter|<--->| Codec |
| | | | | faces| | |
+-----------+ +--------+ +------+ +-------+
As shown in the block diagram, the BCM2835 consists of several key components interconnected through various buses and interfaces.
CPU Subsystem
The CPU subsystem is centered around the ARM1176JZF-S processor, which is responsible for executing instructions and performing general-purpose computing tasks. The processor is closely coupled with the L1 and L2 caches, which provide fast access to frequently used instructions and data. The SRAM acts as a small, low-latency memory for the CPU subsystem.
GPU Subsystem
The GPU subsystem is built around the VideoCore IV GPU, which handles graphics-related tasks. The GPU communicates with the CPU subsystem and other components through dedicated interfaces. It also has access to the LPDDR2 SDRAM for storing graphics data and textures.
Memory and Storage
The BCM2835 incorporates LPDDR2 SDRAM as the main system memory, which is shared between the CPU and GPU subsystems. The Boot ROM stores the boot code and initialization routines for the SoC. The SD/MMC card interface allows for the connection of external storage devices.
I/O Interfaces
The I/O interfaces provide connectivity to various peripherals and external devices. These interfaces include USB, HDMI, Ethernet, I2C, SPI, UART, and GPIO pins. The video codec accelerates video encoding and decoding tasks, offloading these computationally intensive operations from the CPU.

Applications of the BCM2835
The BCM2835 SoC has found its way into numerous applications due to its versatility and powerful features. Some notable applications include:
Raspberry Pi
The most well-known application of the BCM2835 is undoubtedly the Raspberry Pi single-board computer. The Raspberry Pi has revolutionized the world of hobbyist electronics and computer science education by providing an affordable and accessible platform for learning and experimentation. The BCM2835 powers the first-generation Raspberry Pi models (Model A, Model B, and Model B+), enabling them to run a full-fledged operating system and support a wide range of projects and applications.
Embedded Systems
The BCM2835’s compact size, low power consumption, and rich feature set make it an attractive choice for embedded systems. It can be used in various industrial, automotive, and consumer electronics applications, such as:
- Smart home devices
- Industrial control systems
- Automotive infotainment systems
- Medical devices
- Robotics and automation
The BCM2835’s I/O interfaces and GPIO pins allow it to interface with sensors, actuators, and other peripherals commonly used in embedded systems.
Media Players and Set-Top Boxes
The BCM2835’s powerful VideoCore IV GPU and video codec capabilities make it well-suited for media playback and streaming applications. It can be used in media players, set-top boxes, and digital signage systems to deliver high-quality video and audio content. The HDMI interface enables easy connection to displays, while the Ethernet and USB interfaces provide connectivity options for streaming and user interaction.
IoT and Wearables
The low power consumption and small form factor of the BCM2835 make it an attractive choice for IoT (Internet of Things) devices and wearables. It can be used in smart watches, fitness trackers, and other wearable devices that require processing power, connectivity, and low energy consumption. The BCM2835’s I/O interfaces allow it to connect to various sensors and communication modules commonly used in IoT applications.
Frequently Asked Questions (FAQ)
-
Q: What is the clock speed of the ARM1176JZF-S processor in the BCM2835?
A: The ARM1176JZF-S processor in the BCM2835 operates at a clock speed of 700 MHz. -
Q: How much LPDDR2 SDRAM is available on the BCM2835?
A: The BCM2835 can be configured with either 256 MB or 512 MB of LPDDR2 SDRAM, depending on the specific implementation. -
Q: What graphics APIs are supported by the VideoCore IV GPU in the BCM2835?
A: The VideoCore IV GPU in the BCM2835 supports OpenGL ES 2.0 and OpenVG 1.1 graphics APIs. -
Q: Can the BCM2835 be used for video encoding and decoding?
A: Yes, the BCM2835 features a video codec that accelerates video encoding and decoding tasks, offloading these computationally intensive operations from the CPU. -
Q: What operating systems can run on the BCM2835?
A: The BCM2835 can run various operating systems, including Linux distributions specifically designed for the Raspberry Pi, such as Raspbian. It can also run other lightweight operating systems suitable for embedded systems.
Conclusion
The BCM2835 SoC is a powerful and versatile solution for embedded systems and IoT devices. Its integration of a 32-bit ARM1176JZF-S processor, VideoCore IV GPU, memory, storage, and a wide range of I/O interfaces make it an ideal choice for applications ranging from single-board computers like the Raspberry Pi to industrial control systems, media players, and wearables. The BCM2835’s low power consumption, small form factor, and high performance have contributed to its widespread adoption and success in the embedded systems market.
As technology continues to evolve, the BCM2835 and its successors will undoubtedly play a significant role in shaping the future of embedded computing and IoT devices. With its powerful features and extensive community support, the BCM2835 provides developers and enthusiasts with a solid foundation for innovation and experimentation in the world of embedded systems.