Good news: current version operates without any problem on a x86-machine with a self-made i2c-parallel-port-adapter (see linux/Documentation/i2c/busses/i2c-parport). Tested with a DS2482-100 and a DS2890 digital potentiometer. Reading from and writing to this 1-wire device works fine. Even two 1-Wire devices on the bus don't produce an error.
But we have a problem with our Kontron X-board<GP8> (Intel 80219 Processor, Xscale core, arm compliant). I think the kernel driver is incorrect. Maybe you have a hint for us. I added some debugging code to i2c_smbus_access(): % OW::get uncached ... DEBUG: DS2482 search bit number 10 DEBUG: -> TRIPLET attempt direction 0 DEBUG: *** i2c_smbus_access(3, I2C_SMBUS_WRITE, 0x78 (1-Wire Triplet), ...): Success (0) DEBUG: *** i2c_smbus_access(3, I2C_SMBUS_READ, ..., ...): Success (0) DEBUG: DS2482 read status ok DEBUG: <- TRIPLET 0 1 0 DEBUG: DS2482 search bit number 11 DEBUG: -> TRIPLET attempt direction 0 DEBUG: *** i2c_smbus_access(3, I2C_SMBUS_WRITE, 0x78 (1-Wire Triplet), ...): Success (0) DEBUG: *** i2c_smbus_access(3, I2C_SMBUS_READ, ..., ...): Operation not permitted (1) DEBUG: Reading DS2482 status problem min=198 max=219 i=0 ret=-1 ... * The bit number after the process stops is different between each test cycle. * Sometimes the "1-Wire Triplet"-Command returns the same error. After this failure every other i2c command fails: % OW::get uncached ... DEBUG: Start of directory path=uncached device=00 00 00 00 00 00 00 00 DEBUG: Selecting a path (and device) path=uncached SN=00 00 00 00 00 00 00 00 last path=00 00 00 00 00 00 00 00 DEBUG: *** i2c_smbus_access(3, I2C_SMBUS_WRITE, 0xb4 (1-Wire Reset), ...): Operation not permitted (1) DEBUG: owserver dir post = uncached ... Even a restart of owserver wouldn't help because the device reset command also returns "Operation not permitted". Only a power-down/power-up of the chip brings the device back to normal operation. Daniel Am Mittwoch, 24. Mai 2006 00:08 schrieb Paul Alfille: > Added more debugging info. It looks like there was a problem reading > from the DS2482 status register. This may show why. > > Paul > > On 5/23/06, Paul Alfille <[EMAIL PROTECTED]> wrote: > > Ok, fixed the directory caching problem. > > > > Paul > > > > On 5/23/06, Paul Alfille <[EMAIL PROTECTED]> wrote: > > > Thank you, Daniel! > > > > > > 1. Detection seems to work > > > 2. 1-wire search fails after 27 of 64 steps, Not sure why. > > > 3. Clearly a failed directory listing is getting cached -- unrelated > > > error. > > > > > > I'll make some changes to see if we can figure out why the search is > > > failing. It seems like a timing, hardware or driver problem, really. > > > > > > Paul > > > > > > On 5/23/06, Daniel Höper <[EMAIL PROTECTED]> wrote: > > > > Hello Paul, > > > > > > > > this is the debug output from owserver: > > > > > > > > ~ $ /usr/bin/owserver --foreground --error_level 9 -p 2000 /dev/i2c-1 > > > > CONNECT: Found an i2c device at /dev/i2c-1 address 24 > > > > CONNECT: i2c device at /dev/i2c-1 address 24 cannot be reset > > > > CONNECT: Found an i2c device at /dev/i2c-1 address 25 > > > > CONNECT: i2c device at /dev/i2c-1 address 25 cannot be reset > > > > CONNECT: Found an i2c device at /dev/i2c-1 address 26 > > > > DEBUG: DS2482 read status ok > > > > CONNECT: i2c device at /dev/i2c-1 address 26 appears to be DS2482-x00 > > > > CALL: No message > > > > CALL: owserver: parse path= > > > > CALL: PARSENAME path=[] > > > > CALL: Directory message > > > > OWSERVER SpecifiedBus=0 pn->bus_nr=-1 > > > > DEBUG: owserver dir pre = > > > > CALL: DIRECTORY path= > > > > DEBUG: Get from cache sn 00 00 00 00 00 00 00 00 in=0x134b8 index=0 > > > > DEBUG: Found in cache > > > > DEBUG: Start of directory path= device=00 00 00 00 00 00 00 00 > > > > DATA: BUS_first: No data will be returned > > > > DEBUG: Selecting a path (and device) path= SN=00 00 00 00 00 00 00 > > > > 00 last path=01 00 00 00 00 00 00 00 > > > > DEBUG: Clearing root branch > > > > DEBUG: owserver dir post = > > > > CALL: owserver: parse path= > > > > CALL: PARSENAME path=[] > > > > CALL: Directory message > > > > OWSERVER SpecifiedBus=0 pn->bus_nr=-1 > > > > DEBUG: owserver dir pre = > > > > CALL: DIRECTORY path= > > > > DEBUG: Get from cache sn 00 00 00 00 00 00 00 00 in=0x134b8 index=0 > > > > DEBUG: Found in cache > > > > DEBUG: Start of directory path= device=00 00 00 00 00 00 00 00 > > > > DATA: BUS_first: No data will be returned > > > > DEBUG: Selecting a path (and device) path= SN=00 00 00 00 00 00 00 > > > > 00 last path=01 00 00 00 00 00 00 00 > > > > DEBUG: Clearing root branch > > > > DEBUG: DS2482 read status ok > > > > DEBUG: DS2482 Reset > > > > DEBUG: DS2482 read status ok > > > > DEBUG: DS2482 read status ok > > > > DEBUG: DS2482 read status ok > > > > DEBUG: DS2482 Reset > > > > DEBUG: DS2482 read status ok > > > > DEBUG: DS2482 search bit number 0 > > > > DEBUG: -> TRIPLET attempt direction 0 > > > > DEBUG: DS2482 read status ok > > > > DEBUG: <- TRIPLET 0 1 0 > > > > DEBUG: DS2482 search bit number 1 > > > > DEBUG: -> TRIPLET attempt direction 0 > > > > DEBUG: DS2482 read status ok > > > > DEBUG: <- TRIPLET 0 1 0 > > > > DEBUG: DS2482 search bit number 2 > > > > DEBUG: -> TRIPLET attempt direction 0 > > > > DEBUG: DS2482 read status ok > > > > DEBUG: <- TRIPLET 1 0 1 > > > > DEBUG: DS2482 search bit number 3 > > > > DEBUG: -> TRIPLET attempt direction 0 > > > > DEBUG: DS2482 read status ok > > > > DEBUG: <- TRIPLET 1 0 1 > > > > DEBUG: DS2482 search bit number 4 > > > > DEBUG: -> TRIPLET attempt direction 0 > > > > DEBUG: DS2482 read status ok > > > > DEBUG: <- TRIPLET 0 1 0 > > > > DEBUG: DS2482 search bit number 5 > > > > DEBUG: -> TRIPLET attempt direction 0 > > > > DEBUG: DS2482 read status ok > > > > DEBUG: <- TRIPLET 1 0 1 > > > > DEBUG: DS2482 search bit number 6 > > > > DEBUG: -> TRIPLET attempt direction 0 > > > > DEBUG: DS2482 read status ok > > > > DEBUG: <- TRIPLET 0 1 0 > > > > DEBUG: DS2482 search bit number 7 > > > > DEBUG: -> TRIPLET attempt direction 0 > > > > DEBUG: DS2482 read status ok > > > > DEBUG: <- TRIPLET 0 1 0 > > > > DEBUG: DS2482 search bit number 8 > > > > DEBUG: -> TRIPLET attempt direction 0 > > > > DEBUG: DS2482 read status ok > > > > DEBUG: <- TRIPLET 1 0 1 > > > > DEBUG: DS2482 search bit number 9 > > > > DEBUG: -> TRIPLET attempt direction 0 > > > > DEBUG: DS2482 read status ok > > > > DEBUG: <- TRIPLET 1 0 1 > > > > DEBUG: DS2482 search bit number 10 > > > > DEBUG: -> TRIPLET attempt direction 0 > > > > DEBUG: DS2482 read status ok > > > > DEBUG: <- TRIPLET 0 1 0 > > > > DEBUG: DS2482 search bit number 11 > > > > DEBUG: -> TRIPLET attempt direction 0 > > > > DEBUG: DS2482 read status ok > > > > DEBUG: <- TRIPLET 1 0 1 > > > > DEBUG: DS2482 search bit number 12 > > > > DEBUG: -> TRIPLET attempt direction 0 > > > > DEBUG: DS2482 read status ok > > > > DEBUG: <- TRIPLET 0 1 0 > > > > DEBUG: DS2482 search bit number 13 > > > > DEBUG: -> TRIPLET attempt direction 0 > > > > DEBUG: DS2482 read status ok > > > > DEBUG: <- TRIPLET 0 1 0 > > > > DEBUG: DS2482 search bit number 14 > > > > DEBUG: -> TRIPLET attempt direction 0 > > > > DEBUG: DS2482 read status ok > > > > DEBUG: <- TRIPLET 0 1 0 > > > > DEBUG: DS2482 search bit number 15 > > > > DEBUG: -> TRIPLET attempt direction 0 > > > > DEBUG: DS2482 read status ok > > > > DEBUG: <- TRIPLET 0 1 0 > > > > DEBUG: DS2482 search bit number 16 > > > > DEBUG: -> TRIPLET attempt direction 0 > > > > DEBUG: DS2482 read status ok > > > > DEBUG: <- TRIPLET 0 1 0 > > > > DEBUG: DS2482 search bit number 17 > > > > DEBUG: -> TRIPLET attempt direction 0 > > > > DEBUG: DS2482 read status ok > > > > DEBUG: <- TRIPLET 0 1 0 > > > > DEBUG: DS2482 search bit number 18 > > > > DEBUG: -> TRIPLET attempt direction 0 > > > > DEBUG: DS2482 read status ok > > > > DEBUG: <- TRIPLET 0 1 0 > > > > DEBUG: DS2482 search bit number 19 > > > > DEBUG: -> TRIPLET attempt direction 0 > > > > DEBUG: DS2482 read status ok > > > > DEBUG: <- TRIPLET 1 0 1 > > > > DEBUG: DS2482 search bit number 20 > > > > DEBUG: -> TRIPLET attempt direction 0 > > > > DEBUG: DS2482 read status ok > > > > DEBUG: <- TRIPLET 1 0 1 > > > > DEBUG: DS2482 search bit number 21 > > > > DEBUG: -> TRIPLET attempt direction 0 > > > > DEBUG: DS2482 read status ok > > > > DEBUG: <- TRIPLET 1 0 1 > > > > DEBUG: DS2482 search bit number 22 > > > > DEBUG: -> TRIPLET attempt direction 0 > > > > DEBUG: DS2482 read status ok > > > > DEBUG: <- TRIPLET 0 1 0 > > > > DEBUG: DS2482 search bit number 23 > > > > DEBUG: -> TRIPLET attempt direction 0 > > > > DEBUG: DS2482 read status ok > > > > DEBUG: <- TRIPLET 1 0 1 > > > > DEBUG: DS2482 search bit number 24 > > > > DEBUG: -> TRIPLET attempt direction 0 > > > > DEBUG: DS2482 read status ok > > > > DEBUG: <- TRIPLET 1 0 1 > > > > DEBUG: DS2482 search bit number 25 > > > > DEBUG: -> TRIPLET attempt direction 0 > > > > DEBUG: DS2482 read status ok > > > > DEBUG: <- TRIPLET 0 1 0 > > > > DEBUG: DS2482 search bit number 26 > > > > DEBUG: -> TRIPLET attempt direction 0 > > > > DEBUG: BUS_next return = -1 2C 0B B8 01 00 00 00 00 > > > > DEBUG: owserver dir post = > > > > CALL: owserver: parse path= > > > > CALL: PARSENAME path=[] > > > > CALL: Directory message > > > > OWSERVER SpecifiedBus=0 pn->bus_nr=-1 > > > > DEBUG: owserver dir pre = > > > > CALL: DIRECTORY path= > > > > DEBUG: Get from cache sn 00 00 00 00 00 00 00 00 in=0x134b8 index=0 > > > > DEBUG: Found in cache > > > > DEBUG: Start of directory path= device=00 00 00 00 00 00 00 00 > > > > DEBUG: Selecting a path (and device) path= SN=00 00 00 00 00 00 00 > > > > 00 last path=00 00 00 00 00 00 00 00 > > > > DEBUG: owserver dir post = > > > > CALL: owserver: parse path= > > > > CALL: PARSENAME path=[] > > > > CALL: Directory message > > > > OWSERVER SpecifiedBus=0 pn->bus_nr=-1 > > > > DEBUG: owserver dir pre = > > > > CALL: DIRECTORY path= > > > > DEBUG: Get from cache sn 00 00 00 00 00 00 00 00 in=0x134b8 index=0 > > > > DEBUG: Found in cache > > > > DEBUG: Start of directory path= device=00 00 00 00 00 00 00 00 > > > > DEBUG: Selecting a path (and device) path= SN=00 00 00 00 00 00 00 > > > > 00 last path=00 00 00 00 00 00 00 00 > > > > DEBUG: owserver dir post = > > > > CALL: owserver: parse path=uncached > > > > CALL: PARSENAME path=[uncached] > > > > CALL: Directory message > > > > OWSERVER SpecifiedBus=0 pn->bus_nr=-1 > > > > DEBUG: owserver dir pre = uncached > > > > CALL: DIRECTORY path=uncached > > > > DEBUG: Start of directory path=uncached device=00 00 00 00 00 00 00 > > > > 00 DEBUG: Selecting a path (and device) path=uncached SN=00 00 00 00 > > > > 00 00 00 00 last path=00 00 00 00 00 00 00 00 > > > > DEBUG: owserver dir post = uncached > > > > > > > > On the client side I executed: > > > > % OW::init 10.0.1.1:2000 > > > > % OW::get > > > > structure/ uncached/ bus.0/ settings/ system/ statistics/ > > > > % OW::get > > > > structure/ uncached/ bus.0/ settings/ system/ statistics/ > > > > % OW::get > > > > structure/ uncached/ bus.0/ settings/ system/ statistics/ > > > > % OW::get > > > > structure/ uncached/ bus.0/ settings/ system/ statistics/ > > > > % OW::get uncached > > > > structure/ bus.0/ settings/ system/ statistics/ > > > > > > > > I hope it helps. > > > > (Hardware components and configuration have not changed) > > > > > > > > Daniel > > > > > > > > Am Samstag, 20. Mai 2006 17:52 schrieb Paul Alfille: > > > > > Daniel, > > > > > > > > > > This is better than I expected. > > > > > With your modifications, it sounds like: > > > > > 1. The chip is detected > > > > > 2. Reset and the start of a device search works. > > > > > > > > > > I'm uploading a more heavily "instrumented" version -- more > > > > > debugging information -- which might help us figure out the > > > > > problem. > > > > > > > > > > Paul > > > > > > > > > > On 5/20/06, Daniel Höper <[EMAIL PROTECTED]> wrote: > > > > > > My first attempt with the current CVS version failed, owserver > > > > > > did not print anything on the console. I cannot find where > > > > > > DS2482_detect() is called, thus I added the following code to the > > > > > > switch() statement in LibStart(): ... > > > > > > case bus_i2c: > > > > > > ret = DS2482_detect(in); > > > > > > break; > > > > > > > > > > Exactly! Fixed. > > > > > > > > > > > ... > > > > > > (Is this the right place and method to initialize the device?) > > > > > > > > > > > > Next problem is a segmentation fault in DS2482_channel_select() > > > > > > caused by the head pointer which is NULL during initialization. > > > > > > In this case a "return 0" should be sufficient for the > > > > > > DS2482-100. (probably I will finish a test environment with a > > > > > > DS2482-800 in the next few days) > > > > > > > > > > Fixed. Thanks. > > > > > > > > > > > After this two modifications owserver shows the following: > > > > > > > > > > > > / $ /usr/bin/owserver --foreground --error_level 9 -p 2000 > > > > > > /dev/i2c-1 CONNECT: Found an i2c device at /dev/i2c-1 address 24 > > > > > > CALL: PARSENAME path=[] > > > > > > CONNECT: Found an i2c device at /dev/i2c-1 address 25 > > > > > > CALL: PARSENAME path=[] > > > > > > CONNECT: Found an i2c device at /dev/i2c-1 address 26 > > > > > > CALL: PARSENAME path=[] > > > > > > CONNECT: i2c device at /dev/i2c-1 address 26 appears to be > > > > > > DS2482-x00 CALL: No message > > > > > > CALL: owserver: parse path=uncached > > > > > > CALL: PARSENAME path=[uncached] > > > > > > CALL: Directory message > > > > > > OWSERVER SpecifiedBus=0 pn->bus_nr=-1 > > > > > > DEBUG: owserver dir pre = uncached > > > > > > CALL: DIRECTORY path=uncached > > > > > > DEBUG: Start of directory path=uncached device=00 00 00 00 00 > > > > > > 00 00 00 DEBUG: Selecting a path (and device) path=uncached SN=00 > > > > > > 00 00 00 00 00 00 00 last path=01 00 00 00 00 00 00 00 > > > > > > DEBUG: Clearing root branch > > > > > > DEBUG: BUS_next return = -1 2C 0B B8 01 00 00 00 00 > > > > > > DEBUG: owserver dir post = uncached > > > > > > CALL: owserver: parse path= > > > > > > CALL: PARSENAME path=[] > > > > > > CALL: Directory message > > > > > > OWSERVER SpecifiedBus=0 pn->bus_nr=-1 > > > > > > DEBUG: owserver dir pre = > > > > > > CALL: DIRECTORY path= > > > > > > DEBUG: Get from cache sn 00 00 00 00 00 00 00 00 in=0x134b8 > > > > > > index=0 DEBUG: Found in cache > > > > > > DEBUG: Start of directory path= device=00 00 00 00 00 00 00 00 > > > > > > DEBUG: Selecting a path (and device) path= SN=00 00 00 00 00 00 > > > > > > 00 00 last path=00 00 00 00 00 00 00 00 > > > > > > DEBUG: BUS_next return = -1 2C 0B 00 00 00 00 00 00 > > > > > > DEBUG: owserver dir post = > > > > > > > > > > > > > > > > > > To communicate with the server I used owtcl on another machine: > > > > > > > > > > > > % OW::init 10.0.1.1:2000 > > > > > > % OW::get uncached > > > > > > structure/ bus.0/ settings/ system/ statistics/ > > > > > > % OW::get > > > > > > structure/ uncached/ bus.0/ settings/ system/ statistics/ > > > > > > > > > > > > There is only one chip connected to the 1-wire bus. > > > > > > It's a DS2890, ID: "2C 0B B8 05 00 00 00 E2" > > > > > > This ID is partially shown in the debug output (BUS_next). > > > > > > > > > > > > I restarted the machine and owserver several times and run > > > > > > "OW::get" but there wasn't an entry in the directory for the > > > > > > chip. > > > > > > > > > > > > Daniel > > > > > > > > ------------------------------------------------------- > > > > All the advantages of Linux Managed Hosting--Without the Cost and > > > > Risk! Fully trained technicians. The highest number of Red Hat > > > > certifications in the hosting industry. Fanatical Support. Click to > > > > learn more > > > > http://sel.as-us.falkag.net/sel?cmdlnk&kid7521&bid$8729&dat1642 > > > > _______________________________________________ > > > > Owfs-developers mailing list > > > > Owfs-developers@lists.sourceforge.net > > > > https://lists.sourceforge.net/lists/listinfo/owfs-developers > > ------------------------------------------------------- > All the advantages of Linux Managed Hosting--Without the Cost and Risk! > Fully trained technicians. The highest number of Red Hat certifications in > the hosting industry. Fanatical Support. Click to learn more > http://sel.as-us.falkag.net/sel?cmd=lnk&kid7521&bid$8729&dat1642 > _______________________________________________ > Owfs-developers mailing list > Owfs-developers@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/owfs-developers -- http://keys.se.linux.org/pks/lookup?fingerprint=on&search=0x231C24FD6C800545 http://keys.se.linux.org/pks/lookup?op=get&search=0x231C24FD6C800545 ------------------------------------------------------- All the advantages of Linux Managed Hosting--Without the Cost and Risk! Fully trained technicians. The highest number of Red Hat certifications in the hosting industry. Fanatical Support. Click to learn more http://sel.as-us.falkag.net/sel?cmd=lnk&kid7521&bid$8729&dat1642 _______________________________________________ Owfs-developers mailing list Owfs-developers@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/owfs-developers