你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

关于STM32F0的I2C时序

[复制链接]
stanleysit 发布时间:2018-3-31 14:41
这个问题,我在论坛发过帖子,也在群里问过,问题还是没能解决,于是恳请FAE支持。
在看STM32F0的用户手册中发现一个困惑不已的时序,如下图所示,其中红色线条是我自己画的。
以我的理解,EV4这个事件应该发生在红线那个时间点,而手册中却不是这样,这是什么原因?是文档的作者刻意为了体现时钟延展的功能而设计的?还是说实际上就是文档中所示的?
QQ截图20180329225659-01.jpg
收藏 1 评论11 发布时间:2018-3-31 14:41

举报

11个回答
butterflyspring 回答时间:2018-4-2 10:54:25
首先TXE为1时,说明DR寄存器为空,DATA2那段为什么会立刻拉低呢?没有到当前数据的ACK为什么要放数据到DR?如果没放,TXD为何会拉低?EV4,EV5同理..

评分

参与人数 1蝴蝶豆 +3 收起 理由
zero99 + 3

查看全部评分

stanleysit 回答时间:2018-4-2 14:47:14
本帖最后由 stanleysit 于 2018-4-2 14:52 编辑
butterflyspring 发表于 2018-4-2 10:54
首先TXE为1时,说明DR寄存器为空,DATA2那段为什么会立刻拉低呢?没有到当前数据的ACK为什么要放数据到DR?如果 ...

TXE位在DATA2那段不是立刻拉高,是等到DR中的数据转移到移位寄存器时拉高,然后DR空,TXIS也置位,这时就发生EV4事件,写入DATA3,紧接着TXE拉低。EV4事件应当发生在类似EV3的位置,而不是官方文档中跑到DATA2的ack信号之后,除非在之前没有来得及处理才会到官方文档中的位置。不知道我理解的对不对
stanleysit 回答时间:2018-4-2 14:55:01
butterflyspring 发表于 2018-4-2 10:54
首先TXE为1时,说明DR寄存器为空,DATA2那段为什么会立刻拉低呢?没有到当前数据的ACK为什么要放数据到DR?如果 ...

至于官方文档中的时序图data2转移到移位寄存器后要不要立刻写data3,这是软件处理的问题,可以这时候写,也可以等对方应答后再写,但EV4事件是发生在data2转移到移位寄存器后就发生
stanleysit 回答时间:2018-4-2 14:59:00
butterflyspring 发表于 2018-4-2 10:54
首先TXE为1时,说明DR寄存器为空,DATA2那段为什么会立刻拉低呢?没有到当前数据的ACK为什么要放数据到DR?如果 ...

如果按您说的一定要等到对方应答后再写,那么该时序图中的EV5事件也不用写入data4了
butterflyspring 回答时间:2018-4-2 15:21:35
stanleysit 发表于 2018-4-2 14:47
TXE位在DATA2那段不是立刻拉高,是等到DR中的数据转移到移位寄存器时拉高,然后DR空,TXIS也置位,这时就 ...

我没看明白你说的意思,首先你第一个修改的红色线,TXD为什么在Data2会下降?肯定是在收到ACK之后才开始处理下一个数据呀
butterflyspring 回答时间:2018-4-2 15:29:16
我大概明白你的意思,如果data2那里,你要在没ACK就放数据,这没关系,根据自己应用就好.如果你提前放了,那EV4上面的TXIS就和DATA2那个TXIS一样.
stanleysit 回答时间:2018-4-2 15:39:43
butterflyspring 发表于 2018-4-2 15:29
我大概明白你的意思,如果data2那里,你要在没ACK就放数据,这没关系,根据自己应用就好.如果你提前放了,那EV4 ...

其实我是想表达的时官方文档的那个时序图有问题,真正的EV4并不是发生在官方文档指出的那个位置,而是我画的红线第一处与官方时序不同的那个位置,至于什么时候处理EV4这是另一回事,可以在官方指出的那个位置处理。EV4发生在什么位置与什么时候处理是两回事,所以我觉得官方的文档会在一定程度误导读者,请您指点
butterflyspring 回答时间:2018-4-2 15:55:53
stanleysit 发表于 2018-4-2 15:39
其实我是想表达的时官方文档的那个时序图有问题,真正的EV4并不是发生在官方文档指出的那个位置,而是我 ...

所以就说,看你什么时候放那个data3了
stanleysit 回答时间:2018-4-2 16:03:25
butterflyspring 发表于 2018-4-2 15:55
所以就说,看你什么时候放那个data3了

写入data3可以在我画的红线第一次与官方文档不同的位置,也可以在官方文档所指的位置,但EV4这个事件,是发生在data2转移至移位寄存器后立刻就发生的,官方文档并没有强调这一点,这对读者的理解是存在误导的,会让人误以为EV4就是在官方文档所指的位置发生。
12下一页

所属标签

STM32团队

意法半导体微控制器和微处理器拥有广泛的产品线,包含低成本的8位单片机和基于ARM® Cortex®-M0、M0+、M3、M4、M33、M7及A7内核并具备丰富外设选择的32位微控制器及微处理器


最新内容

相似分享

官网相关资源

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版