打印
[PIC®/AVR®/dsPIC®产品]

【CuriosityNano测评报告】+硬件I2C通讯实验

[复制链接]
533|1
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
hu9jj|  楼主 | 2021-1-23 15:18 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 hu9jj 于 2021-1-23 15:19 编辑

    模拟I2C测试通过后,我又对硬件I2C进行了测试。首先进入MCC进行配置,添加MSSP1:

    然后选择I2C(注意在MSSP1中是SPI和I2C二选一):


    为了配合扩展板,SDA选择RB4引脚、SCL选择RB6引脚:


    生成代码之后,会包含一个范例,范例提供了几个现成的函数可供调用:



    开始测试时调用这些函数编译时提示参数错误,弄了很久才明白I2C器件的地址应该是7位的,函数内会自动左移1位并加上读写操作位,例如对AT24C02进行操作时,I2C器件的地址不是0xA0(1010 0000),应该0x50(0101 0000),对应十进制是80,下面是测试的代码:
void AT24C02_Test(void)
{
    // 硬件I2C对AT24C02读写操作测试
    uint8_t val1,val2;
    val1 = I2C1_Read1ByteRegister( 80, 10);    //地址要用7位
    val2 = I2C1_Read1ByteRegister( 80, 11);
    LCD_write_value(0, 6, 3, 0, 1, val1);
    LCD_write_value(30, 6, 3, 0, 1, val2);
    I2C1_Write1ByteRegister( 80, 10, minute);
    I2C1_Write1ByteRegister( 80, 11, second);
    //I2C测试结束
}


    下面是测试过程的照片:


    从测试结果看,I2C并未读取到正确的数据,反复查找也未找到原因,为此还更换过IC也没有解决问题,通过逻辑分析仪抓取到的时序图,发出的波形是正确的,就是没有得到I2C器件的回应,祥见下图:




使用特权

评论回复
沙发
yangxiaor520| | 2021-1-25 19:33 | 只看该作者
这个开发板确实小巧精致啊

使用特权

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

本版积分规则

认证:Microchip
简介:让我们来为您提供帮助。我们可提供各种资源来帮助您解决一切问题。是否需要与我们的客户支持团队联系?您可以通过电话、在线聊天功能或电子邮件与他们联系。

151

主题

1059

帖子

11

粉丝