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.

CC1175: Configuration of Transparent serial mode

Part Number: CC1175
Other Parts Discussed in Thread: CC1120

<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE configuration SYSTEM "C:/Program Files (x86)/Texas Instruments/SmartRF Tools/SmartRF Studio 7/config/xml/configdata.dtd"[]>
<dcpanelconfiguration>
    <Devicename>CC1175</Devicename>
    <Description>Saved configuration data</Description>
    <registersettings>
        <Register>
            <Name>AGC_CFG0</Name>
            <Value>0xcf</Value>
        </Register>
        <Register>
            <Name>AGC_CFG1</Name>
            <Value>0xa9</Value>
        </Register>
        <Register>
            <Name>AGC_CS_THR</Name>
            <Value>0x19</Value>
        </Register>
        <Register>
            <Name>AGC_REF</Name>
            <Value>0x20</Value>
        </Register>
        <Register>
            <Name>DCFILT_CFG</Name>
            <Value>0x1c</Value>
        </Register>
        <Register>
            <Name>DEVIATION_M</Name>
            <Value>0x9a</Value>
        </Register>
        <Register>
            <Name>FIFO_CFG</Name>
            <Value>0x00</Value>
        </Register>
        <Register>
            <Name>FREQ0</Name>
            <Value>0xcd</Value>
        </Register>
        <Register>
            <Name>FREQ1</Name>
            <Value>0xb0</Value>
        </Register>
        <Register>
            <Name>FREQ2</Name>
            <Value>0x6c</Value>
        </Register>
        <Register>
            <Name>FREQOFF_CFG</Name>
            <Value>0x22</Value>
        </Register>
        <Register>
            <Name>FS_CAL0</Name>
            <Value>0x0e</Value>
        </Register>
        <Register>
            <Name>FS_CFG</Name>
            <Value>0x12</Value>
        </Register>
        <Register>
            <Name>FS_DIG0</Name>
            <Value>0x5f</Value>
        </Register>
        <Register>
            <Name>FS_DIG1</Name>
            <Value>0x00</Value>
        </Register>
        <Register>
            <Name>FS_DIVTWO</Name>
            <Value>0x03</Value>
        </Register>
        <Register>
            <Name>FS_DSM0</Name>
            <Value>0x33</Value>
        </Register>
        <Register>
            <Name>FS_DVC0</Name>
            <Value>0x17</Value>
        </Register>
        <Register>
            <Name>FS_PFD</Name>
            <Value>0x50</Value>
        </Register>
        <Register>
            <Name>FS_PRE</Name>
            <Value>0x6e</Value>
        </Register>
        <Register>
            <Name>FS_REG_DIV_CML</Name>
            <Value>0x14</Value>
        </Register>
        <Register>
            <Name>FS_SPARE</Name>
            <Value>0xac</Value>
        </Register>
        <Register>
            <Name>IF_MIX_CFG</Name>
            <Value>0x00</Value>
        </Register>
        <Register>
            <Name>IOCFG0</Name>
            <Value>0x09</Value>
        </Register>
        <Register>
            <Name>IOCFG1</Name>
            <Value>0xb0</Value>
        </Register>
        <Register>
            <Name>IOCFG2</Name>
            <Value>0x08</Value>
        </Register>
        <Register>
            <Name>IOCFG3</Name>
            <Value>0xb0</Value>
        </Register>
        <Register>
            <Name>IQIC</Name>
            <Value>0xc6</Value>
        </Register>
        <Register>
            <Name>MDMCFG0</Name>
            <Value>0x45</Value>
        </Register>
        <Register>
            <Name>MDMCFG1</Name>
            <Value>0x06</Value>
        </Register>
        <Register>
            <Name>MODCFG_DEV_E</Name>
            <Value>0x05</Value>
        </Register>
        <Register>
            <Name>MODEM_STATUS1</Name>
            <Value>0x10</Value>
        </Register>
        <Register>
            <Name>PARTNUMBER</Name>
            <Value>0x5a</Value>
        </Register>
        <Register>
            <Name>PARTVERSION</Name>
            <Value>0x21</Value>
        </Register>
        <Register>
            <Name>PA_CFG0</Name>
            <Value>0x7e</Value>
        </Register>
        <Register>
            <Name>PKT_CFG0</Name>
            <Value>0x20</Value>
        </Register>
        <Register>
            <Name>PKT_CFG1</Name>
            <Value>0x00</Value>
        </Register>
        <Register>
            <Name>PKT_CFG2</Name>
            <Value>0x07</Value>
        </Register>
        <Register>
            <Name>PREAMBLE_CFG1</Name>
            <Value>0x00</Value>
        </Register>
        <Register>
            <Name>RFEND_CFG0</Name>
            <Value>0x20</Value>
        </Register>
        <Register>
            <Name>SERIAL_STATUS</Name>
            <Value>0x0a</Value>
        </Register>
        <Register>
            <Name>SETTLING_CFG</Name>
            <Value>0x03</Value>
        </Register>
        <Register>
            <Name>SYMBOL_RATE2</Name>
            <Value>0x63</Value>
        </Register>
        <Register>
            <Name>SYNC_CFG1</Name>
            <Value>0x0b</Value>
        </Register>
        <Register>
            <Name>XOSC1</Name>
            <Value>0x07</Value>
        </Register>
        <Register>
            <Name>XOSC3</Name>
            <Value>0xc7</Value>
        </Register>
        <Register>
            <Name>XOSC5</Name>
            <Value>0x0e</Value>
        </Register>
        <Register>
            <Name>XOSC_TEST1</Name>
            <Value>0x08</Value>
        </Register>
    </registersettings>
    <dcpanel>
        <Property name="m_chkRegView" role="44">2</Property>
        <Property name="m_chkCmdView" role="44">0</Property>
        <Property name="m_chkRfParameters" role="44">2</Property>
        <Property name="m_cmbUserMode" role="46">1</Property>
        <Property name="m_easyModeSettings" role="33">-1</Property>
        <Property name="m_typicalSettings" role="33">-1</Property>
        <Property name="m_testFuncPanel" role="37">0</Property>
    </dcpanel>
    <rfparameters>
        <Property name="Xtal Frequency" role="46">32.000000</Property>
    </rfparameters>
    <conttx>
        <Property name="m_rbtModulated" role="45">1</Property>
        <Property name="m_rbtUnmodulated" role="45">0</Property>
        <Property name="m_cmbDataFormat" role="46">1</Property>
        <Property name="m_chkFreqSweep" role="44">0</Property>
        <Property name="m_chkChanSweep" role="44">0</Property>
    </conttx>
    <packettx>
        <Property name="m_edtPayloadSize" role="42">32</Property>
        <Property name="m_edtPacketCount" role="42">100</Property>
        <Property name="m_edtPacketCountEsy" role="42">100</Property>
        <Property name="m_edtRandomPacketData" role="42">44 40 66 d0 6b c4 30 b7 32 3b a1 22 f6 22 91 9d e1 8b 1f da b0 ca 99 02 b9 72 9d 49 2c 80 </Property>
        <Property name="m_edtPacketData" role="42"></Property>
        <Property name="m_edtAccessAddress" role="42"></Property>
        <Property name="m_edtDeviceAddress" role="42"></Property>
        <Property name="m_chkAddSeqNbr" role="44">2</Property>
        <Property name="m_chkInfinite" role="44">0</Property>
        <Property name="m_chkInfiniteEsy" role="44">0</Property>
        <Property name="m_rbtRandom" role="45">1</Property>
        <Property name="m_rbtText" role="45">0</Property>
        <Property name="m_rbtHex" role="45">0</Property>
        <Property name="m_chkAdvanced" role="44">0</Property>
    </packettx>
    <commandpanel>
        <Property name="m_chkInsertLength" role="44">0</Property>
        <Property name="m_edtTxFifo" role="42"></Property>
        <Property name="m_edtRxFifo" role="42"></Property>
        <Property name="m_cmbInstrInput" role="46">-1</Property>
    </commandpanel>
