
CMX866 Operation with Low-Level Commands
Page 5 of 7
2.4 Programmable Tone Detection
After the CMX866 has been successfully powered up, both the CMX866 Receive
Mode register (address $E2) and the CMX866 Programming Register (address $E8)
must be written to in order to detect user-defined tones. These registers are fully
described in Sections 1.5.10.4 and 1.5.10.8 of the CMX868 data sheet.
The CMX866 has the capability to detect single or dual user-defined tones. The
frequencies of these tones are derived by filter coefficients that are loaded into the
CMX866 Programming Register. A Microsoft Excel
TM
spreadsheet is available from
the CML website that allows quick determination of the required filter coefficients for
a variety of tone parameters. This spreadsheet can be obtained at the following
internet address:
http://www.cmlmicro.com/products/applications/868FL_1.htm
There are two pairs of
“
biquads
”
in the programmable tone detectors, so under
normal circumstances, the pole frequencies in the Excel
TM
coefficient generating
spreadsheet will be the same for Biquad A & B.
For example, to determine coefficients for a 400Hz tone and a 1kHz tone, first load
400Hz into the
“
Pole Frequency
”
window for both Biquad A and Biquad B and record
all of the coefficients. Next, load 1000Hz into both
“
Pole Frequency
”
windows and
record those coefficients. Finally, load all of the coefficients for both the 400Hz and
1kHz tones into the CMX866 Programming Register in accordance with Section
1.5.10.8 of the CMX868 data sheet.
The CMX866 Programming Register should only be written to when the
Programming Flag bit of the CMX866 Status Register (address $E6) is 1. The act of
writing to the Programming Register clears the Programming Flag bit. When the
programming action is completed (normally within 150
μ
s after writing to the
Programming Register), the Programming Flag bit is set back to 1.
Please review
Section 1.5.10.8 of the CMX868 data sheet for more details concerning the
loading of values into the CMX866 programming register.
The CMX866 Status Register must be read to check the status of the Programming
Flag bit, and this can be done with the following AT command:
AT@RE6<CR>
A numeric result will be provided that represents the Status Register contents. The
format of this response (decimal or hex) is determined by bit 4 of the CMX866 S14
“
S-register
”
.
To summarize, the general approach is to:
Determine the tone(s) you want to detect.
Calculate the required coefficients to generate the tone(s) using the Excel
spreadsheet from the CML website (web location provided above).
Load those coefficients into the CMX866 Programming Register.
Once this is done, the CMX866 Receive Mode register should be loaded with a value
that will select the Programmable Tone Detection mode.