资讯详情

FPGA读取ADXL345

  1. 最近在利用FPGA读取ADXL参考网络上的一些资源后,使用345数据IIC将ADXL读取345数据,并通过串口发送到串口助手显示。关键是要把它读出来ADXL在345数据读取过程中,将读取的负原始数据转换为正值,便于处理。
  2. 因为在负数转换为正数的过程中FPGA中负数以补码的形式存储,因此在转换为正数的过程中,首先将数据扩展到n 1位,n表示要转换的数据的位数,1是扩展的符号位。然后取反加1将数据转换为正数,或直接在扩展数据之前添加-。代码如下:
reg [16:0] x_data; reg [16:0] y_data; reg [16:0] z_data; always@(posedge sys_clk or negedge sys_rst_n)begin   if(!sys_rst_n)begin    x_data<=17'b0;    y_data<=17'b0;    z_data<=17'b0;   end   else begin     if(ACC_X_DATA[15]==1'b1)begin x_data<=-{ 
       ACC_X_DATA[15],ACC_X_DATA};end     else begin x_data<={ 
       ACC_X_DATA[15],ACC_X_DATA};end     if(ACC_Y_DATA[15]==1'b1)begin y_data<=-{ 
       ACC_Y_DATA[15],ACC_Y_DATA};end     else begin y_data<={ 
       ACC_Y_DATA[15],ACC_Y_DATA};end     if(ACC_Z_DATA[15]==1'b1)begin z_data<=-{ 
       ACC_Z_DATA[15,ACC_Z_DATA};end
    else begin z_data<={ 
       ACC_Z_DATA[15],ACC_Z_DATA};end
  end
end
  1. 数据处理之后,利用signalTap抓取的数据如下,此时ADXL345模块处于静止平放状态。 SignalTap抓取数据图 从图中可以看出采集的数据X轴的为0X0010,Y轴的数据为0X0000,Z轴的数据为0X00E8。因为静止平放状态,所以X轴,Y轴的加速度基本为0g,而Z轴的加速度由于地球重力加速度的影响约为1g。 串口助手显示的数据如图所示 工程文件传送门

标签: 传感器adxl001加速度传感器adxl345

锐单商城拥有海量元器件数据手册IC替代型号,打造 电子元器件IC百科大全!

锐单商城 - 一站式电子元器件采购平台