嵌入式开发者社区

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

作者: wwfdzh2012    时间: 2017-4-24 17:41
标题: uPP与I2c的问题
本帖最后由 wwfdzh2012 于 2017-4-29 15:31 编辑
+ u% C5 q( c: m. `* e- v1 s: t' v( @* _
在使用过程中出现只要uPP在工作,i2c的通信就会出现不稳定现象,通信不可靠,请问uPP跟I2c的硬件资源是否有共用的地方?
, a" d( D4 k6 K, a
作者: wwfdzh2012    时间: 2017-4-25 09:23
没人吗?????
作者: IRONMAN    时间: 2017-4-25 11:32
是不是时钟有冲突
作者: wwfdzh2012    时间: 2017-4-25 11:34
IRONMAN 发表于 2017-4-25 11:32# K5 z' _  L0 P7 y/ j1 H4 F; _
是不是时钟有冲突

7 N7 }8 f8 l8 k6 M请问怎么排除?
作者: wwfdzh2012    时间: 2017-4-25 11:38
IRONMAN 发表于 2017-4-25 11:326 o. \0 R4 C4 p8 W" m1 I+ Q
是不是时钟有冲突
, A5 V% `4 Q0 j, P
I2C和Upp的时钟会冲突吗,不明白您说的意思?
作者: IRONMAN    时间: 2017-4-25 12:14
wwfdzh2012 发表于 2017-4-25 11:388 J6 U' R$ Y* }1 {
I2C和Upp的时钟会冲突吗,不明白您说的意思?
+ o0 f$ Q. }3 h
你看他们的时钟有没有关联,可能是两个一起用的时候没有注意时钟频率一致
作者: wwfdzh2012    时间: 2017-4-25 13:35
IRONMAN 发表于 2017-4-25 12:14
) \  V- B$ N3 g; F/ u* |1 E你看他们的时钟有没有关联,可能是两个一起用的时候没有注意时钟频率一致 ...
0 }5 D5 Z4 U- z5 t# ?
我看了datasheet,两者的时钟并没有关联呀,麻烦您再帮忙排错一下
# Q* E4 ^9 L- W9 M: D
作者: human    时间: 2017-4-25 14:37
裸机情况下建议I2C使用查询方式,中断的话可能会跟upp冲突的。
作者: wwfdzh2012    时间: 2017-4-25 14:43
human 发表于 2017-4-25 14:37  r$ u, I! [) v1 o- Y1 g
裸机情况下建议I2C使用查询方式,中断的话可能会跟upp冲突的。
# E8 T3 }* f) c5 L5 P
uPP与i2c都是用轮询的
作者: wwfdzh2012    时间: 2017-4-29 15:31
问题解决了,确实是复位uPP会影响到I2C的通信,导致I2C的通信产生很大延迟(约1ms),不重新配置Upp而是重新配置DMA就可以解决,不知道是怎么影响的,影响I2C的语句:
, d. |  G7 @: E* q) K+ m) S( B& S2 ?# P
//reset uPP3 Q' I9 |) i  {- c! C1 B
SETBIT(UPP->UPPCR, UPP_UPPCR_SWRST);1 B" N" G  n; A; J
, r1 ~" j- f! K& E
for(i = 0; i < 200; i++){}; //wait 200 clock cycles for reset.# s( t8 S4 v' Q- X. E/ d
CLRBIT(UPP->UPPCR, UPP_UPPCR_SWRST);




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