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.

TMS320F28035: I2C eeprom development hardware

Part Number: TMS320F28035


We are having trouble getting an EEPROM to work with CCS6 and the Example_2803xI2C_eeprom project. Using a scope it looks like the SLK and SDA lines are good. It appears we are getting a NAK back from the EEPROM. 

We are trying to talk to a 512K bit part. Is there any thing I need to change in the demo?

Does TI offer a development kit with a know good EEPROM? 

Thanks

  • Hi,

    Which eeprom part are you using in this case?

    Regards,

    Gautam

  • Refer the code from this post: e2e.ti.com/.../253536
  • The code is close except that the processor is waiting for the while loop and the for loop, also sending is stopping after sending the FIFO contents. What I meed to do is have the foreground process start the transmit of a 64 byte block. In the I2C interrupt routine when the FIFO is empty the interrupts need to reload the FIFO. The process should not stop until all 64 data bytes are sent.




    I2caRegs.I2CSAR = I2C_SLAVE_ADDR; //Set slave address
    I2caRegs.I2CCNT = I2C_NUMBYTES + 2; //Set count to 5 characters plus 2 address bytes
    I2caRegs.I2CDXR = MemoryHighAddr; //Send eeprom high address
    I2caRegs.I2CMDR.bit.TRX = 1; //Set to Transmit mode
    I2caRegs.I2CMDR.bit.MST = 1; //Set to Master mode
    I2caRegs.I2CMDR.bit.FREE = 1; //Run in FREE mode
    I2caRegs.I2CMDR.bit.STP = 1; //Stop when internal counter becomes 0
    I2caRegs.I2CMDR.bit.STT = 1; //Send the start bit, transmission will follow
    while(I2caRegs.I2CSTR.bit.XRDY == 0){}; //Do nothing till data is shifted out
    I2caRegs.I2CDXR = MemoryLowAddr; //Send eeprom low address

    for(i = 0; i < I2C_NUMBYTES; i++){
    while(I2caRegs.I2CSTR.bit.XRDY == 0){}; //Do nothing till data is shifted out
    I2caRegs.I2CDXR = Data[i]; //Send out the message
    }
    /////////////
  • Hello Dale,

    Is there question here? Are you still experiencing issues?

    Best Regards,
    Adam Dunhoft
  • Hi Adam,
    Still having a problem sending / receiving a 64 byte packet only using interrupts. Once the packet is started I am not sure if I should be using the ARDYINT , RM or the TXFFINT. I will be working through the details next week. I have been looking for an example and as of yet not found one. If anyone can point me to a complete example it would help.
    Thanks.
  • Using TXFFINT would be the best approach. We don't have a specific example for this, unfortunately.