完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
首先,我手里有两个I2C设备,一个是OLED屏(0.66寸),一个是MPU6050(六轴)。这两个设备都是支持高速400K的clk。为了同步验证,我分别用I2C1和I2C2两个口和他们通讯。为了测试方便,买的都是现成方案,EMI和ESD电路基本上都没有做。但不影响整体效果测试。
其次,接上两个设备正常运行。当我提高外设读写函数调用频率时,16MS调用一次,OLED的正常显示,而MPU6050的数据突然消失了,通过串口打印log信息,发现程序出现超时错误,LDA一直低电平,总线锁死状态。让我很诧异,是不是买的芯片质量有问题,还是因为我杜邦线太长的缘故。为了后期PCB设计方便,我是把外部两个上拉电阻焊掉了,用的MCU的内部上拉。左想右想,我又把外部上拉电阻焊上,把内部上拉去掉。结果意想不到的好转。 |
|
相关推荐
1个回答
|
|
STM32L452RET6 I2C接口锁死的原因可能有以下几点:
1. 硬件问题:I2C总线可能存在硬件连接问题,如线路过长、接触不良或电磁干扰等。这可能导致信号传输不稳定,从而引发I2C总线锁死。 2. 软件问题:程序中可能存在I2C通信的逻辑错误,如读写时序不准确、超时处理不当等。这些问题可能导致I2C总线无法正常工作。 3. 外设问题:OLED屏和MPU6050可能存在质量问题,导致在高速通信时出现问题。 为了解决这个问题,你可以尝试以下方法: 1. 检查硬件连接:确保I2C总线的连接正确,线路尽量短且接触良好。如果可能,使用屏蔽线以减少电磁干扰。 2. 降低通信速率:尝试降低I2C通信速率,如将400kHz降低到100kHz,看是否能解决问题。 3. 优化软件:检查I2C通信的时序和超时处理逻辑,确保它们符合I2C协议要求。 4. 使用外部上拉电阻:在I2C总线的SDA和SCL线上添加适当的外部上拉电阻,以提高信号稳定性。 5. 检查外设质量:尝试更换OLED屏和MPU6050,看是否仍然出现类似问题。 6. 使用I2C总线仲裁:如果I2C1和I2C2共用同一总线,可能存在总线仲裁问题。确保两个I2C设备在通信时不会发生冲突。 7. 软件调试:使用逻辑分析仪等工具,观察I2C总线上的信号波形,以便更好地了解问题所在。 通过以上方法,你应该能够找到导致I2C接口锁死的原因,并采取相应措施解决问题。 |
|
|
|
只有小组成员才能发言,加入小组>>
调试STM32H750的FMC总线读写PSRAM遇到的问题求解?
1688 浏览 1 评论
X-NUCLEO-IHM08M1板文档中输出电流为15Arms,15Arms是怎么得出来的呢?
1590 浏览 1 评论
1013 浏览 2 评论
STM32F030F4 HSI时钟温度测试过不去是怎么回事?
706 浏览 2 评论
ST25R3916能否对ISO15693的标签芯片进行分区域写密码?
1632 浏览 2 评论
1893浏览 9评论
STM32仿真器是选择ST-LINK还是选择J-LINK?各有什么优势啊?
680浏览 4评论
STM32F0_TIM2输出pwm2后OLED变暗或者系统重启是怎么回事?
539浏览 3评论
560浏览 3评论
stm32cubemx生成mdk-arm v4项目文件无法打开是什么原因导致的?
527浏览 3评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-5 12:01 , Processed in 0.670606 second(s), Total 47, Slave 41 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号