1DS2408(3)                    One-Wire File System                    DS2408(3)
2
3
4

NAME

6       DS2408 - 1-Wire 8 Channel Addressable Switch
7

SYNOPSIS

9       8 port switch
10
11       29         [.]XXXXXXXXXXXX[XX][/[         latch.[0-7|ALL|BYTE]        |
12       LCD_M/[clear|home|screen|message]                                     |
13       LCD_H/[clear|home|yxscreen|screen|message|onoff]      |     LCD_H/rede‐
14       fchar.[0-7|ALL] LCD_H/redefchar_hex.[0-7|ALL]  |  PIO.[0-7|ALL|BYTE]  |
15       power | sensed.[0-7|ALL|BYTE] | strobe | por | set_alarm | out_of_test‐
16       mode | address | crc8 | id | locator | r_address | r_id |  r_locator  |
17       type ]]
18

FAMILY CODE

20       29
21

SPECIAL PROPERTIES

23   latch.0 ... latch.7 latch.ALL latch.BYTE
24       read-write, binary
25       The  8  pins  (PIO) latch a bit when their state changes, either exter‐
26       nally, or through a write to the pin.
27       Reading the latch property indicates that the latch has been set.
28       Writing "true" (non-zero) to ANY latch will reset them  all.  (This  is
29       the hardware design).
30       ALL is all latch states, accessed simultaneously, comma separated.
31       BYTE references all channels simultaneously as a single byte. Channel 0
32       is bit 0.
33
34   PIO.0 ... PIO.7 PIO.ALL PIO.BYTE
35       read-write, yes-no
36       State of the open-drain output ( PIO ) pin. 0 = non-conducting (off), 1
37       = conducting (on).
38       Writing  zero  will  turn  off  the  switch,  non-zero will turn on the
39       switch. Reading the PIO state will return the switch setting. To deter‐
40       mine  the  actual  logic level at the switch, refer to the sensed.0 ...
41       sensed.7 sensed.ALL sensed.BYTE property.
42       ALL references all channels simultaneously, comma separated.
43       BYTE references all channels simultaneously as a single byte. Channel 0
44       is bit 0.
45
46   power
47       read-only, yes-no
48       Is  the  DS2408  powered parasitically (0) or separately on the Vcc pin
49       (1)?
50
51   sensed.0 ... sensed.7 sensed.ALL
52       read-only, yes-no
53       Logic level at the PIO pin. 0 = ground. 1 = high (~2.4V - 5V ).  Really
54       makes  sense only if the PIO state is set to zero (off), else will read
55       zero.
56       ALL references all channels simultaneously, comma separated.
57       BYTE references all channels simultaneously as a single byte. Channel 0
58       is bit 0.
59
60   strobe
61       read-write, yes-no
62       RSTZ Pin Mode Control. Configures RSTZ as either RST input or STRB out‐
63       put:
64
65       0      configured as RST input (default)
66
67       1      configured as STRB output
68
69   por
70       read-write, yes-no
71       Specifies whether the device has performed power-on reset. This bit can
72       only  be  cleared to 0 under software control. As long as this bit is 1
73       the device will always respond to a conditional search.
74
75   out_of_testmode
76       write-only, yes-no
77       Write "1" to this property to make sure the device  has  been  properly
78       initialized on startup.
79
80       The  datasheet  says  that under some conditions the startup (power-up)
81       will leave the device in the "testmode" state. Any problems with "Chan‐
82       nel  Access  Write"  will  trigger this property automaticlly, but this
83       property makes explicit initialization possible as well.
84
85   set_alarm
86       read-write, integer unsigned (0-333333333)
87       A number consisting of 9 digits XYYYYYYYY, where:
88
89       X      select source and logical term
90              0 PIO   OR
91              1 latch OR
92              2 PIO   AND
93              3 latch AND
94
95       Y      select channel and polarity
96              0 Unselected (LOW)
97              1 Unselected (HIGH)
98              2 Selected    LOW
99              3 Selected    HIGH
100
101       All digits will be truncated to  the  0-3  range.  Leading  zeroes  are
102       optional. Low-order digit is channel 0.
103
104       Example:
105
106       100000033
107              Responds  on  Conditional Search when latch.1 or latch.0 are set
108              to 1.
109
110       222000000
111              Responds on Conditional Search when sensed.7  and  sensed.6  are
112              set to 0.
113
114       000000000 (0)
115              Never responds to Conditional Search.
116

