【DigiKey“智造万物,快乐不停”创意大赛】2.开始调试ADXL372加速度传感器
[复制链接]
- 阅读ADXL372资料
本来计划使用SPI接口来驱动ADXL372测试板,下载了板子的资料发现出厂默认为IIC,驱动都写了一半又改为IIC驱动。
确定IIC的读写地址,测试板上的SD0接GND,应该参看读写地址为0XA7和0XA6。
- 硬件连接
在开发板上选择两个IO做IIC接口,准备直接用IO口模拟IIC进行通信。
选择了PA0 和PA1做通讯接口。
- IIC驱动
IIC驱动都很常见,只要时序搞对了,调试起来相当快。开始调试读出来的值一直0XFF,通过示波器检查波形,发现发出的命令不对,查询设备ID应该发送0x00命令,检查发出的数据不对。
修改程序后测试正常。
- 读取ID测试
//初始化
uint8_t ADXL372_Init(void)
{
u8 ADXL372ID;
IIC_Init(); //初始化IIC总线
ADXL372ID = ADXL372_RD_Reg(ADXL372_DEVID);
printf("ADXL372ID:%x\r\n",ADXL372ID);
// if(ADXL372_RD_Reg(ADXL372_DEVID)==0XE5) //读取器件ID
// {
// ADXL372_WR_Reg(DATA_FORMAT,0X2B); //低电平中断输出,13位全分辨率,输出数据右对齐,16g量程
// ADXL372_WR_Reg(BW_RATE,0x09); //数据输出速度为100Hz
// ADXL372_WR_Reg(POWER_CTL,0x28); //链接使能,测量模式
// ADXL372_WR_Reg(INT_ENABLE,0x00); //不使用中断
// ADXL372_WR_Reg(OFSX,0x00);
// ADXL372_WR_Reg(OFSY,0x00);
// ADXL372_WR_Reg(OFSZ,0x00);
// return 0;
// }
return 1;
}
ID输出为0xAD,正常查询。
接下来就要按照手册和实际需求设置相关寄存器输出数据,然后按照4K的采样进行采集加速度数据。
总结
目前ADXL372的板子,已经调试完成,下一步按照需求设置寄存器,然后使用FFT等算法,计算得到被测设备的加速度,速度等参数。
|