ADXL345调试笔记

ADXL345的调试也很简单,下面我们简单的认识一下这个图吧,如图,VSS是ADXL345的电源,其内部的模拟电路,传感器都由这个电源供应,因此他的噪声也希望越小越好。在这里,为了简化电路,可以把VDD接在VSS,每个管脚附近都放置一个低ESR的陶瓷电容器。

 

可采用和SPI数字通信。

上述两种情况下,ADXL345作为从机运行。CS引脚上拉至VDD I/O,I2C模式使能。CS引脚应始终上拉至VDD I/O或由外部控制器驱动,因为CS引脚无连接时,默认模式不存在。因此,如果没有采取这些措施,可能会导致该器件无法通信。SPI模式下,CS引脚由总线主机控制。SPI和I2C两种操作模式下,ADXL345写入期间,应忽略从ADXL345传输到主器件的数据。

如果采用SPI接口的话,CS需要由主机来控制。这里我采用了IIC接口。使用I2C时,CS引脚必须连接至VDD I/O,ALT ADDRESS引脚必须连接至任一VDD I/O或接地。ALT管脚引脚处于高电平,器件的7位I2C地址是0x1D,随后为R/W位。这转化为0x3A写入,0x3B读取。通过ALT引脚(引脚12)接地,可以选择备用I2C地址0x53(随后为R/W位)。这转化为0xA6写入,0xA7读取。这一点需要特别注意,特别是自己写驱动的时候,如果注意不到,那么肯定会不对的。 

IIC的驱动函数看各自的平台,我采用的LM3S811。驱动程序采用了TI的驱动库,主要有以下几个子函数,详细可以参考LM3S的库。 

//  定义I2C主机结构体

typedef struct

{

    unsigned char ucSLA;            //  从机地址(这是7位纯地址,不含读写控制位)

    unsigned long ulAddr;           //  数据地址

    unsigned char *pcData;                   //  指向收发数据缓冲区的指针

    unsigned int uiSize;

} tI2CM_DEVICE; 

extern  void I2CM_Error(unsigned long ulStatus)          ; 

//  对tI2CM_DEVICE结构体变量初始化设置所有数据成员

extern void I2CM_DeviceInitSet(tI2CM_DEVICE *pDevice, unsigned char ucSLA,

                                                      unsigned long ulAddr,

                                                      unsigned char *pcData,

                                                                                                                           unsigned int uiSize); 

//  对tI2CM_DEVICE结构体变量设置与数据收发相关的成员(数据地址、数据缓冲区、数据大小)

extern void I2CM_DeviceDataSet(tI2CM_DEVICE *pDevice, unsigned long ulAddr,

                                                      unsigned char *pcData,

                                                                                                                           unsigned int uiSize); 

//  I2C主机初始化

extern void I2CM_Init(void); 

//  I2C主机发送或接收数据

extern unsigned long I2CM_SendRecv(tI2CM_DEVICE *pDevice, tBoolean bFlag); 

//  定义宏函数:发送数据

#define  I2CM_DataSend(pDevice)    I2CM_SendRecv(pDevice, false) 

//  定义宏函数:接收数据

#define  I2CM_DataRecv(pDevice)    I2CM_SendRecv(pDevice, true)

永不止步步 发表于03-28 09:57 浏览65535次
分享到:

已有0条评论

暂时还没有回复哟,快来抢沙发吧

添加一条新评论

只有登录用户才能评论,请先登录注册哦!

话题作者

永不止步步
金币:67417个|学分:363791个
立即注册
畅学电子网,带你进入电子开发学习世界
专业电子工程技术学习交流社区,加入畅学一起充电加油吧!

x

畅学电子网订阅号