LCD_H LCD SCREEN PROPERITES

118       This  mode uses the DS2408 attached to a Hitachi HD44780 LCD controller
119       in 4-bit mode. See DATASHEET for published details. Based on a  commer‐
120       cial product from HobbyBoards by Erik Vickery.
121
122   LCD_H/clear
123       write-only, yes-no
124       This will clear the screen and place the cursor at the start.
125
126   LCD_H/home
127       write-only, yes-no
128       Positions  the cursor in the home (upper left) position, but leaves the
129       current text intact.
130
131   LCD_H/screen
132       write-only, ascii text
133       Writes to the LCD screen at the current position.
134
135   LCD_H/screenyc
136       write-only, ascii text
137       Writes to an LCD screen at a specified location. The controller doesn't
138       know  the  true  LCD  dimensions, but typical selections are: 2x16 2x20
139       4x16 and 4x20.
140
141       Y (row)
142              range 1 to 2 (or 4)
143
144       X (column)
145              range 1 to 16 (or 20)
146
147       There are two formats allowed  for  the  screenyx  text,  either  ascii
148       (readable text) or a binary form.
149
150       2 binary bytes
151              The  two first characters of the passed string have the line and
152              row: e.g. "\x02\x04string" perl string writes "string" at line 2
153              column 4.
154
155       ascii 2,12:
156              Two  numbers giving line and row:  Separate with a comma and end
157              with a colon e.g. "2,4:string" writes "string" at line 2  column
158              4.
159
160       ascii 12:
161              Single  column  number  on the (default) first line:  End with a
162              colon e.g. "12:string" writes "string" at line 1 column 12.
163
164       The positions are 1-based (i.e. the first position is 1,1).
165
166   LCD_H/onoff
167       write-only, unsigned
168       Sets several screen display functions. The selected choices  should  be
169       added together.
170
171       4      Display on
172
173       2      Cursor on
174
175       1      Cursor blinking
176
177   LCD_H/message
178       write-only, ascii text
179       Writes  a  message  to  the LCD screen after clearing the screen first.
180       This is the easiest way to display a message.
181
182   LCD_H/redefchar.0-7|ALL
183       write-only, binary
184       Redefines one of 8 user-designed character glyphs for  the  LCD  screen
185       (5x8 pixels).
186
187       Each  byte defines a horizontal line top to bottom. All 5 pixels corre‐
188       sponds to 0x1F and a blank line is 0x00.
189
190       Format is 8 binary bytes.
191
192   LCD_H/redefchar_hex.0-7|ALL
193       write-only, ascii
194       Redefines one of 8 user-designed character glyphs for  the  LCD  screen
195       (5x8 pixels).
196
197       Each  byte defines a horizontal line top to bottom. All 5 pixels corre‐
198       sponds to 0x1F and a blank line is 0x00.
199
200       Format is 8 hexidecomal bytes (16 characters).
201

LCD_M LCD SCREEN PROPERITES

