Hi Paul, while working with the DS1921 Thermochron iButton I came across a few problems. See attached patch file for fixes.
- mission/clear not working: I made visible mission/clear (for reasons
explained below), however the assigned read/write functions FS_r_controlbit,
FS_w_controlbit had no effect; writing 1 to mission/clear did not clear the
iButton. I wrote a separate function FS_clrmem, which basically calls the
already existing function OW_clearmemory(). This way it was possible to clear
the mission of the iButton. Since the mission/clear never read anything else
than 0, I assigned NO_READ_FUNCTION.
("The EMCLR bit returns to 0 as the next memory function command is executed",
[#ds page 14])
- It is not possible to use the Mission Start Delay: FS_w_samplerate uses
OW_startmission to set the Sample Rate. However the function OW_startmission
performs a clear memory by calling OW_clearmemory, which also clears a
previously set Mission Start Delay. Afterwards the Sample Rate is written and
therefore the mission starts. This way there is no possibility to use the
Mission Start Delay.
I removed OW_clearmemory from OW_startmission and inserted a separate
OW_clearmemory for the function FS_easystart.
This way mission/clear is needed to do the missioning.
- The function OW_stopmission does not work: As intended in the code a mission
can be stopped by writing 0 to either mission/frequency or mission/running.
However doing so, the sampling is not stopped. The function OW_stopmission just
performs a read, there's also a comment saying "dummy".
The datasheet states "A mission ends with the first write attempt (Copy
Scratchpad command) to any register in the address range of 200h to 213h.
Alternatively, a mission can be ended by directly writing to the Status
register and setting the MIP bit to 0. The MIP bit cannot be set to 1 by
writing to the Status register.", [#ds page 15]
I implemented the way to set the MIP in the status register to 0.
- Typos and probably copy-and-paste leftovers in man pages: DS1921 and DS2438.
I'm aware that this patch breaks the feature to start a mission by writing 1 to
mission/running - in that case a previously set frequency was re-used for a new
mission after performing a clear-memory. Since this feature seems not to be
documented in the man page I was not sure how to proceed and wanted to discuss
this point with you. I'm happy to fix the code in either way: to restore the
feature or to remove its remaining residuals. I'm also willing to add
additional documentation to the DS1921 man page about the missioning and
mission/clear.
best regards
Clemens Egger
Reference:
#ds: DS1921G datasheet (http://datasheets.maximintegrated.com/en/ds/DS1921G.pdf)
--
Clemens Egger
Center for Biomedicine
EURAC research
Galvanistr. 31, I-39100 Bozen
t +39 0471 055 524
f +39 0471 055 599
[email protected]
www.eurac.edu
patch6.3
Description: patch6.3
------------------------------------------------------------------------------ Introducing AppDynamics Lite, a free troubleshooting tool for Java/.NET Get 100% visibility into your production application - at no cost. Code-level diagnostics for performance bottlenecks with <2% overhead Download for free and get started troubleshooting in minutes. http://p.sf.net/sfu/appdyn_d2d_ap1
_______________________________________________ Owfs-developers mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/owfs-developers
