1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
|
Project: DS1992 memory iButton dumper
* this project is designed for the USB AVR LAB board by ullihome
* (http://www.ullihome.de/wiki/USBAVRLab/index)
* That's a small Atmega8-powered board with software-USB and a small pinout
* that looks like this:
* ____ ____ ____ ____
* | . . . . . | | o . . . . |
* | . . . . . | or | x . . . . |
* |___________| |___________|
*
* hold the DS1992 token against the pins, so that the outer ring touches the
* "x" pin, while the inner circle touches the "o" pin.
*
* How to use:
* the dumping device has three modes of operation, which are shown by the blinking
* speed of the blue LED.
* 1. reading mode: normal blinking
* 2. reading mode: slooow blinking (previous operation failed)
* 3. writing mode: fast blinking
*
* in either mode, the red LED flashes periodically. This means that the device
* probed for a DS1992, but couldn't find anything on the bus. If you hold you
* DS1992 against the pins, the flashing will turn green instead. This means that
* the token has been read into the device's RAM.
* You can now use `pc/a.out read` to read the contents.
* (If both green and red leds flash, this means you've a short circuit.)
*
* If you execute `pc/a.out write <page> <data>`, then the device will enter
* writing mode. The flashing red LED has the same meaning as before. If you now
* connect the token, the page <page> (1-indexed) will be written to with <data>,
* whenever the LED flashes green the next time.
* After that, the device enters reading mode again. If the LED blinks really slow,
* then there was a write error. re-execute a.out write, reconnect the token and retry.
* Additionally, after writing you can use `a.out read` again (without connecting the
* token for reading previously). This will output you a lot of garbage, but the first
* byte read tells you a more detailed error code:
* 0x01: "reset/presence pulse" failed after scratchpad write
* 0x02: scratchpad did not verify correctly
* 0x03: "reset/presence pulse" failed after scratchpad readback + verify
* 0xFF: probably successful
*
* Note that you should read back the data after writing, just to be sure.
* Also note that while you can read the whole memory at once, you must execute the write
* command, and also connect the token, four times for a full write (once for each page).
WARNING: This tool does not adhere to the 1-wire-specification and may damage your devices.
see 1wire.{c,h} for details.
Author: Florian Jung (flo@windfisch.org)
Copyright: (c) 2015,2016 by Florian Jung. All rights reserved.
License: 3-clause BSD for avr/main.c; Note that different licensing applies for the V-USB library.
|