Q. I see that a CMX868 and CMX868A both exist can you tell me what the difference is and whether I would have problems migrating from my existing CMX868 design to a CMX868A based unit.
A. There are three major changes, the DTMF decoder performance has been improved to give greater compatibility with worldwide exchanges and the DTMF encoders supplied by other manufacturers. The dynamic range has been increased to improve the compatibility with normal transmission conditions particularly where lines are encountered. The acceptable twist has been increased to cope with low-cost DAAs and lines. Additionally the algorithm has been extensively modified to provide a high immunity to voice signals.
Secondly the hybrid function has been improved to increase rejection of transmitted signals and harmonics and reduces the number of components in the DAA and simplifies the design of DC-coupled DAAs.
Lastly a transmit output tri-state capability has been added where the outputs of the CMX868A are independently tri-stateable allowing the line and, hence, the receiver
to be biased, without terminating the line. Caller-ID signals flowing through a hook switch bypass capacitor will see a high impedance termination, which gives a better match to the receiver input. This method offers the possibility of improved S/N performance over other low-cost approaches.
A current design that uses the CMX868 can use the CMX868A as it should be considered a drop in replacement, the additional features should appear invisible to existing software and hardware designs.
Q. I see that the CMX868 datasheet / data bulletin has a paragraph that discusses the need for an additional 7dB of "trans-hybrid" loss. What is this talking about, and why do I need it?
A. The trans-hybrid loss refers to attenuation of the Tx output signal that gets fed back into the Rx input path of the same device.
If the 7dB trans-hybrid loss is not provided then the sensitivity in originate mode will be reduced from the minimum "must detect" value of -43dB.
This reduction in sensitivity is due to 2400Hz carrier rejection in the receiver path being around 36dB.
While the addition of 7dB of trans-hybrid loss will result in optimum performance, neglecting the additional 7dB of trans-hybrid loss will not prevent operation and may be acceptable in some applications.
Q. I am trying to send CID data with the CMX868. I am sending the Channel Seizure and Mark Signal synchronously (no start-stop bits), but I'm sending the SDMF/MDMF data asynchronously (with start-stop bits). The data isn't being received properly. What is the problem?<
A. The process is to start a synchronous transmission of 'channel seize' pattern.
The IRQ will go low almost immediately after the FSK is enabled because the data buffer becomes empty; ignore the IRQ. After approx 7.5ms (9 bit periods) a Tx Underflow will occur. The data in the data buffer will re-circulate indefinitely because the device is in synchronous mode. After the period required for 'channel seize', the Data Buffer should be loaded with $FF; the device is still in sync mode here. The FSK transmission will change to continuous marks. Wait a few bit periods to allow the Tx Data Underflow bit to be set, and then select asynchronous mode. The underflow condition will still exist and so the UART will produce continuous marks. When the continuous marks period ends:
1. Load the data buffer with the first byte to be transmitted.
2. Read the Status Register to clear it and re-prime IRQN.
Service the IRQ as normal until all Caller ID data is processed.
Q. I have been trying to program the CMX868 Programming register, but it does not seem to work. What is the suggested method of writing to this register?
A. Writing to the Programming register is performed via the CML C-BUS. One register address is required for each data word; you must also ensure that the programming flag bit in the Status register is set before writing to the Programming Register
The process is as follows:
Note:
If the latency between writes is long, typically greater than 150us it is not required to check the
Status Register bit flag (please refer to the data sheet).
Q. Is it possible to use AT commands to control the CMX868 V.22bis modem?
A. The CMX868 interfaces directly to a host controller via a simple serial control bus which permits low level control. If an AT command set is desired then an interpreter will be resident in the host controller.
To control the CMX868 within its Demo Kit, the DE8681, a simple AT command interpreter is provided in the embedded software. The full 'C' source code for the controller software is available in the DemoKit or can downloaded from the CML web-site from "CML Evkits - DE8681".
The AT interpreter functions must be extracted from the full software supplied and could provide a basis for further development.
Q. What is the correct procedure to follow after power is applied to the CMX868?
Q. What is the procedure for returning the CMX868 to normal operation following Powersave mode?
A. The algorithm, Recommended Start-up and Powersave procedure on the CMX860 shows how to manage the CMX868 after powering it on or bringing it out of Powersave mode.
Q. The CMX868 includes a Programmable Tone Detector where coefficients are used to program its filtering response. Are their any freely available tools, which allow me to design my own filters?
A. The coefficients used to program the CMX868 are the discrete
digital representation of 2 biquad IIR filter. Much
software is available, usually at a high price, that allows the
user to design all types of filter as well as many other
functions that will never be used.
CML has now released a Microsoft Excel based Application Note,
which allows for the design of simple IIR filters but also
generates the coefficients. The application note can be
downloaded from the website via the following link: WirelineFL_1.htm.
Q. How do I detect CAS on the CMX860, CMX867 or CMX868?
Q. Can I do Type 2 CID (Caller Identity) on the CMX860, CMX867 or CMX868?
A. The Programmable Tone Pair can detect the CAS tone required for type 2 CID but an unacceptable tendency to false is likely. This is because both filters are likely to ring due to the narrow bandwidth required. The CMX602B provides a very efficient CAS detector that can be interfaced through the CMX868, CMX867 and CMX860. The method described does not require any additional connections to the host microprocessor and very few additional components.
The CMX602B input signal is derived from the same signal input as the CMX86x. The gain components around the CMX602B may need to be adjusted. See the CMX602B Data Sheet for more information.
The CMX602B Mode input is clamped to Vss so that its mode is selected by the state of the ZP input. When the CMX86x is powersaved or on-hook, the CMX602B will be powersaved. When the CMX86x goes off-hook the CMX602B will come out of powersave and go into CAS detect mode.
The CAS should be detected around 55ms after it starts and DET will go low. This will cause the CMX86x to detect a ring signal. The Ring Detect flag will go low and the CMX86x will generate an interrupt (provided this interrupt is un-masked). This method allows the CAS detector to be polled and the interrupt to be masked. Polling is necessary to measure the length of the CAS to qualify it.
The software must remember to differentiate between a genuine ring detect and a CAS detect.
CAS Detection Method
The CMX86x will be off-hook.
Approximately 55ms after the start of the CAS the CMX86x will signal a ring detect. Ring Detect will go high (Status Register ($E6) b14 = 1) and, if unmasked ((General Control Register ($E0) b5 = 1), an interrupt will be signalled.
The Interrupt should be masked and Ring Detect polled to confirm that the CAS is present for the expected period.
Following the CAS detect a short period of silence occurs during which the near end handset is muted. Any line activity can be confirmed by polling the Energy Detect flag (Status Register ($E6) b10). This is important to help reduce the incidence of false CAS detection.
The Ring Detect interrupt should be masked for the remainder of the CID transaction.
Q. I am having problems getting the coefficient spreadsheet to give me the values for the response I need. Do you have any recommendations for using the spreadsheet, such as optimal values?
A. The gain adjustment of the PTPD (Programmable Tone Pair Detector) is an absolute value. The filter coefficient generator support document, figure 1, shows a filter shape that has a 0dB gain at the pole frequency. There is no specific rule of thumb in the use of the filter gain but there are a few points that the user should be aware of.
1. The two biquads A and B have there own gain control which is totally independent of the each other. So for example if Biquad 1 is set to gain 3dB and Biquad 2 is set to 0dB (providing the pole frequency is the same for both) then the total gain for the combined filter shape will be 3dB (0dB + 3dB). Or:
Gain Biquad A + Gain Biquad B = Total Gain   ; (where Pole Freq A = Pole Freq B)
If the pole frequencies are not the same then this argument does not apply. The resultant gain when different poles frequencies are used is difficult to determine just by looking, it will involve tweaking the coefficients using the Filter Coefficient Generator.
Please remember that there are two pairs of Biquads so under normal circumstances the pole frequencies will be the same for Biquad A and B. So for the example CAS tone detection, the spreadsheet would be used twice, Biquad A and B for 2130Hz and then again for 2750Hz.
2. Gain is important as it directly affects the apparent sensitivity of the detectors following the biquads. However the user must also consider that there is a further gain adjust included in the CMX86n family of devices, Rx Mode Register b11-9: Rx level.
The same rules apply as comment 1 above however as the combined gains from the PTPD and the Rx Gain adjust can be summed. This bit is easier as this gain block can be considered flat.
3. The coefficient generator support document also mentions the FRSF (Fixed Receive Signal Filtering), where figure 4 shows the attenuation across the audio band.
Or total gain = Gain of PTPD + Rx Gain + Gain of external components - FRSF Gain
To begin designing a filter to detect a specific tone, first select the 'optimum' filter shape (application dependent), adding an allowance for the FRSF profile, with the combined gain nominally selected to 0dB.Then use the Rx level adjust (internal to the device) to optimise the total gain so that the tone detector works effectively in a particular application.
Designing filter shapes is not an exact science, so an element of trial and error is required.
Please note the CML disclaimer notice for applications and FAQ information.