Personal tools

Control an external ADC using Programmable Real-Time Unit (PRU) Subsystem on Beaglebone Black used as embedded HPC-performance-monitoring device

From iis-projects

Jump to: navigation, search

Short Description

In recent years, energy-efficiency is becoming a key challenge in the High Performance Computing (HPC) domain. Indeed, while the demand for more powerful supercomputers is constantly increasing, integrated computing architectures are facing power/thermal challenges that are limiting the performance benefits of technology scaling. However, even if energy-efficiency is of primary interest, such infrastructures have a limited introspection on the measurement of power and energy dissipated at run-time. Aiming at bridging this gap, we designed and developed at IIS, in collaboration with some Commercial Partners, a scalable and highly accurate power-consumption monitoring framework, based on a state-of-the-art embedded monitoring device (namely a Beaglebone Black) and a power-sensing-board placed at the node power-supply.

Goal of this Project → The project will cover mainly two phases:

  • design and implementation of a printed circuit-board (we called it “routing-board”) which will be interposed in-between the Beaglebone Black and our power-sensing-board at the node power-supply. Such routing-board will integrate a high-speed high-resolution ADC, which will be controlled by the built-in Programmable Real-Time Unit (PRU) of the Beaglebone Black Board.
  • write the PRU software side code (C Language/Assembly) to control the external ADC through the I/O pin of the Beaglebone Black (e.g. using I2C, SPI, ...).

Status: Available

Looking for 1 Master Students (Semester Project)
Supervision: Antonio Libri, Andrea Bartolini


  • Good knowledge of C programming.
  • Experience with embedded software and serial communication protocols (e.g. I2C, SPI).
  • Experience using laboratory instrumentation (signal generators, oscilloscopes, etc.) and knowledge on printed circuit board (PCB) using Altium would be an asset.


20% Theory
50% Implementation (C programming for Linux kernel)
30% Testing


Luca Benini

↑ top

Detailed Task Description


Practical Details

↑ top