Tuesday, May 6, 2008

I, Button.

iButton reading on the E128 is up! The code is in our project directory/currentcode/ibuttonTest

Here's the good news: you load the .h and call ReadSerialNumber() and it works!
Here's the bad news: it's blocking and a little bit squirrelly when you break contact with the button. But the first value seems pretty stable or we can do some filtering or majority voting to fix it.

Here's a small Q &A

1.What is the iButton?
DS1990A Self timed memory storage device
2.What is the iButton reader?
Reads data stored on iButton
Serial transfer on half duplex line (tx or rx, but not at same time) within "discretely defined time slots"
Translation: The clock rate is set, we're doing asynchronous communications
CMOS open drain output, needs 5 kohm pullup
3. How do you power it?
Parasitic power: it steals power from the data line
4. How do you connect to it?
1 data line, one ground line
5. How do you signal you want data?
Commands and data are sent bit by bit (starting with LSB) based on timing
Synchonization based on falling edge when master pulls line low (kind of like slave select...)
33H or OFH (That's the only command)
6. What kind of communications does it use?
Asynchronous style over a regular I/O pin

A big thanks to Laurel for solving my command problem!

Tomorrow: time to program it on the PIC

David out

No comments: