libpruw1
Download
- Quelltext (118 Bytes)
- LGPL
- Plattformen:
- FreeBASIC 1.04.0
- Angelegt von TJF am 20.08.2023
Bewertung
Bisher keine Bewertung(Zum Abstimmen auf die Sterne klicken.)
Dieses Projekt betrifft einen One-Wire-Bus Treiber für AM335x Prozessoren des Herstellers Texas Instruments (TI), also eine Möglichkeit Dallas Temperatursensoren an Kleincomputern zu betreiben.
Ein solcher Treiber ist zwar in den gebräuchlichen LINUX-Distributionen als Kernel-Modul bereits enthalten; dieser hat jedoch sehr beschränkten Funktionsumfang, insbesondere können Temperaturmessungen mit mehreren Sensoren nur nacheinander, nicht aber simultan durchgeführt werden.
Zur Abhilfe wurde dieser Treiber entwickelt, mit den Eigenschaften
- One-Wire (W1) Treiber für AM335x CPU
- für BeagleBone Hardware (zB Black, Green. White, Blue oder PocketBeagle)
- betreibt W1-Bus auf beliebigem GPIO pin
- sendet oder empfängt digitale Daten
- kann den Bus-Status (low/high) als Zeitverlauf im Betrieb aufzeichnen
- unterstützt Parasite-Power-Mode (2-Draht-Anschluss)
Die Software läuft auf dem Hauptprozessor (ARMv7) als FB code und parallel auf einem Zusatzprozessor (Programmable Realtime Unit SubSystem = PRUSS oder einfach PRU) als Assembler (PASM) code, um präzises Bus-Timing zu gewährleisten. Zum Betrieb wird auch der Treiber libpruio (>= 0.6) betnötigt.
Der Treiber bietet Funktionen um
- den Bus nach Sensoren (Devices) zu durchsuchen
- einzelne Bytes oder Blöcke von acht Bytes zu senden
- einzelne Bytes oder Blöcke von Bytes zu empfangen
- die CRC-Prüfsumme eines Blocks zu berechnen
- den Temperaturwert (in °C) eines Blocks auszuwerten (Sensortypen &h10, &h20, &h22, &h28, &h3B or &h42)
Dieses Projekt enthält weder Binär- noch Quelltextdateien, sondern informiert über die Projektseite auf
GitHub Projekt Seite, auf welcher der jeweils aktuelle Quelltext bezogen werden kann für
- die Treiber Bibliothek (libpruio.so),
- Anwendungsbeispiele (Programmiersprachen FB und C), und
- für die Dokumentation (Doxygen)
Weitere Informationen können der Online-Dokumentation entnommen werden (englisch).
Viel Erfolg!
English
Welcome to libpruw1 library project,
- a one wire (W1) driver for AM335x micro processors,
- designed for Beaglebone hardware, providing
- configuration of any GPIO as W1 bus (without additional hardware), for
- sending digital output and receiving digital input from the bus,
- logging the bus data line state for monitoring purposes,
- supporting parasite power mode.
libpruw1 software runs on the host (ARM) and in parallel on a Programmable Realtime Unit SubSystem (= PRUSS or just PRU) for accurate bus timing.
The driver provides functions to
- scan the bus for all device IDs,
- send a single byte or a block of eight bytes to the bus,
- receive a single byte or a block of bytes from the bus,
- calculate the CRC checksum for a block of data, and
- compute the temperature in °C (centigrade) from Dallas sensors (types &h10, &h20, &h22, &h28, &h3B or &h42).
The libpruw1 project is hosted at GitHub. It's developed and tested on a Beaglebone Black under Debian Image 2014-08-05. It should run on all Beaglebone platforms with Debian based LINUX operating system. It's compiled by the FreeBasic compiler. A wrapper for C programming language is included.
Find more information in the online documentation at
http://users.freebasic-portal.de/tjf/Projekte/libpruw1/doc/html/
Good luck!