嵌入式开发者社区

标题: i2c_tmp102试验 [打印本页]

作者: Ruiven    时间: 2022-4-18 16:13
标题: i2c_tmp102试验


CSL_I2cRegs *i2cRegs = ((CSL_I2cRegs*) CSL_I2C_DATA_CONTROL_REGS);
#define CSL_I2C_DATA_CONTROL_REGS  (0x02530000)
此处我理解为 CSL_I2C_DATA_CONTROL_REGS为mcu内存地址,传递给i2cRegs关联IIC相关寄存器

看AT24datasheet 所知 通讯主要为SCL和SDA两线 (其中涉及 “时序图”起始信号 暂停信号 应答等器件操作)一知半解
发送寄存器[attach]6992[/attach]
接受寄存器 [attach]6991[/attach]

在测i2c_tmp102试验时 一直卡在[attach]6993[/attach]此处while
调试监控所得i2cRegs->ICSTR 初始值为1040  一直单步断点到达while处 变为5120&0x10所以一直while等待。
但是从main起始到while 并没对i2cRegs->ICSTR赋值,所以我觉得i2cRegs本为指针,那么可能是mcu内部对i2cRegs->ICSTR这个地址赋值,类似串口状态反馈。

述说简短,针对本实验我的疑惑点如下:
1.从试验逻辑我只看到对i2cRegs所指寄存器赋值,并没有看到“起始”“停止”等时序操作
2.i2cRegs寄存器在网上找了一圈没有看到每个寄存器的“含义”
3.程序为什么会卡while处?

最后:
希望坛主或者其他大佬能解惑,或者提供相关 文献参考,谢谢(demo没有做任何修改的)

作者: Ruiven    时间: 2022-4-18 16:17
开发板为6657
作者: Ruiven    时间: 2022-4-18 20:17
如下图
[attach]6995[/attach][attach]6996[/attach]
初始化应该没有问题,i2c_reg_write(1, 6);第一个1传到寄存器里面了,ICSTR是中断状态寄存器吗?

作者: 创龙科技support    时间: 2022-4-19 09:00
您好,若使用我司板卡测试案例,可使用bin目录下的镜像.out文件先测试一遍,若测试仍无法正常运行,可联系我司技术服务看是否I2C硬件损坏。
作者: Ruiven    时间: 2022-4-19 11:36
创龙科技support 发表于 2022-4-19 09:00
您好,若使用我司板卡测试案例,可使用bin目录下的镜像.out文件先测试一遍,若测试仍无法正常运行,可联系 ...

直接把out烧进去可以,然后再debug run 也可以了,至于为什么会出现之前的情况就不清楚了,不太清楚其中具体的时序问题




欢迎光临 嵌入式开发者社区 (https://www.51ele.net/) Powered by Discuz! X3.4