STMCU小助手
发布时间:2022-2-11 19:33
|
一. 前言 某客户反映使用 STM8L 的 IIC 的库的 DEMO,master 和 slave 通信,使用 IIC1 的端口 PC0 与 PC1,并分别上拉接 4.7k 的电阻至 3.3V,主机的 SCL 与从机的 SCL 相连,SDA 也一样,但是 slave 一直没有应答,想不明白原因,波形客户看了认为没有问题,就是没有应答,不知道原因是什么,IIC 速度给的都是 100K。 二.问题产生环境 详细了解了客户的使用试验环境,由于他们手上的资源有限,用的是两块 STM8l152C6T6 的 discovery板子,而非官方代码使用的 STM8L1526-EVAL 硬件板。slave address 0x30;master address 0xa0。波形如下:
使用的代码环境如下:
三. 问题分析 仔细观察上图的黄色的时钟线,三角波很像是电容的充放电功能波形。并不是一个好的 IIC 协议波形。正好手头上有 STM8L1526-EVAL 硬件板,下载程序试验了下,能够运行正确。
所以接下来的就变的很简单。比较 STM8l152C6T6 的 discovery 和 STM8L1526-EVAL 的区别。一看电路图其实就明白了,
对于 PC0 引脚,由于 Discovery 板子没有外接,所以需要自己添加个 4.7K 的傻瓜你拉电阻至 3.3V。对于 PC1 引脚,已经设置了外部上拉,但是和我们常规的经典电路不一样,这儿多了个 C25 的电容。于是果断去除该 C25 电容,再此试验。顺利通过。 |
【福利三:逢7发帖赢大礼】4、基于STM32G070板子SPI flash 移植SFUD库
【福利三:逢7发帖赢大礼】基于STM32G070板子的uart shell移植设计
【福利三:逢7发帖赢大礼】3、基于STM32G070板子的YModem串口协议通信
【福利三:逢7发帖赢大礼】2、基于STM32G070板子的OLED移植U8G2库
实战经验 | ClassB功能安全认证代码与应用代码分区的实现要点
STM32G0 系列 I2C 通信异常典型案例分析与解决方案总结
经验分享 | LAT1490 两个STM32G0 I2C 通信异常的案例分析
经验分享 | STM32G0 I2C bootloader Go 命令后调试连接失败:DBG_SWEN 位复位修复
经验分享 | STM32G0B1 待机模式意外唤醒深度解析:RTC 结构体未初始化的隐形坑
经验分享 | STM32G0B1 待机模式意外唤醒深度解析:RTC 结构体未初始化的隐形坑
微信公众号
手机版