</dcpanelconfiguration>
15:03:46.809  RESET
15:03:46.824  SIDLE
15:03:46.824  SFTX
15:03:46.824  AGC_CFG0         0xcf 2 W
15:03:46.824  AGC_CFG1         0xa9 2 W
15:03:46.824  AGC_CS_THR       0x19 2 W
15:03:46.824  AGC_REF          0x20 2 W
15:03:46.824  DCFILT_CFG       0x1c 2 W
15:03:46.824  DEVIATION_M      0x9a 2 W
15:03:46.824  FIFO_CFG         0x00 2 W
15:03:46.824  FREQ0            0xcd 2 W
15:03:46.824  FREQ1            0xb0 2 W
15:03:46.824  FREQ2            0x6c 2 W
15:03:46.824  FREQOFF_CFG      0x22 2 W
15:03:46.840  FS_CAL0          0x0e 2 W
15:03:46.840  FS_CFG           0x12 2 W
15:03:46.840  FS_DIG0          0x5f 2 W
15:03:46.840  FS_DIG1          0x00 2 W
15:03:46.840  FS_DIVTWO        0x03 2 W
15:03:46.840  FS_DSM0          0x33 2 W
15:03:46.840  FS_DVC0          0x17 2 W
15:03:46.840  FS_PFD           0x50 2 W
15:03:46.840  FS_PRE           0x6e 2 W
15:03:46.840  FS_REG_DIV_CML   0x14 2 W
15:03:46.840  FS_SPARE         0xac 2 W
15:03:46.840  IF_MIX_CFG       0x00 2 W
15:03:46.840  IOCFG0           0x09 2 W
15:03:46.840  IOCFG1           0xb0 2 W
15:03:46.840  IOCFG2           0x08 2 W
15:03:46.856  IOCFG3           0xb0 2 W
15:03:46.856  IQIC             0xc6 2 W
15:03:46.856  MDMCFG0          0x45 2 W
15:03:46.856  MDMCFG1          0x06 2 W
15:03:46.856  MODCFG_DEV_E     0x05 2 W
15:03:46.856  PA_CFG0          0x7e 2 W
15:03:46.856  PKT_CFG0         0x20 2 W
15:03:46.856  PKT_CFG1         0x00 2 W
15:03:46.856  PKT_CFG2         0x07 2 W
15:03:46.856  PREAMBLE_CFG1    0x00 2 W
15:03:46.856  RFEND_CFG0       0x20 2 W
15:03:46.856  SERIAL_STATUS    0x0a 2 W
15:03:46.856  SETTLING_CFG     0x03 2 W
15:03:46.856  SYMBOL_RATE2     0x63 2 W
15:03:46.856  SYNC_CFG1        0x0b 2 W
15:03:46.856  XOSC1            0x07 2 W
15:03:46.871  XOSC3            0xc7 2 W
15:03:46.871  XOSC5            0x0e 2 W
15:03:46.871  XOSC_TEST1       0x08 2 W

