[PIC®/AVR®/dsPIC®产品] 【CuriosityNano测评报告】+硬件I2C通讯实验

[复制链接]
754|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,下面是测试的代码:
  1. void AT24C02_Test(void)
  2. {
  3.     // 硬件I2C对AT24C02读写操作测试
  4.     uint8_t val1,val2;
  5.     val1 = I2C1_Read1ByteRegister( 80, 10);    //地址要用7位
  6.     val2 = I2C1_Read1ByteRegister( 80, 11);
  7.     LCD_write_value(0, 6, 3, 0, 1, val1);
  8.     LCD_write_value(30, 6, 3, 0, 1, val2);
  9.     I2C1_Write1ByteRegister( 80, 10, minute);
  10.     I2C1_Write1ByteRegister( 80, 11, second);
  11.     //I2C测试结束
  12. }


    下面是测试过程的照片:


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




本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
yangxiaor520 发表于 2021-1-25 19:33 来自手机 | 显示全部楼层
这个开发板确实小巧精致啊
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

151

主题

1063

帖子

11

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