Public Domain 1-Wire Net Functions
Version 3.00 Alpha
06/28/2001
Copyright (C) 2000 Dallas Semiconductor

The 1-Wire Net functions provided are written in
'C' and are intended to be used on platforms not
supported by the iButton-TMEX 1-Wire Net
drivers. The '1-Wire Net' is a one wire and
ground network with one master and one or more
slave devices.

This source code creates a 1-Wire Net master
that can be used to identify and communicate
with slave devices. It provides all of the 1-
Wire Net, and some of the transport and file
level services to communicate with all of Dallas
Semiconductor's 1-Wire devices including
iButtons.

This source code is designed to be portable.
There are provided 'TODO' templates to be
completed for a specific platform. Several
platform example implementations have been
provided. There are also several example
applications that use these platform
implementations.

There are two sets of portable source files. The
first set is general purpose and is
intended for platforms that already have the
primitive linklevel 1-Wire Net
communication functions. This is the lowest
level that is hardware dependent.

The other set of portable source files assumes
that the user has a serial port (RS232) and
wishes to utilize our 'Universal Serial 1-Wire
Line Driver Master chip' called the DS2480B. This
chip receives commands over the serial port,
performs 1-Wire Net operations and then sends
the results back to the serial port. The source
code converts the intended 1-Wire operations
into serial communications packets to the
DS2480B. The only thing that needs to be provided
for a platform are the serial port read/write
primitives.

These two sets of portable source code files
implement the same 1-Wire Net functions and are
interchangeable.

The files in the sub-directory '\lib\MICRO\'
are written for example programs using assembly
language.

It is best to use the files from one or the
other, either general or userial, rather than a
combination of the two groups of files for
faster processing.


CONTENTS:

*    lib (1-Wire Net library code sets)
   *    userial - Code set based on Universial Serial chip (DS2480B)
   *    general - Code set based on 1-Wire link-level functions
   *    micro - Formerly in the TMEX kit, written for example programs 
                using assembly language

*    apps (application examples)
   *    atodtst - finds and display the value for channels A,B,C,D on the 
                  DS2450 Quad A/D Converter
   *    counter - reads the DS2423 counter value of the associated memory page
   *    coupler - tests the DS2409 commands and searches for the DS2409 and the
                  devices on the branch of the DS2409
   *    fish - Read, write, format and display the file system on a 1-Wire 
               memory device.
   *    gethumd - Measures the humidity using the DS2438.
   *    mweather - 1-Wire Weather Station example, supports versions of the 
                   Weather Station
   *    memutil - Minimal 1-Wire application to list the devices present on 
                  the default 1-Wire Adapter/Port.
   *    shaapp - 1-Wire application for using DS1961 functions.
   *    shadebit - DS1963/DS1961 SHA iButton monetary demo.  Initializes the
                   the dedicated co-processor DS1963 and the user performs
                   authenticated secure money debits using DS1963/DS1961.
   *    swtloop - performs various operations on the Dual Addressable Switch
   *    swtsngl - turns the DS2405 switch on & off and reads the on/off status
   *    temp - finds and displays the temperature measurement for the 
               DS1920/DS1820
   *    thermo - DS1921 Thermochron download and mission example application
   *    tstfind - loop to find all 1-Wire devices on Net

*    examples (example implementations on platforms)
   *    linux - Linux implementation using 'userial' code set
   *    win32 - Windows 32-Bit implementation using 'userial' code set
   *    tmex32 - Windows 32-bit implementation using 'general' code set 
                 iButton-TMEX 32-bit as the 1-Wire link-level functions.
   *    macOS - MacOS implemenation using 'userial' code set(needs work)
   *    beos - BeOS implementation using `userial' code set

*    Documentation
   *    ReadMe.txt - this file (Version 3.00, application descriptions,
                     platforms used, information, kit history) 
   *    license.txt - 'public domain' source code license (based 
                      Consortium's/MIT license
                      http://www.opensource.org/mit-license.html
   *    OWPD300.txt - Notes to the user, device listing, application
                      interface code
   *    \apps\(application-name)\ReadMe.txt - documentation throughout the 
                           One Wire Domain kit with code explanation and 
                           location of other files that may be required 
                           for usage
     
INFORMATION:

The best source of information about 1-Wire
devices
including iButtons is Dallas Semiconductor's
iButton web site at:
http://www.ibutton.com/

This file has the latest download listings:
ftp://ftp.dalsemi.com/pub/auto_id/softdev/softdev.html

Dallas Semiconductor/Maxim's main web site:
http://www.maxim-ic.com/

Data sheets: http://dbserv.maxim-ic.com/pl_list.cfm?filter=1w

KIT HISTORY:
1.01 -> 1.02 Support multiple DS1820 temperature devices in example.
   *    Change MLANU(userial) section to implement
        opening and closing of communication port with
        generic functions.
   *    Fix incorrect declarations of global variables
        in MLANU(userial).
   *    Fix reading incorrect counter page in
        MWeather example.
   *    Extended DSO of MLANU(userial) adapter.

1.02 -> 1.03 Reorganization of files/directories
   *    Make applications not library dependent
        (userial/general)
   *    Add Linux support

1.03 -> 2.00 Reorganization of files/directories
   *    Addition of the Common directory
   *    Additional support added to the Lib file
        for multiple ports
   *    New applications and examples
   *    New Weather Station example to both
        versions of the Weather Station
   *    Change from MicroLAN (MLAN) to 1-Wire Net (OW)

2.00 -> 3.00 Reorganization of files/directories
   *    Added error handling code
   *    Added code for running applications on micros
   *    Added modules to support memory IO for all current
        1-Wire memory devices.
   *    Expanded the 1-Wire file I/O to implement all 
        functions similar to the TMEX API.
