Part Number:LMP91002Other Parts Discussed in Thread: LMP91000
参考官方给出的例程,对LMP91002初始化,但是总是会卡在设备状态是否准备正常那一句
while (status == TI_LMP91000_NOT_READY) // wait while device is not ready
status = LMP91000_I2CReadReg(TI_LMP91000_STATUS_REG); // Read device ready status
经过单步调试发现,实际上是会卡在TI_MSP430_i2c_USCIB0_5xx.c文件中的__interrupt void USCI_B0_ISR(void)中断服务函数里的这一句
case 10: // Vector 12: TXIFG I2CBuffer = UCB0RXBUF; // store received data in buffer
__bic_SR_register_on_exit(LPM0_bits); // Exit LPM0
break; ,
通过使用万用表测量LMP91002芯片的引脚处供电是正常的,I2c处也加了上拉电阻,实在想不明白是怎么回事
我的全部代码工程文件在附件中,这个问题困扰了很长时间,非常希望得到工程师的解答!
MSP430_Project.zip
Amy Luo:
您好,
您读取的 STATUS 寄存器的值是什么?是 Not Ready 状态吗?MENB管脚电平是多少?
关于MSP430 project 代码的问题,建议您咨询微控制器版块的工程师
,
gao yuzhe:
status寄存器是not ready状态,MENB是接地的
现在不确定是硬件还是软件问题
,
Amy Luo:
寄存器status bit 指示 LMP91002的 power-on状态,上电稳定后才能对I2C通信;如果status寄存器是not ready状态,说明LMP91002还没上电稳定;
如果是卡在中断服务函数里,我认为是MSP430在等待 LMP91002上电稳定的过程中,MSP430的其他任务产生了中断,这个要看interrupt void USCI_B0_ISR(void)中断服务函数具体的功能
,
gao yuzhe:
嗯呢好的 我尝试换用外部电源供电测试一下 非常感谢您的答复
,
Amy Luo:
别客气,如有问题可以继续跟帖