起订量:
SMA-XXD单轴加速度计
免费会员
SMA-XXD单轴加速度计
能源 军事/航天 工业 | 特性
- ±2~±50g量程 - 单电源供电(5V±0.2) - 140Hz - LCC20陶瓷封装(8.9mm×8.9mm) - 单个标定(零位、标度因数) - 数字\模拟输出可选 - 高可靠性 - 符合RoHS要求,适用于无铅焊接工艺和SMD安装 |
|
SMA-XXD系列加速度计为单轴电容式MEMS加速度计,由全硅MEMS敏感结构和低功耗信号处理ASIC组成。
SMA-XXD由单电源供电(5V),典型功耗低(12mA)。输出为SPI协议数字信号或全差分模拟信号(共模电压2.5V),模拟输出满量程输出电压在0.5V到4.5V之间。该传感器采用了LCC20陶瓷管壳封装。
产品封装
产品采用标准LCC陶瓷管壳封装,共20个管脚,外形精确尺寸在下图给出。终产品质量0.60±0.02克。
SMA-XXD SMA-XXD SMA-XXD 敏感方向
电学性能
SMA-XXD | |
输入电压(VDD–VSS) | 5.0±0.2V |
输出电压范围(模拟端) | 输出电压介于 0.5 到 4.5 VDC 之间,(0g下典型值为2.5V ) |
工作电流消耗 | 电源电压为5.0 VDC 条件下,≤18mA |
初始电流消耗 | 初始化阶段输入电压为5.0 VDC 条件下,典型值为30mA |
温度传感器性能
SMA-XXD | |
输出 | 0LSB@25°C |
灵敏度(数字) | 67LSB/°C |
输出电压 | 2.5V@25°C |
灵敏度(模拟) | 8.4mv/°C |
注:上述指标均为典型值。
电气连接
传感器系统框图如下图所示:
建议在VDD和VSS之间采用10μF的去耦电容,连接位置尽可能靠近加速度计。*使用COG或X7R@5%类型的电容。
管脚 | 定义 | 类型 | 注释 |
1 | ACCOP | 模拟输出 | 加速度计差分正向输出 |
2 | TEMP | 模拟输出 | 温度传感器输出 |
3 | AVDD | 电源输入 | 电源电压,5.0V |
4 | AVSS | 接地 | 接地 |
5 | V4P5 | 模拟输出 | 内部参考电压,典型值4.5V,需外接100nF电容 |
6 | VCP | 模拟输出 | 内部高压参考电压,需外接100nF,25V以上耐压电容,建议使用耐压50V电容 |
7 | VSS_CP | 接地 | 高压电荷泵接地 |
8 | VDD_CP | 电源输入 | 高压电荷泵电源输入,5.0V |
9 | NC | -- | 空脚 |
10 | VPP | 模拟输入 | 内部配置,需悬空 |
11 | VDDL | 模拟输出 | 内部数字电源,典型值2.5V,需外接100nF电容 |
12 | DVSS | 接地 | 数字地,建议通过磁珠等与公共地相连 |
13 | MISO | 数字IO | SPI主机数据输入,从机数据输出 |
14 | MODE | 数字IO | 工作模式选择,内部下拉,MODE=0时为数字输出,MODE=1时为模拟输出 |
15 | MOSI | 数字IO | SPI主机数据输出,从机数据输入 |
16 | SCK | 数字IO | SPI从机时钟输入 |
17 | CSN | 数字IO | SPI从机片选信号 |
18 | VDDIO | 电源输入 | 数字IO电源,常用1.8V/2.5V/3.3V/5V,需保持与上位机通讯电平一致 |
19 | PD | 数字IO | 芯片系统使能,内部下拉,PD=1时系统失效 |
20 | ACCON | 模拟输出 | 加速度计差分负向输出 |
工作环境
SMA-XXD | |
工作温度范围 | -55°C至+125°C |
超声清洗 | 该产品不能用超声波清洗 |
ESD | HBM 2000V |
典型应用
焊盘尺寸
SMD安装
SMA-XXD产品符合RoHS要求,适用于无铅焊接工艺和SMD安装。加速度计必须被紧密固定于PCB板上,用封装壳体边缘作为参考平面,以保证良好的基准轴向。焊接LCC外壳产生的应力是MEMS高性能电容式仪表特别需注意的问题,为了获得良好的应力分布和较佳的*稳定性,加速度计所有引脚必须被焊接到PCB焊盘上。
数字接口
产品采用标准SPI四线制,Mode 0模式,以从机方式运行,数据长度8位。CSN设置为低,初始化通信,MOSI和MISO的数据变化必须同步于SCK下降沿,而主从采样输入必须同步于SCK的上升沿。
寄存器表
设备寄存器通过SPI接口访问、控制,SPI的配置状态时钟频不能高于5MHz,建议不高于200kHz。通过读取命令从地址0x51读出相应数据速率加速度输出和温度输出,读取状态SPI时钟频20MHz。
Addr | Bit | |||||||
HEX | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
51 | DRDY | ACC<23> | ACC<22> | ACC<21> | ACC<20> | ACC<19> | ACC<18> | ACC<17> |
ACC<16> | ACC<15> | ACC<14> | ACC<13> | ACC<12> | ACC<11> | ACC<10> | ACC<9> | |
ACC<8> | ACC<7> | ACC<6> | ACC<5> | ACC<4> | ACC<3> | ACC<2> | ACC<1> | |
ACC<0> | - | TEMP<13> | TEMP<12> | TEMP<11> | TEMP<10> | TEMP<9> | TEMP<8> | |
TEMP<7> | TEMP<6> | TEMP<5> | TEMP<4> | TEMP<3> | TEMP<2> | TEMP<1> | TEMP<0> | |
ERR<7> | ERR<6> | ERR<5> | ERR<4> | ERR<3> | ERR<2> | ERR<1> | ERR<0> | |
5E | READ_DATA ONLY | IIRBW<2> | IIRBW<1> | IIRBW<0> | OUTBW<2> | OUTBW<1> | OUTBW<0> | COMPSL |
用户可配置的寄存器地址为0x5E,配置内容包含数据输出格式、带宽以及是否采用片上温补数据。
用户可通过配置地址0x5E[3:1]:OUTBW和0x5E[6:4]:IIRBW改变输出信号带宽。
其中OUTBW为平均滤波器,可改变数据刷新率,降低高频噪声,其取值(DEC)对应的滤波器带宽如下:
Register | 0(default) | 1 | 2 | 3 | 4 | 5 | 6 | 7 |
OUTBW | 31.25KHz | 15.625KHz | 7.813KHz | 3.906KHz | 1.953KHz | 965Hz | 488Hz | 488Hz |
IIRBW为IIR滤波器,可改变系统整体环路带宽,其取值(DEC)对应的滤波器带宽如下:
Register | 0(default) | 1 | 2 | 3 | 4 | 5 | 6 | 7 |
IIRBW | None | 100Hz | 150Hz | 200Hz | 250Hz | 300Hz | 350Hz | 400Hz |
注:建议用户在满足所需的数据刷新率和系统带宽的前提下,尽量选择较低的滤波器带宽。
可通过配置0x5E[7] READ_DATAONLY,改变数据输出格式(详见下文数据读取)。
可通过配置0x5E[0] COMPSL=1屏蔽出厂温度补偿参数并自行配置,用户如需使用自己的参数通过产品本身进行温度补偿,请厂家以获得进一步。
数据读取
加速度数据输出为24bit,温度数据输出为14bit,在数位之前加入了1bit 的新数据标志位DRDY,外部SPI 主机可以同时读取加速度数据和温度传感器数据,客户根据自己所需采集的数据,参考下列格式进行配置及采集,DRDY在每个新数据的起始时被设置为’1’,当采样数据被读取后自动恢复为’0’,所以每个读取的加速度数据都应该判断DRDY以保证这是一个不重复的新数据,SPI的数据采样率应高于加速度数据输出速率以保证数据不会丢失,数据输出率为31.25KHz。SPI读取加速度数据命令形式:
Byte0 | Byte1~3/1~5 | Byte0 | Byte1~3/1~5 | Byte0 | Byte1~3/1~5 |
0xD1 | 5/3bytes 0x00 | 0xD1 | 5/3bytes 0x00 | …… | …… |
输出加速度数据和温度数据时的读取命令为:
8`hD1+40`h0000000000 (DRDY+ACC+ERR+TEMP)
数据输出形式如下:
只输出24bit数据时,寄存器REGL5E[7] READ_DATAONLY需配置为’1’:
例:0x5E+0x80 (仅配置5E[7]为’1’时)
此状态下读取命令形式为:
8`hD1+24`h000000 (ACC)
数据输出形式如下:
数据计算
采集到的加速度数据ACC为24位补码,温度数据TEMP为14位补码。以下说明以十进制(DEC)为例:
加速度计输出
根据ACC的实际值,终加速度输出AOUT由以下公式计算:
AOUT= | { | ACC-2^24, | ACC≥8388608 (2^23) |
ACC, | ACC<8388608 (2^23) |
终以g值为单位的加速度输出结果:
AOUT(g)=AOUT/K1, K1为数字模式下的标度因数(LSB/g)
温度输出
温度输出值以25°C为零位(典型值),根据TEMP的实际值,温度传感器输出TOUT由以下公式计算:
TOUT= | { | TEMP-2^14, | TEMP≥8192 (2^13) |
TEMP, | TEMP<8192 (2^13) |
终实际温度TEMP_ACT为:
TEMP_ACT=TOUT/67+25
注:温度传感器的值未经标定,不可作为测量温度值的传感器。
配置示例
若上电后无配置指令,则系统默认状态为:
1. 输出加速度信号和温度信号;
2. 数据输频率为31.25KHz,无平滑;
3. 系统响应无低通数字滤波;
4. 采用片上存储的温补数据对输出进行修正。
配置指令只需上电后发送一次,掉电失效。
以配置平均滤波器(OUTBW)选择2:7.813KHz,IIRBW为7:400Hz为例,即数据由31.25KHz平滑至7.813KHz,系统响应数字滤波器带宽为400Hz时(注:上述参数均为理论值):
OUTBW[2:0] = 0x02,
则寄存器5E[3:0] = 0x04 (此时COMPSL = 0,系统使用已存储的温度修正数据);
IIRBW[2:0] = 0x07,
则寄存器5E[7:4] = 0x07 (此时READ_DATAONLY = 0,系统输出加速度数据和温度数据);
故终需配置5E[7:0] = 0x74,
实际发送的配置指令如下(指令格式为“寄存器地址+指令”):
Byte0 | Byte1 |
0x5e | 0x74 |
程序示例
/* 首先配置数据输出格式与滤波器带宽,之后发送读取指令 */
/* 滤波器与数据输出格式配置内容见上文 */
WriteSize=2;
WriteData[0] = 0x5e;
WriteData[1] = 0x74;
SpiWriteRead (DeviceHandle, SPIHandle,
WriteSize, WriteData, &ReadSize, ReadData); //SPI发读库函数
/* 读取一次数据 */
WriteSize = 6; //发送数据长度
WriteData[0] = 0xd1; //读取指令
WriteData[1] = 0x00;
WriteData[2] = 0x00;
WriteData[3] = 0x00;
WriteData[4] = 0x00;
WriteData[5] = 0x00;
SpiWriteRead (DeviceHandle, SPIHandle,
WriteSize, WriteData,&ReadSize, ReadData); //采集原始数据后5个字节作为有效数据
/* 加速度计24位补码数据拼接,温度传感器 14位补码数据拼接 */
acc_trans[0] = ReadData[1] << 1 | ReadData[2] >> 7;
acc_trans[1] = ReadData[2] << 1 | ReadData[3] >> 7;
acc_trans[2] = ReadData[3] << 1 | ReadData[4] >> 7;
temp_trans[0] = ( ReadData[4] & 0x3f );
temp_trans[1] = ( ReadData[5] );
ACC[0] = acc_trans[0] * 256 * 256 + acc_trans[1] * 256 + acc_trans[2];
TEMP[0] = temp_trans[0] * 256 + temp_trans[1];
/* 24位加速度计数据与14位温度数据补码转换,方法不,若数据溢出,可根据实际情况调整 */
ACC[0] = (( ACC[0] << 8) >> 8 );
TEMP[0] = (( TEMP[0] << 18) >> 18 );