1-Wire GPIO für Beaglebone Black 58_GPIOBBB.pm

Begonnen von Billy, 19 Oktober 2013, 15:44:14

Vorheriges Thema - Nächstes Thema

Billy

Hi
an alle die das interessiert!
Ich habe das Modul 58_GPIO2.pm von Fladdy (RASPI) für das Beaglebone Black umgeschrieben.

Voraussetzung ist die Vorgehensweise nach.
http://hipstercircuits.com/dallas-one-wire-temperature-reading-on-beaglebone-black-with-dto/
A 18B20 was mounted with the data pin in P9.22.

Meine Schritte auf dem BBB:
1.   apt-get install device-tree-compiler --> Installation
2.   Patch einspielen --> sonst wird @ nicht erkannt 
   Upgrade distro "device-tree-compiler" package

   wget -c https://raw.github.com/RobertCNelson/tools/master/pkgs/dtc.sh

   chmod +x dtc.sh

   ./dtc.sh

weiter nach obigem Link bis:

echo BB-W1:00A0 > /sys/devices/bone_capemgr.9/slots

Dann prüfen mit!  --> 10-000801e2af93 --> ersetzten durch euren Sensor!
cat /sys/devices/w1_bus_master1/10-000801e2af93/w1_slave

--> Ergebnis
29 00 4b 46 ff ff 04 10 a6 : crc=a6 YES
29 00 4b 46 ff ff 04 10 a6 t=20500

Das wars! --> mit angehängtem Modul  58_GPIOBBB.pm

und Eintrag in der fhem.cfg

define BBB GPIOBBB BUSMASTER

geht der Rest automatisch. ( gepatchte autocreate.pm) zum Anlegen des SVG-Plots natürlich auch einspielen!

(//)

Gruss
Billy


FHEM immer akt. auf 3 BeagleBoneBlack: 2xHMLAN 2xJeelink ;10x HM-CC-TC, 13x HM-CC-VD, 1x HM-ES-PMSw1-Pl, 3x HM-LC-SW1-PL2, viele ESP8266, Tasmota Scripting, Mqtt*

betateilchen

-- edit -- die Forumsoftware hat grade mal wieder versagt und meinen Text sinnloserweise in einen falschen Thread gepostet.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

Romoker

Hallo,

danke für das Modul. Es funktioniert gut, aber nur mit einem 1-Wire-Busmaster.
Aufgrund meiner ungünstigen 1-Wire-Leitungstopologie musste ich mein Kabel in zwei Linien auftrennen. Dazu habe ich zwei 1-Wire-Busmaster (GPIO02 = P9.22 und GPIO03 = P9.21) auf meinem Beaglebone implementiert. Ich habe das Unterprogramm GPIOBBB_GetSlaves so umgeschrieben, dass es Sensoren, die an unterschiedlichen 1-Wire-Busmaster angeschlossen sind, beim autocreate erkennt.

Hier das geänderte sub GPIOBBB_GetSlaves:
sub GPIOBBB_GetSlaves($) {
my ($hash) = @_;
my $dir= "/sys/bus/w1/devices";
opendir(SLAVES, $dir) or die "$dir: $!";
my @lines= readdir(SLAVES);
closedir(SLAVES);

# shift first two lines
shift(@lines);
shift(@lines);

my @slaves;
foreach my $line (@lines) {
if ($line !~ /w1_bus_master/) { push(@slaves, $line);GPIO_GetSlave($hash,$line) }
}
$hash->{SLAVES} = join(',',@slaves);
return;
}


Vielleicht kann es ja der Autor übernehmen.

Romoker
BeagleBoneBlack & Raspberry Pi 4; FB7490; div. Homematic Komponenten; CUL433: CUL_TX, Conbee II, SOMFY, 1-Wire, Z-Wave, Zigbee, SmartPlugs von Sonoff und Shelly mit MQTT

bitleiste

Hallo Billy, hallo Romoker,

genau so etwas habe ich gesucht :) auf meinem beaglebone black möchte ich onboard ca. sechs 18B20 Temperatursensoren von der Heizung Anzeigen auf der Fhem.

