10416|19

124

帖子

1

TA的资源

一粒金砂(中级)

楼主
 

【LSM6DSOX的FSM有限状态机理解】--状态机指令介绍,附【中文版指令集】 [复制链接]

 
  本帖最后由 justd0 于 2020-4-23 00:06 编辑

LSM6DSOX开箱与体验“Port not open & not supported ”问题解决中分享了初次尝试使用LSM6DSOX传感器的过程和其中遇到的问题解决方案。

 

【LSM6DSOX的FSM有限状态机理解】--状态机简介中对LSM6DSOX传感器中的FSM有限状态机本质进行了简要的介绍。

 

【LSM6DSOX的FSM有限状态机理解】--编程模块简介中对FSM编程模块的结构、变量结合UnicoFSM界面进行了介绍。

 

    这一章,结合官方的说明文档对分享下LSM6DSOX状态机指令的学习,并且分享下我这两天逐段翻译的指令集说明,希望能帮助伙伴们更好的使用FSM状态机编写自己的程序,下面开始吧~

 

    指令代码保存在LSM6DSOX状态机程序块的可变变量区之后,由一系列实现算法逻辑的状态组成。

 

     每个指令都有一个8的操作码,每个操作码可以实现一个命令指令(CMD)或者条件指令(RESET/NEXT,RNC,它们被称为程序状态,多个指令在一起组成FSM整体逻辑,其中:

 

  • 命令指令(CMD)用于执行流控制输出同步等特殊任务有的命令会需要参数,参数会作为一个单独的指令来执行,后面详细讲。
  • 条件指令(RESET/NEXT,RNC,两个条件组合在一起(4位的RESET条件和4位的NEXT条件),用来复位或者继续执行程序流。

 

      指令代码对LSM6DSOX寄存器状态机内部参数偶直接影响,有些指令还可以产生额外的功能,比如更新状态信息等,下面分别介绍下命令指令和条件指令的特点和使用方法。

 

命令指令(CMD)

 

命令指令是修改状态机行为中的流控制、输出、和同步的行为。

 

当一个命令被执行时,会立即执行(不需要更新输入采样集)程序指针(PP)被设置为下一行,将执行如下动作:

 

  • 如果新的一行是一个命令指令,则立即执行此行命令。
  • 如果新的一行是一个条件指令,则在下一个输入采样值到来之时,处理此行条件判断指令。

 

有些命令指令可能会需要参数,需要的参数必须在命令指令下一行定义

 

这里用"STHR1"命令来举例,该指令用来动态改变阈值1(THRESH1)的值,在Unico中的配置方法如下:

当程序指针(PP)指向状态S00x0A地址时,设备识别出"0xAA"指令码为"STHR1"命令。该指令需要两个参数,那么设备就不等待新的输入采样集直接运行S0-S2三个状态,执行后阈值1的值将被设置为“0x5640”即小数“100.0

 

条件指令(RESET/NEXT,RNC

 

条件指令用于重置或者继续程序流,条件指令在一个新的输入采样集准备好后,在一个单一状态下执行。

 

条件指令中用于重置判断的RESET条件定义在操作码的高4位,而用于判断继续的NEXT指令定义在操作码的低4位,条件指令的执行逻辑如下图所示:

当进入条件指令后,首先判断重置条件(RESET),只有在RESET条件不满足时,才判断继续条件(NEXT)

 

当两个条件均不满足时,状态机会等待一个新的采样集到来,然后重新开始判断。

 

满足RESET条件时,就会发生向复位点切换的状态过渡,即PP=PR

RESET条件不满足NEXT条件满足时,就会向下一个状态过渡,即PP = PP+1;

 

默认情况下,复位点(RP)被设置为第一个状态,但可以通过"SRP/CRP"指令动态改变复位点的位置

 

值得注意的是,RESETNEXT条件为同一个条件的情况是没有意义的。

 

条件指令能够判断的条件一共有三种:

  • 超时:当设置了定时器,定时计数器TC的值达到的时候,条件满足,成立。
  • 阈值比较:当启动的输入值高于(或低于)设定的阈值时,条件满足,成立。
  • 过零检测:当启动的输入越过零位时,条件满足,成立。

 

以上就是命令指令和条件指令的所有特点了。

 

FSM指令集中一共提供了16条件指令和35命令指令。

 

我已经将所有指令集使用说明翻译成了中文,并排版做成了一个速查PDF,共享给大家使用。

 

文件放在文章末尾,不过需要回复下才可见哦。

 

如果里面有错误,希望大家能在评论中指正~~

 

以下就是35个命令指令和16个条件指令的简介截图:

命令指令

条件指令

最近白天各种忙,只有晚上才能搞这个,所以指令集是我一点点熬夜翻译出来的,可能会有很多纰漏和错误,希望大家发现的时候可以指出~~

 

希望可以帮助到大家吧,当然如果英语好的伙伴也可以直接阅读官方英语原文文档,这样不容易产生理解偏差~

游客,如果您要查看本帖隐藏内容请回复

最新回复

辛苦  详情 回复 发表于 2024-7-16 10:52
点赞 关注
 
 

回复
举报

94

帖子

4

TA的资源

一粒金砂(中级)

沙发
 
 
 

回复

9790

帖子

24

TA的资源

版主

板凳
 
 
 

回复

932

帖子

3

TA的资源

纯净的硅(中级)

4
 

谢谢楼主分享

 
 
 

回复

60

帖子

1

TA的资源

一粒金砂(中级)

5
 
给力,看中文档效率倍增,感谢
 
 
 

回复

70

帖子

1

TA的资源

一粒金砂(中级)

6
 
 
 
 

回复

70

帖子

1

TA的资源

一粒金砂(中级)

7
 

感觉楼主精力无限!

 
 
 

回复

281

帖子

7

TA的资源

一粒金砂(高级)

8
 

谢谢楼主分享

 
 
 

回复

42

帖子

5

TA的资源

一粒金砂(初级)

9
 
 
 

回复

14

帖子

0

TA的资源

一粒金砂(初级)

10
 

楼主威武,好好学习一下

 

 
 
 

回复

4

帖子

0

TA的资源

一粒金砂(初级)

11
 
 
 

回复

3

帖子

0

TA的资源

一粒金砂(初级)

12
 
 
 

回复

15

帖子

0

TA的资源

一粒金砂(中级)

13
 
 
 

回复

11

帖子

0

TA的资源

一粒金砂(中级)

14
 

感谢分享,中文文档阅读速度高

 
 
 

回复

11

帖子

0

TA的资源

一粒金砂(中级)

15
 

另外,sox的有官方中文版的,也可以下载 https://www.st.com/resource/zh/application_note/an5273-lsm6dsox-finite-state-machine-stmicroelectronics.pdf

 
 
 

回复

14

帖子

1

TA的资源

一粒金砂(中级)

16
 
 
 

回复

11

帖子

0

TA的资源

一粒金砂(中级)

17
 

确实是好东西,辛苦收集整理了。期待更好的上传。

 
 
 

回复

1

帖子

0

TA的资源

一粒金砂(初级)

18
 
 
 

回复

2

帖子

0

TA的资源

一粒金砂(初级)

19
 

感谢分享,用这个配合视频,很快就学会了怎么用FSM了。

 
 
 

回复

2

帖子

0

TA的资源

一粒金砂(初级)

20
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/9 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表