[经验分享] STEVAL-MKI109V3 FSM体验分析

w562601331   2020-4-25 17:19 楼主

        最近一周熟悉了STEVAL-MKI109V3的各种功能,也对创意有了大致的构思,实现方法也有了简单的勾勒。这两日阅读了好多相关的资料,看了网友们相关的分享,对FSM的基本功能进行了简单的调试。

        1、官方给的开发板固件为bin可执行文件,是不开源的,其目的是让我们进行传感器配置的快速生成及FSM的配置调试等。所以要实现创意开发需要用unico实现寄存器配置后,导出.h文件导入个人工程中,通过总线直接写入传感器的FSM相关寄存器。
image.png

        然后在F401 MCU中实现进一步逻辑处理。

        对中断的理解有个问题,所谓FSM的INT1与INT2是由传感器输出的吗?是通过IO中断还是软中断的方式,主MCU如何获取这个中断呢?

        2、对FSM进行了简单的学习后模拟了一下实际的操作,做了个最简单的逻辑,采集X+轴的数据,然后对数据进行阈值判断,然后计数,连续数据符合计数要求后输出中断,FSM逻辑如下:

image.png

观察中断可以发现,只要平移运动触发阈值便可以产生中断。(因为阈值和Time计数设置的比较小,所以触发非常敏感)

image.png

        3、进一步,调整阈值(加大触发难度)和采样时间(增加持续时间),降低敏感度,配置如下:

image.png

中断触发如下:

image.png 这样触发的难度就比较大了,不会出现误触发的现象了。。

        4、简单总结下:Unico实现FSM功能的配置是十分方便的,也可以把我们想要的动作采集快速实现,然后写入mcu中进行开发。这周剩下的时间对调试环境进行搭建,换了电脑以前的环境还得重新配置,并且对开发板的理解还是有很多欠缺,再仔细阅读下文档。这周只休息一天,下次分享估计要五一了。时间还是挺紧迫的哈哈。希望看到坛友们的更多分享。

 

  • image.png

回复评论 (2)

ADD:

若修改输入源,可通过更改输入源配置来实现,例如将上述操作应用在陀螺仪的x+轴,则配置如下:

image.png

生成的中断信号以陀螺仪信号来判断:

image.png

既然每个FSM都可以映射到INT1与INT2,那么我想,生成的中断肯定是软中断,通过寄存器读取,然后由MCU的程序处理后映射到硬件IO的中断。欢迎交流。

 

点赞  2020-4-25 20:19

嗯,你分析的没错,文档AN5273中的第四章专门讲了FSM中断的问题。

 

在FSM达到结束状态或执行OUTC / CONT / CONTREL命令时,会产生中断。

 

中断会被存储在对应状态机模块的中断状态寄存器地址下,从主从设备 交互上来讲可以看做软中断。

 

通过设置外部中断INT配置寄存器中的INT1_FSM[1:16]、INT2_FSM[1:16]这些位,可以将外部中断INT1/2路由到软中断上,从而产生硬中断。

点赞  2020-4-26 10:27
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复