Raspberry Pi is probably the most popular single-board computer of all time. The computer comes from British non-profit organization Raspberry Pi Foundation, headquartered Caldecote. By the time of its introduction, it represented the cheapest SBC on the market. Raspberry Pi B+ represents an improved version of Raspberry Pi B and newly brings a two more USBs (total 4), more GPIOs or improved supply circuit.
Raspberry Pi B+ is based on a SoC (system on chip) with the model designation Broadcom BCM2835. It conceals one ARM1176JZFS core (ARM11) standardly clocked at 700MHz. ARM1176JZFS core is based on the ARMv6 architecture, and includes hardware FPU and VFP extension (more about ARM extensions at ARMv6 vs ARMv7 ). SoC also contains VideoCore IV GPU clocked at 250MHz (24 GFLOPS), supporting OpenGL ES 2.0 or hardware encoding/decoding H.264 1080p30. Video output is provided by HDMI 1.3a (supporting audio over HDMI) and by analog composite output (NTSC/PAL). Another analog output is stereo audio output. Composite video output and audio output are newly sharing the same connector – 4-pole jack. The board is therefore no longer using dedicated RCA connector for composite video out (like Pi Model B). BCM2835 SoC is directly connected to MIPI-CSI and DSI interfaces via differential busses. GPIO header is also improved over Pi B and now has 40 pins (vs 26 pins on Pi B). The ground pins are also better spread over the GPIO header for better separation of fast buses. We can still find I2C, SPI, I2S and UART (used for Linux terminal by default) on the pin header. As a new feature we can also find a second I2C bus reserved especially for the identification of connected expansion boards (Shields). This I2C can also be used to downloaded driver (Device Tree Overlay) from the expansion boards and apply it on RPi. That therefore means a significant improvement of ergonomics when working with SHIELDs supporting this feature. GPIO pins still utilize 3.3V TTL logic levels and are not 5V tolerant. RAM chip is DDR3 and is mounted directly on top of SoC BCM2835 package.
Another new Raspberry Pi B+ feature is the replacing of LAN9512 circuit (dual USB hub and Ethernet 100Mbit controller in one package) with LAN9514 circuit. LAN9514 integrates a 4x USB hub and thus brings extra couple of USBs. LAN9514 is connected to the BCM2835 SoC again via USB. This still represents a bottleneck (one USB transfers the four equally fast USB + Ethernet).
The power supply circuit is newly based on integrated dual switching regulator (providing 1.8V and 3.3V). The power supply is therefore far more efficient compared to RPi B. Supply voltage is provided via dedicated micro USB connector and passes through 2A resettable fuse (polyswitch). Input is also protected by polarity protection circuit.
|single core ARM1176 at 700MHz
|RJ45 for 10/100 ethernet, HDMI (full size), MIPI-CSI for camera, DSI connector for display, 1x microUSB for power input, 4x USB2.0 host, 40pin GPIO header, 3.5 4-pole jack pro audio output and analog video out
Raspberry Pi B+ requires an operating system capable of running on ARMv6 architecture with Thumb and VFPv2 extensions. Raspberry Pi Foundation has released a new modified port of Debian operating system for this specific configuration, called Raspbian. Raspbian is specifically based on Debian armhf (which was originally targeted for ARMv7 – Thumb-2 and VFP3D16). Modified system among other things, includes proprietary GPU drivers for the VideoCore IV, many Device tree overlays for controlling various peripherals or utilities for easy configuring of RPi. The system includes a graphical desktop environment LXDE. Raspbian uses its own package repository to ensure compatibility with the custom system build.
For purposes of software development, you can choose from the classic range of programming languages available on Linux. Although Python is sometimes perceived as the preferred language for RPi (Python IDE is pre-installed and Python is recommended by RPi creators), there is no problem to develop natively in C/C++ or use anything else. For example popular IDE Code::Blocks (available in the official repository) works at RPI fairly smoothly. Of course, you can use gcc (g++) directly and compile only via terminal. Compiling on such slow machine, however, is not very comfortable (most likely the reason why interpreted languages scoring on RPi) and it worth considering rather using of cross compiler running on some more powerful machine. Thanks to wide and productive community there is lot of libraries for controlling of GPIO ports (Pigpio, WiringPi or RPi.GPIO). Also many “drivers” (overlays or kernel modules) are available for various external circuits. It is also very easy to use the buses on GPIO header (I2C, I2S, SPI, UART).
There are many other available alternative operating systems, respectively their ports like Ubuntu mate, OSMC, OpenELEC or OpenWrt. Different systems are often dedicated to serve some specific purpose and are intended for use of RPi as embedded device.
working on it…
Raspberry Pi B+ is the best equipped Raspberry Pi model built on the original BCM2835. Pi B+ fixes many shortcomings of previous models from inefficient supply circuit to asymmetrical mounting holes. For the price of $25 it represents the ideal entry into the world of Raspberry Pi.