15:03:53.700  FS_VCO2          0x00 2 W
15:03:53.707  FS_CAL2          0x22 2 W
15:03:53.719  FS_VCO2          0x00 2 W
15:03:53.725  FS_CAL2          0x20 2 W
15:03:53.735  STX
15:58:55.634  RESET
15:58:55.651  SIDLE
15:58:55.652  SFTX
15:58:55.653  AGC_CFG0         0xcf 2 W
15:58:55.653  AGC_CFG1         0xa9 2 W
15:58:55.654  AGC_CS_THR       0x19 2 W
15:58:55.655  AGC_REF          0x20 2 W
15:58:55.656  DCFILT_CFG       0x1c 2 W
15:58:55.657  DEVIATION_M      0x9a 2 W
15:58:55.658  FIFO_CFG         0x00 2 W
15:58:55.659  FREQ0            0xcd 2 W
15:58:55.660  FREQ1            0xb0 2 W
15:58:55.661  FREQ2            0x6c 2 W
15:58:55.662  FREQOFF_CFG      0x22 2 W
15:58:55.663  FS_CAL0          0x0e 2 W
15:58:55.664  FS_CFG           0x12 2 W
15:58:55.665  FS_DIG0          0x5f 2 W
15:58:55.666  FS_DIG1          0x00 2 W
15:58:55.667  FS_DIVTWO        0x03 2 W
15:58:55.668  FS_DSM0          0x33 2 W
15:58:55.669  FS_DVC0          0x17 2 W
15:58:55.670  FS_PFD           0x50 2 W
15:58:55.671  FS_PRE           0x6e 2 W
15:58:55.672  FS_REG_DIV_CML   0x14 2 W
15:58:55.673  FS_SPARE         0xac 2 W
15:58:55.674  IF_MIX_CFG       0x00 2 W
15:58:55.675  IOCFG0           0x09 2 W
15:58:55.676  IOCFG1           0xb0 2 W
15:58:55.677  IOCFG2           0x08 2 W
15:58:55.678  IOCFG3           0xb0 2 W
15:58:55.679  IQIC             0xc6 2 W
15:58:55.680  MDMCFG0          0x45 2 W
15:58:55.681  MDMCFG1          0x06 2 W
15:58:55.682  MODCFG_DEV_E     0x05 2 W
15:58:55.683  PA_CFG0          0x7e 2 W
15:58:55.684  PKT_CFG0         0x20 2 W
15:58:55.685  PKT_CFG1         0x00 2 W
15:58:55.686  PKT_CFG2         0x07 2 W
15:58:55.687  PREAMBLE_CFG1    0x00 2 W
15:58:55.688  RFEND_CFG0       0x20 2 W
15:58:55.689  SERIAL_STATUS    0x0a 2 W
15:58:55.690  SETTLING_CFG     0x03 2 W
15:58:55.691  SYMBOL_RATE2     0x63 2 W
15:58:55.692  SYNC_CFG1        0x0b 2 W
15:58:55.693  XOSC1            0x07 2 W
15:58:55.694  XOSC3            0xc7 2 W
15:58:55.695  XOSC5            0x0e 2 W
15:58:55.696  XOSC_TEST1       0x08 2 W
15:58:59.599  FS_VCO2          0x00 2 W
15:58:59.606  FS_CAL2          0x22 2 W
15:58:59.618  FS_VCO2          0x00 2 W
15:58:59.624  FS_CAL2          0x20 2 W
15:58:59.635  STX
15:59:09.051  SIDLE
15:59:09.052  SFTX

