一、USCI I2C 驱动介绍
对于MSP430G2553,硬件I2C由外设USCI(Universal Serial Communication Interface)提供。USCI又分为USCI_A和USCI_B,其中USCI_A支持UART/IrDA/LIN/SPI通讯,USCI_B支持I2C/SPI通讯。MSP430G2553带有一个USCI_A和一个USCI_B,硬件I2C对应的管脚为P1.6(UCB0SCL)和P1.7(UCB0SDA)。
在官方MSP430x2xx Family User's Guide中,已对USCI_B的I2C模式进行的详细的介绍。了解这些信息,由于排查I2C通讯中可能遇到的问题。然而,本着不重复发明轮子的想法,TI已经提供了详细的I2C驱动代码和使用范例,正常开发只要增加TI的代码文件并稍作更改,直接调用TI提供的函数即可。
几个可参考的官方USCI I2C驱动资料/范例有:
Application Report, Using the USCI I2C Master, SLAA382A
—— 重点推荐。
Application Report, Using the USCI I2C Slave, SLAA383
—— 重点推荐。
Application Report, I2C Communication Sample Code for the bq76940 with a CRC Option Based on the MSP430G2553, SLVA626B
—— 包含了CRC的计算方法,驱动代码增加了对I2C器件响应超时异常的判断。
Application Report, Using the MSP430 Launchpad as a Standalone I2C Host for Audio Products, SLAA605A
—— 除了USCI I2C,还包含了GPIO I2C的驱动代码。
Application Report, Interfacing an EEPROM via I2C Using the MSP430, SLAA208A