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

STWINKT1B评测】4.测试板载ISM330DHCX(6轴)

[复制链接]
jundao721 发布时间:2024-8-10 22:42
      过节吃完饭,回来继续测试板载传感器。本次测试ISM330DHCX,3轴加速度+3轴陀螺仪传感器,读Datasheet发现,是带嵌入式机器学习内核的,这部分还没有测试,趁这会先把基本功能测试一下。读完datasheet,了解个大概,看原理图,如图1所示:8 E3 {- I' w3 o: p$ l
4-2.JPG ! H- u% ]+ j7 D! Z
; |+ q) C' X  h9 O# @; T6 h: Y: k
图1
/ h$ Z7 x6 m6 ^依然使用的SPI接口,根据前面的IC测试,思路搬过来使用。依然使用CubeMx现把框架搭一下,引脚定义如图2所示:
8 @! C4 U2 I2 V* w 4-3.JPG 4 d/ C: G) W/ z' Z: U( H* V% L; u
4 M. f/ l, A1 ~
图2
9 P) g8 [6 F$ h. h) J% M% {下面就是添加所需要的初始化代码,IC初始化如下:
, C) R. T! Z8 h- o8 n
  1. /* Start device configuration. */
    ; e! [$ l0 c+ v
  2.   ism330dhcx_device_conf_set(&dev_ctx, PROPERTY_ENABLE);
    % }( B4 R1 {0 [1 Z  E/ o
  3.   /* Enable Block Data Update */
    # A8 `0 `' ~' _5 s/ @( b
  4.   ism330dhcx_block_data_update_set(&dev_ctx, PROPERTY_ENABLE);
      U( b3 }& X: P2 F: r0 z/ n! H
  5.   /* Set Output Data Rate */
    5 o$ Q1 r! \- f7 h! [4 m
  6.   ism330dhcx_xl_data_rate_set(&dev_ctx, ISM330DHCX_XL_ODR_12Hz5);
    ( T! e# G, j- u0 m* O
  7.   ism330dhcx_gy_data_rate_set(&dev_ctx, ISM330DHCX_GY_ODR_12Hz5);. P" A5 d/ k! C. B
  8.   /* Set full scale */5 ?) A$ A9 W5 Z. \, i, V# H
  9.   ism330dhcx_xl_full_scale_set(&dev_ctx, ISM330DHCX_2g);
    2 |2 f2 Q6 b/ a; S. F% k1 Y, g2 x
  10.   ism330dhcx_gy_full_scale_set(&dev_ctx, ISM330DHCX_2000dps);, Y; g7 J0 a0 i# g0 B
  11.   /* Configure filtering chain(No aux interface)
    3 C: E5 M1 q) x. S9 N5 p) ^
  12.    *
    5 B. U  @+ b' U/ M- |3 `) l
  13.    * Accelerometer - LPF1 + LPF2 path4 g' q4 c$ }5 W5 O. Z* ^+ V8 m
  14.    */
    : ]+ H& u  Q% k9 a5 j' o. o
  15.   ism330dhcx_xl_hp_path_on_out_set(&dev_ctx, ISM330DHCX_LP_ODR_DIV_100);
      |; T2 B, K. {5 j- R
  16.   ism330dhcx_xl_filter_lp2_set(&dev_ctx, PROPERTY_ENABLE);
复制代码

5 n6 X! ?! f: S. s& r$ g, d3 K在while中添加读取数据的code,如下所示:
; k3 k; J4 I, ]! x4 L2 E
  1. ism330dhcx_xl_flag_data_ready_get(&dev_ctx, &dreg);
    / p: R. `& S* z$ U1 Q' P6 u
  2.                 if(dreg)
    2 f3 L3 k! l0 o% a4 `, T8 i: J
  3.                 {6 u& d7 u$ G, E, p
  4.                          /* Read acceleration field data */1 D$ b7 {5 U: T
  5.       memset(data_raw_acceleration, 0x00, 3 * sizeof(int16_t));
    8 A  K  m7 r; n. L% ^/ A
  6.       ism330dhcx_acceleration_raw_get(&dev_ctx, data_raw_acceleration);
    3 E# a6 Y: [, e3 m% y  w6 E
  7.       acceleration_mg[0] =
    # k9 H- `& X5 p) N
  8.         ism330dhcx_from_fs2g_to_mg(data_raw_acceleration[0]);0 }+ Q) O  T, Y3 l: P+ t: `
  9.       acceleration_mg[1] =
    0 J' \% K, J$ J0 ^. f$ D' I' P
  10.         ism330dhcx_from_fs2g_to_mg(data_raw_acceleration[1]);
    3 m( b+ S9 ~& i. h; `9 S2 X* i
  11.       acceleration_mg[2] =" D. n, |$ S4 A2 z# x9 D8 c# s2 S
  12.         ism330dhcx_from_fs2g_to_mg(data_raw_acceleration[2]);5 G5 v0 A. {& t* q5 w) @1 N/ ^
  13.                 }- k- b) ^. [, k" O! k) w0 U
  14.                  ism330dhcx_gy_flag_data_ready_get(&dev_ctx, &dreg);
    % J+ _$ f% [9 i# Q1 m+ q

  15. 0 k& K% [2 v6 H" G& }3 V, i0 O
  16.     if (dreg) {$ K. p" p7 i( \5 M& U1 R6 C
  17.       /* Read angular rate field data */4 R" Y0 e4 Q8 x- q6 U
  18.       memset(data_raw_angular_rate, 0x00, 3 * sizeof(int16_t));/ i+ |4 T3 l) W5 Q6 w) ]
  19.       ism330dhcx_angular_rate_raw_get(&dev_ctx, data_raw_angular_rate);
    , p+ b6 o0 D/ U' r) t! x6 Z
  20.       angular_rate_mdps[0] =0 g  M4 x# b+ c( e. I8 S
  21.         ism330dhcx_from_fs2000dps_to_mdps(data_raw_angular_rate[0]);; ]$ [5 T6 F( i) N5 \
  22.       angular_rate_mdps[1] =
    0 z8 x/ Y6 J! u2 L5 q" L9 v) l9 B+ [
  23.         ism330dhcx_from_fs2000dps_to_mdps(data_raw_angular_rate[1]);& U3 I. S5 T; g1 _
  24.       angular_rate_mdps[2] =- {$ Z" @' l+ n$ t
  25.         ism330dhcx_from_fs2000dps_to_mdps(data_raw_angular_rate[2]);: v6 @) g7 x! O5 V4 ?2 Y
  26.   & n" c4 `. H+ Q4 a- X, J$ |
  27.     }
    % @8 q! A) N5 h
  28. : k- C6 @! T, b! u2 O1 L  c
  29.     ism330dhcx_temp_flag_data_ready_get(&dev_ctx, &dreg);9 R$ M6 \  {, }; v

  30. & B) c- m" `( r  C: Q, |+ |) L1 }
  31.     if (dreg) {
    , ]1 A* y+ K- j% ^
  32.       /* Read temperature data */7 I" a9 f, @% w6 F5 d
  33.       memset(&data_raw_temperature, 0x00, sizeof(int16_t));
    ( o% l0 W& |- B+ H
  34.       ism330dhcx_temperature_raw_get(&dev_ctx, &data_raw_temperature);% C- H: g. F- G7 [' ]+ R, n( w5 W# q
  35.       temperature_degC = ism330dhcx_from_lsb_to_celsius(4 g" |% s! F8 V+ C2 E0 c0 u/ G
  36.                            data_raw_temperature);
    8 C" p) x7 U# u5 q

  37. # t2 |1 E! k  J! F' f
  38.     }
复制代码

! `$ Y1 O$ Q+ v* O9 [0 H
9 M; h( J" l4 q8 X1 q

7 y% `5 W, X+ H! o5 P. o: x测试失败,显示hardware_fault,硬件错误。想了想,是晚上有点恍惚,把时钟配置错了,板载的外部时钟是16M,而cubemx中的默认时钟是8M,修改过来,重新生成项目,debug,测试结果如下;: j6 y0 I8 Q: l
4-1.JPG
9 D4 N  z# L. t, Z* S2 F1 O( l
( B' S8 _( E$ u4 \6 ^, u* `& V: Y
图3
" V" D9 D! @( O  C9 ~/ B) l& B7 h4 |
: K+ L1 I* ?5 ^- u  y2 m3 _2 T
这段时间总是感觉知识浮于基础,得往深处继续挖掘学习。下次试一试Nano edge AI。
- p0 q, ~: d* ^" X2 ]/ N8 v
- a" {2 Q' E. ^
赞 收藏 评论7 发布时间:2024-8-10 22:42

举报

7个回答
y369369 回答时间:2024-10-18 10:01:12
Nano edge AI有得一搞啊楼主% R+ x; L" [7 }6 y! t$ n
你也是双下巴 回答时间:2024-10-18 10:04:42
y369369 发表于 2024-10-18 10:01
4 K( m# b; B$ ~" ~0 u; h1 yNano edge AI有得一搞啊楼主

, e1 c' c. m7 K, A! M) y5 J属实可以,等楼主9 x0 E+ B7 [! t" x
STMCU-管管 回答时间:2024-10-18 10:07:28
你也是双下巴 发表于 2024-10-18 10:04
  Z2 U. i0 ?* I/ J5 {+ `: x! ]. i属实可以,等楼主

! L9 N( s! P  f* n" d* t+ L8 p论坛有分享Nano edge AI 使用教程的可参考,https://shequ.stmicroelectronics.cn/thread-636670-1-1.html
* @0 G+ i1 S. T0 A+ a
embiied 回答时间:2024-10-18 10:32:11

STMCU-管管 发表于 2024-10-18 10:07
论坛有分享Nano edge AI 使用教程的可参考,<a href="https://shequ.stmicroelectronics.cn/thread-636670-1-1.htm">https://shequ.stmicroelectronics.cn/thread-636670-1-1.htm</a> ...

这个帖子之前看过,写的不错

ghost110 回答时间:2024-10-18 10:37:44

加油

jundao721 回答时间:2024-10-18 13:26:23

y369369 发表于 2024-10-18 10:01
Nano edge AI有得一搞啊楼主

哈哈,稍等片刻。

jundao721 回答时间:2024-10-18 13:26:51

你也是双下巴 发表于 2024-10-18 10:04
属实可以,等楼主

必须更新!

所属标签

相似技术帖

官网相关资源

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
人形机器人运动控制、感知与智能配电
半导体创新技术与应用方向
EE架构与软件定义汽车
12V/48V 汽车智能配电(SPD)
区域控制单元(ZCU)与分区架构
关注我们
st-img 微信公众号
st-img 手机版