相关商品

浏览历史

当前位置: 首页 > 传感器常见问题 > ADXL345采用I2C模式与VC5509A接口
ADXL345采用I2C模式与VC5509A接口
传感器商城 研发商城 / 2012-12-23

 VC5509A包含I2C外设接口,可以方便的与ADXL345通信。在调试中,使用了实验室自制的DSP主板SDUST VC5509A V1.1。该板的JP2扩展接口引出了I2C总线。该主板上也使用I2C总线完成与AIC23B的配置,但由于I2C总线可挂置多个外设,所以无需再连接一片ADXL345,不会有影响。

由于ADXL345不容易焊接,所以在买芯片时也购买了飞拓电子的PCB板。在该PCB板上已经添加了去耦电容、上拉电阻等。下图为VC5509A主板与ADXL345模块的连线示意图。

ADXL3455509A主板连线(I2C)示意图

分析原理图,ADXL345需要3.3V供电,直接使用5509A主板来提供,而不使用345小板上的5V转换,所以5V引脚空缺即可。CS引脚悬空,因为在模块中已经将其上拉,表示采用I2C模式通信。将SDO下拉,I2C地址为0x53(若上拉,I2C地址为1D)。将INT1n输出与主板的INT0n相连,将SDASCL线对应连接。图中标注的U1引脚为5509A主板上扩展口JP2对应的引脚编号。

下图为完整的原理图:

ADXL3455509A主板连线(I2C)原理图

调试要点小结:

1ADXL345的中断默认是高电平有效,而5509A默认是低电平有效,所以开始要修改一下。通过设置DATA_FORMAT(0x31)寄存器中的DATA_INVERT位,将其置1即表示低电平有效。

2)修改CPLD代码,将INT0输出由1改为高阻抗。

3)可通过读取寄存器DEVID,来判断I2C读是否正常。该寄存器的数据固定为0xE5,若数据读取正确,则表明I2C读取函数编写无误。

4)连续读取寄存器,会出现总线忙的错误,需要在读取数据完毕后添加一必要的延时。

5)调试总结发现,虽然5509A的手册中写明外部中断是低电平有效的,但实际应为下降沿有效。由于ADXL345运行状态的不确定性,在使能中断前,INT1输出就可能已经拉低了。这时即便使能外部中断,也无法按预想的进入中断子程序。需要想办法将INT1   清除一次,这样才有机会触发中断。所以在中断使能后,通过读取寄存器的方式来实现清除中断,以触发中断循环。

6)发现CSL中的I2C读写函数相当耗费时间。观察其大约占用380000个指令周期,在144MHz的速率下,大约消耗2.6ms。而设定的ADXL345的数据输出速率为200Hz,远远跟随不上。在每个中断中,至少需要7个读写指令,单纯这部分的耗时就达到了18.2ms。也就是说当使用I2C总线时,ADXL345的数据输出速率最高只能设为50Hz

7)最后测试,将速率设置为25Hz,通过示波器观察中断,大约40ms中断一次,对应25Hz。中断的低电平时间基本一致,说明能够规律的进入中断。将速率设置为50Hz,观察中断,大约20ms中断一次,对应50Hz。进入中断也比较规律。当设置为100Hz时,中断不再呈现周期性,低电平保持时间也不一致。说明出现了中断嵌套的现象。与推断一致。

程序编写展望:

1)将I2CDMA结合,可提高数据读写的效率。此种方式需要读、写语句之间的配合,使用DMA方式是否容易实现?

2)根据情况,直接修改CSL中对应的代码,减小I2C_writeI2C_read函数的耗时

 

转自:http://blog.21ic.com/user1/8225/index.html


本文标题: ADXL345采用I2C模式与VC5509A接口
本文地址: http://www.rdbuy.cn/article-147.html
本文标签: ADXL345采用I2C模式与VC5509A接口

用户评论(共0条评论)

  • 暂时还没有任何用户评论
总计 0 个记录,共 1 页。 第一页 上一页 下一页 最末页
用户名: 游客
E-mail:
评价等级:
评论内容:

挑选商品 > 确认购买 > 网上支付/货到付款 > 验货满意 > 点评商品

原装正品 金牌服务 购物有保障
  • 放心:我们的任何商品,均为原装正品
  • 舒心:倾力为您打造人性化的购物平台
  • 省心:把麻烦交给我,把快乐网购交给您
新手上路
售后流程
购物流程
订购方式
配送与支付
货到付款区域
配送支付智能查询
支付方式说明
会员中心
资金管理
我的收藏
我的订单
服务保证
退换货原则
售后服务保证
产品质量保证
联系我们
网站故障报告
选机咨询
投诉与建议