#    Log closed 31.05.2018 16:00:10
/*
	Ee.c / 180223 / MS
*/

#include <string.h>
#include <include/LibMS.h>

#include "main.h"
#include "Error.h"
#include "Ee.h"


// STM32L011K4 Flash 8000000-8003FFF => 8003E00-8003FFF  
//#define __CC1175_ADDR__ (FLASH_END-(DATA_EEPROM_END-DATA_EEPROM_BASE))


	

//const EE_EXTENDED krExtended[] @ __CC1175_ADDR__ = {
const EE_EXTENDED krExtended[] = {	
//	  wAddr                 ,wData mwMask
	
	 {CC112X_AGC_CFG0		,0xcf,0xFF}
	,{CC112X_AGC_CFG1		,0xa9,0xFF}
	,{CC112X_AGC_CS_THR		,0x19,0xFF}
  	,{CC112X_AGC_REF        ,0x20,0xFF} 
  	,{CC112X_DCFILT_CFG     ,0x1c,0xFF} 

	
  	,{CC112X_DEVIATION_M    ,0x9a,0xFF} 
  	,{CC112X_FIFO_CFG       ,0x00,0xFF} 
  	,{CC112X_FREQ0          ,0xcd,0xFF} 
  	,{CC112X_FREQ1          ,0xb0,0xFF} 
  	,{CC112X_FREQ2          ,0x6c,0xFF} 

	,{CC112X_FREQOFF_CFG    ,0x22,0xFF} 
  	,{CC112X_FS_CAL0        ,0x0e,0xFF} 
  	,{CC112X_FS_CFG         ,0x12,0xFF} 
  	,{CC112X_FS_DIG0        ,0x5f,0xFF} 
  	,{CC112X_FS_DIG1        ,0x00,0xFF} 
  	,{CC112X_FS_DIVTWO      ,0x03,0xFF} 
  	,{CC112X_FS_DSM0        ,0x33,0xFF} 
  	,{CC112X_FS_DVC0        ,0x17,0xFF} 
	,{CC112X_FS_PFD         ,0x50,0xFF} 
  	,{CC112X_FS_PRE         ,0x6e,0xFF} 
  	,{CC112X_FS_REG_DIV_CML ,0x14,0xFF} 
  	,{CC112X_FS_SPARE       ,0xac,0xFF} 
  	,{CC112X_IF_MIX_CFG     ,0x00,0xFF} 
	,{CC112X_IOCFG0         ,0x09,0xFF} 
  	,{CC112X_IOCFG1         ,0xb0,0xFF} 
  	,{CC112X_IOCFG2         ,0x08,0xFF} 
  	,{CC112X_IOCFG3         ,0xb0,0xFF} 
  	,{CC112X_IQIC           ,0xc6,0xFF} 
  	,{CC112X_MDMCFG0        ,0x45,0xFF} 
  	,{CC112X_MDMCFG1        ,0x06,0xFF} 
	,{CC112X_MODCFG_DEV_E   ,0x05,0xFF} 
  	,{CC112X_PA_CFG0        ,0x7e,0xFF} 
  	,{CC112X_PKT_CFG0       ,0x20,0xFF} 
  	,{CC112X_PKT_CFG1       ,0x00,0xFF} 
  	,{CC112X_PKT_CFG2       ,0x07,0xFF} 
  	,{CC112X_PREAMBLE_CFG1  ,0x00,0xFF} 
  	,{CC112X_RFEND_CFG0     ,0x20,0xFF} 
  	,{CC112X_SERIAL_STATUS  ,0x0a,0xFF} 
  	,{CC112X_SETTLING_CFG   ,0x03,0xFF} 
  	,{CC112X_SYMBOL_RATE2   ,0x63,0xFF} 
  	,{CC112X_SYNC_CFG1      ,0x0b,0xFF} 

	,{CC112X_XOSC1          ,0x07,0xFF} 
  	,{CC112X_XOSC3          ,0xc7,0xFF} 
  	,{CC112X_XOSC5          ,0x0e,0xFF} 
  	,{CC112X_XOSC_TEST1     ,0x08,0xFF} 



};	



