This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

Procedure for turning on CW carrier for the CC1200

Other Parts Discussed in Thread: CC1200

It is often necessary in engineering debug and production test to turn on a steady state unmodulated carrier.  Turning on CW power in the CC1200 could have been an automated operation as simple as setting a single register bit or performed via a command strobe.  Texas Instruments apparently did not provide that function, and it must be achieved by a work around that involves a number of steps. 

This is not described in the User Guide, but I describe below what would seem to be the necessary detailed procedure for turning on a CW carrier in the CC1200.  I would appreciate it if you might look it over and comment as to whether you think it is correct.  There is an open question on a possible need to redefine GPIO0 differently in order for it to be a valid input. 

The difficulty is that the control of transmit assumes modulation defined by the registers, with data as fed by the Transmit FIFO over the SPI, and including the packet format with synch and other fields. 
However, the part does include a "Transparent Serial Mode" as described in the User Guide in section 8.9.2 that dispenses with all packetizing and simply allows modulation from the GPIO0 pin.  The part also has an On-Off Keyed (OOK) AM modulation mode which with a "1" on GPIO0 should simply be a steady state carrier.  Combining these two features should allow for a steady state carrier.  There are several register settings needed to allow this mode.  These settings in the order they are to be applied would seem to be as follows.
Necessary Register Settings:
1.  Set GPIO0 to tristate with IOCFG0.GPIO0_CFG (bits 5:0) set to hex 30.  This is not properly described in the detailed description of this command (perhaps it is in SmartRF Studio) on User Guide page 80, which for bits 5:0 defines only that the reset condition of hex 3C is a default of EXT_OSC_EN.  But, on page 61 it is explicitly stated that to use Transparent Serial Mode with this pin as the controlling input that this register field shall be set to "HIGHZ" and the value to do so is "48" (presumably decimal, as no hex identifier is given).  What we need is for this pin to be a digital input, so this is questionable.  No definition of "HIGHZ" is formally given in the User Guide, though there is a parenthetic note near the bottom of page 17 stating that HIGHZ is a "(tristate) output" condition.  Thus the question remains as to whether a later action is needed to set this pin to be a digital input.   
2.  MDAMCFG0.TRANSPARENT_MODE_EN = 1.  This is bit 6 of this register.  See User Guide pages 61, 87, and 93. 
 3.  MDMCFG1.FIFO_EN = 0.  This is bit 6 of this register.  See User Guide pages 61, 86, and 93.
4.  SERIAL_STATUS.IOC_SYNC_PINS_EN = 1.  This is bit 3 of this register.  See User Guide pages 61 and 110. 
 5.  PKT_CFG2.PKT_FORMAT = 11 (Not "1" as stated on page 61, but "11" in bits 1 and 0 as given on page 93 in the detailed description of this register). 
 6.  Set OOK with MODCFG_DEV_E.MOD_FORMAT = 011 (bits 5:0) as described on page 82 of the User Guide. 
 
The full procedure to set the carrier ON is as follows:
1.  Calibrate PLL and return to IDLE.
2.  Program PLL. 
3.  Set Power to lowest setting. 
4.  Set up registers as described in steps 1-6 above, keeping open the question as to whether some action is needed to set GPIO0 to be a digital input. 
5.  Drive pin GPIO0 to low from external micro. 
6.  Execute Command Strobe 35 to enter transmit state. 
7.  Set power to desired power level. 
8.  Drive pin GPIO0 to high from micro.  At this point the programmed power and frequency in steady state carrier form should appear on the RF output. 
Is it agreed that is correct?
Is there any advice on proper setting of GPIO0 to be an input instead of HIGHZ?
Please note the User Guide page 61 error as described in step 5 above for setting the packet format in Transparent Serial Mode. 
Regards,
Farron
  • You can do the same by setting MDMCFG2.CFM_DATA_EN=1. See SmartRF Studio as an example and various posts on E2E.
  • TER, is the basic method you mention to use the "Custom FM Mode" and then set frequency deviation to zero? That would require also programming the Dev_M register to 0 and the Dev_E field of the MODEFG_DEV_E register to 0. Apparently none of the other register programming described in User Guide section 5.2.4 would be performed because there is no unusual external FM to impose. If so, is there a reason to prefer this method over OOK and transparent serial mode?
  • If you use the custom FM mode you don't have to set the deviation registers. As equation 3 in the UserGuide shows the offset will be zero if CFM_TX_DATA_IN equals zero which it is as default. This method requires less registers to be set and you don't have to set a GPIO. In most cases only one register has to be set/ unset between modulated and unmodulated transmission.
  • OK TER, all clear now.  Might be good to include a section on setting CW in the next version of the User Guide.  Thanks...

    Farron