I have a BBB with Ubuntu 14.04 (Linux arm 3.8.13-bone56) and their repo
version of owserver (2.8p15-1ubuntu4 armhf). With a strong enough passive
pullup (<1K) I can read temperatures from my DS18B20, via w1 and BBB GPIO
45. (If the pullup is not strong enough, the temperatures from the 1-Wire
sensors read high!)
I've verified the GPIO is working, it can source plenty of current for the
1-Wire bus, and does push the bus within 0.07 V of the 3.3 supply during
1-Wire setup, but apparently w1 is not turning on the strong pullup in
actual operation.
It looks to me like it should:
root@arm:/sys/devices/w1_bus_master1# cat w1_master_pullup
1
The system knows I'm parasitic.
OWFS on localhost:4304
power NO (0)
I tried forcing the pullup on via sysfs, and the value '2' read back, but
the actual pullup was still not enabled:
ubuntu@arm:/sys/devices/w1_bus_master1$ cat w1_master_pullup
2
The author of the w1 kernel modules says sysfs probably won't work, I need
to pass two parameters to two of his modules:
w1-gpio pullup=1
w1-therm strong_pullup=2
The modules are compiled into my kernel:
CONFIG_W1_MASTER_GPIO=y
CONFIG_W1_SLAVE_THERM=y
ubuntu@arm:~$ cat /lib/modules/$(uname -r)/modules.builtin
...
kernel/drivers/w1/wire.ko
kernel/drivers/w1/masters/w1-gpio.ko
kernel/drivers/w1/slaves/w1_therm.ko
kernel/drivers/w1/slaves/w1_smem.ko
So I can't use modprobe to reload them with different parameters.
I see people saying to specify boot parameters on the kernel command line
through GRUB - but the BBB does not use GRUB. Maybe they need to be passed
to U-Boot?
But my w1 is not enabled at boot time - it is manually started as a BBB
device tree overlay - after the conflicting HDMI configuration is manually
disabled.
"echo w1 >/sys/devices/bone_capemgr.9/slots"
So can I turn on a pullup at boot time for a kernel module that isn't
enabled at boot time?
Maybe the kernel parameters need to go into the device tree overlay that
starts the operation of the affected kernel modules?
The overlay source does mention w1-gpio, but not w1-therm:
---
fragment@1 {
target = <&ocp>;
__overlay__ {
onewire@0 {
status = "okay";
compatible = "w1-gpio";
pinctrl-names = "default";
pinctrl-0 = <&bb_w1_pins>;
gpios = <&gpio2 13 0>;
};
};
};
---
I don't really see how to add parameters to that.
I'd really appreciate some detailed guidance on how to pass the parameters
that will force the strong pullup on! Or any other clues on how to get the
w1 strong pullup to work on the BBB.
--
For more options, visit http://beagleboard.org/discuss
---
You received this message because you are subscribed to the Google Groups
"BeagleBoard" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
For more options, visit https://groups.google.com/d/optout.