Features * * * * * * * * * * * * * * * * * 10 MIPS Flash-based AVR(R) Core Microcontroller High Efficiency Compression (4.5 kbps) Automatic Timestamp Full Duplex Handsfree Support Line and Acoustic Echo Cancellation DTMF Generation and Detection Call Progress Tone Detection Caller ID and Alert Tone Detection Power Management and Monitoring 2 On-chip Voice Codecs for Line and User Sides Programmable Equalizer and AGC On-chip 100 mW Audio Amplifier General Purpose UART DataFlashTM Controller for Mass Storage and Voice Prompt LCD Display Controller Keyboard Controller User-defined I/Os Digital Telephone Answering Device Description The Atmel AT75C110 integrated circuite (IC) provides a cost-effective solution for embedded or standalone message recording applications. It provides the system developer with a comprehensive set of programmable DSP algorithms, thus spanning the range of applications from simple voice recorder to full-fledged smartphone with display, handsfree features and answering capabilities. The chip is built around the AVR microcontroller (MCU) architecture. The application program resides in an on-chip Flash program memory. During the boot stage, this memory is programmed through the on-chip UART from any software development platform. The AVR MCU core controls all the on-chip peripherals and supports the user interface. The main peripheral is the programmable DSP unit. The DSP unit provides the system with a set of processing facilities widely used in voice recording and telephone applications. It is controlled by the application software through predefined system requests. The DSP unit is connected directly to the line side and acoustic voice codecs and to the DataFlash mass storage memory. This structure allows the DSP unit to work as a standalone co-processor, while the application software performs other system tasks. The DSP unit features an Atmel proprietary voice compression algorithm which leads to a bit rate as low as 4.5 kbps. This gives a good compromise between memory requirements and quality during playback. At that speed, a serial 8M bytes DataFlash can hold up to 30 minutes of voice messages. This low pincount memory can be gluelessly connected to the AT75C110. Furthermore, the AT75C110 supports advanced telephone features, such as handsfree operation with echo cancellation, tone handling (DTMF, caller ID, alert, etc.) and correction for low-cost microphones and speakers. AT75C110 Advance Information Rev. 1073AS-A-07/98 AT75C110 Block Diagram PCM I/O PCM I/O Speaker Line-side Codec Phone Line Headphones User-side Codec Mic 1 Mic 2 DataFlash controller DSP Unit General Purpose I/O I/O Port DataFlash Memory Real Time Clock DSP Request Controller Display LCD Controller UART Keyboard Keyboard Controller Power Management AVR Core Rx/Tx Power Sense RAM Program Flash Clocks Generation 32768 Hz RTC Oscillator 16 MHz System Oscillator External 50/60 Hz Clock Source Application Example: Full Duplex Speakerphone with Answering Functions DataFlash Handsfree Line SLIC AT75C110 Handset Display 2 AT75C110 Keyboard AT75C110 Functional Description AVR Microcontroller Core The AVR MCU core is based on an enhanced RISC architecture that combines a rich instruction set with 32 general purpose working registers. All 32 registers are directly connected to the Arithmetic and Logic Unit (ALU), allowing two independent registers to be accessed in one single instruction executed in one cycle. The resulting architecture is more code efficient while achieving throughputs up to ten times faster than conventional CISC microcontrollers. More detailed information on the AVR MCU Core is available in the Atmel AVR Core Datasheet and the Atmel AVR Microcontroller Databook. Line Echo Cancellation The AT75C110 contains a line echo cancellation unit to eliminate near end echo. This unit is based on an adaptative FIR filter which computes the expected echo, and a subtractor which removes it from the transmitted signal. Since the echo characteristics can slowly vary with time, an adaptative algorithm continuously updates the echo model. The line echo canceller is programmable, and is useful during tone detection. A block diagram of the line echo canceller is shown below. Line In DSP Unit The DSP Unit is a programmable functional block which performs all the voiceband calculations in a configurable way. Several algorithms can run in parallel, with few restrictions. The DSP Unit is programmed by the application software run by the AVR core through command messages. A command message is a set of codes made of one opcode followed by zero or more parameters. When a special event occurs in the data processing (eg valid DTMF code detected), the DSP Unit has the ability to elaborate a status message and to post it to the application software. The comprehensive command and status message set is fully explained in the detailed datasheet. Below is an overview of the main available algorithms. If several algorithms are to be run in parallel, there must be a separate command message for each of them. If the DSP Unit receives several incompatible command messages (e.g. a message requests DTMF detection and another requests DTMF generation), only the last one will be taken into account. Command messages with an undefined opcode are not processed. Voice Compression The DSP Unit's main task is to process in real time voice compression and decompression. Based on a proprietary algorithm, the speech compression ratio enables up to 30 minutes of voice to be stored in an 8M-bit memory. The high efficiency of the algorithm allows other tasks required in a smart phone application to run in parallel. Message Playback Controlled by the AVR microcontroller, the playback process is handled by the DSP unit for speech decompression, and by the AVR for memory management, leaving the AVR free for other control tasks. The application programmer can use these resources to feature a user-friendly access to messages. Adaptative algorithm Other processing algorithms FIR + Line Out Acoustic Echo Cancellation The AT75C110 contains an acoustic echo cancellation unit to eliminate the interaction of the microphone and the speaker. It is based on an adaptative FIR structure, as shown in the figure below: Mic FIR Other processing algorithms Adaptative algorithm + Speaker DTMF Generation The DSP Unit provides an efficient way to generate sinewave tones, or the sum of two sinewave tones. The generated signal has low distortion, and the frequency resolution is less than 1 Hertz. The typical application of tone generation is DTMF generation, but custom tones can also be emitted. 3 The tone generation command message has four parameters: the frequency control word for the first tone, the frequency control word for the second tone, the tone duration, and tone separation duration. To improve the DTMF detection by the receiver, the handset and handsfree microphone signals can be disabled during tone and tone separation. DTMF Detection The DTMF codes detector is enabled by a special command message. This message has several parameters, including minimum tone duration and frequency accuracy around nominal values. When a valid code is detected, the DSP Unit can generate an interrupt to the AVR Core and deliver the detected value. All sixteen standard DTMF codes are recognized. Calling Tone Detection When a datacom device (e.g. modem or fax machine) dials a number, it sends a calling tone as soon as the whole number is completely dialed. This enables the receiver to distinguish datacom from voice calls. The DSP Unit has the ability to detect the standard calling tones. Call Progress Tone Detection The AT75C110 can detect call progress tones. This function is programmable for tone duration, tone separation duration and some other parameters. When it has detected a programmable number of tone/tone separation, it can send an interrupt to the AVR Core to inform the application of the call progress. Alert Tone Detection The alert tone is a part of the caller ID protocol. When the alert tone detector is enabled, an interrupt is triggered to the AVR Core to inform the application software that the caller ID detector can be enabled. The alert tone detector can be configured by several parameters, including the accuracy around the nominal frequencies. Caller ID Detection The caller ID protocol is based on a 1200 bps FSK modulation. When the caller ID detector is enabled, it can deliver the demodulated deserialized data to the application software. This software has the responsibility to interpret the data. Several parameters can control the way demodulation is performed. Microphone and Speaker Equalization Two equalizing filters are placed in series with the acoustic side codec. These filters can be used to correct the frequency response of low-cost microphones and speakers. 4 AT75C110 Other Features DSP Auxiliaries The DSP Unit has a number of auxiliary features, such as AGC for analog signals, digital volume control, or threshold detection for various signals. Keyboard Controller The embedded keyboard controller has the required logic to allow direct connection of a low-cost, 16-key matrix keyboard. This logic includes debouncing, scan frames generation and interrupt generation. When the AVR Core is interrupted, it just has to read a register which holds the code of the pushed key. LCD Controller The AT75C110 features an on-chip generic LCD controller. To allow flexibility regarding the wide range of available LCD displays, the controller does not include the analog drivers. It provides the system with a bus dedicated to display devices. This bus is fully configurable and supports most of the standard device interfaces. I/O Port The primary goal of the four bidirectional I/Os is the phone line interface control. In a typical answering machine application, one I/O is connected to the ring detect (input) and another controls the hook-up (output). However, they can also be used as general purpose I/Os (LED control, handset switch detect, etc.). Real Time Clock The real time clock holds the current date and time needed for the message timestamp. The time base can be derived from either the on-chip 32768 Hz oscillator or an external 50 Hz or 60 Hz source. This structure takes advantage of the high, long-term frequency accuracy of the main's AC supply. Should the AC supply disappear, the RTC source can be switched to the crystal source. Clocks Generator The Clocks Generator includes a 16 MHz crystal oscillator as well as all circuitry needed to derive the various system clocks from this oscillator. The additional clock logic also has the responsibility of managing overall power consumption via a set of programmable clock dividers. Thus optimization of power consumption with respect to required processing capabilities of the chip for a given application is assured. UART A general purpose UART is included in the AT75C110. It can be used to enlarge the range of applications by providing an industry standard communication channel. AT75C110 The main uses of this UART are application code download from the software development platform, and message upload to a PC for backup purposes. The communication parameters are configurable (speed, parity, etc.) Power Management The Power Management unit is built around a supply voltage monitoring device. When a power fail is detected, the unit can be programmed to trigger special events: * An interrupt generation. The application code jumps to a special routine which handles power outage. The peripherals are put in power down mode and the message allocation table is written to insure data consistency before definitive shutdown. * A switch to low speed clock. DataFlash Controller The DataFlash Controller allows a direct connection of an external DataFlash to the AT75C110. There are two information flows: a voice flow and a control flow. The voice flow transports compressed data between the DSP Unit and the DataFlash. The control flow comes from the application software which programs the address the and the data direction. This architecture allows the data production/consumption and the memory management algorithms to be split between the DSP Unit and the application software. Development Tools AT75APPLI The AT75C110 will be provided with the AT75APPLI, an application development system. It is based on the AVR ICEPRO-ASIC and the AT75C110 development chip. It is a real time In-Circuit Emulator for any ASIC based on an AVR Core. It will allow the application developer to write, run and debug the code written for his specific application. This system is compatible with all software development tools provided with AVR based products. The AT75 system contains the following elements : * AVR ICEPRO-ASIC * BASEPOD with the AT75C110 development chip * Pod Cable * AT75C110 Probe with cable * RS-232 cable AT75C110EVAL The AT75C110EVAL stand-alone evaluation board allows an evaluation of the acoustic performance and the telephone capabilities of the AT75C110. In addition to the AT75C110, the board contains a microphone, a speaker, a keyboard, an LCD display, a phone line interface and a cable to a PC. 5