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

关于STM32F0的I2C时序

[复制链接]
stanleysit 发布时间:2018-3-31 14:41
这个问题,我在论坛发过帖子,也在群里问过,问题还是没能解决,于是恳请FAE支持。& R2 G8 j$ o5 C6 o+ u! b9 k
在看STM32F0的用户手册中发现一个困惑不已的时序,如下图所示,其中红色线条是我自己画的。
% ?6 I6 ^  k+ n6 q5 B以我的理解,EV4这个事件应该发生在红线那个时间点,而手册中却不是这样,这是什么原因?是文档的作者刻意为了体现时钟延展的功能而设计的?还是说实际上就是文档中所示的?
1 z' v0 n8 p$ x$ _* B! t QQ截图20180329225659-01.jpg
) ^" v7 y/ F4 M3 g  k7 v
收藏 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 编辑
' y/ O) S; R2 i5 |- i) i: o4 P
butterflyspring 发表于 2018-4-2 10:54
; A  i7 b" \* Y+ k& a( f% E首先TXE为1时,说明DR寄存器为空,DATA2那段为什么会立刻拉低呢?没有到当前数据的ACK为什么要放数据到DR?如果 ...

$ E# Z4 H* v. ETXE位在DATA2那段不是立刻拉高,是等到DR中的数据转移到移位寄存器时拉高,然后DR空,TXIS也置位,这时就发生EV4事件,写入DATA3,紧接着TXE拉低。EV4事件应当发生在类似EV3的位置,而不是官方文档中跑到DATA2的ack信号之后,除非在之前没有来得及处理才会到官方文档中的位置。不知道我理解的对不对
stanleysit 回答时间:2018-4-2 14:55:01
butterflyspring 发表于 2018-4-2 10:54
" O  }! p3 ~9 E首先TXE为1时,说明DR寄存器为空,DATA2那段为什么会立刻拉低呢?没有到当前数据的ACK为什么要放数据到DR?如果 ...
3 Q$ ^1 j. u* Y1 g
至于官方文档中的时序图data2转移到移位寄存器后要不要立刻写data3,这是软件处理的问题,可以这时候写,也可以等对方应答后再写,但EV4事件是发生在data2转移到移位寄存器后就发生
stanleysit 回答时间:2018-4-2 14:59:00
butterflyspring 发表于 2018-4-2 10:547 e& C9 R. |# [( [
首先TXE为1时,说明DR寄存器为空,DATA2那段为什么会立刻拉低呢?没有到当前数据的ACK为什么要放数据到DR?如果 ...

* G- X3 e: S' F6 c7 G如果按您说的一定要等到对方应答后再写,那么该时序图中的EV5事件也不用写入data4了
butterflyspring 回答时间:2018-4-2 15:21:35
stanleysit 发表于 2018-4-2 14:479 p# v( \  g3 u1 b
TXE位在DATA2那段不是立刻拉高,是等到DR中的数据转移到移位寄存器时拉高,然后DR空,TXIS也置位,这时就 ...
4 P( H( k1 r, H8 F+ C
我没看明白你说的意思,首先你第一个修改的红色线,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:299 [$ A9 ^% A& l7 M  U
我大概明白你的意思,如果data2那里,你要在没ACK就放数据,这没关系,根据自己应用就好.如果你提前放了,那EV4 ...
7 w% T5 E) g2 z- N. N8 A+ Q( B$ s
其实我是想表达的时官方文档的那个时序图有问题,真正的EV4并不是发生在官方文档指出的那个位置,而是我画的红线第一处与官方时序不同的那个位置,至于什么时候处理EV4这是另一回事,可以在官方指出的那个位置处理。EV4发生在什么位置与什么时候处理是两回事,所以我觉得官方的文档会在一定程度误导读者,请您指点
butterflyspring 回答时间:2018-4-2 15:55:53
stanleysit 发表于 2018-4-2 15:39
) e! |  ~! y: O" m; ]7 j2 X其实我是想表达的时官方文档的那个时序图有问题,真正的EV4并不是发生在官方文档指出的那个位置,而是我 ...

" R' o# G! o* Q+ N2 {所以就说,看你什么时候放那个data3了
stanleysit 回答时间:2018-4-2 16:03:25
butterflyspring 发表于 2018-4-2 15:55# s; e9 E8 U9 ?( v
所以就说,看你什么时候放那个data3了
6 F7 s, W. d1 Y$ n
写入data3可以在我画的红线第一次与官方文档不同的位置,也可以在官方文档所指的位置,但EV4这个事件,是发生在data2转移至移位寄存器后立刻就发生的,官方文档并没有强调这一点,这对读者的理解是存在误导的,会让人误以为EV4就是在官方文档所指的位置发生。
butterflyspring 回答时间:2018-4-2 16:08:14
stanleysit 发表于 2018-4-2 16:03
/ s% t$ `7 h) }, F* N0 n: y写入data3可以在我画的红线第一次与官方文档不同的位置,也可以在官方文档所指的位置,但EV4这个事件,是 ...

5 S  m# _4 w! a/ tEV3是data2,EV4是data3呀.....
stanleysit 回答时间:2018-4-4 12:52:30
butterflyspring 发表于 2018-4-2 16:08
' u1 G; o! v; H; z6 x5 R% z- YEV3是data2,EV4是data3呀.....
4 y6 I7 h2 P# K5 \4 q
这个我知道啊,我表达的是对的啊
关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新和工艺
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版