你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

【STWINKT1B评测】2.初步测试IIS3DWB振动传感器

[复制链接]
jundao721 发布时间:2024-7-30 21:42
      根据AN5444应用笔记介绍,IIS3DWB是一款高性能MEMS三轴振动传感器,具有超宽带宽低噪声等特点,SPI标准接口输出。具体的介绍可参考AN5444应用笔记。本次先对该传感器有个初步的数据读取测试,关于滤波等后面学习时再添加。
5 Z1 P2 C# b  o5 E" Q     原理图关于该部分的说明,如图1所示:
/ u! u: P9 G- }0 j2 l6 I 2-2.JPG / ^* N, p) S6 b; p; _
图1
$ p# `( d( S: Z5 C
. k% y  v' G, w& H    先使用CubeMx建立工程,时钟等正常配置即可,因为要使用SPI通讯,所以引脚配置如图2:3 p3 K7 V) k# _8 X4 x" x# @
1 H* M( _/ J7 h, @
2-3.JPG
  N& \$ R- p5 J: F+ T1 P
( i$ ~( T# p; M* B
图2" ?& A* [( j( [" t. m  _" x
   SPI外设参数的基本配置如图3:/ x- j% w5 l/ D& S& S3 t
2-4.JPG
  w0 ~+ m  |+ S, S9 e: f" u
- H" i' z, v  |
图3& W  f5 c+ s* N. A' S  g, u/ T4 B
  然后生成项目。在官方提供的文件中有IIS3DWB的驱动,4个文件,如图4所示:
/ H) F) V8 I) q. h4 ?) M 2-5.JPG 8 L1 v  I- u; O0 g6 a0 l3 v3 ^
8 f: x6 c- b  P7 D4 Z
图4( v$ V9 p8 F. g6 T" D2 N  K. p
  例程是参考官方github中提供的参考例程,修改了一下,增加了温度读取。初始化如下:
5 k8 s% d, D# A5 }$ L( C
  1. dev_ctx.write_reg = platform_write;7 N- U% |  b) E  f2 [: a
  2. dev_ctx.read_reg = platform_read;6 t3 ]6 M: X" [) I
  3. dev_ctx.handle = &hspi3;4 y9 e3 E  I* s* ?% J
  4. : q! a3 ]  b  G, H" Y7 m. R2 e
  5. HAL_Delay (10);. t7 j8 t3 w5 z* n: p" P
  6. iis3dwb_device_id_get(&dev_ctx, &whoamI);: G6 |8 i$ p6 T3 G3 S- d- t4 U
  7. // 复位设备* w0 s' C4 F- w9 X: s
  8. iis3dwb_reset_set(&dev_ctx, PROPERTY_ENABLE);* d0 _$ T2 T% R' i/ S. h
  9. // 配置加速度计
    7 H! X1 a2 `6 C; f
  10. iis3dwb_block_data_update_set(&dev_ctx, PROPERTY_ENABLE);3 r/ c$ t, u7 ?1 e7 y+ }; V
  11. iis3dwb_xl_data_rate_set(&dev_ctx, IIS3DWB_XL_ODR_26k7Hz);
    9 W4 N- a$ j" m6 w' C
  12. iis3dwb_xl_full_scale_set(&dev_ctx, IIS3DWB_2g);
复制代码
3 @% @. A0 {& E8 W
0 W6 i! Z& {9 ?+ G$ p  B
  对于加速度值和温度的读取程序如下:
1 O4 _0 X' w5 p# e# x( K
  1.   // 读取加速度数据
    , ]: q. h' |( D; }
  2.    , I* Y; u/ O/ R3 D. F& }0 }
  3.         iis3dwb_xl_flag_data_ready_get(&dev_ctx, &drdy);//读取状态值
    3 g7 j: j3 c* |: A" z9 w
  4.         if (drdy) {
    : J  C7 D( m; i- x% T3 H
  5.            
    - g+ z1 f& \; U4 Q0 G! Z
  6.             iis3dwb_acceleration_raw_get(&dev_ctx, data_raw);* @$ R% y% k, q5 e! F
  7.             
    , t  p5 Y4 E3 T( X$ j
  8.             acceleration_mg[0] = iis3dwb_from_fs2g_to_mg(data_raw[0]);0 i+ `& k9 b* r0 i
  9.             acceleration_mg[1] = iis3dwb_from_fs2g_to_mg(data_raw[1]);% v: w$ x5 Q$ N8 y* t. s7 P
  10.             acceleration_mg[2] = iis3dwb_from_fs2g_to_mg(data_raw[2]);. O; s1 Z$ P8 _5 {& L
  11.         }0 O: ^4 [; D, z9 J
  12.                 iis3dwb_read_reg (&dev_ctx ,IIS3DWB_OUT_TEMP_L ,temp_data ,2);
    3 b: z# A1 W% p& g7 `
  13.                 temp_raw = (int16_t )((temp_data [1]<<8) | temp_data[0]);0 ]5 ^. y. A1 C. y0 e2 w" f! K. `
  14.                 temp_cel = temp_raw /256+25;
    5 @* X$ y7 q8 u! Q2 I( }+ c* k& _
  15. , D- t  x8 [  B. U
  16.         HAL_Delay(1000); // 每秒读取一次数据
复制代码
  1. / X1 I, F  K/ P2 U) V* M2 d' ^
复制代码

: s, r) Y+ K) l, J0 U' w) h
1 o6 c' \3 `" j, v  p  测试结果如图5所示:& f; x# A7 y% H& y4 `
2-1.JPG
7 L. L: f% k0 ?4 t$ p

- V1 ~' n) s" I7 V* v9 [4 K; f: b图5
6 v; J  S. D4 h% J" E/ ~# {Device ID和温度值是正确的,滤波,FIFO等功能的增加一边理解一边添加测试。4 a- k% u3 e. ~( [' b0 q

' O4 P/ E4 l5 q% V0 [0 u3 w, O6 ~( P6 X3 u4 {+ e# N" F8 j1 o
收藏 评论0 发布时间:2024-7-30 21:42

举报

0个回答
关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版