OpenSCADAWiki: Home Page En/Doc/BCM2835
 

The module <BCM2835> of subsystem "Data Acquisition"

Module: BCM2835
Name: BCM 2835
Type: DAQ
Source: daq_BCM2835.so
Version: 1.2
Author: Roman Savochenko
Description: Broadcom BCM 2835 GPIO. Mostly for and used in Raspberry Pi.
License: GPL

Contents

Introduction

The module provides OpenSCADA system with the support data sources of realtime, which based on Raspberry PI board's General Purpose Input/Output (GPIO) grounded on BCM2835 chip. The BCM2835 GPIO of Raspberry Pi counts 32 pins in maximum some from its can also performs alternative functions like: I2C, UART, SPIO. For access to the GPIO in general functions there is used a library libBCM2835, which included and builds together with the module.

1. Controller object

GPIO into OpenSCADA configured with new controller object creation (Fig.1) and the container parameters' objects — a single parameter of the board's GPIO.

Configuration tab of the controller object. (83 Kb)
Fig.1. Configuration tab of the controller object.


From this tab you can set:

2. The controller's parameter object

The parameter object is a direct representative-reflection for the GPIO, which contains attributes set with Boolean types and it whole quantity 32. Parameter's object configuration tab is shown in Figure 2. The acquisition data is done only in synchronous mode but GPIO must be fast.

Parameter's object configuration tab. (80 Kb)
Fig.2. Parameter's object configuration tab.


With the parameter's object configuration tab you can set:

Tab "Attributes" for the GPIO is shown in Figure 3. For the GPIO there is accessed also "Configuration" tab (Fig.4) with IO mode and reverse state.

Tab "Attributes" of the parameter object. (115 Kb)
Fig.3. Tab "Attributes" of the parameter object.


Tab "Configuration" of the parameter object. (156 Kb)
Fig.4. Tab "Configuration" of the parameter object.


For maximum fast access to the GPIO the parameter object provides three static functions: "mode", "get" and "put". These functions can be used in an user programming area of OpenSCADA system for the organization of not ordinary interaction algorithms. To address the functions you can use static call address BCM2835.{cntr}.{prm}.{Func}() or dynamic SYS.DAQ.BCM2835.{cntr}.{prm}["{Func}"].call(). Where:

2.1. Function GPIO: Mode (mode)

Description: GPIO mode, input or output.
Parameters:
ID Parameter Type Mode By defaults
rez Result Integer Return
pin Pin Integer Input
set Force the input mode: 1-Input, 2-Input (pull up), 3-Input (pull down), 4-Output Integer Input 0

2.2. Function GPIO: Get (get)

Description: GPIO get pin level.
Parameters:
ID Parameter Type Mode By defaults
rez Result Bool Return
pin Pin Integer Input

2.3. Function GPIO: Put (put)

Description: GPIO put pin level.
Parameters:
ID Parameter Type Mode By defaults
pin Pin Integer Input
val Value Bool Input

3. Notes

The module has been tested on boards Raspberry Pi 2, 3 model B. For details you can see to the page and the task.

Access time to the static functions was measured comparing to the different methods which you can see here.

For derivative DAQ templates creation using the static functions you can use also dynamic linking to its, like this:


In this configurable way there for now have implemented next templates of the low-level devices:

Links

Referring pages: HomePageEn/Doc
HomePageEn/Using/APIFunctionLibs/LibUserPrtDevs
HomePageEn/Using/PLC
HomePageEn/Using/PLC/firmwareARM
Works/Tests/JavaLike