使用CC1350launchpad和TMP103A,用的IAR下的tmp007示例nortos\CC1350_LAUNCHXL\drivers\i2ctmp007
SDK版本simplelink_cc13x0_sdk_2_20_00_38
—————————————————————————————————-
对比tmp007与tmp103的说明
更改了从机地址slaveAddress为103A的0b1110000(0x70)以及txBuffer[0] = 0x00;temperatrue register地址(只读
接线按照示例设置,SCL接在DIO4,SDA在DIO5
TMP103A 的 SCL与SDA分别带有10K上拉电阻,VCC是launchpad上3.3V,GND也是launchpad上的
电路连接如TMP103说明中的典型应用图相似
—————————————————————————————————-
void *mainThread(void *arg0) {unsigned inti;uint8_ttxBuffer[1];uint8_trxBuffer[2];I2C_Handlei2c;I2C_Paramsi2cParams;I2C_Transaction i2cTransaction;/* Call driver init functions */GPIO_init();I2C_init();/* Configure the LED pin */GPIO_setConfig(Board_GPIO_LED0, GPIO_CFG_OUT_STD | GPIO_CFG_OUT_LOW);GPIO_setConfig(Board_GPIO_LED1, GPIO_CFG_OUT_STD | GPIO_CFG_OUT_LOW);/* Create I2C for usage */I2C_Params_init(&i2cParams);i2cParams.bitRate = I2C_400kHz;i2c = I2C_open(Board_I2C_TMP, &i2cParams);if (i2c == NULL) {while (1);}GPIO_write(Board_GPIO_LED0, Board_GPIO_LED_ON);txBuffer[0] = 0x00;i2cTransaction.slaveAddress = 0x70;i2cTransaction.writeBuf = txBuffer;i2cTransaction.writeCount = 1;i2cTransaction.readBuf = rxBuffer;i2cTransaction.readCount = 1;for (i = 0; i < 20; i++) {if (I2C_transfer(i2c, &i2cTransaction)) {GPIO_write(Board_GPIO_LED1, Board_GPIO_LED_ON);}sleep(1);}I2C_close(i2c);return (NULL); }
—————————————————————————————–
示例其他部分代码没有改动,现象是LED0(红)会亮,LED1(绿)一直不亮(I2C_transfer返回失败false
SCL波形是1秒间隔有一个“V”下降上升,其他时间保持3.3V不变
请问我的电路连接上或软件上需要如何修改?
Kailyn Chen:
您的意思是这个I2C程序在007 上是没问题,将其移植到103A上出现时序不正常?
另外,将103A的slave address 0X70<<1 即为0XE0 再看下时序呢。
user5857262:
回复 Kailyn Chen:
现有TMP103A,想用TMP007的程序适配到103上使用,SDK里的示例,应该是没问题的吧
现在SCL时钟的时序都无法实现,出现的“V”下降大概200us宽,没有表现出说明中的时序
无论是使用的原封不动的TMP007程序或修改从机地址