diff options
Diffstat (limited to 'commandline/examples/ds2482-100-searchrom')
-rwxr-xr-x | commandline/examples/ds2482-100-searchrom | 41 |
1 files changed, 41 insertions, 0 deletions
diff --git a/commandline/examples/ds2482-100-searchrom b/commandline/examples/ds2482-100-searchrom new file mode 100755 index 0000000..db478e7 --- /dev/null +++ b/commandline/examples/ds2482-100-searchrom @@ -0,0 +1,41 @@ +#!/bin/sh +# DS2482-100 Single Channel 1-Wire Master + + +CONFIG=0xf0 +if [ "${1}" = overdrive ]; then + CONFIG=0x78 +fi + +vusb-i2cset 0x18 0xf0 || echo "Failed to reset chip" +vusb-i2cset 0x18 0xd2 $CONFIG || echo "Failed to set config" +vusb-i2cset 0x18 0xb4 || echo "Failed to initiate presence detection (OWR)" + +ret=$(( $(vusb-i2cget 0x18 0xe1 0xf0) & 0x02 )) + +if [ "${ret}" = 0 ]; then + echo "No presence detected" + exit 1 +fi + +vusb-i2cset 0x18 0xa5 0xf0 || echo "failed to issue SEARCH ROM" + +reply= + +for i in $(seq 1 8); do + byte=0 + for j in $(seq 0 7); do + vusb-i2cset 0x18 0x78 0x00 || echo "failed to send triplet" + + bit=$(vusb-i2cget 0x18 0xe1 0xf0) + + if [ "${bit}" -ge 80 ]; then + byte=$((byte | (1 << j))) + fi + echo -n . + done + reply="$(printf '%02X' "${byte}")${reply}" + echo -n + +done + +echo "\n${reply}" |