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.

cc1200 wrong frequency, tx fifo error

Other Parts Discussed in Thread: CC1200

Hello TI Forum,

I try to send and receive data with two of the follwing settings:

CC1200em, TM4C129EXL (Code Composer Studio)

I found register settings from SmartRF Studio "50kbps, 2-GFSK, IEEE 802.15.4g compilant..."

They sould be exactly what I need.

With those settings I choose variable packet lenght what means that if I want to send six bytes of data that I just have to write to the TX FIFO

0x06, DataByte1, DataByte2, DataByte3, DataByte4, DataByte5, DataByte6, right?

When I run the programm the internal state changes to TX after sending the STX strobe but after a short time it changes to FIFO Error. Is there a mistake in my settings?

Another Problem is that the frequency of the Transmission is arround 770MHz instead of the excepted 868MHz

regards

Martin

Here are the settings:

uint32_t regset[]=
		       {0x06,	 // IOCFG3	
			0x06,	 // IOCFG2
			0x30,	 // IOCFG1
			0x3C,	 // IOCFG0
			0x6F,        // SYNC3
			0x4E,        // SYNC2
			0x90,        // SYNC1
			0x4E,        // SYNC0
			0xE5,        // SYNC_CFG1
			0x23,        // SYNC_CFG0
			0x47,        // DEVIATION_M
			0x0B,        // MODCFG_DEV_E
			0x56,        // DCFILT_CFG
			0x14,         // PREAMBLE_CFG1
			0xBA,        // PREAMBLE_CFG0
			0xC8,        // IQIC
			0x84,        // CHAN_BW
			0x42,        // MDMCFG1
			0x05,        // MDMCFG0
			0x94,        // SYMBOL_RATE2
			0x7A,       // SYMBOL_RATE1
			0xE1,       // SYMBOL_RATE0
			0x27,        // AGC_REF
			0xF1,        // AGC_CS_THR
			0x00,        // AGC_GAIN_ADJUST
			0xB1,        // AGC_CFG3
			0x20,        // AGC_CFG2
			0x11,        // AGC_CFG1
			0x90,        // AGC_CFG0
			0x00,        // FIFO_CFG
			0x00,	 // DEV_ADDR
			0x0B,	 // SETTLIN_CFG
			0x12,        // FS_CFG
			0x08,	 // WOR_CFG1
			0x21,	 // WOR_CFG0
			0x00,	 // WOR_EVENT0_MSB
			0x00,	 // WOR_EVENT0_LSB
			0x00,	 // RXDCM_TIME
			0x24,        // PKT_CFG2
			0x03,        // PKT_CFG1
			0x20,        // PKT_CFG0
			0x0F,	 // RFEND_CFG1
			0x00,	 // RFEND_CFG0
			0x7F,	 // PA_CFG1
			0x56,	 // PA_CFG0
			0x0F,	 // ASK_CFG
			0xFF};      // PKT_LEN

