Product description

The CMX850 combines a dual-port V.22bis modem with an 8051 microcontroller including 8k of RAM to form a powerful communications processor.

The 8051 runs from the ~12MHz oscillator with a choice of sub-multiple frequencies down to ~12kHz giving a range of low power operating modes.

A Watchdog Timer and standard 8051 Timers are included. I/O facilities include an LCD controller interface, 8×16 keypad interface with interrupts, a UART, two low-power PWM outputs, and a multiplexed 2-input 10-bit A-to-D converter. Unused functions can be alternatively used as GPIO.

Low power and very low power (sleep) modes contribute to low battery consumption.

The MUXAD pin allows the 8051 to multiplex the eight lower address and data bus lines to release further pins for I/O (debug support etc.).

The V.22bis modem can be woken from sleep mode by ‘ringing’ or ‘line-reversals’.

The CMX850 is an extremely compact and low-power microcircuit that will satisfy all of the Communications, control, data and signalling requirements of any wireline end-product using on-line communication.

Block diagram


Technical Portal

No additional information available.


  • External LCD Controller Interface
  • Tx and Rx DTMF/Tones
  • Line and Phone Differential Amplifiers
  • Dual Clock Modes with Separate Xtals
  • Call Progress Decoder
  • CAS Tone Detection and Generation
  • ‘Line Reverse’, ‘Ring’ and ‘Off-Hook’ Detection
  • Low Power Operation with ‘Powersave’ and ‘Sleep’ Modes
  • A-to-D Converter – Keypad (8×16)-  GPIO-2 x Low Power PWM Outputs


  • SMS and ADSI Terminals
  • Telemetry and Remote Meter Reading Systems
  • Security and Alarm Systems
  • Call Routers
  • FeaturePhones
  • EPOS Terminals
  • Internet Appliances

Power supply requirement

  • 3.0 to 3.6 V power supply

Not quite sure what you’re looking for?
We can tailor an existing product to your unique requirements

Design resources

CMX850 and EV8500 FAQs

Q What is the input impedance of the ADC?

A. If you’re using the track/hold circuit on the VINA or VINB input, it will be connected to the input of the track/hold op-amp within the CMX850 via an analogue switch. This will be a very high DC impedance, typically greater than 100 MegOhms. If you’re not using the track-hold circuit, the input gets connected directly to the input of a clocked comparator in the successive-approximation ADC. The comparator input is effectively a 2pF capacitor which gets switched alternately between the analogue input pin and an internal reference DAC. In this case, even though the comparator input is capacitive, it should be driven from a reasonably low impedance source (a few kohms or less) to prevent the charge on the switched capacitor from disturbing the input signal.

Q. Can you explain the serial download process required when downloading user code when employing the internal thin stub?

A. The function of the CMX850 boot ROM is to allow the download of a small program into the internal SRAM (XDATA) and then run it. Generally, the main purpose for this is to download and run a ‘fat’ stub which, in-turn, will allow a much larger application program to be downloaded and written to external FLASH program memory in-situ.

Boot ROM operation
The hardware Boot ROM code runs from the reset vector. The serial port is setup and the download of code into XDATA memory is started. The program will accept data from the serial port at 19200 baud, 8 bits, and no parity until a break in transmission is detected. Once the download is complete the data is validated using the following block format.

Address Contents


End of data download, indicated by continuous 1’s for >1.25ms

nnnn-1 Length MSB

nnnn Length LSB

Where nnnn is the number of bytes in the downloaded block including the length bytes, and Length is the number of bytes (nnnn+1) plus 256 (0x100)

Full 8k download is a special case and has a check value of 0x2100

If the block validates ok then the serial port is disabled and execution switches to the code in the XDATA area at address 0x0000, the restart vector.

An Example
To load code, assemble the code into an .asm file, eg:

@0000 – 75 fa 48 90 01 23 74 45 f0 90 00 03 e0 90 23 14

@0010 – f0 02 00 00

Now add two extra bytes to this, unknown at the moment

@0000 – 75 fa 48 90 01 23 74 45 f0 90 00 03 e0 90 23 14

@0010 – f0 02 00 00 xx xx

