深山老妖 发表于 2025-10-19 22:43:03

请教一下AI8H2K32U的T11定时器问题

想用T11做外部计数用,用来采集风扇的转速,最高速度大概在160Hz。不需要中断,一秒查询一次,发现哪怕停止计数功能,每次进入都会有8个脉冲,这是怎么回事?
代码如下:
    T11H=0;
    T11L=0;
    T11CR =0xc0;      //定时器11用于对风扇转速计数
每秒查询一次,查询完就会将T11H和T11L置0。


国芯人工智能 发表于 2025-10-19 22:48:00

您好,

关于您在使用国芯AI8H2K32U芯片的T11定时器进行外部计数,采集风扇转速时遇到的问题,我将从硬件配置、计数原理、可能干扰源及解决方案等方面进行分析,并提出改进建议。

一、问题描述回顾

您希望使用T11定时器作为外部计数器,用于采集风扇转速信号(最大频率约160Hz),每秒读取一次计数值并清零。在测试过程中发现,即使关闭了计数功能(即停止定时器),每次读取时仍会“残留”8个计数脉冲。此现象与预期不符,可能存在信号干扰、配置不当或硬件行为理解偏差等问题。

二、T11定时器功能简述

根据AI8H2K32U的参考手册,T11为16位可编程定时器/计数器模块,支持以下几种工作模式:
定时模式(内部时钟源)
计数模式(外部输入引脚提供时钟)
PWM输出模式
输入捕获模式

您当前配置为外部计数模式,即通过T11CLK引脚(或指定引脚)输入的外部信号进行递增计数。配置语句如下:

c
T11CR = 0xc0;

该配置的含义如下(根据手册):
T11CR = 0b11:选择外部时钟源(计数模式)
T11CR:可能为预分频设置或其它控制位,具体请参考数据手册

三、问题分析

1. 计数器未真正停止

即使您认为已“关闭”了计数功能,但若未正确配置T11CR寄存器来停止计数器,其仍可能继续运行。例如:
若只是清除了T11H和T11L,但T11CR未修改为停止状态,则计数仍在继续。
若T11CR仍为外部时钟源模式(如0b11),则计数器仍在对输入信号计数。

建议操作顺序应为:

c
T11CR = 0x00;   // 先停止计数器
T11H = 0;
T11L = 0;

然后再根据需要重新启动计数。

2. 外部信号存在干扰或毛刺

即使风扇停止转动,其输出的霍尔信号或光栅信号可能仍存在:
机械抖动:风扇停转时,霍尔元件可能因磁场残留或机械振动产生误触发。
电气噪声:外部信号线上存在干扰,可能被误判为有效脉冲。
未使用硬件消抖:许多MCU提供输入滤波或消抖机制,若未启用,可能导致误计数。

建议措施:
在硬件上加入RC低通滤波器或施密特触发器,对输入信号进行整形。
启用芯片内部的输入滤波功能(如有)。
软件上可做简单的去抖判断,例如两次采样间隔中变化小于一定次数则视为无效。

3. 定时器读写时序问题

在16位定时器读写过程中,若操作顺序不当,可能导致读取不一致或写入失败。例如:
先读写T11H,再读写T11L,可能导致读取到不一致的值(如高位更新而低位未更新)。
清零操作应在计数器停止后进行,否则可能清零失败。

建议采用如下标准流程:

```c
// 停止计数
T11CR = 0x00;

// 读取计数值
count = (T11H

[本文内容由国芯人工智能辅助生成,仅供参考]

深山老妖 发表于 2025-10-21 03:51:15

干扰的问题肯定是可以排除了,现在就算拔掉风扇,数字为8,依然有值,这个就明显不对了,电路图如下,风扇的第三脚内部实际是一个三极管开路输出。

程序如下:


ercircle 发表于 2025-10-21 16:08:07


未复现,上传可复现问题工程看看



深山老妖 发表于 2025-10-21 19:45:30

ercircle 发表于 2025-10-21 16:08
未复现,上传可复现问题工程看看

原简单的测试工程文件。


ercircle 发表于 2025-10-21 20:00:41

深山老妖 发表于 2025-10-21 19:45
原简单的测试工程文件。

未见停止1s重新读数测试代码?使用上面传的例程是否可复现呢?



深山老妖 发表于 2025-10-21 21:35:28

ercircle 发表于 2025-10-21 20:00
未见停止1s重新读数测试代码?使用上面传的例程是否可复现呢?

用上面的例程,在我的板子上是可以复现的。

ercircle 发表于 2025-10-21 23:17:10

深山老妖 发表于 2025-10-21 21:35
用上面的例程,在我的板子上是可以复现的。

录个像看看,另外示波器看下捕获Pin实际电平。

上传完整原理图?
换核心板试试?

深山老妖 发表于 2025-10-21 23:42:00

ercircle 发表于 2025-10-21 23:17
录个像看看,另外示波器看下捕获Pin实际电平。

上传完整原理图?


直接上完整的PCB文件。


页: [1]
查看完整版本: 请教一下AI8H2K32U的T11定时器问题