Tx and Rx FFSK Data Operations
Q. Is there a recommended procedure for handling FFSK/MSK data in transmit or receive modes when using the
CMX70x1 FI-1.3 Two-Way Radio Processors.?
A. The linked pdf document provides an overview in the form of flow charts that illustrate
which C-BUS registers need to be written-to and read-from when attempting a data transmission.
It is indicative only and provides a minimum set of reads/writes to achieve successful data transfer.
[CMX70x1 Tx and Rx FFSK Data Operations]
Function Image™ Loading Options
Q. I am about to start a design using one of your FirmASIC® based products, what is the most
suitable method of storing the associated Function Image™ in my project?
A. Our FirmASIC® based devices require a Function Image™ to configure their on-chip sub-systems.
This is a data file that is uploaded during device initialisation and defines the device's function and feature set.
The Function Image™ can be loaded automatically from external serial EEPROM via a dedicated SPI bus or from a host
µController over the built-in C-BUS serial interface.It is also possible with two specified memory devices to
update the serial memory stored Function Image™ via the C-BUS and SPI interface.
CML supplies a dedicated Thick Stub Function Image™ to enable this capability.
The linked flow diagram is an aide-memoir in that it makes it plain what is possible when choosing the most
suitable method of storing a Function Image™ for your project.
[Function Image™ Loading Options]
Function ImageTM 1.x - Auxiliary ADCs
Q. Are there any differences between the CMX70x1 FI - 1.x and the CMX88x series of devices in the way
the AuxADC handles interrupts when a signal passes through the high and low threshold points?
A. The threshold facility allows the relevant devices to trigger an interrupt when a signal exceeds the high threshold limit or falls below the lower threshold limit. This is a useful feature when trying to detect changes in received signal strengths or voice activity for example. These thresholds are programmable which allows a lot of flexibility when designing a system.
Please note though that there is a subtle difference between the way the CMX70x1 FI - 1.x and the CMX88x series of devices handle the resultant interrupts. The following link will take you to an illustration of how interrupts are handled. [Auxiliary ADC Interrupts]
Scrambling
Q. Can you give me any information on the use of scrambling when using these products?
A. In order to achieve reasonable intelligibility of recovered scrambled/descrambled speech, the limitations detailed in the linked document should be considered. [Frequency Inversion Scrambling]
Q. I am having problems initializing the CMX70xx device from power-up and from which it may become impossible to install a Function Image without reapplying power first.
A. The CMX70xx devices require a little time after the power is initially applied to settle into a known state, what follows are a few suggestion when implementing and testing your own design.
1. The BOOTEN pins must be stable when Vdd has settled at its static level. If the BOOTEN pins are controlled from the
host processor via spare port pins it may be that the CMX70xx tests these pins before they have been set high by the host.
If so the device may become uncommunicative and must therefore be power cycled.
To test for this attach hard pulls-up resistors (20 kohms typically) to Vdd. Now power up the device and see if it [powers up correctly and can readily accept a FI install from host.
2. It is possible that the CMX70xx powers up and runs its internal reset mechanism before Vdd has stabilised.
Again in this state it is possible that the device may not power up correctly.
2.1. Reduce the amount of decoupling on the power rails, so that the rise time is reduced.
2.2. Change the capacitors on the clock source (Xtal) so that the clock starts to oscillate a little later than previously,
this can often provide enough time for VDD to stabilise.
Lastly if the problems continue, please contact your local distributor or technical support via the CML website.
Q. I am about to start to use the CMX7041 in an application that uses CTCSS and FFSK data, do you have a worked example or illustration that I can refer to?
A. The following link will take you to a document that includes 4 basic examples both
in transmit and receive. Signal paths and C-BUS register settings are shown for clarity.
[view document]
Q. I am about to evaluate the CMX70x1 FI2.0 (4FSK Modem) using the PE0201, what recommendations can you give me?
A. Operation is straightforward when following the instructions in the user manuals and FAQs,
however a modest modification to the PE0201 is recommended.
The baseband signal requires a Tx-to-Rx channel with a relatively flat frequency response.
To achieve this with the PE0201 kit from the default build will require the removal and replacement
of certain capacitors.
Note: If evaluating the 7041FI-2.x with a PE0401 kit the same modifications should be made.
For FI-3.0 modified: 11/05/07
Q. I am about to evaluate the CMX70x1 FI3.0 (C4FM Modem) using the PE0201 what recommendations can you give me?
A. Operation is straightforward when following the instructions in the user manuals and FAQs
however a modest modification to the PE0201 is recommended.
The baseband signal requires a Tx-to-Rx channel with a relatively flat frequency response.
To achieve this with the PE0201 kit from the default build will require the removal and
replacement of certain capacitors.
Note: If evaluating the 7041FI-2.x with a PE0401 kit the same modifications should be made.
Function ImagesTM
Q. How long does it take to download a typical Function ImageTM (FI) to a member of the
CMX70xx family of devices?
A. The largest factor in overall Function ImageTM (FI) download time is the main sequence of writing words to the IC's programming register ($C8).
We will consider the repetitive nature of the recommended sequence in the
linked illustration.
We can see that:
Download Time = FI word count x (TREAD + TWRITE + TMEM + TREG).
Where:
For a 6.144MHz clock we can approximate TREG ˜ 5.3us
For a 19.2MHz clock we can approximate TREG ˜ 1.6us
In evaluation it was shown that not using interrupts but polling the Status Register until the programming flag
is set ($C6, b0), achieved best overall performance. This approach is further enhanced if the time taken by 8 x
C-BUS sclk cycles is greater that the time taken for the CMX70xx to process a single prewritten Word.
Or:
1/Sclk x 8 < TREG
This process then takes advantage of the fact that the times TREAD and TREG are independent processes and can take place concurrently. The following link takes you to an illustration of this improved method.
Example:
Assume a maximum FI size of 23kWords, 2Mbps sclk, 6.144MHz clock source and a host processor latency of 10us.
The calculation includes the improvement introduced by polling only (interrupt is masked) so TREG has been removed.
Download Time = FI word count x (TREAD + TWRITE + TMEM)
1/Sclk x 8 = 4us which is less than 5.3us so the above equation is valid
Therefore:
Download Time = 23k x (12us + 12us + 10us) = 800ms
Notes:
Conclusion
It can be seen that FI downloads can reliably be written in no more than a few seconds. Updating an existing FI with a
new variant will take no longer than the initial install as the RESET procedure is very quick.
The largest delay to FI installation potentially is the host processor latency and the speed at which the C-BUS sclk is driven.
Q. I note that the PE0001 Kit comes fitted with an 11.052 MHz crystal and the PE0201 comes with a 19.2MHz clock, is there anything that I have to be aware of when I load the latest CMX7031 FI?
A. The PE0201 kit is fitted via jumpers to a TCXO clock generator that operates at 19.2MHz.
It is also possible to use other clock sources to suite; these options are:
the use of an External clock (via SMA socket) or the use of a separate Xtal mounted on the PCB (no socket).
Note however that the CMX7031 FI requires the use of a 6.144MHz clock by default so the device must be set-up to
use the board's default 19.2MHz clock (divide by 3) if the other options are not being used.
There is a PE0001 script file supplied with the PE0001 (CMX7031set19-2.txt ) that should be run from the
GUI prior to full operation.
Q. What are the new Clock features?
A. Two Auxiliary System Clocks with programmable frequencies are provided, so that external circuits can use the single xtal source of
the CMX7031/ 7041.
The clock source for the CMX7031/CMX7041 is derived from an internal PLL, so allowing flexibility in selection of the Main CLK source (xtal or clock).
The CMX7031 also provides two RF synthesisers, which can provide Local Oscillators to the RF sections of the product (not available on the 7041).
Q. What are the NWR functions?
A. A new feature is the provision of NWR, which allows customers in the USA to decode and respond to the NWR / NOAA weather broadcasts.
The new signal processing architecture of the CMX7031/CMX7041 allows this signal to be decoded in parallel with the other PMR / FRS signal processing.
Q. What are the C-BUS differences between the CMX7031/CMX7041 and the 88x series?
A.
The CMX7031 and CMX7041 are based on the successful 88x series of devices but offer some significant
improvements and many functional enhancements.
The flexibility of the FirmASIC® platform allows for further development and features can be added as required.
Some changes have been made to the C-BUS host interface to accommodate the complete set of features from the 88x series and the additional features of the 7031, however, whenever possible, backwards compatibility has been maintained to ease the
transition to the new family.
The AuxADC/TX Mod Mode, Analog Output Gain and Input Gain registers ($A7, $B0, $B1) must be used to
set up the Audio routing through the device.
The Powerdown, Mode Control, Interrupt Mask and Interrupt Status registers ($C0, $C1, $CE, $C6) have
been changed to support the new functionality.
The sub-audio signalling (CTCSS and DCS) control and reporting has been rationalised to use the Audio
Control and Tone Status registers ($C2, $CC).
The In-band signalling has been expanded to include DTMF Rx and uses Tx In-Band tones and Tone Status
registers ($C3, $CC). All In-band tones activity is signalled to the host via IRQ bit13 (this includes DTMF Rx).
The frequency resolution of the Selcall and Custom tones has been improved, but the consequence
is that the values used in the Program Registers are different from the 88x series.
New Program block registers have been introduced to support the new and improved functionality.
A. Updating the PE0001 kit and/or PE0201 kit is relatively straight forward, but the following is one tried and tested method.
You should always remember to keep an eye on the portal and associated files to ensure that you have the latest files.
1. Attach 5V supply to the PE0201 kit (which by now should be connected to the PE0001)
2. Connect serial cable (in this case COM1 is used throughout).
3. Figures 1 and 2 are images of the CMX7031 portal, it is representative only.
4. Set-up 3 folders on the your PC called PE0001, PE0201 and CMX7031 (7031 data is found at the top of the page, PE kit data towards the bottom)
5. Download and extract PE0001 files to PE0001 folder, PE0201 files the PE0201 folder and so on.
6. Ensure JP1 on the PE0001 is now closedX
7. Power up PE0201 (with PE0001 connected)
8. Hold down Resetn for at least 5 seconds
Go to PE0001 folder, then the ESFLASH folder and launch the
ESFLASH_X.exe
Selected Target Type = PE0001
9. Load File -> AM29LV040_XXXX.hex (from the PE0001
folder)
Module = FAT STUB -> then click OK
10. Load File -> EFXXXXXX.hex
11. Module = FLASH BANK ZERO -> then OK
12. Press Program
13. Select NO to thin stub code option
If at any point there is a problem, reset the PC, and power down the PE kits before repeating the above (from (X)
Now to download the latest Function Image (FI)
1. Remove JP1 from the PE0001
2. Ensure power to the PE0201/00001 PSU is applied
3. Execute ESXXXXXX.exe
4. Press Resetn when requested to do so
5. Go to Function Image Download Tab
6. Select the correct FI to download; in this case it will be the 7031_release_XX_XX.h.txt file that is found in the CMX7031 folder. Ensure the .txt extension is removed prior to the selection.
7. Copy and paste the PE0201 activation code (not the CMX7031 activation code) in the activation code text box, in this case 91B4DB72
8. Press download
Again if the download now fails at any time, remove all power and reset the PC.
9. Go to the C-BUS CONTROL Tab
10. Press General Reset
11. Locate the Tx Selcall script ("CMX7031TXselcall.txt") that can be found in the PE0001 folder and run it from the PE0001 GUI (using the script handler).
12. Read from the $C4 register, it should be $FF60…
A fixed level Tx Selcall tone should now be detected from the Mod1 pin.
If not start again, else the CMX7031 is now fully functional . . .
Please note the CML disclaimer notice for applications and FAQ information.