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.

CC1310: EEPROM for CC1310

Part Number: CC1310


Is there Internal EEPROM for cc1310. If not How to get EEPROM for cc1310. I heard we can use I2C for EEPROM, but how to use it. Can anyone say in detail.

  • There's no EEPROM inside CC1310. You have to connect an external one. If you use I2C EEPROM, you have to use I2C driver provided in TI RTOS to drive it.
  • Can anyone guide me how to interface EEPROM using I2C with CC1310. also how to write EEPROM 24C02 code.
    please share me example driver code link....explain me in detail.
  • I suggest you can refer to i2ctmp007 example in dev.ti.com/.../ which shows you how to use I2C interface on CC1310 to read TMP007 temperature sensor. You can try to revise the example to read/write EEPROM 24C02.
  • how can i get EEPROM using I2C with cc1310 example code...can u send me links
  • There is no EEPROM using I2C with cc1310 example code.
  • what is sycnword in cc1310...and how to address each device of cc1310.
  • Dinesh: Please take a look at 23.7.1 and the following sections in the TRM (www.ti.com/.../swcu117g.pdf )
  • Thank you for your support. I already seen that document, but i want to know what exactly syncword does and its behaviour and general meaning...in detail..
    Thank you
  • You can see

    dev.ti.com/.../packet-format.html

    for some information. As is stated in the link the sync word is used to:
    - Find the start of a transmission
    - Byte and bit sync

    If you don't need to be backward compatible use the default sync word and use address filtering to avoid all nodes to receive the same packet if not wanted.
  • can u tell me how to give device address for cc1310
  • There is a issue regarding code in eeprom. while in debug mode it was showing issue at " if(I2C_transfer(i2cHandle, &i2cTransaction)) " it was not going inside i2c_transfer. I am sharing the code above. please give me a solution to fix it. I modified the i2ctmp007 example code and wrote the eeprom bt removing temp code.

    /*
    * ======== eeprom.c ========
    */
    #include <stdint.h>
    #include <stddef.h>
    #include <unistd.h>

    /* Driver Header files */
    #include <ti/drivers/GPIO.h>
    #include <ti/drivers/I2C.h>
    #include <ti/display/Display.h>

    /* Example/Board Header files */
    #include "Board.h"
    #include "System.h"


    /* Slave Addresses */
    //i2cTransaction.slaveAddress = 0xA0 >>1;
    //i2cTransaction.slaveAddress = 0xA1 >>1;
    //i2cTransaction.slaveAddress = 0x50;


    /*
    * ======== mainThread ========
    */
    void *mainThread(void *arg0)
    {
    uint8_t txBuffer[4];
    uint8_t rxBuffer[4];
    I2C_Handle i2cHandle;
    I2C_Params i2cParams;
    I2C_Transaction i2cTransaction;

    /* Call driver init functions */
    GPIO_init();
    I2C_init();

    /* Turn on user LED */
    GPIO_write(Board_GPIO_LED0, Board_GPIO_LED_ON);

    /* Create I2C for usage */
    I2C_Params_init(&i2cParams);
    i2cParams.bitRate = I2C_100kHz;
    i2cHandle = I2C_open(Board_I2C0, &i2cParams);
    if (i2cHandle)
    {
    /* buffer registers */
    txBuffer[0] = 0x01;
    txBuffer[1] = 0x01;
    txBuffer[2] = 0x42;

    //write buffer
    i2cTransaction.writeBuf = txBuffer;
    i2cTransaction.writeCount = 3;

    //read buffer
    i2cTransaction.readBuf = rxBuffer;
    i2cTransaction.readCount = 0;

    //slave address
    i2cTransaction.slaveAddress = (0x50);

    /* now i write 0x42 on memory address 0x1 | 0x1 << 8 */
    if(I2C_transfer(i2cHandle, &i2cTransaction))
    {
    System_printf("success");
    i2cTransaction.writeBuf = txBuffer;
    i2cTransaction.writeCount = 2;

    i2cTransaction.readBuf = rxBuffer;
    i2cTransaction.readCount = 1;

    //slave address
    i2cTransaction.slaveAddress = (0x50);

    /* now i read on memory address 0x1 | 0x1 << 8 */
    if(I2C_transfer(i2cHandle, &i2cTransaction))
    {
    //success
    }
    else
    {
    System_printf("ERROR read");
    }
    }
    else
    {
    System_printf("ERROR write");
    }
    }

    /* Deinitialized I2C */
    I2C_close(i2cHandle);

    //Turn OFF EEPROM
    return (NULL);
    }