打印

版主以及各位高手帮忙

[复制链接]
1530|1
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
machunshui|  楼主 | 2008-5-31 09:19 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
微芯的mssp技术手册上写:

15.4.3.1 寻址
一旦使能了MSSP 模块,它就会等待启动条件产生。 在
启动条件出现后,8 位数据被移入SSPxSR 寄存器。在
时钟(SCLx)线的上升沿采样所有的输入位。 寄存器
SSPxSR<7:1> 的值会和SSPxADD 寄存器的值比较,
该比较是在第8 个时钟脉冲(SCLx)的下降沿进行的。
如果地址匹配,并且BF 位和SSPOV 位为零,会发生
下列事件:
1. SSPxSR 寄存器的值被装入SSPxBUF 寄存器。
2. 缓冲器满标志位BF 置1。
3. 产生ACK 脉冲。
4. 在第9 个SCLx 脉冲的下降沿,MSSP 中断标志
位SSPxIF 置位(如果允许中断则产生中断)。

即从机地址匹配时,缓冲器满标志位BF 置1,

但是从其手册上的从机发送的时序图来看,从机读地址匹配时,缓冲器满标志位BF 是清0的,

我用实际器件的情况是:
从机读地址匹配时,缓冲器满标志位BF 是置1的,和从机发送时序图不符合啊??????


哪位高手,做过pic的i2c从机,你们在从机读地址匹配的时候BF到底是0还是1啊????????????




沙发
machunshui|  楼主 | 2008-5-31 09:31 | 只看该作者

找到了问题的间接证明

见下面的论坛帖子的最后一个回复
http://www.mcubbs.com/bbs/viewthread.php?tid=4904

据说是个BUG.

即pic的读I2C从机时序图有bug,在接收到从机读地址时候,缓冲区满的标志BF应该等于1.

各位当心!
microchip的大量文档和例子,此处都是为0的.

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

153

主题

3224

帖子

4

粉丝