Professional Documents
Culture Documents
Circuit Design and Theory of Operation
Circuit Design and Theory of Operation
The Digital Butler will allow the user to control commercially available X10
products through a menu system either from a webpage or from an on-board LCD screen
and keypad. The menu software will be dynamic in nature enabling the user to change
the state of individual outlets (e.g. turn on, turn off, and dim), schedule wall outlet events,
create lighting configurations, and receive status from the individual outlet units. The
control console will receive inputs through wires to a keypad and from a webpage
through an Ethernet connection. Based on the input, the console will send an X10
command to the X10 interface, display information on the LCD screen, update HTML
files (for a web page), and dynamically allocate memory to adapt the system to the latest
user needs.
Theory of Operation
-Keypad
The keypad is a 3x4 matrix of switches (12 buttons total) that, when pressed,
connects a unique pair of pins to create a short[5]. There are four column pins and three
row pins. The connection takes place between one column and one row. To detect when
a button is pressed, the keypad is connected to an MM74C922 keypad encoder [6]. The
encoder polls each row at the rising edge of the clock that is set by the rabbit
microcontroller. If a button is pressed the chip provides a four bit key-code for output
and sets the ‘data available’ pin high. ‘Data available’ is only set after bounce
elimination. The keypad encoder requires 5V supply voltage and 5 microcontroller port
pins. Software in the microcontroller handles input to the microcontroller from the
keypad decoder.
-LCD Screen
The Crystalfontz CFAG160160BYYHVU Graphic LCD Screen [4] has an on-
board controller which communicates with the microcontroller. The LCD controller
provides a text mode (as opposed to graphic mode) that displays information. Data from
the microcontroller is transmitted to the LCD screen buffer at a rate determined by the
‘LCDReadStatus’ flag from the LCD controller chip. The transfer is through 8 parallel
data pins and 5 control pins. Software in the microcontroller will determine the
information being provided to the LCD controller chip. The LCD screen requires 5V for
supply voltage and on board regulators generate the necessary -15V supplies.
-Ethernet Port
The Rabbit RCM3000 module is packaged with an integrated 10Base-T Ethernet
connection [2]. Microcontroller software (Dynamic C libraries) hosts a webpage. The
microcontroller pins used by the Ethernet interface have a very limited affect to the port
pin availability of the rest of our design.
-X10 Interface
The TW523 X10 interface is powered by a standard AC wall socket [3]. It serves
as a Power Line Carrier (P.L.C.) transmitter-receiver for X-10 code. The interface
connects to the microcontroller through an RJ11 telephone jack, and uses X-10
communication protocol to send/receive data. The home control console has an RJ11
phone jack. The phone jacks from the X10 interface and the home control console
connect together. Three of the four pins from the console phone jack (Tx, Rx, and zero
crossing) connect to microcontroller port pins after passing through a voltage
regulation/protection network. The zero crossing connection is used to monitor the
transmission of the commands and telemetry over the house hold power lines to keep the
system synced with the X10 products. The fourth pin is a common ground between the
two devices. Software is used to create, send, and receive X-10 code for the X10
interface to transmit.
References
Rabbit3000 and Ethernet
[1] http://shay.ecn.purdue.edu/~477grp6/DataSheets/Rabbit/R3000UM-
rabbit3000_user_manual.pdf
[2] http://shay.ecn.purdue.edu/~477grp6/DataSheets/Rabbit/090-0136-
rabbit3000_board_schematic.pdf
X10 interface
[3] http://shay.ecn.purdue.edu/~477grp6/DataSheets/X10/TW523-
two_way_power_line_tech_note.pdf