Initial report by Zach Eveland, April 24, 2006
The HM2007 is a single-chip voice-recognition system previously manufactured by Hualon. It requires an external array of SRAM, but otherwise provides all necessary components for a voice-recognition system including the analog front-end, voice analysis, recognition processing, and system control. The HM2007 can recognize either 40 0.9-second long words or 20 1.92-second long words or phrases. The recognition technology is of the speaker-dependent discrete type meaning that it can only recognize words spoken in isolation and the speaker must "train" the system with each word to be recognized.
The HM2007 is available in a 48-pin PDIP or 52-pin PLCC package. This report only addresses the PDIP package.
Datasheet and FAQ
- An annotated HM2007 datasheet (warning - some errors in the annotations - they are noted below)
- An annotated copy of a FAQ for the HM2007 (contains some errors in the annotations - also noted below)
Other Information
- "Talking Toaster" - a project using the HM2007 - contains some notes about the HM2007 itself
- "Ta(l)king Control" - An article about the HM2007 by Jeff Bachiochi in Computer Applications Journal from 1994
Distributor
- Images SI Inc. - in Staten Island but does not do pickup orders. (HM2007 for $10, 64K SRAM for $8, 3.58 MHz crystal for $2.50)
Applications
- Toys
- Home automation
Electrical Characteristics
- Supply voltage (Vdd): 5.0 VDC typical (4.0 V min., 5.5 V max.)
- Operating current (Idd): 6 mA typical (15 mA max.)
Communication between the HM2007 and a host microcontroller is through one unidirectional three-pin bus (the S-bus) and one bidirectional four-pin bus (the K-bus). Signal levels for these lines are 0-Vdd.
The HM2007 is not exactly easy to use with a microcontroller. Communication follows the protocol given below and in the datasheet but is generally of the form:
- Microcontroller indicates on the S-bus that it is ready to receive the HM2007's status
- HM2007 indicates its status on the K-bus
- Microcontroller switches its pins connected to the HM2007's K-bus to inputs and reads status from the K-bus
- Microcontroller switches its pins connected to the HM2007's K-bus to outputs and writes a command to the K-bus
- Microcontroller indicates on the S-bus that the HM2007 should read the K-bus for a command
- HM2007 reads the K-bus for the command
- HM2007 responds to the command and places the results on the K-bus
- Microcontroller reads the K-bus to determine the result of the command
- ad nauseum
Pin Descriptions

| Pin Name | Pin Number(s) | Description |
|---|---|---|
| S1-S3 | 4-6 | The S-bus read/write control pins - connected to the host microcontroller |
| K1-K4 | 8-11 | The K-bus bi-directional data bus - connected to the host microcontroller |
| SA0-SA12 | 17-24, 27-31 | Memory address bus |
| D0-D7 | 36-43 | Memory data bus |
| MR/MW | 35 | Memory read / memory write control line |
| ME | 34 | Memory-enable pin |
| X1 and X2 | 2,3 | Connections for a 3.58 MHz crystal or oscillator |
| TEST | 12 | Never used - pull low for proper operation |
| LINE | 45 | Never used - leave floating |
| MICin | 46 | Microphone input pin - should be connected through a coupling capacitor and a resistor |
| WLEN | 13 | Word-length select pin. Pull high to use 1.92-second words, pull low to use 0.9-second words |
| CPUM | 14 | CPU/manual-mode select pin. Pull low for manual mode, pull high for CPU mode. Pulled high to select CPU mode in this report |
| Vref | 44 | ADC voltage reference pin - connect to Vdd through a 20k-30kohm resistor |
| Vdd | 25,47 | Positive voltage supply - connect 5.0V |
| Agnd | 48 | Analog ground |
| GND | 1,26 | Digital ground |
| RDY | 7 | Ready indicator - can sink current for an LED to indicate when it's time to speak |
| TEST | 12 | Never used - pull low for normal operation |
| WAIT | 15 | Waiting control input - pull high for normal operation |
| DEN | 16 | Data-enable signal - can be used to latch the response on D0-D7 to an external device if desired (not used in this report) |
| NC | 32,33 | No connection |
Microcontroller Connections
