TI中文支持网
TI专业的中文技术问题搜集分享网站

LMP91002: 状态位读取不正常,一直卡在读寄存器的中断里

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:

别客气,如有问题可以继续跟帖

赞(0)
未经允许不得转载:TI中文支持网 » LMP91002: 状态位读取不正常,一直卡在读寄存器的中断里
分享到: 更多 (0)

© 2024 TI中文支持网   网站地图 鲁ICP备2022002796号-1