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 );