打印
[LKS32 硬件]

LKS32MC08x的HALL信号处理模块概述

[复制链接]
357|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
jf101|  楼主 | 2023-4-24 13:00 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
1 综述
芯片共支持3路 HALL信号输入。
对于输入的HALL传感器信号,所进行的处理包括:
滤波,消除HALL信号毛刺的影响;
捕获,当HALL输入有变化时,记录当前的定时器值,并输出中断;
溢出,当HALL信号长时间不发生变化导致计数器溢出时,输出中断;
2 实现说明
2.1 信号来源
HALL信号来源于 GPIO,对于每一路 HALL信号,芯片有两个 IO可以作为该信号的来源。通过
配置 GPIO寄存器,用户可以选择将其中一个 GPIO的输入信号做为 HALL信号使用。

2.2 工作时钟
HALL模块工作频率可调。通过配置 HALL_CFG.CLK_DIV寄存器,可以选择系统主 时钟 的 1/2/4/8分频作为 HALL模块工作频率,滤波和计数均采用该频率工作。

2.3 信号滤波
滤波模块主要用于去除HALL信号上的毛刺。
滤波包括两级滤波器:
第一级采用
7判 5进行滤波,即连续 7个采样点中,如果达到超过 5个 1则输出 1,如果达到
或超过 5个 0则输出 0,否则输出保持上一次的滤波结果。具体如下图所示:


第二级采用连续滤波,在连续N 个采样点中,如全为0 则输出0,如全为1 则输出1,否则输
出保持上一次的滤波结果。
通过配置HALL_CFG.FIL_75 可以选择是否使能第一级滤波器。
通过配置HALL_CFG.FIL_LEN 可以配置第二级滤波器滤波深度,即连续采样个数。连续采样个
数最大为215,滤波时间常数计算公式如下:


举例,在96MHz 工作频率下,周期Tclk 是10.4ns,寄存器配置最大为32767,最长滤波宽度为
约10.4ns×32768≈340us。
通过访问HALL_INFO.FIL_DATA[2:0]可以捕捉滤波后的HALL 信号;HALL_INFO.RAW_DATA[2:0]
则是滤波前原始HALL 输入信号。

2.4 捕获
捕获模块用于测量两次HALL 信号变化之间的时间,其核心为一个24 位计数器,在96MHz 工
作频率下,如果Hall 时钟进行8 分频,最大可以记录约2^24*8/96e6=1.40s 的时间宽度,达到
10.42ns 的时间分辨率。
HALL_CNT 从0 开始计数,当发生HALL 信号变化时,将此时刻的HALL_CNT 值保存到
HALL_WIDTH 寄存器,将此时刻的HALL 信号保存到HALL_INFO.FIL_DATA,输出HALL 信号变化中
断,HALL_CNT 重新从0 开始计数。
当计数器计数值达到HALL_TH 时,输出HALL 计数器溢出中断,计数器重新从0 开始计数。
2.5 中断
捕获、溢出事件触发中断,中断使能控制位位于HALL_CFG.CHG_IE 和HALL_CFG.OV_IE,中断
标志位位于HALL_INFO.CHG_IF 和HALL_INFO.OV_IF。终端标志可以通过对HALL_INFO.CHG_IF 和
HALL_INFO.OV_IF 写1 清空。

2.6 数据流程
HALL 模块的数据流程如下图所示,FCLK[1]为受SYS_CLK_FEN 门控控制的系统主时钟,通常为
96MHz 的PLL 时钟。



使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

231

主题

1538

帖子

2

粉丝