//===============================
uint8_t GetNExtended(void)
//------------------------
// Return #records in krExtended
{
	return( SIZE_ST(krExtended) ); 
}	


/*

//=============================
static void UnlockEeprom(void)
//-------------------------
{
   while ((FLASH->SR & FLASH_SR_BSY) != 0) // Wait for FLASH to be free 
   {
//   insert timeout test 
   }
   if ((FLASH->PECR & FLASH_PECR_PELOCK) != 0) // If PELOCK is locked 
   {
      FLASH->PEKEYR = FLASH_PEKEY1; // Unlock PELOCK 
      FLASH->PEKEYR = FLASH_PEKEY2;
   }
   FLASH->PECR = FLASH->PECR | (FLASH_PECR_ERRIE | FLASH_PECR_EOPIE); // enable flash interrupts 
}



//================================
static void LockEeprom(void)
//-------------------------
// Lock the EEPROM
//-------------------------
{
   while ((FLASH->SR & FLASH_SR_BSY) != 0) // Wait for FLASH to be free 
   {
//   insert timeout test 
   }
   FLASH->PECR = FLASH->PECR & ~(FLASH_PECR_ERRIE | FLASH_PECR_EOPIE); // disable flash interrupts 
   FLASH->PECR = FLASH->PECR | FLASH_PECR_PELOCK; // Lock memory with PELOCK 
}



//=========================================================
static void EepromProgram(uint32_t addr, uint32_t ee_data)
//-----------------------------------------------------
// Brief This function programs a word of data EEPROM.
// The ERASE bit and DATA bit are cleared in PECR at the beginning
// words are automatically erased if required before programming
// Param addr is the 32-bit EEPROM address to program, data is the 32 bit word to program
// Retval None
//--------------------------------------------------------


{
// NOTE: The EEPROM must be unlocked and the flash interrupts must have been enabled prior to calling this function.
   *(uint32_t *)(addr) = ee_data; // write data to EEPROM 
   __WFI();
   if (*(uint32_t *)(addr) != ee_data)
   {
      Error_Handler(mdERROR_EE);
   }

}


//==============================
void EE_Read( uint8_t* INpb, uint16_t INnw )
{
#define CONFIG ((EEPROM*)DATA_EEPROM_BASE)	
	memset( INpb,0,INnw );
	memcpy( INpb,CONFIG,INnw );
}	



//=====================================
uint32_t* EE_GetFlashData(void)
//-------------------------------
// Get the data-address in Flash  
{
	return( (uint32_t*)&krEEPROM );
}	



//========================================= 
void EE_Write(void)
//---------------------------------
//
//---------------------------------
{
uint32_t i;
uint32_t* pdEE;
EEPROM rEEPROM;	// RAM copy

	rEEPROM = *(EEPROM*)EE_GetFlashData();	// Flash to RAM
   	pdEE = (uint32_t*)&rEEPROM;    // Point to data to write
	
   	UnlockEeprom(); // Unlock the EEPROM and enable flash interrupts 	
	// Reset the ERASE and DATA bits in the FLASH_PECR register to disable any residual erase    
   	FLASH->PECR = FLASH->PECR & ~(FLASH_PECR_ERASE | FLASH_PECR_DATA); 

   	// Put the next line in a loop if sequential bits to be written with i as loop counter 
	// Increase eeprom address by 4 for each word to write.  
	i = 0;
	while( i< (sizeof(krEEPROM)/4) )
	{	
   		EepromProgram(DATA_EEPROM_BASE + (4 * i), *(pdEE + i)); 
		++i;
	}	
   	LockEeprom(); // Lock the EEPROM
} 
*/



Hi,

I have problem to make the CC1175 work in Transparent serial mode. It works fine when I use SmartRF Studio v7 and the development kit TrxEB + CC1175 evaluation module. But when I connect my own MCU to the development kit and uses that to configure and start transmission is doesn't work. The SPI communication seems to work fine, I can both read and write to the CC1175 module. I have used the register configuration created by SmartRF Studio in my code.
Enclosing the log file (SmartRFlog.log) and configuration file (TSM.xml) from SmartRF Studio (that works fine) and my own firmware that doesn't work .

Regards,
Per4848.cc112x_spi.hEe.hRadio.h