Thanks a lot, I got the package and installed it. I will report if
the behaviour of the 1wire bus changed or not.
The "altUSB" settings are actually exactly the ones my 'electronic
guys' recommended to me. How about making a more general option (like
altTiming) that also applies to the DS2480B bus driver?
Michael
P.S.: Thanks to whoever fixed the install path in the python swig
module...
On 08.06.2006, at 05:03, Paul Alfille wrote:
> Ok, Willy Robion's alternative USB timing is available with release
> 2.4p1
>
> Use --altUSB (note the spellling) in the command line. That's
> double-dash altUSB.
>
> I see no difference, but perhaps others will note better or worse
> results. Please give feedback.
>
> Paul Alfille
>
> On 6/7/06, Paul Alfille <[EMAIL PROTECTED]> wrote:
>> As you noted, all the USB specific code is on module/owlib/src/c/
>> ow_ds9490.c
>>
>> Look at function (line 257):
>> static int DS9490_setup_adapter(const struct parsedname * pn) {
>>
>> Here is what Willy Robison suggested:
>> I pourchased the weather station parts from AAG, and had
>> a problem with everything under linux recgonizing all of
>> the chips in the weather station. AAG indicated that
>> the latest drivers from Dallas/Maxim addressed the problem.
>> There was a terse reference to changing the slew rate
>> to 1.37V/uS.
>>
>> Referrinhg to the DS2490 datasheet, the mode commands
>> to set various parameters are listed. It seems that the default
>> values for the 3 settings were not quite optimal...
>>
>> I've reworked the code fragment to match the style in
>> ow_ds9490.c, but I don't have the calls to the routine in
>> the correct locations at this point...
>>
>> I'll try to send some more information as I stumble on to
>> a solution.
>>
>> To complicate things, I suspect that the timing requirements
>> are dependant on the topology of the 1-wire bus , so a working
>> solution may require that the parameters be set from the command
>> line.
>>
>> --- xxx ---
>> DS9490_BusParm( int slewrate,
>> int low_time,
>> int ds0_low,
>> const struct parsedname * pn ) {
>> int Value;
>> int Index;
>> int ret[3];
>> /*
>> * Slew Rate
>> */
>> Value = MOD_PULLDOWN_SLEWRATE;
>> if(slewrate<0)
>> Index = PARMSET_Slew1p37Vus;
>> else
>> Index = slewrate;
>> if((ret[0] = usb_control_msg(pn->in->connin.usb.usb,
>> 0x40, //
>> RequestType
>>
>> MODE_CMD, // Request
>>
>> Value, // Value
>>
>> Index, // Index
>> NULL, //
>>
>> 0, // Length
>> TIMEOUT_USB )) < 0)
>> LEVEL_DATA("DS9490_BusParm: Error MOD_PULLDOWN_SLEWRATE
>> \n") ;
>>
>> /*
>> * LowTime
>> */
>> Value = MOD_WRITE1_LOWTIME;
>> if(low_time<0)
>> Index = PARMSET_W1L_10us;
>> else
>> Index = low_time;
>> if((ret[1] = usb_control_msg(pn->in->connin.usb.usb,
>> 0x40, //
>> RequestType
>>
>> MODE_CMD, // Request
>>
>> Value, // Value
>>
>> Index, // Index
>> NULL, //
>>
>> 0, // Length
>> TIMEOUT_USB )) < 0)
>> LEVEL_DATA("DS9490_BusParm: Error MOD_WRITE1_LOWTIME\n") ;
>>
>> /*
>> * DS0 Low
>> */
>> Value = MOD_DSOW0_TREC;
>> if(ds0_low<0)
>> Index = PARMSET_DS0_W0R_8us;
>> else
>> Index = ds0_low;
>> if((ret[2] = usb_control_msg(pn->in->connin.usb.usb,
>> 0x40, //
>> RequestType
>>
>> MODE_CMD, // Request
>>
>> Value, // Value
>>
>> Index, // Index
>> NULL, //
>>
>> 0, // Length
>> TIMEOUT_USB )) < 0)
>> LEVEL_DATA("DS9490_BusParm: Error MOD_DSOW0_TREC\n") ;
>> if(ret[0]) return ret[0];
>> if(ret[1]) return ret[1];
>> if(ret[2]) return ret[2];
>> return 0;
>>
>> }
>>
>>
>> On 6/7/06, Michael Weber <[EMAIL PROTECTED]> wrote:
>>> On Wed, 7 Jun 2006, Jan Kandziora wrote:
>>>
>>>> Am Mittwoch, 7. Juni 2006 21:44 schrieb Paul Alfille:
>>>>> Actually, I have some alternative timing settings suggested by
>>>>> William
>>>>> Robison that we could try.
>>>>>
>>>>> It's been hard to justify changing anything until we had test
>>>>> networks
>> that
>>>>> could be compared.
>>>>>
>>>>> I'll add it in, at least temporarily, add a command line flag, and
>> package
>>>>> it up.
>>>>>
>>>>> In the long run there are 3 cases:
>>>>> 1. Old time best
>>>>> 2. New timking best
>>>>> 3. Varies by network.
>>>>>
>>>> Oh, there's actually another tweak Michael could try: Maxim
>>>> supposes to
>> add an
>>>> RC circuit for medium length busses. Michael, see App. D of
>>>>
>>>> http://pdfserv.maxim-ic.com/en/an/AN148.pdf
>>>>
>>>> The whole document would be interesting to you, I think.
>>>>
>>>> Kind regards
>>>>
>>>> Jan
>>>
>>> Thanks for the suggestions.
>>>
>>> We are actually implementing the filter, but since the network is
>>> in a
>>> slightly remote location (an observatory on Tenrife, where I only
>>> go to
>>> fix problems) I was looking for a solution I could try remotely.
>>>
>>> The network is indeed a mixed topology, it consists of 2 Hubs,
>>> about 5-10m
>>> apart from each other (and the master). We splitted it up (it was
>>> a bit
>>> more complicated before) but that did not improve matters. Nor
>>> did using
>>> USB instead of rs232.
>>>
>>> I will try the filter (I also take an oscilloscope to measure
>>> timings and
>>> voltages) next week, but I would still like to play around with
>>> timings
>>> (Maxim says something about 5us pulldown time for the 5Volts,
>>> which should
>>> be tuned by the timing setting.
>>>
>>> Any suggestions to where I could insert some timing related
>>> changes in the
>>> source code? Preferably changeable at runtime, but thats not really
>>> important.
>>>
>>> Thanks again,
>>>
>>> Michael
>>>
>>>
>>>
>>> _______________________________________________
>>> Owfs-developers mailing list
>>> [email protected]
>>>
>> https://lists.sourceforge.net/lists/listinfo/owfs-developers
>>>
>>
>>
>
>
> _______________________________________________
> Owfs-developers mailing list
> [email protected]
> https://lists.sourceforge.net/lists/listinfo/owfs-developers
>
_______________________________________________
Owfs-developers mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/owfs-developers