203       This mode uses the DS2408 attached to a Hitachi HD44780 LCD  controller
204       in  8-bit  mode. See DATASHEET for published details. Based on a design
205       from Maxim and a commercial product from AAG.
206
207   LCD_M/clear
208       write-only, yes-no
209       This will clear the screen and place the cursor at the start.
210
211   LCD_M/home
212       write-only, yes-no
213       Positions the cursor in the home (upper left) position, but leaves  the
214       current text intact.
215
216   LCD_M/screen
217       write-only, ascii text
218       Writes to the LCD screen at the current position.
219
220   LCD_M/screenyc
221       write-only, ascii text
222       Writes to an LCD screen at a specified location. The controller doesn't
223       know the true LCD dimensions, but typical  selections  are:  2x16  2x20
224       4x16 and 4x20.
225
226       Y (row)
227              range 1 to 2 (or 4)
228
229       X (column)
230              range 1 to 16 (or 20)
231
232       There  are  two  formats  allowed  for  the screenyx text, either ascii
233       (readable text) or a binary form.
234
235       2 binary bytes
236              The two first characters of the passed string have the line  and
237              row: e.g. "\x02\x04string" perl string writes "string" at line 2
238              column 4.
239
240       ascii 2,12:
241              Two numbers giving line and row:  Separate with a comma and  end
242              with  a colon e.g. "2,4:string" writes "string" at line 2 column
243              4.
244
245       ascii 12:
246              Single column number on the (default) first line:   End  with  a
247              colon e.g. "12:string" writes "string" at line 1 column 12.
248
249       The positions are 1-based (i.e. the first position is 1,1).
250
251   LCD_M/onoff
252       write-only, unsigned
253       Sets  several  screen display functions. The selected choices should be
254       added together.
255
256       4      Display on
257
258       2      Cursor on
259
260       1      Cursor blinking
261
262   LCD_M/message
263       write-only, ascii text
264       Writes a message to the LCD screen after  clearing  the  screen  first.
265       This is the easiest way to display a message.
266

STANDARD PROPERTIES

268   address
269   r_address
270       read-only, ascii
271       The  entire  64-bit  unique  ID. Given as upper case hexidecimal digits
272       (0-9A-F).
273       address starts with the family code
274       r address is the address in reverse order, which is often used in other
275       applications and labeling.
276
277   crc8
278       read-only, ascii
279       The  8-bit error correction portion. Uses cyclic redundancy check. Com‐
280       puted from the preceding 56 bits of the  unique  ID  number.  Given  as
281       upper case hexadecimal digits (0-9A-F).
282
283   family
284       read-only, ascii
285       The  8-bit  family  code. Unique to each type of device. Given as upper
286       case hexadecimal digits (0-9A-F).
287
288   id
289   r_id
290       read-only, ascii
291       The 48-bit middle portion of the unique ID number. Does not include the
292       family code or CRC. Given as upper case hexadecimal digits (0-9A-F).
293       r  id is the id in reverse order, which is often used in other applica‐
294       tions and labeling.
295
296   locator
297   r_locator
298       read-only, ascii
299       Uses an extension of the 1-wire design from  iButtonLink  company  that
300       associated  1-wire  physical  connections with a unique 1-wire code. If
301       the connection is behind a Link Locator the locator will show a  unique
302       8-byte number (16 character hexadecimal) starting with family code FE.
303       If  no  Link  Locator is between the device and the master, the locator
304       field will be all FF.
305       r locator is the locator in reverse order.
306
307   present (DEPRECATED)
308       read-only, yes-no
309       Is the device currently present on the 1-wire bus?
310
311   type
312       read-only, ascii
313       Part name assigned by Dallas Semi. E.g.  DS2401  Alternative  packaging
314       (iButton vs chip) will not be distiguished.
315

ALARMS

317       Use the set_alarm property to set the alarm triggering criteria.
318

DESCRIPTION

320   1-Wire
321       1-wire is a wiring protocol and series of devices designed and manufac‐
322       tured by Dallas Semiconductor, Inc. The bus is  a  low-power  low-speed
323       low-connector scheme where the data line can also provide power.
324
325       Each  device  is  uniquely and unalterably numbered during manufacture.
326       There are a wide variety of devices, including memory, sensors  (humid‐
327       ity, temperature, voltage, contact, current), switches, timers and data
328       loggers. More complex devices (like thermocouple sensors) can be  built
329       with  these  basic  devices.  There  are  also 1-wire devices that have
330       encryption included.
331
332       The 1-wire scheme uses a single bus master and multiple slaves  on  the
333       same  wire.  The bus master initiates all communication. The slaves can
334       be individually discovered and addressed using their unique ID.
335
336       Bus masters come in a variety of configurations including serial,  par‐
337       allel, i2c, network or USB adapters.
338
339   OWFS design
340       OWFS  is  a  suite of programs that designed to make the 1-wire bus and
341       its devices easily accessible. The underlying principle is to create  a
342       virtual  filesystem,  with  the  unique ID being the directory, and the
343       individual properties of the device are  represented  as  simple  files
344       that can be read and written.
345
346       Details  of  the  individual slave or master design are hidden behind a
347       consistent interface. The goal is to provide an easy set of tools for a
348       software  designer  to create monitoring or control applications. There
349       are some performance enhancements in the implementation, including data
350       caching, parallel access to bus masters, and aggregation of device com‐
351       munication. Still the fundamental goal has been ease of use,  flexibil‐
352       ity and correctness rather than speed.
353
354   DS2408
355       The  DS2408  (3) allows control of other devices, like LEDs and relays.
356       It extends the DS2406 to 8 channels and includes memory.
357       Alternative switches include the DS2406, DS2407 and even DS2450
358

