> On Sep 26, 2013, at 16:14, Jan Kandziora <j...@gmx.de> wrote:
> 
> Am 26.09.2013 07:48, schrieb Colin Reese:
>> 
>> This is a very interesting topic. I've used ds9490s forever in
>> various topologies wired individually with RJ and never had an issue
>> with finding devices, using maxim's drivers on windows and owfs on
>> Linux.
> I do, even with a bus topology. When I scan continously for new chips I
> will certainly get misreadings (a certain chip is errorneously not
> found) after a few seconds. It gets worse when there are long leaves.
> 
> What is your cable length on individual leaves?

Depends. Typically one to five feet off a main wire that's 20-30' long. 
Ds18b20s usually, although I'm about to get into a more diverse family. 


> 
> 
>> It definitely gets slower as the number of devices increases,
>> but no problems other than that. For cost, I've just implemented a
>> DS2483 on I2C, which is $0.60 vs. $27 for the DS9490. I have not yet
>> tested it extensively. I had assumed that the 2483 would perform
>> better as it doesn't rely on the serial bus and is a newer device. Is
>> this not the case, and what performance difference and limitations
>> should I expect? I'm on raspbian on an RPi.
> The BCM2835 I²C master has a four-byte fifo which is used for writing
> and reading which is at least a bit better than what other boards with
> I²C hosts have. The i2c-bcm2708 driver makes use of that fifo.
> 
> BUT, as the DS2483 requires busy polling before issuing the next
> command, you cannot make much use of that fifo. For writing a single
> byte that's only two bytes in a row, then the write-read-turnaround
> clears the fifo. Relevant code is at module/owlib/src/c/ow_ds2482.c:646-653
> 
> For scanning the bus, this is especially bad, as it requires 64 times
> write byte+read byte per chip on the bus, meaning 128 interrupts in 12ms
> (64 * 3 onewire bit times of 60µs, I²C timing neglectable). When you
> have a network with a dozen chips *and* want to scan a lock on it three
> times a seconds for an iButton, this is just an endless stream of
> interrupts.
> 
> I had this use case and because of it being unfeasibly slowing down the
> whole machine, Paul and me implemented the simultaneous/single_ds2400
> node just for checking for a single DS2401 chip independly of the other
> chips and the scanning mechanism. It's more reliable, too.
> 

How does one make use of this? I've really only set up python to read a default 
owfs installation directory. Never had misreads with ds9490. Have noticed 
sensors appearing and reappearing on the 2483. I don't need to poll that often, 
so if I can code around it asynchronously with error correction I'm into that. 

Thanks,
Colin

> 
> Kind regards
> 
>    Jan
> 
> ------------------------------------------------------------------------------
> October Webinars: Code for Performance
> Free Intel webinars can help you accelerate application performance.
> Explore tips for MPI, OpenMP, advanced profiling, and more. Get the most from 
> the latest Intel processors and coprocessors. See abstracts and register >
> http://pubads.g.doubleclick.net/gampad/clk?id=60133471&iu=/4140/ostg.clktrk
> _______________________________________________
> Owfs-developers mailing list
> Owfs-developers@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/owfs-developers

------------------------------------------------------------------------------
October Webinars: Code for Performance
Free Intel webinars can help you accelerate application performance.
Explore tips for MPI, OpenMP, advanced profiling, and more. Get the most from 
the latest Intel processors and coprocessors. See abstracts and register >
http://pubads.g.doubleclick.net/gampad/clk?id=60133471&iu=/4140/ostg.clktrk
_______________________________________________
Owfs-developers mailing list
Owfs-developers@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/owfs-developers

Reply via email to