uint32_t regset_ext[]=
	               {0x18,        // IF_MIX_CFG
			0x20,        // FREQOFF_CFG
			0x03,        // TOC_CFG
			0x00,	 // MARC_SPARE
			0x00,	 // ECG_CFG
			0x02,        // MDMCFG2
			0x01,	 // EXT_CTRL
			0x00,	 // RCCAL_FINE
			0x00,	 // RCCAL_COARSE
			0x00,	 // RCCAL_OFFSET
			0x00,	 // FREQOFF1
			0x00,	 // FREQOFF0
			0x56,        // FREQ2
			0xCC,       // FREQ1
			0xCC,       // FREQ0
			0x02,	 // IF_ADC2
			0xEE,       // IF_ADC1
			0x10,        // IF_ADC0
			0x04,       // FS_DIG1
			0x50,       // FS_DIG0
			0x00,	 // FS_CAL3
			0x20,	 // FS_CAL2
			0x40,        // FS_CAL1
			0x0E,        // FS_CAL0
			0x28,	 // FS_CHP
			0x03,        // FS_DIVTWO
			0x00,	 // FS_DSM1
			0x33,        // FS_DSM0
			0xF7,        // FS_DVC1
			0x0F,        // FS_DVC0
			0x00,	 // FS_LBI
			0x00,        // FS_PFD
			0x6E,        // FS_PRE
			0x1C,        // FS_REG_DIV_CML
			0xAC,       // FS_SPARE
			0x14,	 // FSVCO4
			0x00,	 // FSVCO3
			0x00,	 // FSVCO2
			0x00,	 // FSVCO1
			0xB5,        // FS_VCO0
			0x00,	 // GBIAS6
			0x02,	 // GBIAS5
			0x00,	 // GBIAS4
			0x00,	 // GBIAS3
			0x10,	 // GBIAS2
			0x00,	 // GBIAS1
			0x00,	 // GBIAS6
			0x05,        // IFAMP
			0x01,	 // LNA
			0x01,	 // RXMIX
			0x0E,        // XOSC5
			0xA0,	 // XOSC4
			0x03,	 // XOSC3
			0x04,	 // XOSC2
			0x03};       // XOSC1

  • Hello,
    I found the mistake which causes the wromg frequency. But now MARCSTATE shows (after sending the STX strobe) at first TX then for a short time TX_END and then TX_FIFO_ERR until I send the SIDLE command strobe. Could someone help me?
  • Wrong frequency occurs if the VCO calibration fails. You have enabled SETTLING_CFG.FS_AUTOCAL in your setup (this is also provided by Studio). As a test write SETTLING_CFG = 0x03 (disable FS autocal) and do a manual calibration using the SCAL strobe prior to STX.

    Your packet format setting has 802.15.4g packet mode enabled in register PKT_CFG2. Try changing this to PKT_CFG2 = 0x04 (this is what you get in Studio if you don't tick off the "802.15.4g Mode"-box)
  • Hello Sverre,
    frequency is okey now (with both packet modes) and TX_FIFO_ERR is also gone if I don't use the 802.15.4g packet mode. But MARCSTATE stays in TX_END now until I send a SIDLE strobe despite that I set RFEND_ CFG0.TXOFF_MODE = 0x00 (enter IDLE after transmitting a packet).

    I tried to calibrate manually but the problem remained the same (after STX strobe at first TX state then for a short time TX_END and then TX_FIFO_ERR until the SIDLE strobe).

    What do I have to write in the TX FIFO when I use the 802.15.4g packet mode?
    Im not sure if it has something to do with PHRA and PHRB fields (CC1200 users guide page 55).
    Are they generated automatically or do I have to write them in the TX FIFO?

    sincerely
    Martin
  • Hello,
    could may someone provide some help with my questions?
    I hope they are not to easy to ask for :-)
  • See 8.7.2.1 in the UserGuide, the application have to write the correct PHR field to the TX FIFO
  • Problem is that I dont really understand how to calculate PHR.

    If I want to write 6 Bytes of data I would understand the calculation table as follows:

    PHRA= 00010000(binary)

    PHRB= 00001000(binary)

    because:

    Mode switch -> PHRA[7]=0(binary),

    Reserved -> PHRA[6:5]=00(binary),

    FCS type -> PHRA[4]=1(binary), // if I understood it right, I can choose here wether FCS is 0 or 1 without consequences for simple radio functionality (not focused on optimizing range etc.)

    Data whitening -> PHRA[3]=0(binary),

    Frame length(= 8, PHRA + PHRB + 6 Data bytes) -> PHRA[2:0]=000(binary)

                                                                                             -> PHRB[7:0]=00001000(binary)

    Is this calculation right?

    In case its not: what did I wrong?

    I will start a new threat for the TX FIFO Error to seperate the problems.

  • Hi

    This calculation is right, but your assumtions is wrong. The reason is your assumption of the frame length. You set the frame length to be the data bytes + the PHR, but the spec states that the frame length is the length of the PSDU which includes the FCS. So depending on the uso of 4 or 2 byte FCS, the frame length will be eiter 8 of 10 in your example. The PHR bytes is not inclded in teh frame length.