The CMX655D – an Open-Source Solution to the Voice Codec Challenge
Micro Electrical Mechanical System (MEMS) technology is having a huge impact on the IoT, as traditional mechanical sensors are being replaced by microscopic, electro-mechanical versions in a wide spectrum of devices, including accelerometers, gyroscopes, pressure sensors and tilt sensors. This trend is perhaps most obvious in the recent growth in popularity of MEMS microphones, which can be found today in many applications, including wearables, remote control equipment and home appliances such as refrigerators, air conditioners, and service robots.
The MEMS microphone in figure 1 is a classic example of a sensor which uses electrostatic transduction, or a variable capacitance, to convert a physical stimulus into an electrical signal. This is the most popular type of MEMS sensor due to its ease of fabrication on silicon, facilitating the integration of a mechanical device and electronic circuitry onto a single chip. The transducer element of the microphone contains a moveable membrane and a fixed backplate, with the capacitance between them changing as the air pressure from sound waves causes the membrane to flex.
Figure 1: MEMS microphone transducer
Although MEMS microphones can be produced in either analogue or digital versions, digital are the most popular choice of developers since it is usually easier to design and implement solutions with them. In a digital MEMS microphone, figure 2, the transducer output is amplified, converted to digital and then modulated to produce an over-sampled, one-bit PDM output.
Figure 2: Digital MEMS microphone block diagram
Despite the advantages of MEMS microphones, their uptake has been threatened by a lack of suitable interface devices. The one-bit PDM output requires further signal conditioning before it can be used by the application, most of which require input signals in PCM format. Traditional voice codec devices were designed to handle analogue microphone outputs and most modern codecs have been developed to address the needs of multi-media devices. The designer is therefore faced with the choice of adding additional circuitry to a sub-optimal device or starting from scratch – neither route being desirable in the IoT environment, where rapid development cycles and low costs are just as important as the small size and low power consumption of the device.
Recognising this growing gap in the market, CML have released the CMX655D, figure 3, a next generation codec, designed with the specific needs of the MEMS microphone in mind.
Figure 3: simplified block diagram of the CMX655D voice codec
The CMX655D integrates the essential MEMS microphone interface functionality onto a single low-cost, ultra-low power device. A variable clock output enables support for both conventional telephony, (300Hz – 3.4kHz) and HD voice (50Hz – 7kHz) and also for the full audio band, (50Hz – 20kHz). The device can interface with two microphones simultaneously, supporting external noise cancellation applications and a key differentiator is the inclusion of high-efficiency, Class D amplifier, supporting applications such as smart speakers. The CMX655D is ideally suited to battery-powered applications, drawing less than 1mA in record mode and 400µA in listening mode.
Highly integrated devices such as the CMX655D require comprehensive development toolkits to enable the designer to configure and evaluate the device and to support application prototyping. When defining the development strategy for the CMX655D, CML carefully considered the needs of their customers, the developers of devices aimed at the IoT market. In this fast-moving environment, the success of any application is dependent on its speed to market and also its price-point, and more and more developers are realising the speed, flexibility and cost advantages of open-source based approaches, such as Raspberry Pi (RPi).
With the 2014 launch of the Hardware Attached on Top, (HAT), interface enabling easy attachment of third-party hardware, the RPi system moved out of the hobbyist and educational realmsto become a practical tool for the professional engineer. By launching the EV6550DHAT board, figure 4, CML have made the CMX655D compatible with the RPi environment, giving the developer access to this powerful capability, along with the RPi’s Linux-based operating system.
Figure 4: The EV6550DHAT board
Designing an audio interface requires a specific skill set and, with time-to-market critical, it is not always practical for a developer to spend time acquiring this knowledge; the focus must be on rapidly developing the specific application functionality, which is, after-all, the product differentiator. CML have therefore gone the extra mile by also releasing an EV6550DHAT-ALSA Driver Installer for the CMX655D/RPi environment. The ALSA – (Advanced Linux Sound Architecture), framework is part of the Linux kernel and provides an API for sound card device drivers. By implementing this driver, CML have simplified the developer’s life, enabling the use of any high-level sound app which is ALSA compatible.
The CMX655D has created a powerful device aimed at addressing a dearth of suitable voice codecs, which was threatening to suppress the growth of MEMS microphones in the IoT market. At the same time, by moving away from the proprietary development environment route, CML has recognised the needs of its customers, enabling developers who choose the CMX655D to benefit from the power, flexibility and low-cost of open-source tools such as RPi and ALSA.