查看: 882|回复: 16
打印 上一主题 下一主题

ADXL345使用技巧

[复制链接] qrcode

0

主题

6

帖子

16

积分

新手上路

Rank: 1

积分
16
楼主
发表于 2015-6-30 02:52 AM | 显示全部楼层
ADXL345和微控制器之间的电路连接非常简单。由ADXL345和微控制器ADuC7026组成。给出了ADXL345和ADuC70262之间的典型电路连接。ADXL345的\CS管脚接高电平,表示ADXL345工作在I2C模式。SDA和SCL是I2C总线的数据线和时钟线,分别连接到ADuC7026相应的I2C总线管脚。ADuC7026的一个GPIO管脚连接到ADXL345的ALT管脚,用来选择ADXL345的I2C地址。ADXL345的INT1管脚连接到ADuC7026的IRQ输入用来产生中断信号。说到了I2C,就说下有关I2C的东西吧!对于I2C总线协议,无论读写,I2C的SDA信号线上送出的第一个字节一定是SLAVE ADDRESS+WRITE。如果这里配置错了,那么数据就是一直读不出来的。读取ADXL345内部寄存器的读写操作时以字节为单位的,而两个字节之间的CS-n,SCLK一直保持有效。在读取寄存器的时候,先要读取内部地址0x00的DEVID,正确之后再进行其他寄存器的操作。因为一个器具具有唯一的ID号,而对这个ID号的读取时首要的任务。

在通信模式和硬件连接的电路中,要注意几点:

1 cs-n必须要上拉到VDD才能启动I2C总线模式
2 SDA和SCL需要上拉电阻
3 SDA在FPGA的IO配置时,要将其配置为inout类型
4 注意ALT-ADDRESS的连接方式与对应的设备从地址是不同的底层驱动的调试是件很头疼的事情,最关键的是对时序的理解。下面是一些经验总结:

1)应当确保硬件连线的正确性。比如,在调试I2C模式时,先确定DSP板的I2C接口正常;如果开始也能确保ADXL345模块正常,那就能将错误定位在软件上,问题就容易解决多了。
2)要确保拿到通信双方器件的正确时序图。合理的配置主控器件,使双方的时序一致。
3)搜索一些参考例子,在其基础上修改,这样也可加快调试的进度。
4)调试中,尽量寻找发现异常现象,分析可能的原因。据此,修改电路或者程序,尝试凸显问题,印证推断。同时,不断记录总结现象和实际原因,日积月累,经验会不断增加。
回复 支持 反对

使用道具 举报

0

主题

6

帖子

16

积分

新手上路

Rank: 1

积分
16
沙发
发表于 2016-1-3 08:31 AM | 显示全部楼层
您好。I2C的连接请参考数据手册图40。注意上拉电阻,GND需要连接。                                                                                                                                                                       
回复 支持 反对

使用道具 举报

0

主题

6

帖子

16

积分

新手上路

Rank: 1

积分
16
板凳
发表于 2016-1-3 12:49 PM | 显示全部楼层
你好! “Activity和Inactivity中断,分成两个工作方式,一个是AC、一个是DC,这两个工作方式对应的工作方式是不同的,AC对应的是新的采样点将以之前的某个采样点为参考,用两个采样点的差值与门限进行比较,来判断是否发生中断。”这段话中“之前的某个采样点”具体指哪个点?是模块上电时还是活动中断使能开启时??加入中断了,通过读寄存器INT_SOURCE和ACT_TAP_STATUS清中断后。采样点值得选取是否发生改变??期待您给予指点。谢谢!!                                                                                                                                                                       
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表