Including the extra two bytes, count the number of bytes in total, in this case 22. Then add 256 to that making 278 in total and convert to hex 01 16. Replace the two unknown bytes with 01 16.

@0000 – 75 fa 48 90 01 23 74 45 f0 90 00 03 e0 90 23 14

@0010 – f0 02 00 00 01 16

You now have a list of bytes to download to the CMX850 using the BOOT ROM. To do this enable the boot ROM as described in data sheet section 1.4.4. Then immediately write the bytes, starting from location 0000, to the serial port in the form: –

0 xxxx xxxx 1 //start bit + data byte (lsb to msb) + stop bit.

Note: Code address data is not required, only Intel hex compatible code is required.

After the two length bytes wait a while for the Boot ROM to validate it, it will then automatically begin execution from the beginning of the down loaded code.

Q. I have been trying to write my own code to the EV8500 Flash memory but keeping getting the message: “Unable to Reset FLASH Memory for Programming”. I have done everything the EV8500 manual tells me to do, such as ensuring that the thin stub is included in the new software, but it still does not work?

A. The likely scenario for this is that you are using the wrong type of FLASH memory for the EV8500 board. After changing the appropriate jumper settings and resetting the board, the thin stub is next used to set-up the serial link to the local PC ready for the thick stub to be downloaded. Once the thick stub has been installed into XRAM, one of its first tasks is to validate the FLASH memory. This is performed by reading the unique identification number that is built into the FLASH, if it does not read the code “29LV040” it will then flag an error.

Please note the CML disclaimer notice  for applications and FAQ information.

CMX86x and CMX850 Filter Coefficient Generator Program

This application note comprises the Filter Coefficient Generator program as an Excel spreadsheet as well as operational instructions.

CMX8xx: Short Message Service (SMS) Implementation using CML Products

This document aims to assist modem product designers using and understanding Short Message Service (SMS) applications. CML Microcircuits' (CML) integrated circuit devices (CMX85x and CMX86x) could be used to realize and achieve a Caller Line Identification (CLI), SMS or Low Rate Messaging Service (LRMS) data transfer within a wireline system.

Recommendations for V.23 1200/75 b/s duplex call set-up

V.23 recommendations do not describe how a connection is established; a procedure is described below and illustrated in Figure 1; however you should not rely on other modems following this particular flow. Note also that 1200/1200 bps half-duplex connections are not covered by this application note.

CMX850: Porting User CMX868 (and derivatives) Control Codes to the CMX850

The CMX850 Communications controller is an advanced IC containing a 80C51 microprocessor core, peripherals and a V.22bis compatible modem. The modem core used within the CMX850 however is fundamentally a CMX868 (V.22bis modem core), which is connected directly to the 8051 so that it is not necessary to port control code for the CML CBUS serial interface. Otherwise, transactions with the modem are almost identical to those required by the CMX868. This document will discuss those differences.

CMX850 - 80C51 Architectural Overview, Programmers' Guide and Hardware Description

The CMX850 combines an enhanced 8051 Microcontroller with a feature-rich V.22bis (2400bps) modem to create the platform for a powerful and flexible telecom processor. In addition to its many 8051-Microcontroller enhancements, the CMX850 supports all of the standard 8051 features and instructions as well. This application note provides supplemental information regarding CMX850 operation and programming and should be used in conjunction with the current CMX850 datasheet.

CMX850 - Communications Controller and DAA Design

The CMX850 Communications Controller IC is connected to a telephone line with a special interface circuit that is often referred to as a DAA (Data Access Arrangement). One of the main functions of the DAA is to provide a safety isolation barrier between the phone line and the low voltage circuits that users can touch.

EV8500 Evaluation Kit

EV8500 Evkit 8500 The EV8500 EvKit comprises a single board containing a CMX850 Communications Controller (80C51 core and V.22 bis Modem IC), line interface components and a serial communications port for interfacing to a PC. EV8500_Product_Preview


C-BUS Guides

Guides to operation and interfacing

EV8500 Board Schematics

EV8500 Board Schematics

EV8500 Evaluation Software Package

EV8500 Evaluation Software Package

Package: L8

100-pin LQFP

Ask a question

Request a quote