Q: How do I control the CMX994 or CMX998 on the DE9941 board?

A: The DE9941 includes the CMX7164 Multi-Mode Modem, the CMX998 Cartesian Feedback Loop Transmitter, and the CMX994E Direct Conversion Receiver.  When the PE0003 Ev Kit Interface Card is used as the host controller for DE9941, the PE0003 communicates with the CMX998 and CMX994 through the CMX7164’s SPI Thru-Port.  The CMX7164 SPI Thru-Port is beneficial because it allows control of peripherals with fewer uC pins and PCB traces.
There are three CMX7164 internal registers that are key for this discussion:
– $62, SPI Thru-Port Control
– $63, SPI Thru-Port Write
– $78, SPI Thru-Port Read
CMX7164 register $78 comes into play when you need to read an external device register.  CMX7164 register $63 contains the value to be written to an external device register, and CMX7164 register $62 defines important C-BUS/SPI parameters such as:
– Which Chip Select will be used for the transaction
– If the transaction will be read or write
– Number of bytes to be written to the target device
– CMX7164 IRQ behavior when the write is completed
– The address of the target device
For example, let’s say we need to write 0xFC to CMX998 register $02 using the CMX7164 SPI Thru-Port.  Pseudocode of the required SPI Thru-Port transaction would look like this:
– Host writes 0xFC to CMX7164 register $63
– Host then writes 0x4102 to CMX7164 register $62 (SSOUT1, Interrupt when the C-BUS Thru-Port Control/Write registers are free, write transaction, 1 data byte, register address $02)
To do this same transaction in the PE0003 graphical user interface (GUI):
– Select “C-BUS Control” tab and observe the “Write a Register” area
– Ensure “16 bit” is checked
– Enter 63 for “Register Address”, enter FC for “Register Data”, and then click “Write”
– Enter 62 for “Register Address”, enter 4102 for “Register Data”, and then click “Write”
Here is a pseudocode example of a read transaction using the SPI Thru-Port.  In this example, CMX998 “readback” register $F2 will be read out:
– Host writes $71F2 to $62 (SSOUT1, Interrupt when read or write operation triggered by this Thru-Port command is completed on the SPI port, read transaction, 1 data byte, register address $F2)
– Host waits for IRQ
– Host reads CMX7164 register $78 to obtain the data
To do this same transaction in the PE0003 GUI:
– Select “C-BUS Control” tab and observe the “Write a Register” area
– Ensure “16 bit” is checked
– Enter 62 for “Register Address”, enter 71F2 for “Register Data”, then click “Write”
– Move over to the “Read a Register” area
– Enter 78 for “Register Address”, then click “Read”.  The data will appear in the grayed-out data box.
Control of the CMX994 Direct Conversion Receiver is performed in the same manner.