Hello,
I am troubleshooting a lockup condition with my C5505 firmware involving the initialization of the I2C peripheral.
The I2C_init() function will often times not return. It just hangs up the processor.
I noticed that the CSL documentation referenced on TI's C5000 web page is no longer up to date.
The only current documentation I found was the html generated from the sparse comments in the I2C source code.
Can someone answer some simple questions for me?
Q1) I am using version 2.5 of the CSL. Are there issues with the I2C interface of this rev?
Q2) Does the CSL I2C_init() function use one of the hardware timers?
TIMER0 is used elsewhere in my code base.
Q3) The html Documentation tells me that nothing is required prior to calling I2C_init().
Is that actually true?
Q4) is the configuration structure mentioned in the CSL doc still accurate? (see below)
If so, It sure looks like a hardware timer is being used.
I2C_Config
Uint16 i2coar Own address register
Uint16 i2cier Interrupt mask/status register
Uint16 i2cstr Interrupt status register
Uint16 i2cclkl Clock Divider Low register
Uint16 i2cclkh Clock Divider High register
Uint16 i2ccnt Data Count register
Uint16 i2csar Slave Address register
Uint16 i2cmdr Mode register
Uint16 i2cisrc Interrupt source vector register
Uint16 i2cpsc Prescaler register
Thank You,
Forrest