• Channels
Part Inventory
Go
 
powered by:

 
  • Quick Poll
What Social Networking site do you use the most?



VOTE VIEW RESULTS
Previous Polls

Premium Content

New Signal Chain Technical Papers from Texas Instruments:

 

 

 

Power-Saving Keypad Controls Multiple Keys Through One MCU Pin


Mehmet Efe Ozbek

August 16, 2007

Print
Reprints Comment Subscribe

Traditionally, interfacing a microcontroller with an n-by-m keypad required n + m of the microcontroller's I/O pins for keypad scanning. Keypad designs that conserve microcontroller pins have been developed, but they require additional resources, such as external ICs or a built-in analog-to-digital converter (ADC). The design presented here uses only one I/O pin and requires only resistors and a capacitor as external components.

I/O is a bidirectional pin initially configured as an input (see the figure). When no key is pressed, the capacitor is discharged and the pull-up resistor, RH, keeps I/O High. The microcontroller is in sleep mode and will wake up only when a change in I/O's state generates an interrupt. When a key is pressed, I/O changes to Low, since the pull-down network is stronger than the pull-up. The microcontroller then wakes up to execute the following steps:

  1. Wait for contact debouncing.
  2. Change I/O to an output and set it High. The capacitor then starts charging to the High-state voltage. The charging time, Ti, is determined by the key pressed and its associated R (1, 2,…i).
  3. Wait until T1.
  4. Make I/O an input. Charging of C pauses.
  5. If I/O is High, key 1 was pressed. If I/O is Low, make I/O an output and set it High to continue charging.
  6. Wait until T2.
  7. Make I/O an input. Charging of C pauses.
  8. If I/O is High, key 2 was pressed. If I/O is Low, make I/O an output and set it High to continue charging.
  9. Continue for T3 through Ti.

Resistors should be chosen to make T1 < T2 < T3

Charging time can be determined as follows: When charging pauses, the voltage at I/O is (Equation 1) where VC is the capacitor voltage (Equation 2). Equation 3 solves the charging time by equating VI/O to the switching threshold voltage VTH. Here, VTH is the switching threshold voltage for I/O.

As Ri is increased, Ti initially increases. But then it reaches a maximum and starts to decrease. This imposes an upper limit on Ri and, hence, on the number of keys that can be connected to the circuit.

Ti may vary between Ti,min and Ti,max due to resistor tolerances and variations in VTH. Therefore, the values should be chosen so that Ti,max < Ti+1,min. Assuming resistors with 5% tolerances and a maximum VTH variation of 5%, a maximum of 15 keys can be connected to the circuit using the following Ri values (in kΩ): 0.01, 0.27, 0.62, 1.1, 1.8, 2.7, 3.9, 5.6, 8.2, 11, 15, 22, 30, 43, and 68. The number of keys can be increased if resistor tolerances are tighter.

This design saves power in three ways. First, energy of CV2 is dissipated each time a capacitor is charged to V and discharged. In this design, charging stops as soon as I/O goes High and the capacitor is charged to about VTH (less than 2 V), rather than VDD. Second, the capacitor is charged (and discharged) only once for each key press. Finally, after determining which key was pressed, the microcontroller enters sleep mode and remains asleep until the key is released and the state of I/O changes back to High. So even when some of the keys are stuck or held down, power consumption is minimized.

Average (0 Ratings):

Subscribe
Subscribe to Electronic Design and start receiving more articles like this one
Filed Under:

Check for price and availability on Source ESB:

Go
powered by  
    There are no comments to display. Be the first one!
You must log on before posting a comment.

Are you a new visitor? Register Here
Acceptable Use Policy

Sponsored Links