版主以及各位高手帮忙

[复制链接]
2082|1
 楼主| machunshui 发表于 2008-5-31 09:19 | 显示全部楼层 |阅读模式
微芯的mssp技术手册上写:<br /><br />15.4.3.1&nbsp;寻址<br />一旦使能了MSSP&nbsp;模块,它就会等待启动条件产生。&nbsp;在<br />启动条件出现后,8&nbsp;位数据被移入SSPxSR&nbsp;寄存器。在<br />时钟(SCLx)线的上升沿采样所有的输入位。&nbsp;寄存器<br />SSPxSR&lt7:1&gt&nbsp;的值会和SSPxADD&nbsp;寄存器的值比较,<br />该比较是在第8&nbsp;个时钟脉冲(SCLx)的下降沿进行的。<br />如果地址匹配,并且BF&nbsp;位和SSPOV&nbsp;位为零,会发生<br />下列事件:<br />1.&nbsp;SSPxSR&nbsp;寄存器的值被装入SSPxBUF&nbsp;寄存器。<br />2.&nbsp;缓冲器满标志位BF&nbsp;置1。<br />3.&nbsp;产生ACK&nbsp;脉冲。<br />4.&nbsp;在第9&nbsp;个SCLx&nbsp;脉冲的下降沿,MSSP&nbsp;中断标志<br />位SSPxIF&nbsp;置位(如果允许中断则产生中断)。<br /><br />即从机地址匹配时,缓冲器满标志位BF&nbsp;置1,<br /><br />但是从其手册上的从机发送的时序图来看,从机读地址匹配时,缓冲器满标志位BF&nbsp;是清0的,<br /><br />我用实际器件的情况是:<br />从机读地址匹配时,缓冲器满标志位BF&nbsp;是置1的,和从机发送时序图不符合啊??????<br /><br /><br />哪位高手,做过pic的i2c从机,你们在从机读地址匹配的时候BF到底是0还是1啊????????????<br /><br /><br /><br /><br />
 楼主| machunshui 发表于 2008-5-31 09:31 | 显示全部楼层

找到了问题的间接证明

见下面的论坛帖子的最后一个回复<br />http://www.mcubbs.com/bbs/viewthread.php?tid=4904<br /><br />据说是个BUG.<br /><br />即pic的读I2C从机时序图有bug,在接收到从机读地址时候,缓冲区满的标志BF应该等于1.<br /><br />各位当心!<br />microchip的大量文档和例子,此处都是为0的.
您需要登录后才可以回帖 登录 | 注册

本版积分规则

153

主题

3224

帖子

4

粉丝
快速回复 在线客服 返回列表 返回顶部