ADDRESSING

360       All 1-wire devices are factory assigned a unique 64-bit  address.  This
361       address is of the form:
362
363       Family Code
364              8 bits
365
366       Address
367              48 bits
368
369       CRC    8 bits
370
371       Addressing under OWFS is in hexadecimal, of form:
372
373              01.123456789ABC
374
375       where 01 is an example 8-bit family code, and 12345678ABC is an example
376       48 bit address.
377
378       The dot is optional, and the CRC code can  included.  If  included,  it
379       must be correct.
380

DATASHEET

382       http://pdfserv.maxim-ic.com/en/ds/DS2408.pdf
383       http://www.hobby-boards.com/catalog/howto_lcd_driver.php
384       http://www.maxim-ic.com/appnotes.cfm/appnote_number/3286
385

SEE ALSO

387   Programs
388       owfs  (1)  owhttpd  (1)  owftpd  (1)  owserver (1) owdir (1) owread (1)
389       owwrite (1) owpresent (1) owtap (1)
390
391   Configuration and testing
392       owfs (5) owtap (1) owmon (1)
393
394   Language bindings
395       owtcl (3) owperl (3) owcapi (3)
396
397   Clocks
398       DS1427 (3) DS1904 (3) DS1994 (3) DS2404  (3)  DS2404S  (3)  DS2415  (3)
399       DS2417 (3)
400
401   ID
402       DS2401 (3) DS2411 (3) DS1990A (3)
403
404   Memory
405       DS1982  (3)  DS1985  (3)  DS1986  (3)  DS1991 (3) DS1992 (3) DS1993 (3)
406       DS1995 (3) DS1996 (3) DS2430A (3) DS2431  (3)  DS2433  (3)  DS2502  (3)
407       DS2506 (3) DS28E04 (3) DS28EC20 (3)
408
409   Switches
410       DS2405 (3) DS2406 (3) DS2408 (3) DS2409 (3) DS2413 (3) DS28EA00 (3)
411
412   Temperature
413       DS1822  (3)  DS1825  (3)  DS1820 (3) DS18B20 (3) DS18S20 (3) DS1920 (3)
414       DS1921 (3) DS1821 (3) DS28EA00 (3) DS28E04 (3) EDS0064 (3) EDS0065  (3)
415       EDS0066  (3)  EDS0067  (3) EDS0068 (3) EDS0071 (3) EDS0072 (3) MAX31826
416       (3)
417
418   Humidity
419       DS1922 (3) DS2438 (3) EDS0065 (3) EDS0068 (3)
420
421   Voltage
422       DS2450 (3)
423
424   Resistance
425       DS2890 (3)
426
427   Multifunction (current, voltage, temperature)
428       DS2436 (3) DS2437 (3) DS2438 (3)  DS2751  (3)  DS2755  (3)  DS2756  (3)
429       DS2760 (3) DS2770 (3) DS2780 (3) DS2781 (3) DS2788 (3) DS2784 (3)
430
431   Counter
432       DS2423 (3)
433
434   LCD Screen
435       LCD (3) DS2408 (3)
436
437   Crypto
438       DS1977 (3)
439
440   Pressure
441       DS2406 (3) TAI8570 (3) EDS0066 (3) EDS0068 (3)
442
443   Moisture
444       EEEF (3) DS2438 (3)
445

AVAILABILITY

447       http://www.owfs.org
448

AUTHOR

450       Paul Alfille (paul.alfille@gmail.com)
451
452
453
454OWFS Manpage                         2003                            DS2408(3)
Impressum