技术科普三轴传感器SC7A20三轴数据的格式转换问题
Posted 瑞奇Ricky
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了技术科普三轴传感器SC7A20三轴数据的格式转换问题相关的知识,希望对你有一定的参考价值。
近期笔者在研究资产监测设备升级的过程中,对三轴传感器的选择做了深入的研究。
三轴传感器作为资产监测设备中定位功能的重要部件,对最终设备的定位精准度具有较大影响。资产监测设备被广泛应用于生鲜冷链、医药品运输、危险化学品运输等情况,云息作为专业提供资产追踪方案的物联网公司,根据市场需求开发了资产跟踪设备、环境跟踪设备等,对于资产在运输过程中的状态与实时位置具有重要影响。
实时位置更新对于用户来说能够把握资产的实际状况,不仅能够对后期的运输规划做出提前的预判,同时当实际运动轨迹与规划不符时,用户可及时发现该问题并作出调整。为运输公司或需要进行资产监测的用户提供解决方案。
三轴传感器SC7A20介绍:
三轴传感器SC7A20是一款国产的高精度12bit数字的三轴加速度传感器,是士兰微电子的一款三轴微机械数字加速度计。具有体积小,功能丰富,精度高等特点。
其转换出来的三轴加速度数值分LSB和MSB存储于六个寄存器内,分别为:28、29、2A、2B、2C、2D,如下图:
这里需要特别注意,三轴数据是有正负之分的,所以加速度的数值是按照二进制补码形式存储于寄存器内的。同时在这里进行转换的时候需要去10位带符号的整型数据进行处理。手册提供处理办法如下:
代码实现如下:
/*
*param:
msb:寄存器高八位
lsb:寄存器低八位
range:量程
/
float convert_accd(uint8_t msb,uint8_t lsb,uint16_t range)
{
int16_t accd_value;
accd_value = (lsb + (msb<<8))>>6;
accd_value &= 0x03ff;
if(accd_value >> 9)//负数
{
accd_value &= 0x01ff;
accd_value = ~accd_value;
accd_value += 1;
accd_value &= 0x01ff;
accd_value = - accd_value;
}
return (accd_valuerange/1024.0);
}
当遇到SC7A20三轴数据的格式转换问题,可参考以上内容。
以上是关于技术科普三轴传感器SC7A20三轴数据的格式转换问题的主要内容,如果未能解决你的问题,请参考以下文章
资产监测设备中G-sensor芯片SC7A20 sleep耗流问题原因总结