Module Name: src Committed By: brad Date: Thu Jan 23 19:02:43 UTC 2025
Modified Files: src/distrib/sets/lists/debug: module.mi src/distrib/sets/lists/man: mi src/distrib/sets/lists/manhtml: mi src/distrib/sets/lists/modules: mi src/share/man/man4: Makefile src/sys/dev/onewire: files.onewire src/sys/modules: Makefile Added Files: src/share/man/man4: ds28e17iic.4 src/sys/dev/onewire: ds28e17iic.c ds28e17iicreg.h ds28e17iicvar.h src/sys/modules/ds28e17iic: Makefile ds28e17iic.ioconf Log Message: A driver for the DS28E17 1-Wire to I2C bridge chip. This chip acts like a 1-Wire slave device and provides a iic(4) master at the end of the 1-Wire bus. More or less it is the polar opposite of the DS2482 [ds2482ow(4)] chip. This device couples well with ds2482ow(4) and can be used to provide a I2C bus at very great lengths from the controlling computer. All features of the chip are supported, except for 1-Wire overdrive support, which requires more work from the onewire(4) infrastructure. The chip does not support Read without Stop. Attempts to do this will get turned into a Read with Stop and one will have to hope for the best. The chip also does not support zero length I2C reads or zero length I2C writes. This has the side effect of making the default mode, a zero length I2C write, for i2scan(8) return false positives. The alternative mode that i2cscan(8) can use, the single byte read, should work as expected. The chip has automatic support for end devices that do I2C clock stretching. It was noticed that this chip does not work with the gpioow(4) driver. That might be an interesting thing to debug if one has a good logic analyzer on hand. While the presence pulse is detected, the gpioow(4) driver is not able to complete the initial ROM enumeration. The DS28E17 works flawlessly when driven by a DS2482 [ds2482ow(4)] driver chip. Poke me if you want any more details. The chip is pretty inexpensive and only requires a single cap to get it hooked up. However, the package it comes in is only a 16-QFN package, so it could provide to be hard to solider onto a board for some. There are side tabs, so it was possible with a very small iron and lots of flux. There is a slightly expensive breakout board sold by Mikroe that probably works well -> https://www.mikroe.com/1-wire-i2c-click To generate a diff of this commit: cvs rdiff -u -r1.30 -r1.31 src/distrib/sets/lists/debug/module.mi cvs rdiff -u -r1.1794 -r1.1795 src/distrib/sets/lists/man/mi cvs rdiff -u -r1.16 -r1.17 src/distrib/sets/lists/manhtml/mi cvs rdiff -u -r1.162 -r1.163 src/distrib/sets/lists/modules/mi cvs rdiff -u -r1.739 -r1.740 src/share/man/man4/Makefile cvs rdiff -u -r0 -r1.1 src/share/man/man4/ds28e17iic.4 cvs rdiff -u -r0 -r1.1 src/sys/dev/onewire/ds28e17iic.c \ src/sys/dev/onewire/ds28e17iicreg.h src/sys/dev/onewire/ds28e17iicvar.h cvs rdiff -u -r1.5 -r1.6 src/sys/dev/onewire/files.onewire cvs rdiff -u -r1.294 -r1.295 src/sys/modules/Makefile cvs rdiff -u -r0 -r1.1 src/sys/modules/ds28e17iic/Makefile \ src/sys/modules/ds28e17iic/ds28e17iic.ioconf Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.