嵌入式开发者社区

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

作者: wwfdzh2012    时间: 2017-4-24 17:41
标题: uPP与I2c的问题
本帖最后由 wwfdzh2012 于 2017-4-29 15:31 编辑
6 R$ b6 j- P9 X& R6 o
1 z4 u4 O; M+ L1 S' o在使用过程中出现只要uPP在工作,i2c的通信就会出现不稳定现象,通信不可靠,请问uPP跟I2c的硬件资源是否有共用的地方?# g" D3 x  d  m8 Y) {2 W" [

作者: wwfdzh2012    时间: 2017-4-25 09:23
没人吗?????
作者: IRONMAN    时间: 2017-4-25 11:32
是不是时钟有冲突
作者: wwfdzh2012    时间: 2017-4-25 11:34
IRONMAN 发表于 2017-4-25 11:32+ }* ^1 e* s2 C' D( E
是不是时钟有冲突

2 O) x9 L7 X$ `/ V. y请问怎么排除?
作者: wwfdzh2012    时间: 2017-4-25 11:38
IRONMAN 发表于 2017-4-25 11:32
6 R/ p, s3 p" U% ?2 d( l是不是时钟有冲突
7 B7 Q8 C: K7 a* M
I2C和Upp的时钟会冲突吗,不明白您说的意思?
作者: IRONMAN    时间: 2017-4-25 12:14
wwfdzh2012 发表于 2017-4-25 11:38+ O) i' z/ a  D5 X5 ^6 b1 V1 K
I2C和Upp的时钟会冲突吗,不明白您说的意思?

. T  I1 @( Q& Q你看他们的时钟有没有关联,可能是两个一起用的时候没有注意时钟频率一致
作者: wwfdzh2012    时间: 2017-4-25 13:35
IRONMAN 发表于 2017-4-25 12:14
, {' U6 Z0 n; X$ ]4 S你看他们的时钟有没有关联,可能是两个一起用的时候没有注意时钟频率一致 ...
# g. I! j4 P2 G7 V+ ~
我看了datasheet,两者的时钟并没有关联呀,麻烦您再帮忙排错一下
8 e9 j: T  k( |; o& z
作者: human    时间: 2017-4-25 14:37
裸机情况下建议I2C使用查询方式,中断的话可能会跟upp冲突的。
作者: wwfdzh2012    时间: 2017-4-25 14:43
human 发表于 2017-4-25 14:37
" r) w' X/ W7 d4 @裸机情况下建议I2C使用查询方式,中断的话可能会跟upp冲突的。

: T0 W) p1 b* QuPP与i2c都是用轮询的
作者: wwfdzh2012    时间: 2017-4-29 15:31
问题解决了,确实是复位uPP会影响到I2C的通信,导致I2C的通信产生很大延迟(约1ms),不重新配置Upp而是重新配置DMA就可以解决,不知道是怎么影响的,影响I2C的语句:
6 k. _0 C$ v: I% q+ l& w/ _" L
+ e8 |1 m, E- c4 j& n% a" O//reset uPP( U4 m2 I7 G( e- `+ V( Z
SETBIT(UPP->UPPCR, UPP_UPPCR_SWRST);( \0 t3 g1 Z' c' u- o. d
) q( G' v" f* ^2 k7 g$ `
for(i = 0; i < 200; i++){}; //wait 200 clock cycles for reset.( L1 z* i2 z2 m% ?4 z6 p% S, z
CLRBIT(UPP->UPPCR, UPP_UPPCR_SWRST);




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