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 } */
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