Skip to content
Fast and easy Input/Output driver for digital/analog lines on Beagleboard hardware
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
cmake/Modules update: cmake scripts Sep 11, 2018
debian fixed debian/changelog May 10, 2019
doxy
src fixed timer docs May 9, 2019
.gitattributes doc source moved to subfolder Apr 8, 2015
.gitignore fixed re-muxing in destructor Oct 11, 2018
CMakeLists.txt finetuning for one shot timers May 9, 2019
ReadMe.md doc: PRU-1 added in Cha7, modi->modes, \year updated Jan 16, 2019

ReadMe.md

Welcome to libpruio library,

  • a driver for ARM33xx micro processors,
  • designed for Beaglebone hardware, supporting
  • analog input and
  • digital input and output features.

It's designed for easy configuration and data handling at high speed. libpruio software runs on the host (ARM) and in parallel on a Programmable Realtime Unit SubSystem (= PRUSS or just PRU) and controls the CPU subsystems

  • Control Module: CPU Ball configurations (pinmuxing)
  • GPIO: General Purpose Input / Output
  • PWMSS: Pulse-Width Modulation Subsystem (PWM, QEP, CAP)
  • TSC_ADC_SS: Touch Screen Controler and Analog-to-Digital Convertor SubSystem (or just ADC)
  • TIMER: Timers 4 to 7 (TIMER, PWM)

The driver supports three run modes

  • IO mode: digital and analog lines, sloppy timing controlled by the host,
  • RB mode: digital and analog lines, accurate ADC timing controlled by the PRU,
  • MM mode: analog lines and optional triggers, accurate ADC timing controlled by the PRU.

Since version 0.6.2 a PRU driver is included to load and start firmware on the PRUSS.

The libpruio project is hosted at GitHub. It's developed and tested on a Beaglebone Black. It should run on all Beaglebone platforms with Debian based LINUX operating system, including PocketBeagle and BeagleboneBlue. It's compiled by the FreeBasic compiler. Wrappers and examples code for C and Python programming languages are included.

Find more information in the online documentation at

or at related forum pages:

\note The PRUSS are powerful precessors that can access any memory at the host system. There's no kernel protection, the PRU can even access kernel space memory. Malware running on a PRU can damage your complete system. So be careful which software you run on, and enable the PRUSS only when you need them.

Licence:

libpruio (LGPLv2.1):

Copyright © 2014-2019 by Thomas{ doT ]Freiherr[ At ]gmx[ DoT }net

This program is free software; you can redistribute it and/or modify it under the terms of the Lesser GNU General Public License version 2 as published by the Free Software Foundation.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.

You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110- 1301, USA. For further details please refer to: http://www.gnu.org/licenses/lgpl-2.0.html

Examples and utility programs (GPLv3):

Copyright © 2014-2019 by Thomas{ doT ]Freiherr[ At ]gmx[ DoT }net

The examples of this bundle are free software as well; you can redistribute them and/or modify them under the terms of the GNU General Public License version 3 as published by the Free Software Foundation.

The programs are distributed in the hope that they will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110- 1301, USA. For further details please refer to: http://www.gnu.org/licenses/gpl-3.0.html

You can’t perform that action at this time.