c语言sscanf函数的用法是什么
254
2022-11-04
ADXL345采用I2C模式与tms320vc5509A接口
ADXL345与5509A主板连线(I2C)示意图
分析原理图,ADXL345需要3.3V供电,直接使用5509A主板来提供,而不使用345小板上的5V转换,所以5V引脚空缺即可。CS引脚悬空,因为在模块中已经将其上拉,表示采用I2C模式通信。将SDO下拉,I2C地址为0x53(若上拉,I2C地址为1D)。将INT1n输出与主板的INT0n相连,将SDA和SCL线对应连接。图中标注的U1引脚为5509A主板上扩展口JP2对应的引脚编号。
下图为完整的原理图:
ADXL345与5509A主板连线(I2C)原理图
调试要点小结:
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。
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~