嵌入式开发者社区

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

作者: wwfdzh2012    时间: 2017-4-24 17:41
标题: uPP与I2c的问题
本帖最后由 wwfdzh2012 于 2017-4-29 15:31 编辑
) k! Q4 P  {% s0 J$ s- `7 u. O- X9 P
在使用过程中出现只要uPP在工作,i2c的通信就会出现不稳定现象,通信不可靠,请问uPP跟I2c的硬件资源是否有共用的地方?
6 d2 Y' k/ k) f: d6 g
作者: wwfdzh2012    时间: 2017-4-25 09:23
没人吗?????
作者: IRONMAN    时间: 2017-4-25 11:32
是不是时钟有冲突
作者: wwfdzh2012    时间: 2017-4-25 11:34
IRONMAN 发表于 2017-4-25 11:32' m: P- F" x2 j& O5 f! @5 i
是不是时钟有冲突

) m& T4 n# |# u0 n9 a请问怎么排除?
作者: wwfdzh2012    时间: 2017-4-25 11:38
IRONMAN 发表于 2017-4-25 11:32
! B" e) s' a& g* L是不是时钟有冲突
9 E5 [2 L3 A5 k% r, H
I2C和Upp的时钟会冲突吗,不明白您说的意思?
作者: IRONMAN    时间: 2017-4-25 12:14
wwfdzh2012 发表于 2017-4-25 11:38
+ ~1 o. K& z* B% P7 bI2C和Upp的时钟会冲突吗,不明白您说的意思?

' L4 A: Z3 M; g; J你看他们的时钟有没有关联,可能是两个一起用的时候没有注意时钟频率一致
作者: wwfdzh2012    时间: 2017-4-25 13:35
IRONMAN 发表于 2017-4-25 12:147 N) V7 k/ e& n2 d6 @: [% u
你看他们的时钟有没有关联,可能是两个一起用的时候没有注意时钟频率一致 ...
  J) j" R8 L+ f7 q" u( J1 w
我看了datasheet,两者的时钟并没有关联呀,麻烦您再帮忙排错一下7 t$ Z& h! Z% X  {) [

作者: human    时间: 2017-4-25 14:37
裸机情况下建议I2C使用查询方式,中断的话可能会跟upp冲突的。
作者: wwfdzh2012    时间: 2017-4-25 14:43
human 发表于 2017-4-25 14:37; [' n- @! I. @& ?
裸机情况下建议I2C使用查询方式,中断的话可能会跟upp冲突的。
* f$ }5 j; }+ P5 p/ h
uPP与i2c都是用轮询的
作者: wwfdzh2012    时间: 2017-4-29 15:31
问题解决了,确实是复位uPP会影响到I2C的通信,导致I2C的通信产生很大延迟(约1ms),不重新配置Upp而是重新配置DMA就可以解决,不知道是怎么影响的,影响I2C的语句:* _) n; E8 T: ~

1 }. A: |) H& i6 I# G3 d//reset uPP
! ?+ U" D$ M! h, a6 r$ R4 hSETBIT(UPP->UPPCR, UPP_UPPCR_SWRST);
: v8 S$ P) L7 D6 r  a7 u4 D$ A- p
+ B( h4 r" x( F( G7 f# d# |% N# ^for(i = 0; i < 200; i++){}; //wait 200 clock cycles for reset.
0 R$ b8 b7 k; q' @1 p' }CLRBIT(UPP->UPPCR, UPP_UPPCR_SWRST);




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