Jetzt habe ich ein kleines Problem >:( leider geht der folgende link nicht mehr

http://hipstercircuits.com/dallas-one-wire-temperature-reading-on-beaglebone-black-with-dto/

weiter nach obigem Link bis:

echo BB-W1:00A0 > /sys/devices/bone_capemgr.9/slots

und weiß da nicht mehr weiter

Zitat von: Billy am 19 Oktober 2013, 15:44:14
Voraussetzung ist die Vorgehensweise nach.
http://hipstercircuits.com/dallas-one-wire-temperature-reading-on-beaglebone-black-with-dto/
A 18B20 was mounted with the data pin in P9.22.

Meine Schritte auf dem BBB:
1.   apt-get install device-tree-compiler --> Installation
2.   Patch einspielen --> sonst wird @ nicht erkannt 
   Upgrade distro "device-tree-compiler" package

   wget -c https://raw.github.com/RobertCNelson/tools/master/pkgs/dtc.sh

   chmod +x dtc.sh

   ./dtc.sh

weiter nach obigem Link bis:

echo BB-W1:00A0 > /sys/devices/bone_capemgr.9/slots


könnte mir da jemand eventuell weiter helfen  ;)

Im Vorraus schon mal Danke ...

Gruß Andreas

Billy

#4
Verwende einfach die BB-W1-00A0.dtbo im Anhang!
Diese BB-W1-00A0.dtbo kann dann für alle BBB gleichermaßen genutzt werden! (zumindest bei mir)
d.h. die Compilierung ist dann nicht notwendig wenn man immer nur P9 / 22 nutzen will!
Copy it:
cp BB-W1-00A0.dtbo /lib/firmware/

Enable it:
echo BB-W1:00A0 > /sys/devices/bone_capemgr.9/slots

Dann weiter wie oben beschrieben!  :)

Gruß Billy

Der Code von hipstercircuits nach meinen Unterlagen?
----------------------------------------------------------------
A 18B20 was mounted with the data pin in P9.22,
On your BeagleBone (Black), try this:
nano BB-W1-00A0.dts
Copy-paste this:


/dts-v1/;
/plugin/;
/ {
compatible = "ti,beaglebone", "ti,beaglebone-black";
part-number = "BB-W1";
version = "00A0";
/* state the resources this cape uses */
exclusive-use =
/* the pin header uses */
"P9.22",
/* the hardware IP uses */
"gpio0_2";
fragment@0 {
               target = <&am33xx_pinmux>;
               __overlay__ {
dallas_w1_pins: pinmux_dallas_w1_pins {
pinctrl-single,pins = < 0x150 0x37 >;
};
               };
};
fragment@1 {
               target = <&ocp>;
               __overlay__ {
       onewire@0 {
       compatible      = "w1-gpio";
       pinctrl-names   = "default";
       pinctrl-0       = <&dallas_w1_pins>;
       status          = "okay";
       gpios = <&gpio1 2 0>;
       };
         };
};
};

Compile it:
dtc -O dtb -o BB-W1-00A0.dtbo -b 0 -@ BB-W1-00A0.dts  --> Ergebnis dtbo in Anlage
FHEM immer akt. auf 3 BeagleBoneBlack: 2xHMLAN 2xJeelink ;10x HM-CC-TC, 13x HM-CC-VD, 1x HM-ES-PMSw1-Pl, 3x HM-LC-SW1-PL2, viele ESP8266, Tasmota Scripting, Mqtt*

bitleiste

das ging aber schnell, Danke für die Rückmeldung.
Werde das morgen mal umsetzen  ::)

Billy

Habe das ganze auch für den BBG (Beaglebone Green) getestet, da ging das nicht!
Da muss im Code die zeile --> compatible = "ti,beaglebone", "ti,beaglebone-black";
um den BBG ergänzt werden.  --> compatible = "ti,beaglebone","ti,beaglebone-black","ti,beaglebone-green";
In Anlage die compilierte für BBB und BBG funktionierende
BB-1WIRE-P9-22-00A0.dtbo

Gruß Billy
FHEM immer akt. auf 3 BeagleBoneBlack: 2xHMLAN 2xJeelink ;10x HM-CC-TC, 13x HM-CC-VD, 1x HM-ES-PMSw1-Pl, 3x HM-LC-SW1-PL2, viele ESP8266, Tasmota Scripting, Mqtt*

bitleiste

Hallo Billy,

danke noch für die geänderte dtbo  :).
Bin erst heute dazu gekommen das ganze da mal zu integrieren, habe aber noch keinen Erfolg  >:(

Das liegt aber an meinen schlechten Linux Kenntnissen (das letzte mal auf der UNI in den 70er Jahren) da beiße ich mich aber jetzt durch  :)

Gruß Andreas