嵌入式开发者社区

标题: uPP与I2c的问题 [打印本页]

作者: wwfdzh2012    时间: 2017-4-24 17:41
标题: uPP与I2c的问题
本帖最后由 wwfdzh2012 于 2017-4-29 15:31 编辑
) U6 {- `( l/ i( w) X, c  Z8 a6 e) z: p4 a
在使用过程中出现只要uPP在工作,i2c的通信就会出现不稳定现象,通信不可靠,请问uPP跟I2c的硬件资源是否有共用的地方?
$ w" e3 s* T, |+ G8 |3 \
作者: wwfdzh2012    时间: 2017-4-25 09:23
没人吗?????
作者: IRONMAN    时间: 2017-4-25 11:32
是不是时钟有冲突
作者: wwfdzh2012    时间: 2017-4-25 11:34
IRONMAN 发表于 2017-4-25 11:327 ?; b; q9 m3 V
是不是时钟有冲突

* W! ^3 ]; w2 \# Z7 \请问怎么排除?
作者: wwfdzh2012    时间: 2017-4-25 11:38
IRONMAN 发表于 2017-4-25 11:323 p. ~+ i! R$ l! X0 n4 J
是不是时钟有冲突
& _* i$ W) i1 B- {1 `! u
I2C和Upp的时钟会冲突吗,不明白您说的意思?
作者: IRONMAN    时间: 2017-4-25 12:14
wwfdzh2012 发表于 2017-4-25 11:389 O% ^) }( s( a: B  a9 u
I2C和Upp的时钟会冲突吗,不明白您说的意思?

" \% i- y6 @$ M, [你看他们的时钟有没有关联,可能是两个一起用的时候没有注意时钟频率一致
作者: wwfdzh2012    时间: 2017-4-25 13:35
IRONMAN 发表于 2017-4-25 12:14* l+ z- S: S+ C
你看他们的时钟有没有关联,可能是两个一起用的时候没有注意时钟频率一致 ...

" P) C7 F4 V) \9 |6 n  k我看了datasheet,两者的时钟并没有关联呀,麻烦您再帮忙排错一下
! f/ N  N' S6 R6 d3 u
作者: human    时间: 2017-4-25 14:37
裸机情况下建议I2C使用查询方式,中断的话可能会跟upp冲突的。
作者: wwfdzh2012    时间: 2017-4-25 14:43
human 发表于 2017-4-25 14:37
4 T$ `0 G& G0 `( ~7 Q, p. I" b- _1 w裸机情况下建议I2C使用查询方式,中断的话可能会跟upp冲突的。

2 }, W+ A- U! F- RuPP与i2c都是用轮询的
作者: wwfdzh2012    时间: 2017-4-29 15:31
问题解决了,确实是复位uPP会影响到I2C的通信,导致I2C的通信产生很大延迟(约1ms),不重新配置Upp而是重新配置DMA就可以解决,不知道是怎么影响的,影响I2C的语句:
1 t: x# d6 i( G( c6 ~6 ^; m7 k5 {  \2 u
//reset uPP9 [; h0 i& b0 {% k3 j% g
SETBIT(UPP->UPPCR, UPP_UPPCR_SWRST);
: Y( _# k* D& A% U: z& D. V0 i
+ W" f4 r- G3 H, s2 e5 Ofor(i = 0; i < 200; i++){}; //wait 200 clock cycles for reset.; Y6 w) Y4 [) X- W( O
CLRBIT(UPP->UPPCR, UPP_UPPCR_SWRST);




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