嵌入式开发者社区

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

作者: wwfdzh2012    时间: 2017-4-24 17:41
标题: uPP与I2c的问题
本帖最后由 wwfdzh2012 于 2017-4-29 15:31 编辑
& T; K8 e' p6 t: E! H1 G
/ l' [8 L9 V3 J) z/ R2 X) c$ g$ U在使用过程中出现只要uPP在工作,i2c的通信就会出现不稳定现象,通信不可靠,请问uPP跟I2c的硬件资源是否有共用的地方?% v! t' v' K% }+ P

作者: wwfdzh2012    时间: 2017-4-25 09:23
没人吗?????
作者: IRONMAN    时间: 2017-4-25 11:32
是不是时钟有冲突
作者: wwfdzh2012    时间: 2017-4-25 11:34
IRONMAN 发表于 2017-4-25 11:32
  n5 L# y$ F3 C是不是时钟有冲突
5 T  r# \- i) W# a0 h6 t
请问怎么排除?
作者: wwfdzh2012    时间: 2017-4-25 11:38
IRONMAN 发表于 2017-4-25 11:32. Y6 {6 \* o* A  S
是不是时钟有冲突

7 V0 w& }: I+ c( Z  S4 oI2C和Upp的时钟会冲突吗,不明白您说的意思?
作者: IRONMAN    时间: 2017-4-25 12:14
wwfdzh2012 发表于 2017-4-25 11:38
4 u& P0 q. J# c% r% n4 v! nI2C和Upp的时钟会冲突吗,不明白您说的意思?
5 i( L# ^0 E% M4 c: P2 J* N  i
你看他们的时钟有没有关联,可能是两个一起用的时候没有注意时钟频率一致
作者: wwfdzh2012    时间: 2017-4-25 13:35
IRONMAN 发表于 2017-4-25 12:14
% M& f$ J$ H# T& t% i你看他们的时钟有没有关联,可能是两个一起用的时候没有注意时钟频率一致 ...

* B* F: ]: N7 k; T: G我看了datasheet,两者的时钟并没有关联呀,麻烦您再帮忙排错一下3 Y% u+ t9 ?' S7 [( S

作者: human    时间: 2017-4-25 14:37
裸机情况下建议I2C使用查询方式,中断的话可能会跟upp冲突的。
作者: wwfdzh2012    时间: 2017-4-25 14:43
human 发表于 2017-4-25 14:37, O3 m/ p6 S7 F$ t3 e# f
裸机情况下建议I2C使用查询方式,中断的话可能会跟upp冲突的。

( @: w: @) D) H9 L7 @, ?) C8 U% i0 h9 puPP与i2c都是用轮询的
作者: wwfdzh2012    时间: 2017-4-29 15:31
问题解决了,确实是复位uPP会影响到I2C的通信,导致I2C的通信产生很大延迟(约1ms),不重新配置Upp而是重新配置DMA就可以解决,不知道是怎么影响的,影响I2C的语句:# I7 h' B5 G- @% D# s' D! A
7 }  T" `. G+ z$ m( M
//reset uPP& u* A+ N! O1 }2 T; Q1 P* _
SETBIT(UPP->UPPCR, UPP_UPPCR_SWRST);4 H% V8 e4 \! z, x( y
1 J9 a9 D, Z9 M8 ^2 h6 b
for(i = 0; i < 200; i++){}; //wait 200 clock cycles for reset./ I9 o- U% t/ @$ K# ~3 T- F
CLRBIT(UPP->UPPCR, UPP_UPPCR_SWRST);




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