嵌入式开发者社区

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

作者: wwfdzh2012    时间: 2017-4-24 17:41
标题: uPP与I2c的问题
本帖最后由 wwfdzh2012 于 2017-4-29 15:31 编辑 ) M/ U+ q+ \' u) X; R4 v6 d; W

# F4 H9 I" U4 R1 G- W在使用过程中出现只要uPP在工作,i2c的通信就会出现不稳定现象,通信不可靠,请问uPP跟I2c的硬件资源是否有共用的地方?
# M# V" A2 T; y1 U
作者: wwfdzh2012    时间: 2017-4-25 09:23
没人吗?????
作者: IRONMAN    时间: 2017-4-25 11:32
是不是时钟有冲突
作者: wwfdzh2012    时间: 2017-4-25 11:34
IRONMAN 发表于 2017-4-25 11:32, |4 B4 B7 C, f  i3 p. o7 M
是不是时钟有冲突

6 l1 y; A1 M4 {, T/ P" ~2 V请问怎么排除?
作者: wwfdzh2012    时间: 2017-4-25 11:38
IRONMAN 发表于 2017-4-25 11:32
% I1 p& e, R! e% x是不是时钟有冲突
3 `- k! t/ e- y7 O% R! @7 j
I2C和Upp的时钟会冲突吗,不明白您说的意思?
作者: IRONMAN    时间: 2017-4-25 12:14
wwfdzh2012 发表于 2017-4-25 11:38
9 o4 \& `1 u9 x$ I' w: uI2C和Upp的时钟会冲突吗,不明白您说的意思?
5 E, b' `" y+ l6 k/ G7 P* z4 D! N
你看他们的时钟有没有关联,可能是两个一起用的时候没有注意时钟频率一致
作者: wwfdzh2012    时间: 2017-4-25 13:35
IRONMAN 发表于 2017-4-25 12:14
/ _* L4 T# L# G" @你看他们的时钟有没有关联,可能是两个一起用的时候没有注意时钟频率一致 ...

- q6 n: }$ d* ~' M$ F我看了datasheet,两者的时钟并没有关联呀,麻烦您再帮忙排错一下+ m. F2 _. T% R) y+ t

作者: human    时间: 2017-4-25 14:37
裸机情况下建议I2C使用查询方式,中断的话可能会跟upp冲突的。
作者: wwfdzh2012    时间: 2017-4-25 14:43
human 发表于 2017-4-25 14:37
6 N5 c6 P; N+ d9 b& \4 d2 S' v裸机情况下建议I2C使用查询方式,中断的话可能会跟upp冲突的。
; }5 G  w! i7 V% Z8 J. _( H3 h
uPP与i2c都是用轮询的
作者: wwfdzh2012    时间: 2017-4-29 15:31
问题解决了,确实是复位uPP会影响到I2C的通信,导致I2C的通信产生很大延迟(约1ms),不重新配置Upp而是重新配置DMA就可以解决,不知道是怎么影响的,影响I2C的语句:
4 ?5 Q) h0 r: E4 p- S$ F8 m
- W( c3 @' q* i# r: z( j) r//reset uPP2 G+ _5 v9 [2 f; a
SETBIT(UPP->UPPCR, UPP_UPPCR_SWRST);
1 h( n$ I! ]1 |2 i. O) Z( _# _, X" Q. ^" M- }) ]$ X- _
for(i = 0; i < 200; i++){}; //wait 200 clock cycles for reset.4 t. h  ~* l% t" F
CLRBIT(UPP->UPPCR, UPP_UPPCR_SWRST);




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